:root{
  --bg:#f5f8fa;--card:#fff;--text:#17324a;--muted:#73879a;--line:#dfe8ee;
  --primary:#2e83b8;--primary-dark:#236c99;--primary-soft:#e8f3fa;
  --orange:#e99b68;--orange-dark:#c97d4b;--orange-soft:#fff0e7;
  --blue:#4c91bd;--blue-soft:#e6f1f9;--personal:#df9366;
  --danger:#b94d4d;--shadow:0 16px 42px rgba(42,84,112,.10)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:900;color:var(--primary)}
.senac-logo svg{display:block;width:100%;height:auto}.senac-logo text{font-family:Arial,sans-serif;font-size:30px;font-weight:800;fill:var(--primary)}.logo-blue{fill:#428fc3}.logo-orange{fill:#ef9b63}.senac-logo-large{width:190px}.side-logo{width:82px;flex:none}.mobile-logo{display:none;width:120px;margin-bottom:20px}
.auth-page{min-height:100vh;display:grid;grid-template-columns:1.04fr .96fr;background:#f7fafc}.auth-brand{position:relative;overflow:hidden;background:linear-gradient(145deg,#eaf5fb 0%,#dceef8 55%,#fff0e7 100%);padding:7vw;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.auth-brand:after{content:"";position:absolute;width:460px;height:460px;border-radius:50%;right:-180px;bottom:-180px;background:rgba(239,155,99,.16)}.auth-copy{position:relative;z-index:1}.auth-brand h1{font-size:clamp(38px,5vw,68px);line-height:1.02;margin:18px 0;color:#164f76;letter-spacing:-.035em}.auth-brand p{max-width:570px;line-height:1.68;color:#55748a;font-size:17px}.auth-note{font-size:13px;color:#66869b;position:relative;z-index:1}.auth-panel{display:grid;place-items:center;padding:40px}.auth-card{width:min(460px,100%);background:#fff;border:1px solid #e8eef2;border-radius:26px;padding:38px;box-shadow:var(--shadow)}.mini-label{display:inline-block;padding:6px 10px;border-radius:999px;background:var(--orange-soft);color:var(--orange-dark);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.auth-card h2{margin:12px 0 8px;font-size:28px}.auth-card>p{margin:0 0 28px;color:var(--muted)}label{display:grid;gap:8px;font-weight:800;font-size:14px;margin-bottom:18px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:13px;padding:12px 14px;background:#fff;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:#8bbbd7;box-shadow:0 0 0 4px rgba(46,131,184,.10)}textarea{resize:vertical}.btn{border:0;border-radius:13px;padding:12px 16px;font-weight:900;cursor:pointer;transition:.18s ease}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn.secondary{background:var(--primary-soft);color:var(--primary-dark)}.btn.secondary:hover{background:#dceef8}.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--text)}.full{width:100%}.link-button{border:0;background:none;color:var(--primary);font-weight:900;cursor:pointer;width:100%;margin-top:20px}.notice{margin-top:16px;padding:12px 14px;border-radius:12px;background:#eaf6ee;color:#24623b;font-size:14px}.notice.danger{background:#fdecec;color:var(--danger)}
.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{background:linear-gradient(180deg,#e4f2fa,#eef7fb);border-right:1px solid #d8e8f1;padding:22px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;color:var(--text)}.side-brand{display:flex;align-items:center;gap:10px;padding:0 7px 26px;border-bottom:1px solid rgba(69,133,174,.12);margin-bottom:18px}.side-brand div:last-child{display:grid;gap:3px}.side-brand strong{color:#1f5f88}.side-brand span,.side-user span{font-size:12px;color:#7995a8}.sidebar nav{display:grid;gap:8px}.nav-btn{border:0;background:transparent;color:#51738a;text-align:left;padding:12px 14px;border-radius:12px;font-weight:800;cursor:pointer}.nav-btn:hover{background:rgba(255,255,255,.55);color:#1c648f}.nav-btn.active{background:#fff;color:var(--primary);box-shadow:0 5px 18px rgba(44,115,158,.09)}.side-user{margin-top:auto;display:flex;gap:10px;align-items:center;padding:18px 8px}.side-user>div:last-child{display:grid;gap:2px;min-width:0}.side-user strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatar{width:40px;height:40px;border-radius:50%;background:#fff center/cover no-repeat;display:grid;place-items:center;color:var(--primary);font-weight:900;flex:none;border:1px solid #d6e5ed}
.content{padding:30px 34px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:24px}.topbar h2{margin:6px 0 0;font-size:30px;letter-spacing:-.02em}.teacher-viewing{padding:9px 13px;border-radius:999px;background:var(--orange-soft);color:var(--orange-dark);font-size:13px;font-weight:900}.card{background:var(--card);border:1px solid var(--line);border-radius:19px;box-shadow:0 4px 18px rgba(29,70,98,.035)}.toolbar{display:flex;align-items:center;gap:12px;padding:14px}.icon-btn,.close-btn{border:1px solid var(--line);background:#fff;width:42px;height:42px;border-radius:12px;cursor:pointer;font-size:24px;color:var(--primary)}.month-title{display:grid;gap:2px;min-width:240px}.month-title strong{font-size:20px;text-transform:capitalize}.month-title span{font-size:12px;color:var(--muted)}.toolbar .btn{margin-left:auto}.legend{display:flex;gap:22px;align-items:center;padding:12px 16px;margin:12px 0 18px;color:var(--muted);font-size:13px}.legend span{display:flex;align-items:center;gap:7px}.legend small{margin-left:auto}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot.free{background:#cbd7df}.dot.class{background:var(--blue)}.dot.personal{background:var(--personal)}
.calendar-days{display:grid;gap:16px}.day-card{background:#fff;border:1px solid var(--line);border-radius:19px;overflow:hidden}.day-head{display:flex;align-items:center;gap:12px;padding:16px 18px;background:linear-gradient(90deg,#fbfdfe,#f5f9fc);border-bottom:1px solid var(--line)}.day-number{width:44px;height:44px;border-radius:13px;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:900;font-size:18px}.day-head strong{display:block}.day-head span{color:var(--muted);font-size:13px}.hours-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.hour-slot{min-height:92px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;padding:12px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:5px}.hour-slot:nth-child(4n){border-right:0}.hour-slot:nth-last-child(-n+4){border-bottom:0}.hour-slot.readonly{cursor:default}.hour-slot:hover:not(.readonly){background:#f5fafd}.hour-slot .hour{font-weight:900;font-size:13px}.hour-slot .status{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:#8799a6}.hour-slot .slot-title{font-size:13px;font-weight:800;line-height:1.3}.hour-slot.aula{background:var(--blue-soft)}.hour-slot.aula .status{color:var(--blue)}.hour-slot.pessoal{background:var(--orange-soft)}.hour-slot.pessoal .status{color:var(--orange-dark)}.hour-slot:not(.readonly){user-select:none}.hour-slot.selected{position:relative;outline:3px solid var(--orange);outline-offset:-3px;z-index:2;box-shadow:inset 0 0 0 999px rgba(239,155,99,.12)}
.section-card{padding:24px}.section-head{display:flex;justify-content:space-between;align-items:center}.section-head h3,.profile-form h3{margin:0 0 5px}.section-head p{margin:0;color:var(--muted)}.teacher-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px;margin-top:22px}.teacher-item{border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;gap:12px;align-items:center;background:#fff}.teacher-item .avatar{width:50px;height:50px}.teacher-info{display:grid;gap:3px;min-width:0;flex:1}.teacher-info span{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teacher-item .btn{padding:9px 12px}
.support-warning{margin:20px 0 16px;padding:13px 15px;border-radius:14px;background:var(--orange-soft);color:#9a603b;font-size:13px;font-weight:700}.admin-users{display:grid;gap:12px}.admin-user{border:1px solid var(--line);border-radius:16px;padding:16px;display:grid;grid-template-columns:minmax(210px,1.2fr) minmax(180px,.8fr) minmax(200px,.8fr) auto;gap:12px;align-items:end}.admin-user-main{display:flex;gap:11px;align-items:center}.admin-user-main .avatar{width:46px;height:46px}.admin-user-main div:last-child{display:grid;gap:3px}.admin-user-main span{font-size:12px;color:var(--muted)}.admin-user label{margin:0;font-size:12px}.role-pill{display:inline-flex;width:max-content;padding:4px 8px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:10px!important;font-weight:900;text-transform:uppercase}.role-pill.admin{background:var(--orange-soft);color:var(--orange-dark)}.admin-save{min-width:110px}.admin-feedback{grid-column:1/-1;margin-top:0}
.profile-grid{display:grid;grid-template-columns:260px minmax(0,620px);gap:18px}.profile-photo-card{padding:24px;text-align:center;height:max-content}.profile-avatar{width:150px;height:150px;border-radius:50%;margin:0 auto 18px;background:#e9f3f8 center/cover no-repeat;display:grid;place-items:center;color:var(--primary);font-size:38px;font-weight:900}.profile-photo-card small{display:block;color:var(--muted);margin-top:10px}.profile-form{padding:24px}.profile-form hr{border:0;border-top:1px solid var(--line);margin:26px 0}
.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px}.modal-backdrop{position:absolute;inset:0;background:rgba(19,45,62,.48)}.modal-card{position:relative;width:min(520px,100%);background:#fff;border-radius:22px;padding:24px;box-shadow:0 25px 70px rgba(0,0,0,.2)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.modal-head h3{margin:5px 0 0}.close-btn{font-size:22px}.modal-actions{display:flex;justify-content:flex-end;gap:10px}
@media(max-width:1100px){.admin-user{grid-template-columns:1fr 1fr}.admin-user-main{grid-column:1/-1}.admin-save{justify-self:start}.hours-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hour-slot:nth-child(4n){border-right:1px solid var(--line)}.hour-slot:nth-child(3n){border-right:0}.hour-slot:nth-last-child(-n+4){border-bottom:1px solid var(--line)}.hour-slot:nth-last-child(-n+3){border-bottom:0}}
@media(max-width:760px){.auth-page{grid-template-columns:1fr}.auth-brand{display:none}.mobile-logo{display:block}.auth-panel{padding:24px;min-height:100vh}.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static;padding:14px}.side-brand{padding-bottom:12px}.sidebar nav{grid-template-columns:repeat(2,1fr)}.side-user{display:none}.sidebar>.btn{margin-top:10px}.content{padding:20px 14px}.topbar{align-items:flex-start;flex-direction:column}.toolbar{flex-wrap:wrap}.month-title{min-width:160px}.toolbar .btn{margin-left:0}.legend{flex-wrap:wrap}.legend small{width:100%;margin-left:0}.hours-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hour-slot:nth-child(3n){border-right:1px solid var(--line)}.hour-slot:nth-child(2n){border-right:0}.hour-slot:nth-last-child(-n+3){border-bottom:1px solid var(--line)}.hour-slot:nth-last-child(-n+2){border-bottom:0}.profile-grid{grid-template-columns:1fr}.profile-photo-card{width:100%}.admin-user{grid-template-columns:1fr}.admin-user-main{grid-column:auto}.admin-feedback{grid-column:auto}}

/* Personalização da marca */
.custom-logo-wrap{display:flex;align-items:center}
.custom-logo{display:block;max-width:100%;max-height:100%;object-fit:contain}
#loginLogoWrap{width:190px;height:92px;margin-bottom:34px;justify-content:flex-start}
.mobile-logo.custom-logo-wrap{width:120px;height:54px;margin-bottom:18px}
.side-logo.custom-logo-wrap{width:58px;height:44px;flex:0 0 58px}
#loginTitle{white-space:pre-line}
.login-message{margin-top:22px;padding:15px 17px;border-radius:14px;background:#fff4e9;border:1px solid #f3d8c1;color:#785338;line-height:1.55;max-width:620px}

/* Seleção múltipla */
.hour-slot.drag-selected,.hour-slot.ctrl-selected{position:relative;outline:3px solid #ef9d66!important;outline-offset:-3px;box-shadow:inset 0 0 0 2px rgba(255,255,255,.7)}
.hour-slot.ctrl-selected::after{content:'✓';position:absolute;right:9px;top:8px;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#205f8d;color:#fff;font-size:13px;font-weight:900}

/* Área de personalização do administrador */
.admin-customization{display:grid;gap:22px;margin-top:22px}
.settings-form,.announcement-form{display:grid;gap:16px}
.settings-logo-row{display:flex;gap:18px;align-items:center;padding:16px;border:1px solid var(--line,#dfe7ec);border-radius:16px;background:#f9fbfc}
.settings-logo-row>div:last-child{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.settings-logo-row small{width:100%;display:block;color:#738493}
.settings-logo-preview{width:160px;height:88px;border:1px dashed #bdcbd4;border-radius:14px;background:#fff;display:grid;place-items:center;color:#8b99a5;flex:0 0 160px;overflow:hidden}
.settings-logo-preview img{width:100%;height:100%;object-fit:contain;padding:8px}
.announcements-list{display:grid;gap:12px;margin-top:20px}
.announcement-item{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:16px;border:1px solid #dde5ea;border-radius:15px;background:#fbfcfd}
.announcement-item p{margin:5px 0 0;color:#657787;white-space:pre-wrap}
.announcement-actions{display:flex;gap:8px;flex:0 0 auto}
.danger-btn{color:#9b3c3c!important}
.announcement-modal-card{max-width:520px;text-align:left}
.announcement-popup-body{font-size:16px;line-height:1.65;white-space:pre-wrap;color:#506679}
.muted{color:#82909b}

@media(max-width:700px){
  .settings-logo-row,.announcement-item{align-items:flex-start;flex-direction:column}
  #editSelectedBtn,#clearSelectedBtn{margin-left:0;width:100%}
}

/* Atalhos de navegação para a equipe pedagógica */
.pedagoga-day-tools{margin-left:auto;display:flex;align-items:center;gap:10px}
.toolbar .pedagoga-day-tools .btn{margin-left:0}
.day-filter-label{display:flex;align-items:center;gap:8px;margin:0;color:var(--muted);font-size:12px;font-weight:800}
.day-filter-label select{min-width:125px;padding:10px 34px 10px 12px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--text);font:inherit;cursor:pointer}
.day-card{scroll-margin-top:18px}
@media(max-width:760px){
  .pedagoga-day-tools{width:100%;margin-left:0;flex-wrap:wrap}
  .day-filter-label{flex:1;min-width:180px}
  .day-filter-label select{width:100%}
}

/* Ações flutuantes da seleção múltipla */
.selection-floating-actions{position:fixed;right:28px;bottom:28px;z-index:45;display:flex;align-items:center;gap:10px;padding:10px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:17px;box-shadow:0 16px 42px rgba(30,69,95,.20);backdrop-filter:blur(8px)}
.selection-floating-actions .btn{box-shadow:none;white-space:nowrap}
@media(max-width:760px){.selection-floating-actions{left:14px;right:14px;bottom:14px;display:grid;grid-template-columns:auto 1fr}.selection-floating-actions .btn{width:100%}}


/* Perfis, contatos e leitura de observações */
.teacher-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.detail-list{display:grid;gap:12px}.detail-list>div{padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:#f9fbfc}.detail-list span{display:block;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}.detail-list strong,.detail-list p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.profile-view{display:grid;grid-template-columns:130px 1fr;gap:20px;align-items:start}.small-profile-avatar{width:120px;height:120px;margin:0}.admin-delete{min-width:110px}.hour-slot.readonly{cursor:pointer}.hour-slot.readonly:hover{filter:brightness(.985);outline:2px solid rgba(32,95,141,.16);outline-offset:-2px}
@media(max-width:760px){.profile-view{grid-template-columns:1fr}.small-profile-avatar{margin:0 auto}.teacher-actions{width:100%}.teacher-actions .btn{flex:1}.admin-delete{width:100%}}

/* Permissões e suporte avançado */
.create-pedagogy-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px;align-items:end}.create-pedagogy-form .btn{justify-self:start}.create-pedagogy-form .notice{grid-column:1/-1}.admin-list-card{margin-top:22px}.admin-user{grid-template-columns:minmax(220px,1.2fr) minmax(170px,.7fr) minmax(190px,.8fr) minmax(160px,.8fr)}.admin-account-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.account-state{display:inline-flex!important;width:max-content;padding:4px 8px;border-radius:999px;font-size:10px!important;font-weight:900;text-transform:uppercase}.account-state.active{background:#e8f5ed;color:#35714b}.account-state.inactive{background:#f7e7e7;color:#9a4141}.disabled-account{opacity:.72;background:#fafafa}.disabled-account .avatar{filter:grayscale(1)}
@media(max-width:900px){.create-pedagogy-form{grid-template-columns:1fr}.admin-user{grid-template-columns:1fr}.admin-account-actions{width:100%}.admin-account-actions .btn{flex:1}}
