/* Sistema de design do Gestor Escolar: cores (tema escuro e claro) e componentes compartilhados pelos painéis.
   Os valores são triplas "R G B" para poder usar transparência: rgb(var(--rgb-line) / .6). */

:root {
    --rgb-page: 12 27 28;
    --rgb-surface: 21 41 44;
    --rgb-surface-2: 27 51 54;
    --rgb-line: 49 80 79;
    --rgb-line-2: 34 63 65;
    --rgb-text: 228 239 237;
    --rgb-text-strong: 255 255 255;
    --rgb-muted: 143 176 172;
    --rgb-muted-2: 122 154 151;
    --rgb-accent: 0 127 120;
    --rgb-accent-hover: 0 110 103;
    --rgb-accent-text: 76 201 189;
    --rgb-ok: 95 220 169;
    --rgb-warn: 242 178 78;
    --rgb-bad: 238 123 110;
    --rgb-black: 0 0 0;

    /* escala do Tailwind (slate = neutros) */
    --s50: 242 248 247; --s100: 228 239 237; --s200: 201 220 218; --s300: 168 194 191; --s400: 143 176 172;
    --s500: 122 154 151; --s600: 91 122 119; --s700: 49 80 79; --s800: 34 63 65; --s850: 27 51 54; --s900: 21 41 44; --s950: 12 27 28;
    /* verde-azulado da marca (blue no Tailwind) */
    --b50: 231 248 246; --b100: 197 238 234; --b200: 159 226 220; --b300: 127 218 210; --b400: 76 201 189; --b500: 20 168 156;
    --b600: 0 127 120; --b700: 0 107 101; --b800: 0 81 77; --b900: 0 58 55; --b950: 0 38 36;
    --e300: 139 232 196; --e400: 95 220 169; --e500: 52 198 143; --e600: 31 168 116; --e700: 23 133 96;
    --a300: 252 211 77; --a400: 251 191 36; --a500: 245 158 11;
    --r300: 253 164 175; --r400: 251 113 133; --r500: 244 63 94;

    --shadow-lg: 0 24px 60px rgb(0 0 0 / .35);
    color-scheme: dark;
}

html[data-theme="light"] {
    --rgb-page: 244 249 248;
    --rgb-surface: 255 255 255;
    --rgb-surface-2: 238 245 244;
    --rgb-line: 201 220 218;
    --rgb-line-2: 228 239 237;
    --rgb-text: 31 56 54;
    --rgb-text-strong: 12 27 28;
    --rgb-muted: 70 96 94;
    --rgb-muted-2: 82 110 107;
    --rgb-accent: 0 127 120;
    --rgb-accent-hover: 0 110 103;
    --rgb-accent-text: 0 107 101;
    --rgb-ok: 23 133 96;
    --rgb-warn: 161 98 7;
    --rgb-bad: 190 18 60;

    --s50: 12 27 28; --s100: 21 41 44; --s200: 31 56 54; --s300: 47 74 72; --s400: 70 96 94;
    --s500: 82 110 107; --s600: 168 194 191; --s700: 201 220 218; --s800: 228 239 237; --s850: 238 245 244; --s900: 255 255 255; --s950: 244 249 248;
    --b50: 0 38 36; --b100: 0 58 55; --b200: 0 81 77; --b300: 0 81 77; --b400: 0 107 101; --b500: 0 121 111; --b600: 0 127 120; --b700: 0 107 101;
    --e300: 15 107 63; --e400: 21 128 61; --e500: 22 163 74; --e600: 21 128 61; --e700: 15 107 63;
    --a300: 138 90 0; --a400: 161 98 7; --a500: 180 83 9;
    --r300: 159 18 57; --r400: 190 18 60; --r500: 225 29 72;

    --shadow-lg: 0 24px 60px rgb(21 41 44 / .14);
    color-scheme: light;
}

