:root{--pax:#6154e8;--pax-soft:#f3f1ff;--pax-line:#e7e5f5;--pax-ink:#20243a;--pax-muted:#727991}
.pax-action-warning{margin:0 22px 18px;padding:12px 14px;border:1px solid #f2b8c2;border-radius:9px;background:#fff4f5;color:#a62239;font-weight:700;line-height:1.4}
#lesson-table .pax-action-warning{margin:8px 0 0;padding:8px;font-size:11px}
.pax-role-unavailable{opacity:.55;cursor:not-allowed}
.pax-role-coming{display:block;color:var(--pax-muted);font-weight:800;margin-top:4px}
.pax-upload-progress{height:8px;margin:9px 0;border-radius:999px;background:#ebeaf4;overflow:hidden}
.pax-upload-progress span{display:block;height:100%;width:0;background:var(--pax);transition:width .16s ease}
.pax-upload-progress small{display:block;margin:4px 0;color:var(--pax-muted);font-size:11px}
.pax-expiration-alert{border:1px solid #f3cf8c;background:#fff9ed;color:#88580c;border-radius:10px;padding:10px 12px;margin-bottom:14px;font-size:12px}
.pax-expiration-alert ul{margin:6px 0 0;padding-left:18px}
.pax-recurrence-form{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(260px,1.2fr);gap:12px 18px}
.pax-recurrence-form .pax-recurrence-days{grid-row:span 3;margin:0}
.pax-recurrence-days label{display:flex;align-items:center;gap:8px;margin:0 0 8px}
.pax-recurrence-form>label,.pax-recurrence-form>.academic-muted,.pax-recurrence-form>.academic-error,.pax-recurrence-form>button{grid-column:1/-1}
.pax-recurrence-form>label:nth-of-type(-n+3){grid-column:2}
.pax-class-item{width:100%;border:1px solid var(--pax-line);background:#fff;border-radius:9px;padding:12px;text-align:left;cursor:pointer}
.pax-class-item:hover{border-color:var(--pax);background:var(--pax-soft)}
.pax-class-item strong,.pax-class-item span{display:block}
.pax-class-item span{margin-top:3px;font-size:12px;color:var(--pax-muted)}
.pax-class-details{display:grid;grid-template-columns:120px 1fr;gap:9px 14px;margin:0}
.pax-class-details dt{font-weight:800}
.pax-class-details dd{margin:0;color:var(--pax-muted)}
.pax-button-spinner{display:inline-block;width:12px;height:12px;border:2px solid #ffffff80;border-top-color:#fff;border-radius:50%;vertical-align:-2px;animation:pax-spin .7s linear infinite}
@keyframes pax-spin{to{transform:rotate(360deg)}}
.pax-logo{font-size:1.14em}
.pax-logo b{font-size:1.18em}
.auth-intro .public-kicker{font-size:12px;font-weight:900;letter-spacing:1.8px;color:var(--pax)}
.auth-intro h1{max-width:560px}
.role-card.is-unavailable{opacity:.53;cursor:not-allowed;background:#f8f8fb}
.role-card.is-unavailable::after{content:"Em breve";font-size:10px;font-weight:800;color:#6d638f}
.role-card.is-unavailable input{pointer-events:none}
.field-hint{font-size:11px;color:var(--pax-muted);margin-top:4px}
.academic-view-switch{display:inline-flex;padding:3px;border:1px solid var(--pax-line);border-radius:9px;background:#fafaff;gap:2px}
.academic-view-switch button{min-height:44px;min-width:0;border:0;background:transparent;color:var(--pax-muted);font:800 11px/1 Manrope,Arial,sans-serif;padding:7px 10px;border-radius:6px;cursor:pointer}
.academic-view-switch button[aria-pressed="true"]{background:#fff;color:var(--pax);box-shadow:0 1px 4px #312a7817}
.academic-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-top:14px}
.academic-calendar-weekday{padding:5px;text-align:center;color:var(--pax-muted);font-size:10px;font-weight:800;text-transform:uppercase}
.academic-calendar-day{min-height:82px;padding:8px;border:1px solid var(--pax-line);border-radius:9px;background:#fff;text-align:left;cursor:pointer;color:var(--pax-ink);transition:.15s}
.academic-calendar-day:hover{border-color:var(--pax);background:var(--pax-soft)}
.academic-calendar-day.empty{visibility:hidden}
.academic-calendar-day.today{box-shadow:inset 0 0 0 1px var(--pax)}
.academic-calendar-day strong{display:block;font-size:12px}
.academic-calendar-day small{display:block;margin-top:7px;color:var(--pax);font-size:10px;font-weight:800}
.academic-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.academic-calendar-head h3{margin:0;font-size:15px}
.academic-calendar-head div{display:flex;gap:5px}
.academic-calendar-head button{width:30px;height:30px;border:1px solid var(--pax-line);border-radius:7px;background:#fff;color:var(--pax);font-weight:800;cursor:pointer}
.academic-day-events{display:grid;gap:9px}
.academic-day-event{padding:10px 12px;border:1px solid var(--pax-line);border-radius:9px;background:#fafaff}
.academic-day-event strong,.academic-day-event small{display:block}
.academic-day-event small{color:var(--pax-muted);margin-top:3px}
.academic-expiration-alert{display:grid;gap:5px;margin-bottom:14px;padding:11px 13px;border:1px solid #f3cf8c;border-radius:10px;background:#fff9ed;color:#88580c;font-size:12px}
.academic-expiration-alert strong{font-size:12px}
.upload-progress{height:7px;overflow:hidden;border-radius:999px;background:#ecebf6;margin-top:8px}
.upload-progress>span{display:block;width:0;height:100%;background:var(--pax);transition:width .16s ease}
.upload-progress-label{font-size:11px;color:var(--pax-muted);margin-top:5px}
.academic-table{border-collapse:separate;border-spacing:0}
.academic-table th,.academic-table td{padding:9px 10px}
.academic-table td:last-child .academic-action-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.academic-table td:last-child .academic-action-group>*{width:100%;margin:0!important}
.academic-sidebar nav a:last-child{margin-top:0}
@media(max-width:700px){.academic-calendar-weekday{font-size:8px;padding:3px}

.academic-view-switch{width:100%;justify-content:stretch}
.academic-view-switch button{flex:1}
.academic-calendar-grid{gap:3px}
}
.pax-detail-modal{width:min(680px,100%);padding:0;overflow:auto}
.pax-detail-modal>.academic-modal-close{z-index:2;top:17px;right:17px}
.pax-modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:26px 58px 23px 28px;border-bottom:1px solid #eceaf7;background:linear-gradient(135deg,#fbfaff,#f2f0ff)}
.pax-modal-heading h2{margin:3px 0 5px;font-size:25px;letter-spacing:-.45px}
.pax-modal-heading p{margin:0;color:#6f7890;font-size:13px}
.pax-modal-eyebrow{color:#6154e8!important;font-size:10px!important;font-weight:800;letter-spacing:.13em}
.pax-status-chip{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;background:#e8e5ff;color:#5144c5;font-size:11px;font-weight:800;white-space:nowrap}
.pax-detail-section{padding:21px 28px;border-bottom:1px solid #f0eef7}
.pax-detail-section:last-child{border-bottom:0}
.pax-detail-section h3{margin:0 0 14px;font-size:13px}
.pax-recurrence-list{display:grid;gap:9px}
.pax-recurrence-detail{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;padding:13px 14px;border:1px solid #e7e4f6;border-radius:10px;background:#fcfbff}
.pax-recurrence-detail strong{font-size:13px}
.pax-recurrence-detail span,.pax-recurrence-detail small{color:#687082;font-size:12px}
.pax-recurrence-detail small,.pax-recurrence-detail p{grid-column:1/-1;margin:0}
.pax-recurrence-detail a{justify-self:end;grid-column:2;grid-row:1/3;color:#5549cc;font-size:12px;font-weight:800;text-decoration:underline}
.pax-empty-detail{margin:0;color:#687082;font-size:13px}
@media(max-width:520px){.pax-modal-heading{padding:22px 48px 19px 20px}
.pax-modal-heading h2{font-size:21px}
.pax-detail-section{padding:18px 20px}
.pax-recurrence-detail{grid-template-columns:1fr}
.pax-recurrence-detail a{justify-self:start;grid-column:1;grid-row:auto}
}
.pax-empty-day{padding:26px 28px;margin:0}
.calendar-modal-kicker{margin:0 0 7px!important;color:#6154e8!important;font-size:11px!important;font-weight:800!important;letter-spacing:.12em}
.calendar-modal-count{margin:7px 0 18px!important;color:#687082!important;font-size:13px!important}
.calendar-event-time{margin:5px 0 15px!important;color:#566079!important;font-size:13px!important}
.calendar-event-info{padding-top:13px!important;border-top:1px solid #efedf7!important}
.calendar-lesson-actions{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;margin-top:17px!important;padding-top:15px!important;border-top:1px solid #efedf7!important}
.calendar-lesson-actions button{appearance:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:36px!important;padding:0 13px!important;margin:0!important;border:1px solid #d8d4fa!important;border-radius:8px!important;background:#fff!important;color:#5549cc!important;font:700 12px/1 Manrope,Arial,sans-serif!important;cursor:pointer!important}
.calendar-lesson-actions button.primary{background:#6154e8!important;border-color:#6154e8!important;color:#fff!important}
.calendar-lesson-actions button.danger{border-color:#f7d4da!important;background:#fff7f8!important;color:#c43f55!important}
.calendar-lesson-actions button:hover{filter:brightness(.97)}
@media(max-width:560px){.calendar-lesson-actions{display:grid!important;grid-template-columns:1fr 1fr!important}
.calendar-lesson-actions button{width:100%!important}
}
.pax-event-status{ display: inline-flex; align-items: center; min-height: 28px; padding: 3px 11px; border-radius: 999px; background: #efedff; color: #5143cc; font-size: .84em; font-weight: 800; }
.pax-event-status[data-status="COMPLETED"]{ background: #e7f8ef; color: #177455; }
.pax-event-status[data-status="CANCELLED"],.pax-event-status[data-status="CANCELLED_WITH_CHARGE"]{ background: #fff0f1; color: #b83e4b; }
.pax-event-status[data-status="NO_SHOW"],.pax-event-status[data-status="OVERDUE"]{ background: #fff4db; color: #9a630d; }
.pax-detail-modal .pax-roster-button{
  min-height: 30px;
  padding: 5px 11px;
  border: 1px solid #d9d5ff;
  border-radius: 8px;
  background: #f8f7ff;
  color: #5144c5;
  font: 700 12px/1.3 Manrope, Arial, sans-serif;
  cursor: pointer;
}
.pax-detail-modal .pax-roster-button:hover{ background: #eeebff; }
.pax-detail-modal .pax-roster-button:disabled{ cursor: wait; opacity: .65; }
.pax-detail-modal .pax-roster-button:focus-visible,.pax-roster-modal .academic-modal-close:focus-visible,.pax-roster-list:focus-visible{
  outline: 3px solid #c9c4ff;
  outline-offset: 2px;
}
.academic-modal.pax-roster-overlay{ z-index: 70; }
.pax-roster-modal{
  width: min(480px, 100%);
  padding: 0;
  overflow: hidden;
}
.pax-roster-modal > .academic-modal-close{ z-index: 1; top: 15px; right: 17px; }
.pax-roster-modal .pax-modal-heading{ align-items: center; }
.pax-roster-modal .pax-modal-heading h2{ margin: 4px 0 0; font-size: 20px; overflow-wrap: anywhere; }
.pax-roster-modal .pax-roster-subtitle{ margin: 5px 0 0; overflow-wrap: anywhere; }
.pax-student-class-detail{ overflow-x: hidden; overflow-y: auto; }
.pax-detail-modal .pax-roster-message{ margin: 8px 0 0; color: #b13c49; font-size: 12px; }
.pax-detail-modal .pax-roster-message:empty{ display: none; }
.pax-class-leave p{ margin: 0 0 12px; color: #687082; font-size: 13px; line-height: 1.5; }
.pax-class-leave .pax-leave-button{ min-height: 36px; padding: 7px 13px; border: 1px solid #f1cbd2; border-radius: 8px; background: #fff6f7; color: #b5364c; font: 700 12px/1.3 Manrope, Arial, sans-serif; cursor: pointer; }
.pax-class-leave .pax-leave-button:hover{ background: #ffe9ec; }
.pax-class-leave .pax-leave-button:disabled{ opacity: .55; cursor: wait; }
.pax-roster-list{
  max-height: min(50vh, 360px);
  margin: 0;
  padding: 12px 28px 22px 52px;
  overflow-y: auto;
}
.pax-roster-list li{ padding: 10px 0; border-bottom: 1px solid #f0eef7; font-size: 13px; }
.pax-roster-list li:last-child{ border-bottom: 0; }
.pax-roster-empty{ margin: 0; padding: 22px 28px; color: #687082; font-size: 13px; }
@media (max-width: 520px){.pax-roster-modal .pax-modal-heading{ align-items: flex-start; flex-direction: column; gap: 9px; }
.pax-roster-list{ padding: 10px 20px 18px 44px; }
}

/* Calendar and day dialog: a single responsive definition for both portals. */
.pax-calendar-header { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:16px 0; }
.pax-calendar-header strong { min-width:0; text-align:center; font-size:16px; text-transform:capitalize; }
.pax-calendar-header button { flex:none; width:44px; height:44px; border:1px solid var(--pax-line); border-radius:9px; background:#f8f7ff; color:var(--pax); font-size:25px; cursor:pointer; }
.pax-calendar-header button:disabled { opacity:.45; cursor:wait; }
.pax-calendar-weekdays,.pax-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; min-width:0; }
.pax-calendar-weekdays span { min-width:0; padding:6px 0; text-align:center; color:var(--pax-muted); font-size:11px; font-weight:700; }
.pax-calendar-day { min-width:0; min-height:100px; padding:9px; border:1px solid var(--pax-line); border-radius:9px; background:#fff; color:var(--pax-ink); text-align:left; cursor:pointer; }
.pax-calendar-day b { display:block; font-size:13px; }
.pax-calendar-day.has-events { background:#faf9ff; border-color:#d6d0ff; }
.pax-calendar-day:hover { background:#f0eeff; border-color:var(--pax); }
.pax-calendar-day.is-today { box-shadow:inset 0 0 0 2px var(--pax); }
.pax-month-view [data-calendar-kind="LESSON"],.pax-event-card[data-calendar-kind="LESSON"] { --calendar-color:var(--pax); --calendar-bg:#eeebff; --calendar-ink:#4b3bba; }
.pax-month-view [data-calendar-kind="EVENT"],.pax-event-card[data-calendar-kind="EVENT"] { --calendar-color:#2563eb; --calendar-bg:#eff6ff; --calendar-ink:#1d4ed8; }
.pax-month-view [data-calendar-kind="ACTIVITY"],.pax-event-card[data-calendar-kind="ACTIVITY"] { --calendar-color:#b47a11; --calendar-bg:#fff4dd; --calendar-ink:#795500; }
.pax-calendar-labels { display:block; min-width:0; }
.pax-calendar-labels small { display:block; margin-top:6px; padding:4px; border-left:3px solid var(--calendar-color,var(--pax-line)); border-radius:5px; background:var(--calendar-bg,#f1f2f5); color:var(--calendar-ink,var(--pax-muted)); font-size:11px; overflow-wrap:anywhere; }
.pax-calendar-count { display:none; }
.pax-calendar-kind-dots { display:flex; flex-wrap:wrap; justify-content:center; gap:3px; margin-top:5px; }
.pax-calendar-kind-dots:empty { display:none; }
.pax-calendar-kind-dots > span { width:6px; height:6px; border-radius:50%; background:var(--calendar-color); }
.pax-calendar-legend { display:flex; flex-wrap:wrap; gap:10px 18px; margin:14px 0 0; padding:0; list-style:none; color:var(--pax-ink); font-size:12px; }
.pax-calendar-legend li { display:flex; align-items:center; gap:6px; }
.pax-calendar-legend li > span { width:10px; height:10px; border-radius:3px; background:var(--calendar-color); }
.pax-calendar-day:focus-visible,.pax-calendar-header button:focus-visible,.pax-calendar-actions button:focus-visible { outline:3px solid #a79ef7; outline-offset:2px; }
.pax-agenda { min-width:0; }
.pax-agenda-day + .pax-agenda-day { margin-top:24px; }
.pax-agenda-day h3 { margin:0 0 10px; color:var(--pax-ink); font-size:15px; text-transform:capitalize; }
.pax-agenda-day ul { margin:0; padding:0; list-style:none; display:grid; gap:10px; }
.pax-agenda-day li { display:flex; justify-content:space-between; align-items:center; gap:12px; min-width:0; padding:14px; border:1px solid var(--pax-line); border-radius:10px; background:#fff; }
.pax-agenda-day li > div { min-width:0; }
.pax-agenda-day li strong { margin:0; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.pax-agenda-day li > button { flex:none; }
.pax-agenda-status { margin:8px 0 0; }
.pax-agenda-status dt { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.pax-agenda-status dd { margin:0; }
.pax-calendar-modal.academic-modal-card { width:min(760px,100%); padding:0; border-radius:14px; max-height:calc(100dvh - 24px); overflow:auto; overscroll-behavior:contain; }
.pax-calendar-modal > .academic-modal-close { position:sticky; float:right; margin:8px 8px -52px 0; z-index:5; top:8px; right:8px; width:44px; height:44px; border-radius:8px; background:#f8f7ff; color:#5549cc; }
.pax-calendar-modal .pax-modal-heading { display:flex; flex-wrap:wrap; align-items:flex-start; gap:12px; padding:20px 64px 20px 20px; min-height:0; position:relative; z-index:0; }
.pax-calendar-modal .pax-modal-heading > div { flex:1 1 200px; min-width:0; }
.pax-calendar-modal #calendar-day-title { margin:8px 0; font-size:22px; line-height:1.3; overflow-wrap:anywhere; }
.pax-day-title-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; min-width:0; }
.pax-day-create-actions { display:flex; gap:8px; min-width:0; }
.pax-day-create-actions button { min-width:0; min-height:44px; padding:10px 12px; border:1px solid #d8d4ff; border-radius:8px; background:#f4f2ff; color:#3528d7; font:700 13px/1.3 Manrope,Arial,sans-serif; cursor:pointer; }
.pax-day-create-actions button:first-child { border-color:var(--pax); background:var(--pax); color:#fff; }
.pax-day-count { margin:16px 20px; font-size:13px; color:var(--pax-muted); }
.calendar-day-events { display:grid; gap:14px; margin:0; padding:0 20px 20px; list-style:none; }
.pax-event-card { min-width:0; border:1px solid var(--pax-line); border-radius:10px; background:#fff; }
.pax-event-summary { display:flex; align-items:flex-start; gap:10px; padding:16px; border-bottom:1px solid var(--pax-line); background:#faf9ff; border-radius:10px 10px 0 0; }
.pax-event-card[data-calendar-kind] .pax-event-summary { border-top:3px solid var(--calendar-color); background:var(--calendar-bg); }
.pax-event-card[data-calendar-kind] .pax-event-icon { background:#fff; color:var(--calendar-ink); }
.pax-event-summary > div { min-width:0; }
.pax-event-summary h3 { margin:0; font-size:16px; line-height:1.4; overflow-wrap:anywhere; }
.pax-event-summary p { margin:6px 0 0; font-size:12px; color:#5549cc; }
.pax-event-icon,.pax-detail-icon { display:inline-grid; flex:none; place-items:center; width:28px; height:28px; border-radius:7px; background:#eeebff; color:var(--pax); }
.pax-event-icon svg,.pax-detail-icon svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; }
.pax-event-info { padding:16px; }
.pax-calendar-details,.pax-event-details { display:grid; grid-template-columns:minmax(110px,32%) minmax(0,1fr); gap:10px 14px; margin:0; font-size:13px; line-height:1.5; }
.pax-calendar-details dt,.pax-event-details dt { display:flex; align-items:center; gap:8px; font-weight:700; color:var(--pax-muted); }
.pax-calendar-details dd,.pax-event-details dd { margin:0; min-width:0; overflow-wrap:anywhere; }
.pax-calendar-details a { color:#5549cc; overflow-wrap:anywhere; }
.pax-calendar-actions { display:flex; flex-wrap:wrap; gap:8px; padding:16px; border-top:1px solid var(--pax-line); }
.pax-calendar-actions button { display:inline-flex; flex:1 1 130px; align-items:center; justify-content:center; gap:7px; min-width:0; min-height:44px; padding:10px 12px; border:1px solid #d8d4fa; border-radius:8px; background:#fff; color:#5549cc; font:700 13px/1.4 Manrope,Arial,sans-serif; cursor:pointer; overflow-wrap:anywhere; }
.pax-calendar-actions button svg { width:17px; height:17px; flex:none; fill:none; stroke:currentColor; stroke-width:1.8; }
.pax-calendar-actions button.primary { background:var(--pax); border-color:var(--pax); color:#fff; }
.pax-calendar-actions button.danger { color:#b5364c; border-color:#f1cbd2; background:#fff6f7; }
.pax-calendar-actions button:disabled { opacity:.55; cursor:not-allowed; }
.pax-roster-button { min-height:44px; padding:10px 12px; border:1px solid #d9d5ff; border-radius:8px; background:#f8f7ff; color:#5144c5; font:700 13px/1.3 Manrope,Arial,sans-serif; cursor:pointer; }
@media (max-width:760px) {
  .pax-calendar-grid,.pax-calendar-weekdays { gap:3px; }
  .pax-calendar-day { min-height:60px; padding:6px 2px; text-align:center; }
  .pax-calendar-labels { display:none; }
  .pax-calendar-count { display:block; width:fit-content; min-width:17px; margin:5px auto 0; padding:1px 4px; border-radius:6px; background:#f1f2f5; color:var(--pax-ink); font-size:10px; }
  .pax-calendar-count:empty { visibility:hidden; }
  .pax-agenda-day li { display:block; }
  .pax-agenda-day li > button { width:100%; margin-top:12px; }
  .pax-calendar-modal #calendar-day-title { font-size:20px; }
  .pax-calendar-modal .pax-modal-heading { padding:16px 60px 16px 16px; }
  .pax-calendar-modal .pax-status-chip { white-space:normal; }
  .calendar-day-events { padding:0 12px 12px; }
  .pax-calendar-details,.pax-event-details { grid-template-columns:minmax(0,1fr); gap:5px; }
  .pax-event-details dt:not(:first-child),.pax-calendar-details dt:not(:first-child) { margin-top:9px; }
  .pax-calendar-actions { padding:12px; }
  .pax-calendar-actions button { flex-basis:calc(50% - 8px); }
  .pax-recurrence-form { grid-template-columns:minmax(0,1fr); }
  .pax-recurrence-form > label:nth-of-type(-n+3) { grid-column:1; }
  .pax-recurrence-form .pax-recurrence-days { grid-row:auto; }
}
