@import"https://fonts.googleapis.com/css2?family=Sora:wght@400;600;700&family=Work+Sans:wght@400;500;600&display=swap";.classes-container{display:flex;flex-direction:column;gap:20px}.classes-page{background:#fff;border-radius:16px;padding:24px;box-shadow:0 20px 50px #0f172a1f;display:flex;flex-direction:column;gap:20px}.classes-top{border-bottom:1px solid #f1f3ff;padding-bottom:16px}.classes-top__search{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:space-between}.btn-gradient{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 8px 20px #667eea73;transition:transform .2s ease}.btn-gradient:hover{transform:translateY(-1px)}.nova-turma-card{background:linear-gradient(180deg,#fdf9ff,#eef2ff);border-radius:20px;border:1px solid #dbd5ff;padding:24px;box-shadow:inset 0 1px #fffc,0 10px 25px #5a3fff26}.nova-turma-card__header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.nova-turma-card__eyebrow{margin:0 0 4px;text-transform:uppercase;letter-spacing:.25em;font-size:11px;color:#7366ff}.nova-turma-card__summary{text-align:right;display:flex;flex-direction:column;gap:4px;font-size:13px;color:#4c4a56}.nova-turma-card__summary-title{text-transform:uppercase;font-size:10px;letter-spacing:.2em;color:#8a85c5}.nova-turma-card__summary-text{font-size:15px}.nova-turma-card__summary-meta{font-size:12px;color:#5e57a8}.nova-turma-grid{display:grid;gap:16px;margin-top:18px}.nova-turma-grid--top{grid-template-columns:minmax(220px,1fr) repeat(3,minmax(120px,1fr));grid-template-rows:auto auto;grid-auto-flow:dense;grid-template-areas:"chips turma horario professor" "selected nivel capacidade faixaetaria";gap:16px;align-items:start}.nova-turma-grid--top .form-group{justify-self:stretch}.form-group--chips{grid-area:chips}.form-group--selected{grid-area:selected}.form-group--turma{grid-area:turma}.form-group--horario{grid-area:horario}.form-group--professor{grid-area:professor}.form-group--nivel{grid-area:nivel}.form-group--capacidade{grid-area:capacidade}.form-group--faixaetaria{grid-area:faixaetaria}.nova-turma-actions{margin-top:20px;display:flex;gap:12px}.weekday-chips{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-start}.weekday-chip{border:1px solid #d5d5f6;background:#fff;color:#4f4b7a;border-radius:999px;padding:6px 10px;font-size:12px;cursor:pointer;transition:all .2s ease}.weekday-chip__letter{display:block;font-weight:700;letter-spacing:.08em}.weekday-chip--active{background:var(--weekday-accent);color:#fff;border-color:var(--weekday-accent)}.weekday-chip--disabled{opacity:.5;cursor:not-allowed}@media(max-width:960px){.nova-turma-grid--top{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-template-areas:"chips" "selected" "turma" "horario" "professor" "nivel" "capacidade" "faixaetaria"}}@media(max-width:640px){.nova-turma-grid--top{grid-template-columns:1fr}}.classes-header{display:flex;flex-direction:column;gap:15px}.classes-header h2{margin:0}.btn-primary{padding:10px 20px;background-color:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;transition:background-color .2s;white-space:nowrap}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:#fff;padding:30px;border-radius:8px;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 6px #0000001a}.modal-content h3{margin-top:0;margin-bottom:20px}.class-form{display:flex;flex-direction:column;gap:15px}.form-group{display:flex;flex-direction:column;gap:5px}.form-group label{font-weight:600;font-size:14px}.form-group input{padding:10px;border:1px solid #ccc;border-radius:4px;font-size:14px;font-family:inherit}.form-group input:disabled{background-color:#f0f0f0;cursor:not-allowed}.form-actions{display:flex;gap:10px;margin-top:10px}.btn-success{flex:1;padding:12px;background-color:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;transition:background-color .2s}.btn-success:hover{background-color:#218838}.classes-table-wrapper{overflow-x:auto;border:1px solid #ddd;border-radius:8px}.classes-table{width:100%;border-collapse:collapse;background-color:#fff}.classes-table thead{background-color:#f8f9fa;border-bottom:2px solid #dee2e6}.classes-table th{padding:12px 8px;text-align:left;font-weight:600;font-size:13px;border-right:1px solid #dee2e6}.classes-table tbody tr{border-bottom:1px solid #dee2e6;transition:background-color .1s}.classes-table tbody tr:hover{background-color:#f5f5f5}.classes-table td{padding:12px 8px;text-align:left;border-right:1px solid #dee2e6;font-size:14px}.btn-edit,.btn-delete{padding:6px 10px;border:none;border-radius:4px;cursor:pointer;font-weight:600;font-size:12px;transition:opacity .2s}.btn-edit{background-color:#ffc107;color:#000}.btn-edit:hover{opacity:.8}.btn-delete{background-color:#dc3545;color:#fff}.btn-delete:hover{opacity:.8}.reports-root{font-family:Work Sans,Segoe UI,sans-serif;background:linear-gradient(135deg,#f8fbff,#fff3e6);border:1px solid #eef1f5;position:relative;overflow:hidden}.reports-root:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(0,179,201,.08),transparent 40%),radial-gradient(circle at 80% 10%,rgba(255,168,88,.12),transparent 45%);pointer-events:none}.reports-root>*{position:relative}.reports-header h2{font-family:Sora,Segoe UI,sans-serif;letter-spacing:-.5px}.reports-container h2{margin:0}.report-selector{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media(max-width:1024px){.report-selector{grid-template-columns:1fr}}.filters-section{background-color:#fff;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;gap:15px}.filters-section h3{margin:0 0 10px;font-size:16px}.filter-group{display:flex;flex-direction:column;gap:5px}.filter-group label{font-weight:600;font-size:14px}.filter-group select{padding:10px;border:1px solid #ccc;border-radius:4px;font-size:14px;background-color:#fff;cursor:pointer}.btn-primary{padding:12px 20px;background-color:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;transition:background-color .2s;margin-top:5px}.btn-primary:hover{background-color:#0056b3}.btn-primary:disabled{background-color:#ccc;cursor:not-allowed}.selected-reports{background-color:#fff;padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;gap:15px}.selected-reports h3{margin:0;font-size:16px}.no-reports-message{padding:30px;text-align:center;color:#999;background-color:#f9f9f9;border-radius:4px;border:1px dashed #ddd}.reports-list{display:flex;flex-direction:column;gap:10px;max-height:400px;overflow-y:auto}.report-item{display:flex;justify-content:space-between;align-items:center;padding:15px;background-color:#f8f9fa;border-radius:4px;border-left:4px solid #007bff}.report-info{flex:1;font-size:14px}.report-info strong{font-weight:600}.report-info small{color:#666}.report-actions{display:flex;gap:8px;margin-left:10px}.btn-small-success{padding:6px 12px;background-color:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;font-size:12px;transition:background-color .2s;white-space:nowrap}.btn-small-success:hover{background-color:#218838}.btn-small-success:disabled{background-color:#ccc;cursor:not-allowed}.btn-small-danger{padding:6px 10px;background-color:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;font-size:12px;transition:background-color .2s}.btn-small-danger:hover{background-color:#c82333}.btn-large-success{padding:12px 20px;background-color:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;font-size:14px;transition:background-color .2s}.btn-large-success:hover{background-color:#218838}.btn-large-success:disabled{background-color:#ccc;cursor:not-allowed}.report-card{padding:20px;border-radius:12px;box-shadow:0 10px 20px #0f172a14;background:#fff}.reports-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px;position:sticky;top:0;z-index:2;padding:10px;border-radius:14px;background:#ffffffd9;border:1px solid #eef1f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.reports-tab{background:#f6f7f9;border:1px solid #e6e8ee;border-radius:999px;padding:8px 14px;cursor:pointer;font-weight:600;font-size:13px;transition:all .2s ease}.reports-tab.active{background:linear-gradient(135deg,#00b3c9,#f59e0b);color:#fff;border-color:transparent;box-shadow:0 6px 14px #00b3c940}.reports-section{background:#fafbfc;border:1px solid #eee;border-radius:12px;padding:20px}.reports-section.placeholder{text-align:center;color:#999;font-weight:600}.reports-filters{display:flex;flex-wrap:wrap;gap:15px;align-items:flex-start}.reports-filters label{display:block;font-size:14px;font-weight:600;color:#4b5563;margin-bottom:4px}.reports-filters input,.reports-filters select{padding:8px;border-radius:6px;border:1px solid #ddd;font-size:14px}.reports-filter-field{display:flex;flex-direction:column;gap:6px;min-width:170px}.reports-filter-note{font-size:12px;color:#4b5563}.reports-filter-inline{display:flex;align-items:center;gap:10px}.reports-filter-inline select{min-width:170px}.reports-professor-chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 14px}.reports-professor-chip{border:1px solid #d1d5db;background:#fff;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;color:#374151;cursor:pointer}.reports-professor-chip.active{background:#007bff;color:#fff;border-color:#007bff}.reports-class-grid{border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;background:#fff}.reports-class-grid-header,.reports-class-grid-row{display:grid;grid-template-columns:132px 120px 120px;align-items:center;column-gap:24px;padding:10px 12px}.reports-class-grid-header{background:#f8fafc;font-size:12px;font-weight:700;color:#374151;border-bottom:1px solid #e5e7eb}.reports-class-grid-row{border-bottom:1px solid #f1f5f9;font-size:14px;color:#111827}.reports-class-grid-row:last-child{border-bottom:none}.reports-class-grid-empty{padding:14px 12px;color:#6b7280;font-size:13px}.reports-select-toggle-chip{border:1px solid #d1d5db;border-radius:999px;background:#fff;color:#374151;font-size:12px;font-weight:700;padding:5px 10px;cursor:pointer}.reports-select-toggle-chip.active{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.reports-export-actions{display:flex;gap:10px;margin-top:14px}.reports-vacancy-header{display:grid;gap:4px;margin-bottom:14px}.reports-vacancy-filters{display:grid;grid-template-columns:minmax(220px,1.2fr) repeat(2,minmax(170px,1fr)) auto;gap:10px;align-items:end}.reports-vacancy-filter-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end}.reports-vacancy-summary-list{margin-top:12px;display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:#374151}.reports-vacancy-grid{margin-top:14px;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:10px}.reports-vacancy-card{border:1px solid #e5e7eb;border-radius:10px;background:#fff;padding:10px 12px;display:grid;gap:8px}.reports-vacancy-line{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap;color:#111827;font-size:13px}.reports-vacancy-line strong{font-size:14px}.reports-vacancy-list{display:flex;gap:8px;flex-wrap:wrap;color:#4b5563;font-size:12px}.reports-vacancy-list span{background:#f9fafb;border:1px solid #e5e7eb;border-radius:999px;padding:3px 8px}.reports-frequency-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:24px;align-items:flex-start}.reports-frequency-column{display:flex;flex-direction:column;gap:16px}.reports-frequency-heading{margin:0;font-size:18px;font-weight:600;color:#111827}.reports-frequency-planning .report-card{height:100%}@media(max-width:1100px){.reports-frequency-layout{grid-template-columns:1fr}}.reports-level-note{font-size:16px;color:#4b5563;white-space:nowrap}.btn-secondary{padding:8px 14px;border-radius:8px;border:1px solid #d9dee8;background:#fff;cursor:pointer;font-weight:600}.vagas-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.vagas-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;font-size:13px;color:#4b5563}.vagas-metric{display:flex;justify-content:space-between;font-weight:600;margin:10px 0}.vagas-bar{background:#e9ecef;border-radius:999px;height:10px;overflow:hidden}.vagas-bar-fill{background:linear-gradient(90deg,#22c55e,#16a34a);height:100%}.vagas-footer{margin-top:8px;font-size:12px;color:#666}.vagas-card{border:1px solid #edf0f5}.vagas-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.vagas-chip{background:#e0f2fe;color:#0369a1;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:600}.vagas-meta{display:grid;gap:4px;font-size:12px;color:#6b7280;margin-bottom:8px}.vagas-capacity{margin-top:10px;display:grid;gap:6px;font-size:12px;color:#4b5563}.vagas-capacity input{padding:6px 8px;border-radius:8px;border:1px solid #e5e7eb}.reports-summary-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);gap:16px;align-items:start}.reports-summary-main{display:grid;gap:2px;align-content:start}.reports-summary-side{display:grid;gap:8px}.reports-summary-toggles{display:grid;gap:8px;margin:10px 0}.reports-summary-toggle-group{display:flex;flex-wrap:wrap;gap:8px}.reports-summary-toggle-chip{border:1px solid #d1d5db;background:#fff;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700;color:#374151;cursor:pointer}.reports-summary-toggle-chip.active{background:#1d4ed8;border-color:#1d4ed8;color:#fff}.reports-summary-bars{display:grid;gap:12px}.reports-summary-bar-row{display:grid;grid-template-columns:120px 1fr;gap:10px;align-items:start}.reports-summary-y-label{font-size:12px;font-weight:700;color:#1f2937;line-height:1.9}.reports-summary-bar-lines{display:grid;gap:6px}.reports-summary-bar-single{display:grid;grid-template-columns:1fr 56px;align-items:center;gap:8px}.reports-summary-line{display:grid;grid-template-columns:86px 1fr 48px;align-items:center;gap:8px}.reports-summary-line-label{font-size:12px;color:#4b5563}.reports-summary-line-track{height:9px;border-radius:999px;background:#e5e7eb;overflow:hidden}.reports-summary-line-fill{height:100%}.reports-summary-line-fill.previstas{background:#2563eb}.reports-summary-line-fill.registradas{background:#16a34a}.reports-summary-line-value{font-size:12px;color:#111827;text-align:right;font-weight:600}.reports-kpi-actions{margin-top:10px;display:flex;justify-content:flex-end}.reports-period-card h3,.reports-calendar-card h3{margin:0 0 10px}.reports-period-header-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.reports-period-header-row h3{margin:0}.reports-period-card.is-collapsed{padding:8px 12px}.reports-period-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.reports-period-actions{margin-top:12px;display:flex;justify-content:flex-end;gap:8px}.reports-calendar-header p{margin:2px 0 0;color:#6b7280;font-size:12px}.reports-calendar-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.reports-calendar-title-row h3{margin:0}.reports-calendar-period-filter{display:flex;align-items:center;gap:8px}.reports-calendar-period-filter select{padding:6px 10px;border-radius:999px;border:1px solid #d1d5db;background:#fff;font-size:12px;font-weight:600;color:#374151}.reports-calendar-nav-btn,.reports-calendar-today-btn{border:1px solid #d1d5db;background:#fff;color:#374151;border-radius:999px;font-weight:700;cursor:pointer;line-height:1}.reports-calendar-nav-btn{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;font-size:11px}.reports-calendar-today-btn{padding:7px 12px;font-size:12px}.reports-calendar-nav-btn:hover,.reports-calendar-today-btn:hover{border-color:#9ca3af}.reports-calendar-card{border:1px solid #d7e3ff;box-shadow:0 6px 18px #1d4ed814;margin-top:0}.reports-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.reports-calendar-content{margin-top:4px;display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:12px;align-items:start}.reports-calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:6px}.reports-calendar-weekdays span{text-align:center;font-size:11px;font-weight:700;color:#4b5563}.reports-calendar-day{border:1px solid #e5e7eb;border-radius:8px;padding:6px;display:grid;gap:4px;background:#fff;cursor:pointer;min-height:62px}.reports-calendar-day.is-empty{background:transparent;border-style:dashed;opacity:.5;cursor:default}.reports-calendar-day.is-closed{background:#fff5f5}.reports-calendar-day.is-winter{background:#f5f3ff}.reports-calendar-day.is-weather-alert{border-color:#93c5fd}.reports-calendar-day.is-selected{border-color:#007bff;box-shadow:0 0 0 1px #007bff}.reports-calendar-day-top{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#4b5563}.reports-calendar-weather-loading{width:8px;height:8px;border-radius:999px;background:#d1d5db;display:inline-block}.reports-calendar-indicators{display:flex;align-items:center;gap:4px;min-height:16px}.reports-calendar-climate-indicator{font-size:13px;line-height:1}.reports-calendar-climate-indicator.is-alert{filter:saturate(1.15)}.reports-calendar-status-dot{width:8px;height:8px;border-radius:999px;display:inline-block}.reports-calendar-status-dot.is-recesso{background:#dc2626}.reports-calendar-status-dot.is-reuniao{background:#7c3aed}.reports-calendar-status-dot.is-evento{background:#0ea5e9}.reports-calendar-actions{display:grid;gap:8px;align-content:start}.reports-calendar-actions .btn-primary,.reports-calendar-actions .btn-secondary{width:100%}.reports-calendar-selected-date{border:1px solid #e5e7eb;border-radius:8px;padding:8px;font-size:12px;color:#4b5563}.reports-record-chips{display:flex;flex-wrap:wrap;gap:6px}.reports-record-chip{border:1px solid #d1d5db;border-radius:999px;background:#fff;color:#374151;font-size:12px;font-weight:700;padding:4px 10px;cursor:pointer}.reports-record-chip:disabled{opacity:.5;cursor:not-allowed}.reports-events-list{margin-top:12px;border-top:1px solid #eef2f7;padding-top:10px;display:grid;gap:8px}.reports-event-item{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px}.reports-kpi-line{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:13px;margin-bottom:10px}.reports-class-metrics{display:grid;gap:8px}.reports-class-metric-row{border:1px solid #eef2f7;border-radius:8px;padding:8px;display:grid;gap:2px;font-size:12px;color:#4b5563}.reports-event-modal-backdrop{position:fixed;inset:0;background:#0f172a73;display:flex;justify-content:center;align-items:center;z-index:30}.reports-event-modal{width:min(520px,96vw);background:#fff;border-radius:12px;border:1px solid #e5e7eb;padding:16px;display:grid;gap:10px}.reports-event-modal h3{margin:0}.reports-checkbox-inline{display:flex;align-items:center;gap:8px;font-size:13px;color:#374151}@media(max-width:1100px){.reports-summary-layout,.reports-calendar-content,.reports-vacancy-filters{grid-template-columns:1fr}.reports-vacancy-filter-actions{justify-content:flex-start}}:root{--vagas-bg: #f6f7fb;--vagas-card: #ffffff;--vagas-accent: #0f766e;--vagas-accent-2: #f59e0b;--vagas-danger: #dc2626;--vagas-text: #0f172a;--vagas-muted: #64748b}.vagas-root{background:var(--vagas-bg);border-radius:16px;padding:24px;box-shadow:0 20px 40px #0f172a14;font-family:Work Sans,Segoe UI,sans-serif}.vagas-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.vagas-header h2{margin:0;font-family:Sora,Segoe UI,sans-serif;color:var(--vagas-text)}.vagas-header p{margin:6px 0 0;color:var(--vagas-muted)}.vagas-status{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--vagas-muted)}.vagas-status .dot{width:10px;height:10px;border-radius:50%;background:var(--vagas-accent);box-shadow:0 0 0 6px #0f766e26}.vagas-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:20px}.filter-block{display:grid;gap:8px}.filter-block label{font-size:12px;font-weight:600;color:var(--vagas-muted)}.filter-block select{padding:10px 12px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;font-weight:600}.periodo-toggle{display:flex;gap:8px}.periodo-toggle button{flex:1;padding:8px 0;border-radius:999px;border:1px solid #e2e8f0;background:#fff;font-weight:600;cursor:pointer}.periodo-toggle button.active{background:linear-gradient(135deg,var(--vagas-accent),var(--vagas-accent-2));color:#fff;border-color:transparent}.vagas-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:20px}.vagas-card{background:var(--vagas-card);padding:18px;border-radius:14px;box-shadow:0 12px 24px #0f172a14;display:grid;gap:6px}.vagas-card-button{border:none;text-align:left;cursor:pointer}.vagas-card-button.active{box-shadow:0 0 0 2px #0f766e40,0 12px 24px #0f172a14}.vagas-card strong{font-size:28px;color:var(--vagas-text)}.vagas-card .label{font-size:12px;color:var(--vagas-muted);text-transform:uppercase;letter-spacing:.08em}.vagas-card.highlight{border:1px solid rgba(245,158,11,.35)}.vagas-card.highlight.danger strong{color:var(--vagas-danger)}.vagas-card.highlight.danger{border-color:#dc262666}.vagas-card small{color:var(--vagas-muted)}.vagas-detail-box{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px;margin-bottom:16px}.vagas-detail-box h3{margin:0 0 10px;font-size:14px;color:var(--vagas-text)}.vagas-detail-total{margin-bottom:10px;font-size:13px;color:var(--vagas-muted)}.vagas-detail-total strong{color:var(--vagas-text)}.vagas-detail-filter-hint{margin-bottom:10px;padding:8px 10px;border-radius:8px;font-size:12px;color:var(--vagas-text);background:#ecfeff;border:1px solid #bae6fd}.vagas-detail-list{display:grid;gap:8px}.vagas-detail-row{border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;display:flex;justify-content:space-between;gap:12px;align-items:center}.vagas-detail-row-block{display:grid;gap:8px}.vagas-detail-row-button{width:100%;text-align:left;background:#fff;cursor:pointer}.vagas-detail-row-button.active{border-color:#0f766e59;box-shadow:0 0 0 2px #0f766e1a}.vagas-detail-row strong{display:block;color:var(--vagas-text)}.vagas-detail-row span{font-size:12px;color:var(--vagas-muted)}.vagas-detail-meta{display:grid;text-align:right;gap:2px}.vagas-detail-subrows{border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:10px 12px;display:grid;gap:8px}.vagas-detail-periodos{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--vagas-muted)}.vagas-detail-subrow{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--vagas-text);border-top:1px dashed #cbd5e1;padding-top:8px}.vagas-detail-subrow strong{font-weight:700}.vagas-detail-subrow-button{width:100%;text-align:left;background:transparent;cursor:pointer;border-left:none;border-right:none;border-bottom:none}.vagas-detail-subrow-button.active{background:#dbeafe;border-radius:6px;border-top-color:#93c5fd}.vagas-list{display:grid;gap:12px}.vagas-row{background:#fff;border-radius:12px;padding:14px 16px;display:grid;gap:8px;box-shadow:0 8px 16px #0f172a0f}.vagas-row strong{display:block;color:var(--vagas-text)}.vagas-row span{font-size:12px;color:var(--vagas-muted)}.vagas-row-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--vagas-muted)}.vagas-row-bar{width:100%;height:8px;border-radius:999px;background:#e2e8f0;overflow:hidden}.vagas-row-bar div{height:100%;background:linear-gradient(90deg,#22c55e,#16a34a)}.empty-state{text-align:center;padding:30px;border-radius:12px;border:1px dashed #cbd5f5;background:#f8fafc;color:#94a3b8}@media(max-width:800px){.vagas-header{flex-direction:column;align-items:flex-start}}.exclusions-container{display:flex;flex-direction:column;gap:20px}.exclusions-header{display:flex;flex-direction:column;gap:15px}.exclusions-header h2{margin:0}.header-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.search-input{flex:1;min-width:200px;padding:10px 12px;border:1px solid #ccc;border-radius:4px;font-size:14px}.btn-secondary{padding:10px 20px;background-color:#6c757d;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;transition:background-color .2s;white-space:nowrap}.btn-secondary:hover{background-color:#545b62}.btn-secondary:disabled{background-color:#ccc;cursor:not-allowed}.info-message{padding:12px 16px;background-color:#d1ecf1;color:#0c5460;border:1px solid #bee5eb;border-radius:4px}.exclusions-table-wrapper{overflow-x:auto;border:1px solid #ddd;border-radius:8px}.exclusions-table{width:100%;border-collapse:collapse;background-color:#fff}.exclusions-table thead{background-color:#f8f9fa;border-bottom:2px solid #dee2e6}.exclusions-table th{padding:12px 8px;text-align:left;font-weight:600;font-size:13px;border-right:1px solid #dee2e6}.exclusions-table tbody tr{border-bottom:1px solid #dee2e6;transition:background-color .1s}.exclusions-table tbody tr:hover{background-color:#f5f5f5}.exclusions-table td{padding:12px 8px;text-align:left;border-right:1px solid #dee2e6;font-size:14px}.actions-cell{display:flex;gap:5px;white-space:nowrap}.btn-restore{padding:6px 12px;background-color:#17a2b8;color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;font-size:12px;transition:opacity .2s}.btn-restore:hover{opacity:.8}.no-data-message{padding:20px;text-align:center;color:#666;background-color:#f9f9f9;border-radius:8px}.exclusion-date-edit-input::selection{background:#2563eb59;color:#0f172a}*{margin:0;padding:0;box-sizing:border-box}body,html{width:100%;height:100%;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#f5f6fa;overflow-x:hidden}:root{--primary: #667eea;--primary-light: #8fa3f0;--secondary: #764ba2;--accent: #f093fb;--success: #43e97b;--danger: #f5576c;--warning: #ffc107;--info: #00f2fe}.app-container{width:100%;height:100vh;display:flex;flex-direction:column;background:#f5f6fa}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:15px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;box-shadow:0 4px 20px #667eea4d;position:sticky;top:0;z-index:100;min-height:60px}.app-header h1{font-size:22px;margin:0;font-weight:600;letter-spacing:.5px}.header-left{display:flex;align-items:center;gap:15px;min-width:0}.menu-button{background:#fff3;border:2px solid rgba(255,255,255,.3);color:#fff;width:40px;height:40px;border-radius:8px;cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.menu-button:hover{background:#ffffff4d;transform:scale(1.05)}.header-right{display:flex;align-items:center;gap:15px;min-width:0;flex-wrap:wrap;justify-content:flex-end}.user-info{font-size:13px;opacity:.9;max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-version-tag{font-size:12px;font-weight:700;letter-spacing:.3px;padding:4px 8px;border-radius:999px;background:#fff3;border:1px solid rgba(255,255,255,.35);color:#fff;white-space:nowrap}.diag-badge{font-size:11px;font-weight:700;letter-spacing:.2px;padding:4px 8px;border-radius:999px;background:#10b98138;border:1px solid rgba(16,185,129,.55);color:#ecfdf5;white-space:nowrap}.logout-button{background:#f5576ce6;border:none;color:#fff;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s ease}.logout-button:hover{background:#f5576c;transform:translateY(-2px);box-shadow:0 4px 12px #f5576c4d}.quick-teacher-select{background:#fffffff5;color:#2f3b6b;border:1px solid rgba(255,255,255,.6);border-radius:6px;padding:7px 10px;font-size:12px;min-width:150px}.main-layout{display:flex;flex:1;overflow:hidden;position:relative}.sidebar{width:280px;background:#fff;border-right:1px solid #e0e0e0;padding:30px 20px;overflow-y:auto;transition:all .3s ease;box-shadow:2px 0 8px #0000000d}.sidebar.closed{margin-left:-280px}@media(max-width:768px){.sidebar{position:absolute;left:0;top:60px;height:calc(100vh - 60px);z-index:90}.sidebar.closed{transform:translate(-100%);margin-left:0}}.primary-menu{margin-bottom:40px}.menu-title{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:#666;margin-bottom:16px;padding:0 4px}.primary-buttons{display:flex;flex-direction:column;gap:12px}.neon-btn{background:#fff;border:2px solid var(--primary);color:var(--primary);padding:14px 20px;border-radius:8px;cursor:pointer;font-size:15px;font-weight:600;letter-spacing:.3px;transition:all .25s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden}.neon-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);transition:left .3s ease;z-index:-1}.neon-btn:hover{color:#fff;box-shadow:0 0 20px #667eea66,inset 0 0 20px #667eea1a;transform:translateY(-2px)}.neon-btn.active{background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;box-shadow:0 0 25px #667eea99,inset 0 0 15px #ffffff1a;transform:scale(1.02)}.secondary-menu{padding-top:20px;border-top:1px solid #e0e0e0}.secondary-title{color:#999;margin-bottom:14px;font-size:10px}.secondary-buttons{display:flex;flex-direction:column;gap:10px}.neon-btn-secondary{background:#f8f9fa;border:1px solid #ddd;color:#666;padding:10px 14px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s ease;text-align:center}.neon-btn-secondary:hover{background:#f0f1f3;border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}.neon-btn-secondary.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 12px #667eea4d}.content-area{flex:1;min-width:0;overflow-y:auto;overflow-x:hidden;background:#fff;padding:30px}.content-area>*{max-width:100%}.welcome-screen{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;animation:fadeIn .4s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.feature-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 12px #00000014;cursor:pointer;transition:all .3s cubic-bezier(.34,1.56,.64,1);border:1px solid rgba(255,255,255,.8);position:relative;overflow:hidden}.feature-card-button{width:100%;border:none;text-align:left;font-family:inherit}.feature-card-button:focus-visible{outline:3px solid rgba(102,126,234,.75);outline-offset:3px}.feature-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(90deg,#667eea,#764ba2,#f093fb,#f5576c,#43e97b);background-size:200% 100%;animation:gradientShift 3s ease infinite}@keyframes gradientShift{0%,to{background-position:0% center}50%{background-position:100% center}}.feature-card:hover{transform:translateY(-8px);box-shadow:0 12px 32px #00000026}.feature-icon{font-size:36px;margin-bottom:12px}.feature-card h3{font-size:18px;margin-bottom:8px;color:#2c3e50;font-weight:600}.feature-card p{font-size:13px;color:#666;line-height:1.5}.view-container{animation:fadeIn .3s ease}.view-header{background:#fff;padding:30px;border-radius:15px;margin-bottom:30px;box-shadow:0 2px 10px #0000000d;border-left:5px solid #667eea}.view-header h2{margin:0;color:#2c3e50;font-size:28px}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,var(--primary),var(--secondary));border-radius:4px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,var(--primary-light),var(--secondary))}@media(max-width:1024px){.content-area{padding:20px}.welcome-screen{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}}@media(max-width:768px){.app-header{padding:12px 16px;align-items:flex-start}.header-left h1{font-size:15px}.header-right{width:100%;gap:10px;justify-content:flex-start}.user-info{max-width:100%;font-size:10px}.sidebar{width:260px;padding:20px 16px;box-shadow:8px 0 20px #0000001f}.content-area{padding:16px}.welcome-screen{grid-template-columns:1fr}.neon-btn{padding:10px 14px;font-size:12px}.neon-btn-secondary{padding:8px 10px;font-size:11px}.logout-button{padding:6px 10px;font-size:11px}}@media(max-width:480px){.app-header{padding:10px 12px}.menu-button{width:36px;height:36px;font-size:18px}.header-left h1{font-size:14px}.header-right .user-info:first-child{display:none}.logout-button{padding:5px 8px;font-size:10px}.neon-btn{padding:8px 10px;font-size:11px}.neon-btn-secondary{padding:7px 8px;font-size:10px}.menu-button{width:34px;height:34px;font-size:16px}}.mobile-compact .content-area{font-size:12px}.mobile-compact .content-area h1,.mobile-compact .content-area h2,.mobile-compact .content-area h3,.mobile-compact .content-area button,.mobile-compact .content-area input,.mobile-compact .content-area select,.mobile-compact .content-area textarea,.mobile-compact .content-area label,.mobile-compact .content-area span,.mobile-compact .content-area th,.mobile-compact .content-area td{font-size:90%}.mobile-main-menu .main-layout{display:block}.mobile-main-menu .sidebar{position:relative;top:0;left:0;width:100%;height:calc(100vh - 60px);margin-left:0;transform:none;border-right:none;box-shadow:none;padding:20px 14px}.mobile-main-menu .content-area{display:none}@media(max-width:1024px)and (max-height:500px){.app-header{padding:8px 12px}.header-left h1{font-size:14px}.user-info{font-size:10px}.menu-button{width:34px;height:34px;font-size:16px}.logout-button{padding:5px 8px;font-size:10px}.neon-btn{padding:8px 10px;font-size:11px}.neon-btn-secondary{padding:7px 8px;font-size:10px}.content-area{font-size:12px}}:root{--gap: 12px}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial;color:#111827;background:#f8fafc}input,button{padding:8px;border-radius:6px;border:1px solid #ddd}button{cursor:pointer}
