/* Readable layouts shared by all account roles. */
:root{--muted:#6e6059;--tds-muted:#6e6059}
body{line-height:1.5}
.ey,.card-kicker{color:#96517b!important;font-size:12px!important}
.empty{color:#706058!important}
.btn,.text-link,.password-toggle,.icon-btn{min-height:44px}
.btn.small{font-size:13px;min-height:40px}
label,.notice,.status,.pill,.stat span{font-size:13px}
.table th{font-size:12px!important;color:#706058!important}
.table td{font-size:14px!important}
.user-meta small,.metric-card em,.activity-row small,.student-chip small{font-size:12px}
.metric-card small,.dash-row-main small,.schedule-mini-time{font-size:13px}
.dash-row-main b,.student-chip b,.activity-row b{font-size:14px}
.dash-row-main b,.dash-row-main small,.student-chip b{white-space:normal;overflow-wrap:anywhere}
.text-link{font-size:13px}.icon-btn{width:44px;min-width:44px}
.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.dash-card.wide,.dash-card.activity{grid-column:auto}
.dashboard-hero{min-height:190px;padding:24px 28px;gap:24px}
.dashboard-hero-copy{flex:1;width:auto;min-width:0}
.dashboard-hero h1{font-size:34px}
.dashboard-art{position:relative;right:auto;bottom:auto;flex:0 0 250px;width:250px;height:160px;min-height:160px!important;opacity:1;transform:none;background-image:url('assets/mascots-hero.webp?v=20260918')!important;background-size:cover!important;background-position:80% center!important}
.dashboard-art small{display:none!important}
.ring-wrap{flex-wrap:wrap;gap:16px}.money-ring.no-invoices{background:#ece4df}
.ring-legend>small{font-size:12px;color:var(--muted)}.ring-legend span{font-size:13px}
.brand-lockup{background:none;width:126px;min-width:126px;height:70px}
.brand-lockup img{display:block;width:100%;height:100%;object-fit:contain;content:url('assets/logo-terra-do-saber-oficial.png?v=20261021-1')}
.login-card{padding:28px!important}.login-card:before{display:none}
.login-logo{display:block;width:170px;height:auto;margin:0 auto 24px;content:url('assets/logo-terra-do-saber-oficial.png?v=20261021-1')}
.login-card>.ey{display:none}.login-card h1{font-family:'Nunito',system-ui,sans-serif}
.login-card .btn.light{box-shadow:none}.login-card p{line-height:1.6}
.admin-nav:before{color:#746158;font-size:12px}
.admin-nav button{font-size:14px!important}
.admin-nav button.on{font-weight:800!important}
.nav-toggle{display:none}
#scheduleOv .modal,#scheduleOccurrenceOv .modal{width:min(900px,100%)!important}
.schedule-student-row,.occurrence-student-row{grid-template-columns:minmax(180px,1fr) 125px 125px 140px}
.schedule-student-row .who span,.occurrence-student-row .who span{font-size:14px}
.schedule-student-row input[type=time],.occurrence-student-row input[type=time],.schedule-student-mode,.occurrence-student-mode{font-size:14px;width:100%;min-width:0}
input[type=checkbox]{min-height:20px;width:20px!important;height:20px;flex:0 0 20px;accent-color:var(--brown)}
.schedule-student-list,.occurrence-student-list{max-height:360px}
.schedule-student-heading{display:grid;grid-template-columns:minmax(180px,1fr) 125px 125px 140px;gap:8px;padding:8px 18px;font-size:13px;font-weight:700;color:var(--muted)}
.modal h2{padding-right:40px}.modal{position:relative}
.modal-close{position:absolute;top:12px;right:12px;border:0;background:#f6efea;border-radius:50%;width:36px;height:36px;color:var(--brown);font-size:24px;cursor:pointer}
.schedule-time{color:#705e53!important;font-size:12px}
.schedule-event b{font-size:14px}.schedule-event small,.schedule-event-student,.schedule-event-student strong,.schedule-time-group-label,.schedule-event-badge,.student-mode{font-size:12px}
.schedule-event[class],.agenda-card{background:#edf3e8!important;border-color:#b4c7a8!important}
.schedule-event.mode-online,.agenda-card.mode-online{background:#eaf2f8!important;border-color:#adc4d8!important}
.schedule-event.mode-mixed,.agenda-card.mode-mixed{background:#f4eaf2!important;border-color:#d2b4cb!important}
.schedule-event.cancelled,.agenda-card.cancelled{background:#fff0ef!important;border-color:#cd9b97!important}
.schedule-event.exception,.agenda-card.exception{border-left:4px solid #aa5a37!important}
.schedule-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;margin:10px 0}
.schedule-legend span{display:flex;gap:6px;align-items:center}
.schedule-legend i{width:12px;height:12px;border:1px solid #8ba37c;border-radius:4px;background:#edf3e8}
.schedule-legend .online{background:#eaf2f8;border-color:#adc4d8}.schedule-legend .mixed{background:#f4eaf2;border-color:#d2b4cb}
.schedule-legend .cancelled{background:#fff0ef;border-color:#cd9b97}
.schedule-scroll-hint{font-size:13px;color:var(--muted);margin:8px 0}
.schedule-week-head{position:sticky;top:0;z-index:2}.schedule-grid-wrap{max-height:72vh}
.schedule-agenda{display:none}.schedule-view-toggle{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}
.schedule-view-toggle button[aria-pressed=true]{background:var(--brown);color:#fff}
.schedule-presentation[data-view=agenda]>.schedule-grid-wrap,.schedule-presentation[data-view=agenda]>.schedule-scroll-hint{display:none}
.schedule-presentation[data-view=agenda]>.schedule-agenda{display:block}
.agenda-day{margin:18px 0}.agenda-day h3{font-size:16px;margin:0 0 8px;color:var(--brown)}
.agenda-card{border:1px solid;border-radius:14px;padding:16px;margin:8px 0;min-width:0;overflow-wrap:anywhere}
.agenda-card h4{font-size:16px;margin:2px 0 6px}.agenda-card p{margin:4px 0;font-size:14px}
.agenda-card ul{list-style:none;margin:10px 0 0;padding:0}.agenda-card li{border-top:1px solid #00000010;padding:7px 0;font-size:14px}
.agenda-card .student-mode{font-size:13px;margin-left:6px}.agenda-card .btn{margin-top:8px}
.agenda-time{font-weight:800;color:var(--brown);font-size:18px}
.next-session{border-left:4px solid var(--brown);padding:16px 20px;background:#fff;border-radius:12px;margin:0 0 16px;font-size:14px}
.next-session b{display:block;font-size:17px;color:var(--brown)}
.ui-notices{position:fixed;bottom:20px;right:20px;z-index:250;display:flex;flex-direction:column;gap:10px;width:min(440px,calc(100% - 32px))}
.ui-notice{background:#fff;border:1px solid #d8c8bc;border-left:4px solid var(--brown);padding:16px;border-radius:14px;box-shadow:0 8px 30px #34251f26;display:flex;gap:12px;font-size:14px}
.ui-notice p{margin:0;flex:1}.ui-notice button{align-self:start;min-width:36px;min-height:36px;border:0;border-radius:8px;background:#f5ece6;color:var(--brown);cursor:pointer}
.ui-confirm{border:1px solid #e6d9ce;border-radius:22px;padding:26px;max-width:480px;width:calc(100% - 32px);color:var(--ink);box-shadow:0 20px 70px #34251f40}
.ui-confirm::backdrop{background:#34251f80;backdrop-filter:blur(4px)}
.ui-confirm h2{font-size:22px;color:var(--brown);margin:0 0 12px}.ui-confirm-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;flex-wrap:wrap}
.error[style*="block"]{scroll-margin:20px}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-art{flex-basis:180px;width:180px}}
@media(max-width:980px){
 .nav-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;margin:0 0 14px;text-align:left}
 .admin-nav{display:none!important;position:static!important;flex-direction:column!important;overflow:visible;max-height:none}
 .admin-nav.is-open{display:flex!important;flex-direction:column!important}.admin-nav button{width:100%!important}
 .brand-lockup{width:112px;min-width:112px;height:62px}.app-header{min-height:82px!important}
 .dashboard-grid{grid-template-columns:1fr 1fr}.dashboard-hero-copy{width:auto}
}
@media(max-width:750px){
 #scheduleOv .modal,#scheduleOccurrenceOv .modal{width:100%!important}
 .schedule-student-row,.occurrence-student-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
 .schedule-student-row .who,.occurrence-student-row .who{grid-column:1/-1}
 .schedule-student-mode,.occurrence-student-mode{grid-column:1/-1}.schedule-student-heading{display:none}
 .schedule-student-row input[type=time],.occurrence-student-row input[type=time]{font-size:16px}
 .schedule-modal-grid>*{min-width:0}
}
@media(max-width:700px){
 input,select,textarea{font-size:16px!important;max-width:100%;min-width:0}
 .app-header{min-height:72px!important}.brand-lockup{width:100px;min-width:100px;height:55px}
 main{padding-top:14px!important}.dashboard-grid{grid-template-columns:1fr}
 .dashboard-hero{min-height:0;padding:20px;display:block}.dashboard-art{display:none}
 .dashboard-hero h1{font-size:29px}.dashboard-hero p{max-width:100%;font-size:14px}.hero-actions{margin-top:16px}
 .metric-grid{grid-template-columns:1fr 1fr!important}.metric-card{flex-direction:column;padding:14px;gap:8px}.metric-card em{font-size:12px}.metric-card small{font-size:13px}
 .table.mobile-cards{display:block!important;min-width:0!important;width:100%!important;overflow:visible!important}
 .table.mobile-cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .table.mobile-cards tbody,.table.mobile-cards tr{display:block;width:100%}
 .table.mobile-cards tr{border:1px solid var(--line);border-radius:12px;padding:8px;margin:10px 0;background:#fff}
 .table.mobile-cards td{display:grid;grid-template-columns:minmax(82px,32%) minmax(0,1fr);gap:10px;min-width:0!important;width:100%;font-size:14px!important;padding:8px!important;overflow-wrap:anywhere}
 .table.mobile-cards td:before{content:attr(data-label);font-weight:700;font-size:12px;color:var(--muted)}
 .table.mobile-cards td>*{min-width:0}.table-actions{min-width:0;flex-wrap:wrap}
 .card:has(.table){overflow:visible}
 .test{flex-wrap:wrap}.testmain{min-width:calc(100% - 72px)}.test-actions{flex-basis:100%}
 .actions>div{flex:1 1 100%;flex-wrap:wrap}.actions .btn{white-space:normal}
 .schedule-presentation:not([data-view=grid])>.schedule-grid-wrap,.schedule-presentation:not([data-view=grid])>.schedule-scroll-hint{display:none}
 .schedule-presentation:not([data-view=grid])>.schedule-agenda{display:block}
 .schedule-presentation[data-view=grid]>.schedule-agenda{display:none}
 .schedule-legend{font-size:12px}.schedule-week-toolbar .week-title{font-size:15px}
 .ui-notices{bottom:12px;right:16px}.student{flex-wrap:wrap}.student>div:not(.avatar){flex:1;min-width:0;overflow-wrap:anywhere}
 .user-avatar{width:32px;height:32px}.header-actions{gap:6px}
}
@media(max-width:350px){.metric-grid{grid-template-columns:1fr!important}.ring-wrap{flex-direction:column}.user-chip{display:none}}
.individual-time{min-width:0}.individual-time small{display:none}
@media(min-width:701px){.card:has(.table){overflow-x:auto}}
@media(max-width:750px){.individual-time small{display:block;font-size:12px;color:var(--muted);font-weight:700;margin-bottom:4px}}

/* Remarcações pontuais na agenda semanal */
.schedule-event.makeup-event,.agenda-card.makeup-event{background:#fff4e8!important;border-color:#e1b07e!important;box-shadow:inset 4px 0 0 #ee8068}
.schedule-event-badge.makeup{background:#f7dfcf!important;color:#7b432b!important;border-color:#e5b993!important}
.schedule-legend i.makeup{background:#ee8068!important;border-color:#d86c56!important}.next-session.makeup-next{border-color:#e1b07e;background:#fff8f1}

.brand-home{border:0;background:transparent;padding:0;cursor:pointer;color:inherit;font:inherit;text-align:left;flex-shrink:0}.brand-home:focus-visible{outline:3px solid var(--brown,#70432c);outline-offset:5px;border-radius:8px}
.login-card .remember-session{display:flex;align-items:center;gap:10px;margin:18px 0 5px;cursor:pointer}.login-card .remember-session input{width:20px;height:20px;margin:0;flex:0 0 20px;accent-color:#70432c}.remember-hint{display:block;margin-bottom:14px;color:#74665e}

/* Official Terra do Saber branding — exact user-supplied asset */
.brand-lockup{
  width:188px!important;
  min-width:188px!important;
  height:76px!important;
  background:none!important;
}
.brand-lockup img{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  content:url('assets/logo-terra-do-saber-oficial.png?v=20261021-1')!important;
}
.login-logo{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  content:url('assets/logo-terra-do-saber-oficial.png?v=20261021-1')!important;
}
.user-avatar{
  font-size:0!important;
  background:#fff url('assets/app-icon-source.png?v=4') center/78% 78% no-repeat!important;
  box-shadow:inset 0 0 0 1px rgba(111,63,41,.08)!important;
}
@media(min-width:981px){
  .admin-nav:before{
    content:'NAVEGAÇÃO'!important;
    box-sizing:border-box;
    min-height:108px;
    padding:82px 10px 8px!important;
    background:url('assets/logo-terra-do-saber-oficial.png?v=20261021-1') center 8px/166px auto no-repeat!important;
    color:#746158!important;
    font-size:10px!important;
    letter-spacing:.16em!important;
    font-weight:800!important;
  }
}
@media(max-width:980px){
  .brand-lockup{width:146px!important;min-width:146px!important;height:62px!important}
}
@media(max-width:700px){
  .brand-lockup{width:122px!important;min-width:122px!important;height:54px!important}
}
