@charset "UTF-8";
:root{--ink:#172844;--muted:#63728a;--blue:#2455cd;--blue-hover:#1942a7;--navy:#13284c;--line:#e3e8f0;--surface:#fff;--bg:#f5f7fb;--green:#147958;--radius:16px;--shadow:0 3px 14px #192d4d04;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);font-size:16px;line-height:1.5;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled,fieldset:disabled .btn{cursor:not-allowed;opacity:.55}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #5793ee;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:2rem;line-height:1.22;letter-spacing:-.055rem;font-weight:700}h2{font-size:1.13rem;line-height:1.4;letter-spacing:-.015rem}h3{font-size:1rem}small{font-size:.8125rem}strong{font-weight:650}svg{flex-shrink:0}label{display:flex;flex-direction:column;gap:8px;font-size:.875rem;font-weight:600}label small{font-weight:400;color:var(--muted)}input,select,textarea{width:100%;min-width:0;border:1px solid #d9e0eb;border-radius:9px;padding:11px 13px;background:white;color:var(--ink);min-height:44px;font-size:.9375rem;transition:border-color .15s}input:hover,select:hover,textarea:hover{border-color:#9aaecf}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#7b879b;font-weight:400}fieldset{border:0;margin:0;padding:0;min-width:0}button{border:0}.muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-100px;left:20px;background:var(--navy);color:white;padding:14px;z-index:100}.skip:focus{top:12px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:12px;padding:11px 18px;border:1px solid transparent;border-radius:9px;background:var(--blue);color:#fff;font-size:.875rem;font-weight:600;line-height:1.5;min-height:44px;white-space:nowrap;transition:background .15s,box-shadow .15s}.btn:hover{background:var(--blue-hover);box-shadow:0 3px 8px #2455cd1a}.btn.ghost{background:white;border-color:#dce3ef;color:var(--ink)}.btn.ghost:hover{background:#f0f4fb;border-color:#c4d2e8}.btn.small{padding:7px 12px;min-height:36px;font-size:.8125rem}.btn.square{padding:10px;width:44px;font-size:1.1rem}.btn.full{width:100%}.text-link{color:var(--blue);font-size:.875rem;font-weight:600}.text-link:hover{text-decoration:underline}.back-link{display:inline-flex;color:var(--muted);font-size:.875rem;margin-bottom:24px}.back-link:hover{color:var(--blue)}.eyebrow{font-size:.75rem;letter-spacing:.15em;font-weight:750;color:var(--muted);margin-bottom:10px}.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:32px 18px 20px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;z-index:20;overflow-y:auto}.brand{display:flex;align-items:center;gap:11px;padding:0 12px;color:var(--navy);font-size:1.25rem;font-weight:750;letter-spacing:-.04em;white-space:nowrap}.brand-mark{background:var(--blue);color:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;width:40px;height:42px;font-size:1.9rem;font-weight:750;padding-bottom:6px;letter-spacing:-.1em;padding-right:3px}.brand small{display:block;font-size:.5rem;letter-spacing:.15em;font-weight:600;margin-top:1px;color:var(--muted)}.sidebar nav{margin-top:48px;display:flex;flex-direction:column;gap:6px}.nav-label{font-size:.75rem;font-weight:700;letter-spacing:.12em;color:#79869a;padding:0 16px;margin-bottom:10px}.nav-link{display:flex;align-items:center;gap:13px;padding:13px 16px;border-radius:9px;font-size:.875rem;color:#586780;font-weight:550;position:relative}.nav-link svg{color:#76859b}.nav-link:hover{background:#f6f8fc;color:var(--blue)}.nav-link.active{background:#edf3ff;color:var(--blue);font-weight:650}.nav-link.active svg{color:var(--blue)}.nav-link.active:after{content:"";height:18px;width:3px;border-radius:3px;position:absolute;right:12px;background:var(--blue)}.sidebar-bottom{margin-top:auto;padding-top:48px}.user-block{display:flex;align-items:center;gap:11px;padding:18px 10px;border-top:1px solid var(--line)}.user-block div{min-width:0}.user-block strong{display:block;font-size:.8125rem;overflow-wrap:anywhere}.user-block small{display:block;color:var(--muted);font-size:.75rem;margin-top:2px}.avatar{display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;width:36px;height:36px;border-radius:50%;background:#edf1fa;color:#38588b;font-size:.9375rem;font-weight:650}.avatar.large{width:54px;height:54px;font-size:1.3rem;background:#e9f0ff;color:var(--blue)}.logout{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;border-radius:8px;background:transparent;font-size:.8125rem;color:var(--muted)}.logout:hover{background:#f5f7fb}.mobile-menu{display:none}main{min-width:0}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 42px;background:#ffffffa8;font-size:.8125rem;color:var(--muted)}.topbar span:first-child{font-weight:550;color:var(--ink)}.topbar span:last-child{font-size:.75rem}.page{max-width:1510px;margin:auto;padding:36px 42px 50px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.page-heading .muted{margin-top:9px;font-size:.875rem}.page-footer{display:flex;justify-content:space-between;margin:0 42px;padding:20px 0;border-top:1px solid var(--line);font-size:.75rem;color:#7b879b}.page-footer span{font-size:.75rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;margin-bottom:24px;overflow:hidden}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:25px 26px}.panel-heading p{font-size:.8125rem;color:var(--muted);margin-top:4px}.panel-note{font-size:.8125rem;color:var(--muted);padding:20px 26px}.notice{padding:15px 18px;border-radius:10px;background:#eaf7f0;color:#126547;font-size:.875rem;margin-bottom:24px;border:1px solid #cce8d9}.notice a{text-decoration:underline;font-weight:600}.notice.warning{background:#fff8e7;color:#805a09;border-color:#f0e0af}.notice.error{background:#fff0f0;color:#a62c39;border-color:#f1d2d6}.welcome{display:flex;justify-content:space-between;align-items:center;gap:22px;background:linear-gradient(105deg,#eaf0fc,#eff4fd 62%,#f7f9ff);border:1px solid #dfe7f7;padding:26px 28px;border-radius:var(--radius);margin-bottom:26px}.welcome h2{font-size:1.3rem;display:flex;align-items:center;gap:12px}.welcome p{font-size:.875rem;color:#5c6e8e;margin-top:5px}.welcome-dot{width:7px;height:7px;background:#4f79df;border-radius:50%}.filters{display:flex;align-items:flex-end;gap:12px;margin-bottom:24px;flex-wrap:wrap}.filters label{min-width:160px;max-width:260px;flex:1 1 160px;font-size:.75rem;color:var(--muted);gap:7px}.filters input,.filters select{font-size:.875rem}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:26px}.stats.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:23px 24px;display:flex;flex-direction:column;box-shadow:var(--shadow)}.stat>span{font-size:.8125rem;font-weight:500;color:var(--muted)}.stat>strong{font-size:1.85rem;font-weight:700;letter-spacing:-.05rem;line-height:1.3;margin:13px 0 8px;overflow-wrap:anywhere}.stat>small{font-size:.75rem;color:#758197}.stat.accent{background:var(--navy);border-color:var(--navy);color:#fff}.stat.accent>span{color:#c4d2eb}.stat.accent>small{color:#a7b9d9}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:24px}.agenda-row{display:flex;align-items:center;gap:16px;padding:18px 26px;border-top:1px solid #edf0f5}.date-tile{min-width:49px;text-align:center;padding:5px;border-radius:9px;background:#f1f5fc}.date-tile strong{display:block;color:#2e507e;font-size:1.25rem;line-height:1.2}.date-tile span{display:block;font-size:.75rem;color:var(--muted);margin-top:3px;text-transform:uppercase}.agenda-info{flex:1;min-width:0}.agenda-info>strong{font-size:.875rem;display:block}.agenda-info>small{font-size:.75rem;display:block;color:var(--muted);margin-top:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.overview-card{padding-bottom:25px}.overview-card .btn{width:calc(100% - 52px);margin:16px 26px 0}.overview-value{padding:0 26px 12px}.overview-value span{font-size:2.5rem;font-weight:650;letter-spacing:-.08rem}.overview-value p{color:var(--muted);font-size:.8125rem}.summary-list{margin:0;padding:0 26px}.summary-list>div{display:flex;justify-content:space-between;gap:12px;font-size:.8125rem;padding:12px 0;border-bottom:1px solid #edf0f5}.summary-list dt{color:var(--muted)}.summary-list dd{margin:0;font-weight:650}.table-wrap{overflow:auto;max-width:100%}table{width:100%;border-collapse:collapse;text-align:left;font-size:.875rem}th{font-weight:550;font-size:.75rem;color:#6e7b91;background:#f8fafd;white-space:nowrap;padding:13px 18px;border-block:1px solid var(--line)}th:first-child,td:first-child{padding-left:26px}th:last-child,td:last-child{padding-right:26px}td{padding:18px;vertical-align:middle;border-bottom:1px solid #edf0f5}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafcff}td .text-link{font-size:.8125rem}.numeric{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.nowrap{white-space:nowrap}.module{display:flex;align-items:baseline;gap:8px;min-width:160px;max-width:390px;line-height:1.55}.module i{width:7px;height:7px;background:var(--module-color,var(--blue));border-radius:50%;display:inline-block;flex-shrink:0}.cell-note{display:block;color:var(--muted);font-size:.75rem;margin-top:6px;max-width:400px;overflow-wrap:anywhere}.badge{display:inline-flex;align-items:center;border-radius:6px;font-size:.75rem;padding:5px 8px;font-weight:600;white-space:nowrap;line-height:1.3;background:#f0f3f7;color:#617087}.badge.realizada{background:#eaf6ef;color:#26754c}.badge.confirmada{background:#ebf1ff;color:#315aba}.badge.solicitada{background:#fff4dc;color:#8a620d}.badge.cancelada{background:#f0f1f4;color:#6c7586}.count{display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;background:#edf2fb;color:var(--blue);min-width:26px;height:26px;border-radius:7px;margin-left:8px}.empty{text-align:center;padding:52px 24px}.empty h3{margin:15px 0 8px}.empty p{font-size:.875rem;color:var(--muted);max-width:360px;margin:0 auto;line-height:1.65}.empty .btn{margin-top:22px}.empty.compact{padding:30px 24px 44px}.empty-icon{width:48px;height:48px;border-radius:14px;background:#f0f4fc;display:inline-flex;align-items:center;justify-content:center;color:#7391c1}.search-bar{display:flex;gap:10px;padding:0 26px 22px}.search-bar input{max-width:440px}.search-bar.standalone{padding:0;margin-bottom:24px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.month-nav{display:flex;align-items:center;gap:10px}.month-nav h2{font-size:1.25rem;min-width:190px;text-align:center}.month-nav h2 span{font-weight:400;color:var(--muted)}.calendar-legend{display:flex;align-items:center;gap:22px;padding:20px 24px;font-size:.75rem;border-bottom:1px solid var(--line);flex-wrap:wrap}.calendar-legend>span{display:flex;align-items:center;gap:7px}.calendar-legend>.muted{margin-left:auto;font-size:.75rem}.legend-dot{display:block;width:7px;height:7px;border-radius:50%}.legend-dot.confirmed{background:#4269c9}.legend-dot.completed{background:#3b9467}.legend-dot.requested{background:#d4a342}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekday{background:#fafbfd;padding:15px 10px;color:#758097;font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--line);text-align:center}.calendar-day{min-height:135px;padding:10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#fafbfd}.calendar-day.today{background:#f6f9ff;box-shadow:inset 0 0 0 1px #b4c9f6}.day-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.day-number{display:flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:.8125rem;font-weight:550}.today .day-number{border-radius:50%;background:var(--blue);color:white}.day-add{font-size:1.1rem;color:#8392aa;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px}.day-add:hover{background:#eaf0fc;color:var(--blue)}.calendar-event{display:block;margin-bottom:6px;border-left:3px solid #6386dd;background:#eef3ff;padding:7px 8px;border-radius:5px;color:#31548f;overflow:hidden}.calendar-event.realizada{background:#eef8f1;border-left-color:#70b586;color:#316c48}.calendar-event.solicitada{background:#fff7e5;border-left-color:#dfb65b;color:#82601f}.calendar-event.cancelada{background:#f0f2f6;border-left-color:#a7afbd;color:#6b7484}.calendar-event:hover{filter:brightness(.97)}.calendar-event strong,.calendar-event span,.calendar-event small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event strong{font-size:.75rem;font-weight:650}.calendar-event span{font-size:.75rem;margin-top:3px}.calendar-event small{font-size:.75rem;margin-top:5px;opacity:.9}.mobile-agenda{display:none}.form-panel{max-width:880px;padding:32px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.form-grid .span-2{grid-column:1/-1}.optional{font-size:.75rem;color:var(--muted);font-weight:400;display:contents}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;border-top:1px solid var(--line);margin-top:28px;padding-top:24px}.form-panel form>fieldset>p{font-size:.875rem;margin-top:22px}.payment{border-top:1px solid var(--line)}.payment summary{list-style:none;display:flex;align-items:center;gap:18px;padding:22px 26px;cursor:pointer}.payment summary::-webkit-details-marker{display:none}.payment summary:hover{background:#fafcff}.payment-icon{display:flex;align-items:center;justify-content:center;background:#eff7f4;border-radius:10px;color:#3b8368;width:42px;height:42px;flex-shrink:0}.payment-person{flex:1;min-width:0}.payment-person strong{display:block;font-size:.875rem}.payment-person small{display:block;font-size:.75rem;color:var(--muted);margin-top:3px}.payment-count{font-size:.8125rem}.payment-amount{font-size:1rem;min-width:100px;text-align:right}.chevron{font-size:1.2rem;color:var(--muted);transition:transform .15s}.payment[open] .chevron{transform:rotate(180deg)}.payment-detail{padding:0 26px 24px;background:#fafcff}.payment-detail>p{padding:16px 0 0;font-size:.875rem}.payment-detail .notice{padding:14px;margin:16px 0 0}.payment-detail table{background:white}.student-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.student-card{padding:26px;transition:border-color .15s,box-shadow .15s}.student-card:hover{border-color:#c3d3f4;box-shadow:0 6px 20px #2455cd09}.student-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:21px}.student-card h2{font-size:1.2rem}.student-card>p{color:var(--muted);font-size:.8125rem;margin-top:5px}.student-card .summary-list{padding:17px 0 20px}.student-card .text-link{display:block}.progress-panel{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:28px}.progress-panel p.muted{font-size:.8125rem;margin-top:8px}.progress-track{width:35%;min-width:170px}.progress-track label{flex-direction:row;justify-content:space-between;font-size:.8125rem;font-weight:400;margin-bottom:10px}.progress-track strong{color:var(--blue)}progress{display:block;width:100%;height:9px;border:0;border-radius:20px;overflow:hidden;background:#eaf0fb}progress::-webkit-progress-bar{background:#eaf0fb}progress::-webkit-progress-value{background:var(--blue);border-radius:20px}progress::-moz-progress-bar{background:var(--blue);border-radius:20px}.login-body{background:#fff}.login-layout{min-height:100vh;display:grid;grid-template-columns:48% 52%}.login-intro{background:var(--navy);color:white;padding:50px 12%;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-intro:after{content:"";position:absolute;bottom:-230px;right:-240px;width:580px;height:580px;border:1px solid #ffffff0d;border-radius:50%;box-shadow:0 0 0 70px #ffffff03,0 0 0 140px #ffffff02;pointer-events:none}.login-intro .brand{color:#fff;padding:0}.login-intro .brand-mark{background:#406ad5}.login-intro .brand small{color:#9eafd0}.login-intro>.brand,.login-intro>div,.login-foot{position:relative;z-index:1}.login-intro .eyebrow{color:#9db6eb;font-size:.75rem;letter-spacing:.17em;margin-bottom:26px}.login-intro h1{font-size:clamp(2.8rem,4.4vw,4.7rem);letter-spacing:-.055em;line-height:1.13;font-weight:600}.login-intro h1 em{font-style:normal;color:#91b0ff}.login-intro p:not(.eyebrow){margin-top:30px;line-height:1.8;color:#b2c0db;font-size:.9375rem}.login-foot{font-size:.75rem;color:#93a7c9;margin-top:40px}.login-form-area{display:flex;align-items:center;justify-content:center;padding:60px 36px}.login-card{width:100%;max-width:380px}.login-card>.eyebrow{color:var(--blue)}.login-card h2{font-size:1.75rem;letter-spacing:-.05rem;margin-top:12px}.login-card>.muted{font-size:.875rem;margin-top:12px;margin-bottom:34px}.login-card label{font-size:.8125rem;margin-bottom:8px}.login-card input{min-height:48px}.login-card #nome{margin-bottom:22px}.password-wrap{position:relative}.password-wrap input{padding-right:86px}.password-toggle{position:absolute;right:6px;top:5px;background:transparent;padding:9px 8px;font-size:.75rem;color:var(--muted);border-radius:5px}.password-toggle:hover{background:#f1f4fa}.login-card .btn.full{margin-top:28px;justify-content:space-between;min-height:48px}.login-help{font-size:.75rem;line-height:1.7;color:var(--muted);margin-top:30px;text-align:center}
@media(min-width:1600px){.page{padding-top:42px}.calendar-day{min-height:150px}.stat{padding:27px}.page h1{font-size:2.25rem}}
@media(max-width:1200px){.app-shell{grid-template-columns:220px minmax(0,1fr)}.sidebar{padding-inline:12px}.page{padding:30px 26px 40px}.topbar{padding:0 26px}.page-footer{margin-inline:26px}.stats{gap:12px}.stat{padding:20px 17px}.stat>strong{font-size:1.6rem}.dashboard-grid{grid-template-columns:minmax(0,1.5fr) minmax(240px,1fr);gap:18px}.agenda-row{padding:18px;gap:10px}.agenda-row>.badge{max-width:78px;white-space:normal;text-align:center}.student-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-legend>.muted{display:none}.month-nav h2{min-width:150px}.calendar-day{padding:6px;min-height:120px}.calendar-event{padding:6px 4px}.login-intro{padding:45px 9%}}
@media(max-width:980px){.app-shell{grid-template-columns:190px minmax(0,1fr)}.brand{font-size:1.05rem;padding-inline:5px;gap:7px}.brand small{font-size:.42rem}.brand-mark{width:34px;height:38px}.nav-link{padding:12px;gap:10px}.sidebar{padding-inline:10px}.page{padding:26px 20px}.topbar{padding-inline:20px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stats.three .stat>strong{font-size:1.3rem}.dashboard-grid{grid-template-columns:1fr}.overview-card{display:none}.calendar-toolbar{align-items:flex-start;flex-direction:column}.calendar-legend{gap:14px;padding:16px}.calendar-grid{display:none}.mobile-agenda{display:block}.agenda-day{padding:20px;border-bottom:1px solid var(--line)}.agenda-day:last-child{border:0}.agenda-day>h3{font-size:.875rem;color:var(--muted);margin-bottom:12px}.agenda-mobile-item{background:#f8fafd;border:1px solid var(--line);padding:16px;border-radius:10px;margin-top:10px;font-size:.875rem}.agenda-mobile-item p{font-size:.8125rem;color:var(--muted);margin:6px 0 12px}.agenda-mobile-item>div{display:flex;align-items:center;gap:12px;font-size:.75rem;flex-wrap:wrap;margin-top:10px}.agenda-mobile-item>div a{margin-left:auto}.welcome{padding:22px}.welcome h2{font-size:1.12rem}.progress-panel{align-items:flex-start;flex-direction:column}.progress-track{width:100%}.login-intro h1{font-size:3rem}.login-intro{padding:40px 8%}.login-form-area{padding:40px 28px}.form-panel{padding:25px}.student-card{padding:22px}.payment-count{display:none}}
@media(max-width:700px){.app-shell{display:block}.sidebar{height:auto;position:relative;padding:18px 20px;display:grid;grid-template-columns:1fr auto;border-right:0;border-bottom:1px solid var(--line);overflow:visible}.sidebar .brand{font-size:1.15rem}.sidebar .brand small{font-size:.46rem}.sidebar .brand-mark{width:36px}.mobile-menu{display:inline-flex;min-height:40px;padding:8px 12px}.sidebar nav{grid-column:1/-1;margin-top:20px;display:none}.sidebar nav.open{display:flex}.sidebar-bottom{grid-column:1/-1;display:none;padding-top:14px}.sidebar:has(nav.open) .sidebar-bottom{display:block}.user-block{padding:15px 8px}.nav-link.active:after{right:16px}.topbar{height:48px;font-size:.75rem;padding:0 20px}.topbar span:last-child{font-size:.75rem}.page{padding:27px 18px 35px}.page-heading{margin-bottom:24px}h1{font-size:1.75rem}.page-heading .muted{font-size:.8125rem}.eyebrow{font-size:.75rem}.welcome{align-items:flex-start;padding:22px;flex-direction:column;gap:18px}.welcome .btn{width:100%}.filters{gap:10px}.filters label{flex-basis:calc(50% - 10px);min-width:0;max-width:none}.filters .btn{flex:1}.stats{gap:12px}.stat{padding:19px 16px}.stat>span{font-size:.75rem}.stat>strong{font-size:1.5rem;letter-spacing:-.04rem;margin-top:11px}.stat>small{font-size:.75rem}.stats.three{grid-template-columns:repeat(2,minmax(0,1fr))}.stats.three .stat:last-child{grid-column:1/-1}.stats.three .stat>strong{font-size:1.5rem}.panel{border-radius:12px}.panel-heading{padding:21px 19px;gap:12px;flex-wrap:wrap}.panel-heading h2{font-size:1.05rem}.panel-heading .text-link{font-size:.75rem}.agenda-row{padding:16px;gap:10px;flex-wrap:wrap}.agenda-info{min-width:130px}.agenda-row>.badge{max-width:none}.agenda-row>.btn{margin-left:auto}.date-tile{min-width:43px}.search-bar{padding:0 18px 18px}.search-bar input{font-size:.8125rem}.search-bar .btn{padding-inline:12px}.month-nav{width:100%;gap:6px}.month-nav h2{flex:1;font-size:1.1rem;min-width:0}.month-nav .btn:last-child{padding-inline:12px}.calendar-toolbar{gap:16px}.calendar-toolbar>.btn{width:100%}.calendar-legend{font-size:.75rem;gap:12px}.form-panel{padding:22px 18px}.form-grid{grid-template-columns:1fr;gap:20px}.form-grid .span-2{grid-column:auto}.form-actions .btn{flex:1}.student-grid{grid-template-columns:1fr;gap:0}.student-card{padding:24px}.student-card-head{margin-bottom:16px}.payment summary{padding:20px 18px;gap:12px}.payment-icon{width:35px;height:38px}.payment-person strong{font-size:.8125rem}.payment-person small{font-size:.75rem}.payment-amount{min-width:70px;font-size:.9375rem}.payment-detail{padding-inline:18px}.payment-detail>p{font-size:.8125rem}.page-footer{margin-inline:18px}.login-layout{display:block}.login-intro{padding:24px;min-height:0;gap:28px}.login-intro>.brand{font-size:1.15rem}.login-intro>div{display:none}.login-foot{display:none}.login-form-area{padding:52px 26px}.login-card h2{font-size:1.65rem}.login-card>.muted{margin-bottom:28px}.progress-panel{padding:22px}.panel-note{padding:18px;font-size:.75rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{body{background:white;font-size:12px}.app-shell{display:block}.sidebar,.topbar,.filters,.print-button,.page-footer,.back-link,.btn,.search-bar,.skip{display:none!important}.page{max-width:none;padding:0}.panel{box-shadow:none;break-inside:avoid;border-color:#ccc}.stats{grid-template-columns:repeat(4,1fr)}.stat.accent{background:white;color:black;border-color:#ccc}.stat.accent>span,.stat.accent>small{color:#333}.table-wrap{overflow:visible}th,td{padding:10px!important}a{color:inherit}.page-heading{margin:0 0 20px}.notice{display:none}}

.section-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.section-toolbar h2{font-size:1.25rem}.module-state-form{margin-top:8px}.button-link{background:transparent;border:0;padding:0;cursor:pointer}@media(max-width:700px){.section-toolbar{align-items:center}.section-toolbar .btn{width:auto}}
.payment-group>.panel-heading{background:#fafcff;border-bottom:1px solid var(--line)}.module-map-wrap{max-height:70vh}.module-map{min-width:max-content}.module-map th:not(:first-child){min-width:140px;text-align:center}.module-map .module-sticky{position:sticky;left:0;z-index:2;background:#f8fafd;min-width:280px}.module-map tbody .module-sticky{background:#fff}.module-status{text-align:center}.matrix-check{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:50%;background:#eaf6ef;color:#26754c;font-weight:700}.matrix-empty{color:#b2bbc8}.module-status small{display:block;color:var(--muted);margin-top:5px}

.login-field-help{display:block;color:var(--muted);font-size:.75rem;margin:-16px 0 18px}.module-map{font-size:.75rem;line-height:1.15}.module-map th,.module-map td{padding:6px 8px!important;height:38px}.module-map th:not(:first-child){min-width:84px!important;max-width:105px}.module-map .module-sticky{min-width:190px!important;max-width:240px}.module-map .module{min-width:0;max-width:220px;line-height:1.2}.module-map .cell-note{font-size:.625rem;margin-top:2px}.module-map .matrix-check{width:21px;height:21px;font-size:.75rem}.module-map .module-status small{font-size:.625rem;margin-top:1px}

.student-actions{display:flex;align-items:center;gap:8px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--blue);padding:0}.icon-button:hover{background:#edf3ff}.edit-dialog{width:min(680px,calc(100% - 32px));max-height:90vh;border:0;border-radius:16px;padding:0;color:var(--ink);box-shadow:0 24px 70px #10213f38}.edit-dialog::backdrop{background:#13284c80;backdrop-filter:blur(2px)}.edit-dialog .dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 26px;border-bottom:1px solid var(--line)}.edit-dialog form{padding:26px}.edit-dialog .form-actions{margin-bottom:0}.smtp-note{margin:26px 0 0}@media(max-width:700px){.edit-dialog form,.edit-dialog .dialog-heading{padding:20px}.edit-dialog .form-grid{grid-template-columns:1fr}}

.row-actions{display:flex;align-items:center;gap:8px}.row-actions form{margin:0}.btn.danger{color:#a62c39}.badge.assessment-teste{background:#eeeaff;color:#6245aa}.badge.assessment-recuperacao{background:#fff0e7;color:#a24f1f}.legend-dot.test{background:#7959c8}.legend-dot.recovery{background:#d7793e}.calendar-event.assessment{background:#f3efff;border-left-color:#7959c8;color:#5e429f}.calendar-event.assessment.recuperacao{background:#fff1e9;border-left-color:#d7793e;color:#91491e}

.pwa-install{margin-bottom:10px}.pwa-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:26px}.pwa-actions>a{display:flex;flex-direction:column;gap:5px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px;min-height:90px}.pwa-actions>a:hover{border-color:#b7c9ed;background:#fafcff}.pwa-actions strong{font-size:.9375rem}.pwa-actions span{font-size:.75rem;color:var(--muted)}.pwa-actions .amount{background:var(--navy);color:#fff}.pwa-actions .amount span{color:#b9c8e2}.offline-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.offline-card{max-width:420px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:38px}.offline-card .brand-mark{margin:0 auto 24px}.offline-card p{color:var(--muted);margin:12px 0 24px}
@media(max-width:980px){.pwa-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.pwa-actions{grid-template-columns:1fr 1fr;gap:10px}.pwa-actions>a{padding:15px;min-height:102px}.pwa-actions strong{font-size:.875rem}}

@media(display-mode:standalone){.topbar{display:none}.page{padding-top:max(24px,env(safe-area-inset-top))}.app-shell{min-height:100dvh}}

.stat.paid{background:#eaf7f0;border-color:#cce8d9;color:#126547}.stat.paid>span,.stat.paid>small{color:#26754c}.debt-heading{display:flex;align-items:center;gap:14px}.debt-heading>strong{font-size:1.2rem}.debt-panel table{font-size:.8125rem}@media(max-width:700px){.debt-heading{width:100%;justify-content:space-between}.debt-summary .stat:last-child{grid-column:1/-1}}

.inline-icon-form{display:inline-flex;margin:0}.status-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px}.status-icon.active{background:#eaf6ef;color:#26754c}.status-icon.inactive{background:#f0f1f4;color:#7a8494}.icon-button.purple,.btn.purple{background:#f0ebff;border-color:#d8ccff;color:#6842bd}.icon-button.purple:hover,.btn.purple:hover{background:#e5dcff;border-color:#c4b2ff}.icon-button:disabled{opacity:.45;cursor:not-allowed}.impersonation-return{margin-bottom:10px}.notice.impersonation{background:#f0ebff;border-color:#d8ccff;color:#56359c}

.mobile-impersonated-name{display:none}.impersonating .topbar{background:#6945b8;color:#fff;border-color:#6945b8}.impersonating .topbar span:first-child{color:#fff}
@media(max-width:700px){
  body{font-size:.875rem}.page{padding:20px 12px 28px}.page-heading{margin-bottom:18px}.page-heading h1{font-size:1.4rem;letter-spacing:-.025rem}.page-heading .muted{font-size:.75rem}.eyebrow{font-size:.6875rem;margin-bottom:7px}.panel{margin-bottom:16px}.panel-heading{padding:16px 14px}.panel-heading h2{font-size:.9375rem}.btn{font-size:.8125rem;min-height:40px;padding:9px 13px}.stat{padding:14px 12px}.stat>strong{font-size:1.25rem;margin:7px 0 4px}.stats{margin-bottom:18px}.pwa-actions{margin-bottom:18px}.pwa-actions>a{min-height:88px;padding:12px}.welcome{padding:16px;gap:12px;margin-bottom:18px}
  .impersonating .sidebar{background:#6945b8;border-color:#6945b8;grid-template-columns:minmax(0,1fr) auto auto;column-gap:8px}.impersonating .sidebar .brand{color:#fff}.impersonating .sidebar .brand small{color:#ddd2f7}.impersonating .sidebar .brand-mark{background:#ffffff24}.impersonating .mobile-menu{background:#fff;color:#56359c;border-color:#fff}.mobile-impersonated-name{display:block;align-self:center;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;font-size:.75rem;font-weight:650}.impersonating .sidebar nav{background:#fff;border-radius:10px;padding:8px}.impersonating .sidebar-bottom{background:#fff;border-radius:10px;padding:10px;margin-top:8px}
  .table-wrap{overflow:visible}.table-wrap table:not(.module-map),.table-wrap table:not(.module-map) tbody,.table-wrap table:not(.module-map) tr,.table-wrap table:not(.module-map) td{display:block;width:100%}.table-wrap table:not(.module-map) thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.table-wrap table:not(.module-map) tbody{padding:0 10px 10px}.table-wrap table:not(.module-map) tr{border:1px solid var(--line);border-radius:10px;margin:10px 0;background:#fff;padding:5px 12px}.table-wrap table:not(.module-map) td,.table-wrap table:not(.module-map) td:first-child,.table-wrap table:not(.module-map) td:last-child{display:grid;grid-template-columns:minmax(82px,35%) minmax(0,1fr);gap:10px;align-items:start;padding:8px 0!important;border-bottom:1px solid #edf0f5;text-align:left!important;white-space:normal}.table-wrap table:not(.module-map) td:last-child{border-bottom:0}.table-wrap table:not(.module-map) td::before{content:attr(data-label);font-size:.6875rem;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.035em}.table-wrap table:not(.module-map) .module{min-width:0;max-width:none}.table-wrap table:not(.module-map) .row-actions{flex-wrap:wrap}.table-wrap table:not(.module-map) td>form{margin:0}.module-map-wrap{overflow:auto}
}
@media(display-mode:standalone) and (max-width:700px){.page{padding-top:20px}}

@media(max-width:700px){
  .calendar-panel .calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line)}
  .calendar-panel .weekday{display:block;padding:8px 2px;font-size:.625rem;letter-spacing:0}
  .calendar-panel .calendar-day{display:block;min-height:64px;padding:4px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden}
  .calendar-panel .calendar-day:nth-child(7n){border-right:0}
  .calendar-panel .day-top{margin-bottom:4px;min-height:23px}
  .calendar-panel .day-number{width:23px;height:23px;font-size:.6875rem}
  .calendar-panel .day-add{width:18px;height:20px;font-size:.875rem}
  .calendar-panel .calendar-event{display:inline-block;width:7px;height:7px;min-width:7px;margin:1px;padding:0;border:0;border-radius:50%;vertical-align:top;background:#6386dd;color:transparent}
  .calendar-panel .calendar-event.realizada{background:#70b586}.calendar-panel .calendar-event.solicitada{background:#dfb65b}.calendar-panel .calendar-event.cancelada{background:#a7afbd}.calendar-panel .calendar-event.assessment{background:#7959c8}.calendar-panel .calendar-event.assessment.recuperacao{background:#d7793e}
  .calendar-panel .calendar-event strong,.calendar-panel .calendar-event span,.calendar-panel .calendar-event small{display:none}
  .calendar-panel .mobile-agenda{display:block;border-top:10px solid var(--bg)}
}
.modules-panel{max-width:1180px}.modules-table{font-size:.8125rem}.modules-table th{padding:8px 12px;height:34px;font-size:.6875rem}.modules-table td,.modules-table td:first-child,.modules-table td:last-child{padding:9px 12px;height:44px}.modules-table th:first-child{padding-left:18px}.modules-table th:last-child{padding-right:18px}.modules-table .cell-note{font-size:.6875rem;margin-top:3px;max-width:440px}.modules-table .badge{padding:4px 7px;font-size:.6875rem}.modules-table .btn.small{min-height:31px;padding:5px 10px}.module-dialog textarea{min-height:76px}
.module-map-panel{overflow:hidden}.module-map-head{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 26px}.module-map-head>div:first-child>p:last-child{font-size:.8125rem;color:var(--muted);margin-top:5px}.map-summary{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.map-summary span{display:flex;align-items:baseline;gap:5px;padding:8px 11px;border-radius:9px;background:#f2f5fa;color:var(--muted);font-size:.6875rem}.map-summary strong{font-size:.9375rem;color:var(--ink)}.map-summary .completed{background:#eaf6ef;color:#26754c}.map-summary .completed strong{color:#26754c}.map-legend{display:flex;align-items:center;gap:20px;padding:10px 18px;background:#fafbfd;border-block:1px solid var(--line);font-size:.6875rem;color:var(--muted)}.map-legend>span{display:flex;align-items:center;gap:6px}.map-legend .muted{margin-left:auto}.module-map-wrap{max-height:72vh}.module-map{font-size:.75rem;line-height:1.2}.module-map thead th{position:sticky;top:0;z-index:5;height:58px;background:#f6f8fc;border-top:0}.module-map th,.module-map td{height:42px!important;padding:6px 9px!important}.module-map .module-sticky{left:0;min-width:260px!important;max-width:260px!important;z-index:3;text-align:left}.module-map .year-sticky{position:sticky;left:260px;min-width:88px!important;width:88px;z-index:3;text-align:center;background:#fff;border-right:1px solid var(--line)}.module-map thead .module-sticky,.module-map thead .year-sticky{z-index:7;background:#f6f8fc}.module-map tbody tr:nth-child(even) td,.module-map tbody tr:nth-child(even) th{background:#fafbfd}.module-map tbody tr:nth-child(even) .year-sticky,.module-map tbody tr:nth-child(even) .module-sticky{background:#fafbfd}.module-map tbody tr:hover td,.module-map tbody tr:hover th{background:#f2f6fd}.module-map .module{min-width:0;max-width:245px;font-size:.75rem;font-weight:600;line-height:1.25}.module-map .module i{width:6px;height:18px;border-radius:4px}.module-map .module-sticky small{display:block;margin:2px 0 0 14px;color:#9a5a22;font-size:.625rem}.student-column{min-width:102px!important;max-width:112px!important;text-align:center!important}.student-column a{display:flex;align-items:center;justify-content:center;gap:6px;color:#315aba;font-weight:650;white-space:normal}.student-column em{display:block;margin-top:3px;color:#8b94a3;font-size:.5625rem;font-style:normal}.map-avatar{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;background:#e9effc;color:#315aba;flex:0 0 auto}.year-pill{display:inline-flex;padding:4px 7px;border-radius:6px;background:#eef2f8;color:#53647e;font-size:.6875rem;font-weight:650}.module-map .matrix-check{width:23px;height:23px;background:#e1f4e9;color:#1b8053;font-size:.75rem}.matrix-check.small{width:18px;height:18px;font-size:.625rem}.module-map .matrix-empty{color:#c0c8d4}
@media(max-width:700px){.module-map-head{align-items:flex-start;flex-direction:column;padding:17px 15px;gap:14px}.map-summary{justify-content:flex-start}.map-legend{padding:9px 12px;gap:12px;flex-wrap:wrap}.map-legend .muted{width:100%;margin-left:0}.module-map .module-sticky{min-width:190px!important;max-width:190px!important}.module-map .year-sticky{left:190px;min-width:72px!important;width:72px}.student-column{min-width:86px!important;max-width:92px!important}.student-column a{flex-direction:column;gap:3px;font-size:.6875rem}.module-map th,.module-map td{height:40px!important;padding:5px 7px!important}}
.module-map .module{font-size:11px}.module-map .matrix-check{background:#19b96b;color:#fff;box-shadow:0 2px 5px #1494572b}.student-column a{gap:0}

.sidebar-toggle{position:absolute;right:-13px;top:88px;z-index:25;width:27px;height:27px;border:1px solid #d9e0eb;border-radius:50%;background:#fff;color:#53647e;box-shadow:0 2px 8px #17284418;font-size:1.15rem;line-height:1}.sidebar-toggle:hover{color:var(--blue);border-color:#b9c9e4}.sidebar{transition:width .18s,box-shadow .18s}.app-shell{transition:grid-template-columns .18s}
@media(min-width:701px){.sidebar-auto .app-shell{grid-template-columns:78px minmax(0,1fr)}.sidebar-auto .sidebar{width:78px;padding-inline:10px;overflow-x:hidden}.sidebar-auto .sidebar:hover,.sidebar-auto .sidebar:focus-within{width:248px;box-shadow:12px 0 28px #17284418;overflow-y:auto}.sidebar-auto .sidebar:not(:hover):not(:focus-within) .brand>span:last-child,.sidebar-auto .sidebar:not(:hover):not(:focus-within) .nav-link>span,.sidebar-auto .sidebar:not(:hover):not(:focus-within) .nav-label,.sidebar-auto .sidebar:not(:hover):not(:focus-within) .sidebar-bottom{opacity:0;visibility:hidden;pointer-events:none}.sidebar-auto .sidebar:not(:hover):not(:focus-within) .brand{padding:0 8px}.sidebar-auto .sidebar:not(:hover):not(:focus-within) .nav-link{justify-content:center;padding-inline:10px}.sidebar-auto .sidebar:not(:hover):not(:focus-within) .nav-link.active:after{right:2px}.sidebar-auto .sidebar:hover .brand>span:last-child,.sidebar-auto .sidebar:focus-within .brand>span:last-child{display:block}.sidebar-auto .sidebar:hover .nav-link,.sidebar-auto .sidebar:focus-within .nav-link{justify-content:flex-start}}
@media(max-width:700px){.sidebar-toggle{display:none}}
.access-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 20px 20px}.access-cards article{border:1px solid var(--line);border-radius:11px;padding:14px;background:#fafbfd}.access-cards article>div{display:flex;align-items:center;gap:9px}.access-cards .status-icon{width:25px;height:25px;font-size:.6875rem}.access-cards article>div strong{font-size:.8125rem}.access-cards dl{display:grid;grid-template-columns:auto 1fr;gap:5px 10px;margin:12px 0 0;font-size:.6875rem}.access-cards dt{color:var(--muted)}.access-cards dd{margin:0;text-align:right;font-weight:600}.access-event{display:inline-flex;padding:4px 7px;border-radius:6px;background:#eef2f8;color:#52637c;font-size:.6875rem;font-weight:650;white-space:nowrap}.access-event.login{background:#e1f4e9;color:#16754c}.access-event.logout{background:#f0f1f4;color:#697486}.access-event.impersonation_start,.access-event.impersonation_end{background:#f0ebff;color:#6842bd}.device-text{display:block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.access-history table{font-size:.75rem}.access-history th,.access-history td{padding-block:10px}
@media(max-width:1100px){.access-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.access-cards{grid-template-columns:1fr;padding:0 10px 10px}.device-text{max-width:none;white-space:normal}}
/* Correção da barra lateral recolhida */
.sidebar-toggle{position:fixed;left:234px;right:auto;top:24px}
@media(max-width:1200px) and (min-width:981px){.sidebar-toggle{left:206px}}
@media(max-width:980px) and (min-width:701px){.sidebar-toggle{left:176px}}
@media(min-width:701px){
  .sidebar-auto .sidebar-toggle{left:64px}
  .sidebar-auto .sidebar:not(:hover):not(:focus-within) .brand>span:last-child,
  .sidebar-auto .sidebar:not(:hover):not(:focus-within) .nav-link>span,
  .sidebar-auto .sidebar:not(:hover):not(:focus-within) .nav-label,
  .sidebar-auto .sidebar:not(:hover):not(:focus-within) .sidebar-bottom{display:none}
  .sidebar-auto .sidebar:not(:hover):not(:focus-within) .brand{justify-content:center;padding:0}
  .sidebar-auto .sidebar:not(:hover):not(:focus-within) nav{align-items:stretch}
  .sidebar-auto .sidebar:not(:hover):not(:focus-within) .nav-link{display:flex;width:56px;height:48px;margin-inline:auto;align-items:center;justify-content:center;gap:0;padding:0}
  .sidebar-auto .sidebar:not(:hover):not(:focus-within) .nav-link svg{margin:0;flex:0 0 20px}
  .sidebar-auto .sidebar:not(:hover):not(:focus-within) .nav-link.active:after{right:4px}
}