body { background: radial-gradient(1200px 500px at 50% -150px, rgb(0 135 127 / .10), transparent 70%), rgb(var(--rgb-page)); background-attachment: fixed; }
html[data-theme="light"] .text-white { color: rgb(var(--rgb-text-strong)); }
/* dentro de botões coloridos o texto continua branco */
html[data-theme="light"] .btn-primary .text-white, html[data-theme="light"] .btn-danger-solid .text-white,
html[data-theme="light"] .bg-blue-600 .text-white, html[data-theme="light"] .bg-blue-600.text-white,
html[data-theme="light"] .bg-emerald-600 .text-white, html[data-theme="light"] .bg-emerald-600.text-white,
html[data-theme="light"] .bg-rose-600.text-white, html[data-theme="light"] .bg-rose-600 .text-white { color: #fff; }
html[data-theme="light"] .bg-black\/70, html[data-theme="light"] .bg-black\/60 { background-color: rgb(21 41 44 / .55); }

/* ---------- rolagem e tabelas ---------- */
.overflow-x-auto { scrollbar-width: thin; scrollbar-color: rgb(var(--rgb-line)) transparent; }
.overflow-x-auto::-webkit-scrollbar { height: 8px; }
.overflow-x-auto::-webkit-scrollbar-thumb { background: rgb(var(--rgb-line)); border-radius: 4px; }
.overflow-x-auto::-webkit-scrollbar-track { background: transparent; }

#dashboardSection table thead { background: transparent; border-bottom: 1px solid rgb(var(--rgb-line) / .6); }
#dashboardSection table thead th { color: rgb(var(--rgb-muted)); font-weight: 700; font-size: 0.8125rem; letter-spacing: 0; padding: 0.75rem 1rem; }
#dashboardSection table tbody td { padding-top: 0.8rem; padding-bottom: 0.8rem; }
#dashboardSection table tbody tr { transition: background-color 0.12s; }
#dashboardSection table tbody tr:hover { background-color: rgb(var(--rgb-line-2) / .45); }

/* ---------- cartões, abas, indicadores ---------- */
.panel { background: linear-gradient(180deg, rgb(var(--rgb-surface-2) / .55), rgb(var(--rgb-surface) / .6)); border: 1px solid rgb(var(--rgb-line) / .6); border-radius: 1.125rem; }
html[data-theme="light"] .panel { background: rgb(var(--rgb-surface)); box-shadow: 0 1px 2px rgb(21 41 44 / .06); }
.tab-btn { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; font-size: 0.875rem; font-weight: 600; border-radius: 0.625rem; color: rgb(var(--rgb-muted)); transition: background-color .15s, color .15s; white-space: nowrap; }
.tab-btn:hover { color: rgb(var(--rgb-text-strong)); }
.tab-btn.active { background: rgb(var(--rgb-line-2)); color: rgb(var(--rgb-text-strong)); box-shadow: 0 1px 2px rgb(0 0 0 / .2); }
html[data-theme="light"] .tab-btn.active { background: rgb(var(--rgb-surface)); box-shadow: 0 1px 3px rgb(21 41 44 / .15); }
.stat-cell { padding: 1.1rem 1.5rem; }
.stat-label { font-size: 0.875rem; font-weight: 600; letter-spacing: 0; text-transform: none; color: rgb(var(--rgb-muted-2)); display: flex; align-items: center; gap: 0.4rem; }
.stat-value { font-size: 2.25rem; line-height: 2.5rem; font-weight: 700; color: rgb(var(--rgb-text-strong)); margin-top: 0.35rem; font-variant-numeric: tabular-nums; }

/* ---------- campos ---------- */
.sched-input {
    width: 100%; height: 2.75rem;
    background-color: rgb(var(--rgb-page) / .7);
    border: 1px solid rgb(var(--rgb-line-2));
    border-radius: 0.75rem; padding: 0 0.75rem; font-size: 0.9375rem;
    color: rgb(var(--rgb-text)); outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
}
html[data-theme="light"] .sched-input { background-color: #fff; border-color: rgb(var(--rgb-line)); }
.sched-input::placeholder { color: rgb(var(--rgb-muted-2)); }
.sched-input:focus, .sched-input.flatpickr-input.active { border-color: rgb(20 168 156); box-shadow: 0 0 0 3px rgb(20 168 156 / .15); }
.sched-input.has-error { border-color: #ef4444; box-shadow: 0 0 0 3px rgb(239 68 68 / .15); }
input[type="checkbox"], input[type="radio"] { accent-color: #007f78; }

/* ---------- botões ---------- */
.btn-base {
    display: inline-flex; align-items: center; justify-content: center; gap: 0.375rem;
    font-size: 0.875rem; font-weight: 700; line-height: 1rem; height: 2.5rem; padding: 0 1rem; border-radius: 0.75rem;
    transition: background-color .15s ease-in-out, border-color .15s ease-in-out, color .15s ease-in-out, opacity .15s ease-in-out, transform .12s ease-in-out, box-shadow .15s ease-in-out;
    white-space: nowrap; cursor: pointer; user-select: none; text-decoration: none; box-sizing: border-box;
}
.btn-base:active:not(:disabled) { transform: scale(.97); }
.btn-base:disabled, .btn-base[disabled] { opacity: 0.45 !important; cursor: not-allowed !important; pointer-events: none !important; }
.btn-base.btn-sm, .btn-sm { height: 2rem; padding: 0 0.625rem; font-size: 0.8125rem; border-radius: 0.625rem; gap: 0.25rem; }
.btn-base.btn-icon, .btn-icon { width: 2.5rem; height: 2.5rem; padding: 0; }
.btn-base.btn-icon-sm, .btn-icon-sm { width: 2rem; height: 2rem; padding: 0; }

.btn-secondary { background-color: rgb(var(--rgb-line-2) / .8); border: 1px solid rgb(var(--rgb-line) / .7); color: rgb(var(--rgb-text)); }
.btn-secondary:hover { background-color: rgb(var(--rgb-line)); border-color: rgb(var(--rgb-muted-2)); color: rgb(var(--rgb-text-strong)); }
.btn-secondary svg { color: rgb(var(--rgb-muted)); transition: color .15s; flex-shrink: 0; }
.btn-secondary:hover svg { color: rgb(var(--rgb-text-strong)); }
html[data-theme="light"] .btn-secondary { background-color: #fff; border-color: rgb(var(--rgb-line)); }
html[data-theme="light"] .btn-secondary:hover { background-color: rgb(var(--rgb-surface-2)); border-color: rgb(var(--rgb-muted-2)); }

.btn-primary { background-color: rgb(var(--rgb-accent)); border: 1px solid rgb(0 107 101); color: #fff; box-shadow: 0 1px 2px rgb(0 0 0 / .15); }
.btn-primary:hover { background-color: rgb(var(--rgb-accent-hover)); border-color: rgb(0 95 89); color: #fff; }
.btn-primary svg { color: #fff; flex-shrink: 0; }

.btn-danger { background-color: rgb(var(--rgb-surface) / .6); border: 1px solid rgb(var(--rgb-line) / .7); color: rgb(var(--rgb-text)); }
.btn-danger:hover { background-color: rgb(69 10 10 / .45); border-color: rgb(153 27 27 / .6); color: #f87171; }
.btn-danger svg { color: rgb(var(--rgb-muted)); transition: color .15s; flex-shrink: 0; }
.btn-danger:hover svg { color: #f87171; }
html[data-theme="light"] .btn-danger { background-color: #fff; border-color: rgb(var(--rgb-line)); }
html[data-theme="light"] .btn-danger:hover { background-color: #fee2e2; border-color: #fca5a5; color: #b91c1c; }
html[data-theme="light"] .btn-danger:hover svg { color: #b91c1c; }

.btn-danger-solid { background-color: #991b1b; border: 1px solid #7f1d1d; color: #fee2e2; }
.btn-danger-solid:hover { background-color: #b91c1c; color: #fff; }
.btn-danger-solid svg { color: #fee2e2; flex-shrink: 0; }

/* ---------- selos ---------- */
.badge-pill { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.2rem 0.625rem; border-radius: 9999px; font-size: 0.8125rem; font-weight: 500; line-height: 1.25rem; background-color: rgb(var(--rgb-line-2) / .7); border: 1px solid rgb(var(--rgb-line) / .6); color: rgb(var(--rgb-text)); white-space: nowrap; }
.badge-dot { width: 0.5rem; height: 0.5rem; border-radius: 9999px; flex-shrink: 0; }
.badge-dot-success { background-color: rgb(var(--e500)); box-shadow: 0 0 6px rgb(16 185 129 / .4); }
.badge-dot-warning { background-color: #f59e0b; box-shadow: 0 0 6px rgb(245 158 11 / .3); }
.badge-dot-danger { background-color: #ef4444; box-shadow: 0 0 6px rgb(239 68 68 / .3); }
.badge-dot-neutral { background-color: rgb(var(--rgb-muted-2)); }
.badge-dot-info { background-color: rgb(20 168 156); box-shadow: 0 0 6px rgb(20 168 156 / .3); }

/* ---------- destaque "em andamento" e código da turma ---------- */
.live-card { position: relative; padding: 1.125rem 1.25rem 1rem 1.375rem; border-radius: 1.125rem; background: linear-gradient(135deg, rgb(0 135 127 / .16), rgb(var(--rgb-surface) / .7) 55%); border: 1px solid rgb(76 201 189 / .28); transition: border-color .15s, transform .15s, box-shadow .15s; }
html[data-theme="light"] .live-card { background: linear-gradient(135deg, rgb(0 135 127 / .10), #fff 60%); border-color: rgb(0 127 120 / .35); }
.live-card::before { content: ''; position: absolute; left: 0; top: 1rem; bottom: 1rem; width: 3px; border-radius: 0 3px 3px 0; background: rgb(var(--rgb-ok)); }
.live-card:hover { border-color: rgb(76 201 189 / .6); transform: translateY(-1px); box-shadow: 0 8px 24px rgb(0 0 0 / .12); }
.code-chip { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 700; font-size: 0.9375rem; letter-spacing: 0.12em; color: rgb(var(--e300)); background: rgb(95 220 169 / .1); border: 1px solid rgb(95 220 169 / .28); padding: 0.2rem 0.6rem; border-radius: 0.5rem; cursor: pointer; transition: background-color .15s; }
html[data-theme="light"] .code-chip { color: rgb(0 107 101); background: rgb(0 127 120 / .08); border-color: rgb(0 127 120 / .3); }
.code-chip:hover { background: rgb(95 220 169 / .2); }

/* ---------- seleção em lote ---------- */
.bulk-check { width: 1.1rem; height: 1.1rem; cursor: pointer; vertical-align: middle; }
.bulk-selected { background: rgb(0 135 127 / .14) !important; }
.bulk-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.75rem; padding: 0.625rem 0.875rem; border-radius: 0.875rem; background: rgb(0 135 127 / .14); border: 1px solid rgb(76 201 189 / .35); }
.bulk-count { font-weight: 700; color: rgb(var(--rgb-text-strong)); font-size: 0.9375rem; }
.bulk-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.bulk-actions button:disabled { opacity: 0.4; cursor: not-allowed; }

/* ---------- entrada suave dos blocos e esqueleto de carregamento ---------- */
@keyframes dsRise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.ds-rise { animation: dsRise .28s ease-out both; }
@keyframes dsShimmer { 0% { background-position: -200px 0; } 100% { background-position: calc(200px + 100%) 0; } }
.skel { display: block; border-radius: .5rem; min-height: .9rem; background: linear-gradient(90deg, rgb(var(--rgb-line-2) / .5) 0, rgb(var(--rgb-line) / .55) 50%, rgb(var(--rgb-line-2) / .5) 100%); background-size: 200px 100%; background-repeat: no-repeat; animation: dsShimmer 1.2s infinite linear; }
.empty-state { display: flex; flex-direction: column; align-items: center; gap: .6rem; text-align: center; padding: 2rem 1rem; color: rgb(var(--rgb-muted)); }
.empty-state .empty-icon { width: 3rem; height: 3rem; border-radius: 1rem; display: grid; place-items: center; background: rgb(var(--rgb-line-2) / .6); color: rgb(var(--rgb-accent-text)); }
.empty-state .empty-title { font-weight: 700; color: rgb(var(--rgb-text-strong)); font-size: 1rem; }
.empty-state .empty-text { font-size: .875rem; max-width: 26rem; }

/* alterador de tema */
.theme-toggle .icon-sun { display: none; }
html[data-theme="light"] .theme-toggle .icon-sun { display: block; }
html[data-theme="light"] .theme-toggle .icon-moon { display: none; }

/* Barra do painel do professor: todos os controles com a mesma altura, ícone e espaçamento */
.hdr-group { display: flex; align-items: center; gap: .5rem; }
.hdr-sep { width: 1px; height: 1.25rem; background: rgb(var(--rgb-line)); }
#activeHeaderActions .badge-pill { height: 2rem; padding: 0 .75rem; border-radius: .625rem; }
#activeHeaderActions .btn-base, .theme-toggle, #btnLogoutProfessor { font-weight: 600; }
#activeHeaderActions .btn-base > svg, #activeHeaderActions .badge-pill > svg, .theme-toggle svg, #btnLogoutProfessor svg { width: 1rem; height: 1rem; }
#activeHeaderActions .btn-base { gap: .4rem; }
.hdr-seg { display: inline-flex; align-items: stretch; height: 2rem; border-radius: .625rem; overflow: hidden;
    background-color: rgb(var(--rgb-line-2) / .8); border: 1px solid rgb(var(--rgb-line) / .7); }
html[data-theme="light"] .hdr-seg { background-color: #fff; }
.hdr-seg-btn { display: inline-flex; align-items: center; gap: .4rem; padding: 0 .75rem; font-size: .8125rem; font-weight: 600;
    color: rgb(var(--rgb-text)); background: transparent; border: 0; cursor: pointer; transition: background-color .15s, color .15s; }
.hdr-seg-btn svg { width: 1rem; height: 1rem; color: rgb(var(--rgb-muted)); transition: color .15s; }
.hdr-seg-btn:hover { background-color: rgb(var(--rgb-line)); color: rgb(var(--rgb-text-strong)); }
.hdr-seg-btn:hover svg { color: rgb(var(--rgb-text-strong)); }
.hdr-seg-danger:hover { background-color: rgb(69 10 10 / .45); color: #f87171; }
.hdr-seg-danger:hover svg { color: #f87171; }
html[data-theme="light"] .hdr-seg-danger:hover { background-color: #fee2e2; color: #b91c1c; }
html[data-theme="light"] .hdr-seg-danger:hover svg { color: #b91c1c; }
.hdr-seg-sep { width: 1px; background: rgb(var(--rgb-line) / .8); }

/* Coluna de ações fixa à direita em tabelas largas (sempre visível ao rolar) */
.sticky-act { position: sticky; right: 0; background: rgb(var(--rgb-surface)); box-shadow: -10px 0 10px -10px rgb(0 0 0 / .45); }
thead .sticky-act { background: rgb(var(--rgb-surface-2)); }

/* Cabeçalho do professor abaixo de 2xl: grupos ocupam a linha toda e quebram por grupo, sem divisor solto */
.hdr-group { flex-wrap: wrap; }
@media (max-width: 1535px) {
  #activeHeaderActions { justify-content: space-between; row-gap: .5rem; }
  #activeHeaderActions .hdr-sep { display: none; }
}

/* Movimentação de tablets */
.logi-card { padding: 1rem 1.125rem; }
.logi-card.is-past { opacity: .5; }
.logi-time { font-family: var(--font-display, inherit); font-size: 1.875rem; line-height: 1; font-weight: 700; color: rgb(var(--rgb-text-strong)); }
.logi-sub { font-size: .8125rem; color: rgb(var(--rgb-muted)); margin-top: .25rem; }
.logi-counts { display: flex; gap: 1rem; font-size: .75rem; color: rgb(var(--rgb-muted)); text-align: right; }
.logi-counts b { display: block; font-size: 1rem; color: rgb(var(--rgb-text-strong)); }
.logi-sec { font-size: .6875rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: rgb(var(--rgb-accent-text)); margin: .875rem 0 .375rem; }
.logi-sec.is-muted { color: rgb(var(--rgb-muted-2)); }
.logi-row { display: grid; grid-template-columns: 3.5rem 1fr; gap: .75rem; align-items: center; padding: .5rem .625rem; margin-top: .375rem; border: 1px solid rgb(var(--rgb-line) / .6); border-radius: .75rem; background: rgb(var(--rgb-surface-2) / .4); }
.logi-row.is-muted { background: transparent; border-style: dashed; }
.logi-qty { text-align: center; font-size: 1.5rem; font-weight: 700; line-height: 1; color: rgb(var(--rgb-text-strong)); }
.logi-qty small { display: block; margin-top: .125rem; font-size: .625rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: rgb(var(--rgb-muted)); }
.logi-route { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .75rem; min-width: 0; }
.logi-place { font-size: .9375rem; font-weight: 600; color: rgb(var(--rgb-text-strong)); min-width: 0; }
.logi-place small { display: block; font-size: .75rem; font-weight: 400; color: rgb(var(--rgb-muted)); }
.logi-place.is-ti { color: rgb(var(--rgb-warn)); }
.logi-arrow { font-size: 1.125rem; color: rgb(var(--rgb-accent-text)); }
.logi-card.is-next { border-color: rgb(var(--rgb-accent-text) / .6); box-shadow: 0 0 0 1px rgb(var(--rgb-accent-text) / .25); }
.logi-chip { display: inline-flex; align-items: center; gap: .375rem; padding: .25rem .625rem; border-radius: 9999px; font-size: .75rem; font-weight: 600; background: rgb(var(--rgb-accent-text) / .15); color: rgb(var(--rgb-accent-text)); }
.logi-stats { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.logi-stat { padding: .375rem .75rem; border-radius: .625rem; background: rgb(var(--rgb-surface-2) / .5); border: 1px solid rgb(var(--rgb-line) / .5); font-size: .8125rem; color: rgb(var(--rgb-muted)); }
.logi-stat b { color: rgb(var(--rgb-text-strong)); margin-left: .25rem; }
.logi-settings summary { cursor: pointer; font-size: .8125rem; font-weight: 600; color: rgb(var(--rgb-muted)); padding: .5rem 0; }
.logi-watch { display: none; border-radius: .75rem; overflow: hidden; border: 1px solid rgb(var(--rgb-line) / .6); background: #04100f; }
.logi-watch.is-on { display: block; }

/* Pop-up fixo com as próximas trocas (aparece em qualquer aba) */
#logiDock { position: fixed; right: 1rem; bottom: 1rem; z-index: 40; width: min(22rem, calc(100vw - 2rem)); border-radius: 1rem; background: rgb(var(--rgb-surface)); border: 1px solid rgb(var(--rgb-line)); box-shadow: var(--shadow-lg); }
#logiDock.hidden { display: none; }
#logiDock .dock-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .625rem .875rem; cursor: pointer; font-size: .8125rem; font-weight: 700; color: rgb(var(--rgb-text-strong)); }
#logiDock .dock-body { padding: 0 .875rem .75rem; max-height: 40vh; overflow-y: auto; }
#logiDock.is-min .dock-body { display: none; }
#logiDock .dock-item { display: flex; gap: .625rem; align-items: baseline; padding: .5rem 0; border-top: 1px solid rgb(var(--rgb-line) / .5); font-size: .8125rem; color: rgb(var(--rgb-text)); }
#logiDock .dock-when { min-width: 3.25rem; font-weight: 700; color: rgb(var(--rgb-text-strong)); }
#logiDock .dock-when small { display: block; font-weight: 500; color: rgb(var(--rgb-accent-text)); }
#logiDock .dock-text { color: rgb(var(--rgb-muted)); }
@media (max-width: 640px) {
  .logi-row { grid-template-columns: 3rem 1fr; }
  .logi-route { flex-direction: column; align-items: flex-start; gap: .125rem; }
  .logi-arrow { transform: rotate(90deg); margin-left: .25rem; }
  .logi-counts { gap: .75rem; }
  #logiDock { right: .5rem; left: .5rem; bottom: .5rem; width: auto; }
}

.logi-dest { margin-top: .5rem; padding: .625rem .75rem; border: 1px solid rgb(var(--rgb-line) / .6); border-radius: .75rem; background: rgb(var(--rgb-surface-2) / .4); }
.logi-dest-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: .25rem .75rem; }
.logi-need { font-size: .8125rem; color: rgb(var(--rgb-muted)); }
.logi-need b { font-size: 1.125rem; color: rgb(var(--rgb-text-strong)); }
.logi-srcs { list-style: none; margin: .5rem 0 0; padding: .5rem 0 0; border-top: 1px dashed rgb(var(--rgb-line) / .6); display: grid; gap: .375rem; }
.logi-src { display: flex; flex-wrap: wrap; align-items: baseline; gap: .375rem; font-size: .9375rem; color: rgb(var(--rgb-text)); }
.logi-src b { min-width: 2rem; font-size: 1.125rem; color: rgb(var(--rgb-text-strong)); }
.logi-src .logi-place { display: inline-block; font-size: .9375rem; }
.logi-src .logi-place small { display: inline; margin-left: .375rem; }
.logi-src.is-muted { color: rgb(var(--rgb-muted)); }
.logi-src.is-ti { color: rgb(var(--rgb-warn)); }
.logi-src.is-ti b { color: rgb(var(--rgb-warn)); }

.logi-cancel { margin-left: .75rem; padding: .125rem .5rem; border-radius: .5rem; font-size: .75rem; font-weight: 600; color: rgb(var(--rgb-bad)); border: 1px solid rgb(var(--rgb-bad) / .5); background: transparent; cursor: pointer; }
.logi-cancel:hover { background: rgb(var(--rgb-bad) / .12); }

.logi-note { display: inline-block; margin-left: .5rem; padding: .0625rem .5rem; border-radius: 9999px; font-size: .75rem; font-weight: 600; color: rgb(var(--rgb-warn)); border: 1px solid rgb(var(--rgb-warn) / .45); }
.logi-cont { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .75rem; padding: .5rem .875rem; border: 1px dashed rgb(var(--rgb-line) / .7); border-radius: .75rem; font-size: .875rem; color: rgb(var(--rgb-muted)); }
.logi-cont b { color: rgb(var(--rgb-text-strong)); }
.logi-cont-time { font-weight: 700; color: rgb(var(--rgb-text)); }

/* Cancelar aula: discreto (texto cinza), vermelho só ao passar o mouse */
.logi-cancel { color: rgb(var(--rgb-muted)); border: 0; background: transparent; padding: 0 .25rem; font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }
.logi-cancel:hover { color: rgb(var(--rgb-bad)); background: transparent; }

/* Confirmar "já levei" / pendência */
.logi-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem .75rem; margin-top: .875rem; padding-top: .75rem; border-top: 1px solid rgb(var(--rgb-line) / .6); font-size: .8125rem; color: rgb(var(--rgb-muted)); }
.logi-foot.is-late { color: rgb(var(--rgb-warn)); font-weight: 600; }
.logi-foot.is-done { color: rgb(var(--rgb-ok)); }
.logi-card.is-late { border-color: rgb(var(--rgb-warn) / .7); box-shadow: 0 0 0 1px rgb(var(--rgb-warn) / .25); }

.logi-dest.is-done { opacity: .55; }
.logi-task { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem; margin-top: .5rem; }
.logi-ok { color: rgb(var(--rgb-ok)); font-size: .8125rem; font-weight: 600; }

/* Aviso de levar tablets: cartão flutuante no meio da tela (fundo leve, sem bloquear a página) */
.logi-alarm { position: fixed; inset: 0; z-index: 60; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgb(0 0 0 / .4); pointer-events: none; }
.logi-alarm.hidden { display: none; }
.logi-alarm-box { pointer-events: auto; width: min(34rem, 100%); max-height: 85vh; overflow-y: auto; display: grid; gap: .75rem; }
.logi-alarm-item { background: rgb(var(--rgb-surface)); border: 2px solid rgb(var(--rgb-warn)); border-radius: 1.25rem; padding: 1.25rem; box-shadow: var(--shadow-lg); animation: logiPulse 1.6s ease-in-out infinite; }
.logi-alarm-title { font-size: 1.25rem; font-weight: 700; color: rgb(var(--rgb-text-strong)); }
.logi-alarm-sub { margin-top: .25rem; font-size: .9375rem; font-weight: 600; color: rgb(var(--rgb-warn)); }
.logi-alarm-lines { margin: .75rem 0 0; padding-left: 1.1rem; list-style: disc; display: grid; gap: .375rem; font-size: .9375rem; color: rgb(var(--rgb-text)); }
.logi-alarm-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.logi-alarm-actions .btn-primary { flex: 1 1 100%; height: 3rem; font-size: 1rem; }
@keyframes logiPulse { 0%, 100% { box-shadow: var(--shadow-lg), 0 0 0 0 rgb(var(--rgb-warn) / .45); } 50% { box-shadow: var(--shadow-lg), 0 0 0 8px rgb(var(--rgb-warn) / 0); } }
@media (prefers-reduced-motion: reduce) { .logi-alarm-item { animation: none; } }

.logi-foot.is-muted { color: rgb(var(--rgb-muted-2)); }
