*,*::before,*::after{box-sizing:border-box}*{margin:0}html{font-size:16px}body{min-height:100vh;background:#f4f5f2;color:#071d41;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}button,input{font:inherit}a{color:inherit;text-decoration:none}button,a{touch-action:manipulation}:root{--navy:#071d41;--lime:#caff00;--surface:#fff;--muted:#6f7a89;--line:#dfe3e7;--danger:#a93642;--shadow:0 18px 50px rgba(7,29,65,.09);--sidebar:240px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:13px;font-weight:600;color:#778292}.btn{min-height:44px;border:0;border-radius:12px;padding:11px 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;cursor:pointer}.btn--primary{background:var(--navy);color:#fff}.btn--ghost{background:#edf0f2;color:var(--navy)}.btn--full{width:100%;justify-content:space-between}.btn:focus-visible,.nav-item:focus-visible,.icon-btn:focus-visible,.logout-button:focus-visible{outline:3px solid rgba(202,255,0,.58);outline-offset:3px}.brand-logo{width:48px;height:48px;object-fit:cover;border-radius:14px;display:block}.brand-logo--large{width:96px;height:96px;border-radius:24px}.dashboard-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);z-index:40;display:flex;flex-direction:column;padding:27px 20px;background:var(--navy);color:#fff}.brand{display:flex;align-items:center;gap:12px}.brand strong,.brand small{display:block}.brand strong{font-size:1rem;line-height:1.2}.brand small{color:var(--lime);font-size:.68rem;font-weight:850;letter-spacing:.08em}.main-nav{display:grid;gap:6px;margin-top:62px}.nav-item{border-radius:13px;padding:12px 14px;display:flex;align-items:center;gap:12px;color:#aeb9c9;font-weight:600;transition:.18s ease}.nav-item span{width:22px;text-align:center;font-size:1.15rem}.nav-item:hover,.nav-item.is-active{background:rgba(255,255,255,.09);color:#fff}.nav-item.is-active::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--lime);margin-left:auto}.sidebar-bottom{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:19px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.sidebar-bottom strong,.sidebar-bottom small{display:block}.sidebar-bottom strong{font-size:13px}.sidebar-bottom small{font-size:13px;color:#9ba8b9}.profile-dot{width:36px;height:36px;border-radius:10px;background:var(--lime);color:var(--navy);display:grid;place-items:center;font-size:13px;font-weight:600}.logout-button{width:36px;height:36px;border:0;border-radius:9px;background:transparent;color:#aab5c4;font-size:1.1rem;cursor:pointer}.main-content{margin-left:var(--sidebar);padding:28px 36px 56px;max-width:1500px}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.topbar h1{font-size:1.8rem;letter-spacing:-.045em;line-height:1.1}.status-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:13px;font-weight:600;color:#576273}.status-badge i{width:8px;height:8px;border-radius:50%;background:#65b741;box-shadow:0 0 0 4px rgba(101,183,65,.13)}.mobile-only{display:none}.icon-btn{width:42px;height:42px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--navy);font-size:1.3rem;cursor:pointer}.welcome-card{min-height:275px;background:var(--navy);color:#fff;border-radius:26px;padding:42px 46px;display:flex;align-items:center;justify-content:space-between;gap:30px;overflow:hidden;position:relative}.welcome-card::after{content:"";position:absolute;width:330px;height:330px;border-radius:50%;right:-110px;top:-105px;border:1px solid rgba(202,255,0,.14);box-shadow:0 0 0 55px rgba(202,255,0,.035),0 0 0 110px rgba(202,255,0,.018)}.welcome-card>div{position:relative;z-index:2;max-width:650px}.welcome-card img{position:relative;z-index:2;width:190px;height:190px;border-radius:38px;object-fit:cover;box-shadow:0 20px 45px rgba(0,0,0,.22)}.phase-label{display:inline-flex;background:var(--lime);color:var(--navy);border-radius:999px;padding:6px 10px;text-transform:uppercase;letter-spacing:.12em;font-size:13px;font-weight:600}.welcome-card h2{font-size:clamp(1.8rem,4vw,3.15rem);line-height:1.03;letter-spacing:-.06em;margin:17px 0 14px}.welcome-card p{color:#b5c0cf;max-width:600px;font-size:.92rem}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0}.module-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:21px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;transition:.2s ease}.module-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#cbd2d9}.module-icon,.placeholder-icon{display:grid;place-items:center;background:#eef4d2;color:var(--navy);font-weight:600}.module-icon{width:46px;height:46px;border-radius:14px;font-size:1.25rem}.module-card small{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:#8a949f;font-weight:600}.module-card h2{font-size:1rem;margin:1px 0}.module-card p{font-size:13px;color:var(--muted)}.module-card b{font-size:1.1rem}.foundation-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.foundation-card>div{display:flex;align-items:center;gap:11px}.foundation-check{width:32px;height:32px;border-radius:50%;background:var(--navy);color:var(--lime);display:grid;place-items:center;font-weight:600}.foundation-card strong,.foundation-card small{display:block}.foundation-card strong{font-size:13px}.foundation-card small{font-size:13px;color:var(--muted)}.placeholder-card{min-height:520px;background:#fff;border:1px solid var(--line);border-radius:24px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:34px}.placeholder-icon{width:72px;height:72px;border-radius:22px;font-size:2rem;margin-bottom:21px}.placeholder-card h2{font-size:2rem;letter-spacing:-.05em;margin:6px}.placeholder-card>p:not(.eyebrow){max-width:540px;color:var(--muted);margin-bottom:22px}.offline-banner{position:fixed;z-index:100;inset:0 0 auto 0;background:#ffd36c;color:#493604;padding:9px 16px;text-align:center;font-size:13px}.offline-banner:not([hidden])~.dashboard-shell .sidebar{top:39px}.offline-banner:not([hidden])~.dashboard-shell .main-content{padding-top:67px}.menu-backdrop{position:fixed;z-index:35;inset:0;border:0;background:rgba(3,16,38,.55);backdrop-filter:blur(3px)}.menu-backdrop[hidden]{display:none}.form-stack{display:grid;gap:15px}label{display:grid;gap:6px;font-size:13px;font-weight:600;color:#465466}input{width:100%;border:1px solid #d7dce2;border-radius:11px;background:#fff;color:var(--navy);padding:11px 12px;outline:0}input:focus{border-color:#6e8300;box-shadow:0 0 0 3px rgba(202,255,0,.25)}input[type=hidden]{display:none}.alert{padding:11px 13px;border-radius:10px;font-size:13px}.alert--error{background:#fff0f1;color:var(--danger)}.login-page{background:var(--navy);display:grid;place-items:center;padding:24px}.login-shell{width:min(100%,930px);min-height:580px;display:grid;grid-template-columns:1.06fr .94fr;border-radius:27px;overflow:hidden;background:#f5f6f3;box-shadow:0 32px 100px rgba(0,0,0,.28)}.login-brand{position:relative;background:var(--navy);color:#fff;padding:55px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}.login-brand::after{content:"";position:absolute;width:340px;height:340px;border:1px solid rgba(202,255,0,.17);border-radius:50%;top:-115px;right:-145px;box-shadow:0 0 0 52px rgba(202,255,0,.035),0 0 0 104px rgba(202,255,0,.018)}.login-brand .brand-logo{position:absolute;z-index:2;top:52px;left:55px}.login-brand .eyebrow{color:var(--lime)}.login-brand h1{font-size:3.45rem;line-height:.96;letter-spacing:-.07em;margin:10px 0 20px}.login-brand h1 em{font-style:normal;color:var(--lime)}.login-intro{color:#abb8c9;font-size:.9rem;max-width:340px}.login-card{padding:56px 49px;display:flex;flex-direction:column;justify-content:center;gap:23px}.login-card h2{font-size:1.7rem;letter-spacing:-.045em}.login-card>div>p:last-child{color:var(--muted);font-size:.82rem}.login-note{text-align:center;color:#7c8795;font-size:13px}.offline-page{background:var(--navy);color:#fff;display:grid;place-items:center;padding:25px}.offline-page main{max-width:430px;text-align:center}.offline-page img{width:96px;height:96px;border-radius:24px;margin-bottom:24px}.offline-page .eyebrow{color:var(--lime)}.offline-page h1{font-size:2.5rem;letter-spacing:-.06em;margin:7px}.offline-page p:not(.eyebrow){color:#b3becd;margin-bottom:24px}
@media(max-width:980px){:root{--sidebar:210px}.main-content{padding:24px}.module-grid{grid-template-columns:1fr}.foundation-card{grid-template-columns:1fr 1fr}.welcome-card{padding:36px}.welcome-card img{width:150px;height:150px}}
@media(max-width:720px){.mobile-only{display:grid}.sidebar{width:min(82vw,285px);transform:translateX(-105%);transition:transform .22s ease;box-shadow:20px 0 70px rgba(0,0,0,.25)}.sidebar.is-open{transform:none}.main-content{margin-left:0;padding:16px 14px 42px}.topbar{height:64px;justify-content:flex-start;gap:12px;margin-bottom:15px}.topbar>div{flex:1}.topbar .eyebrow{display:none}.topbar h1{font-size:1.5rem}.status-badge{font-size:0;padding:9px}.welcome-card{min-height:390px;padding:29px 25px;display:block}.welcome-card img{position:absolute;width:96px;height:96px;right:24px;top:25px;border-radius:22px}.welcome-card>div{padding-top:115px}.welcome-card h2{font-size:2.2rem}.module-grid{gap:10px}.module-card{padding:16px}.foundation-card{grid-template-columns:1fr}.placeholder-card{min-height:460px}.offline-banner{font-size:13px}.offline-banner:not([hidden])~.dashboard-shell .main-content{padding-top:55px}.login-page{padding:0;background:#f5f6f3}.login-shell{width:100%;min-height:100vh;display:block;border-radius:0}.login-brand{min-height:315px;padding:34px 28px}.login-brand .brand-logo{top:32px;left:28px}.login-brand h1{font-size:2.75rem}.login-intro{display:none}.login-card{padding:38px 26px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}

/* FASE 2 */
.card{background:#fff;border:1px solid var(--line);border-radius:18px}.topbar>.btn{margin-left:auto}.btn--lime{background:var(--lime);color:var(--navy)}.btn--light{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.18)}.btn--danger{background:#fff0f1;color:var(--danger)}.btn:disabled,.is-offline [data-requires-online]{opacity:.52;cursor:not-allowed}.compact-welcome{min-height:310px}.welcome-actions{display:flex;gap:10px;margin-top:24px}.toast{position:fixed;z-index:200;right:20px;top:20px;max-width:min(420px,calc(100vw - 28px));padding:13px 17px;border-radius:13px;background:var(--navy);color:#fff;box-shadow:0 18px 55px rgba(7,29,65,.3);font-size:.82rem;font-weight:600}.toast.is-error{background:#8d2631}.offline-banner~.toast{top:58px}.agenda-toolbar{padding:16px 18px;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:18px;margin-bottom:14px}.agenda-toolbar h2{text-align:right;font-size:1rem;text-transform:capitalize}.segmented{display:inline-flex;background:#edf0f2;border-radius:11px;padding:3px}.segmented button{border:0;background:transparent;color:#687483;padding:8px 13px;border-radius:8px;font-weight:600;font-size:13px;cursor:pointer}.segmented button.is-active{background:#fff;color:var(--navy);box-shadow:0 2px 8px rgba(7,29,65,.1)}.period-nav{display:flex;align-items:center;gap:6px}.period-nav .icon-btn{width:36px;height:36px;font-size:1.45rem}.period-nav .btn{min-height:36px;padding:7px 12px;font-size:13px}.calendar{overflow:hidden;min-height:490px}.agenda-days{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));min-height:490px}.agenda-day{border-right:1px solid var(--line);min-width:0}.agenda-day:last-child{border-right:0}.agenda-day>header{height:74px;padding:11px;text-align:center;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr;place-content:center}.agenda-day>header span,.agenda-day>header small{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.agenda-day>header strong{font-size:1.35rem;line-height:1.1}.agenda-day.is-today>header strong{display:grid;place-items:center;margin:auto;width:31px;height:31px;border-radius:50%;background:var(--navy);color:var(--lime)}.day-lessons{padding:9px;display:grid;align-content:start;gap:7px}.day-empty{font-size:13px;color:#a2aab3;text-align:center;padding:20px 2px}.lesson-item{width:100%;border:0;border-left:4px solid #7d8c9c;border-radius:9px;background:#edf1f5;color:var(--navy);padding:9px;text-align:left;display:grid;gap:2px;cursor:pointer}.lesson-item strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-item span{font-size:13px;color:#536273;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-item small{font-size:13px;text-transform:uppercase;font-weight:600;color:#6d7987}.lesson-item.status-scheduled{border-left-color:#4e78bc;background:#edf4ff}.lesson-item.status-completed{border-left-color:#61a84f;background:#eff8ec}.lesson-item.status-cancelled{border-left-color:#ba6971;background:#f7eff0;opacity:.7;text-decoration:line-through}.month-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:#f5f6f4;border-bottom:1px solid var(--line)}.month-weekdays span{text-align:center;padding:10px;font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase}.month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.month-day{min-height:105px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px;min-width:0}.month-day:nth-child(7n){border-right:0}.month-day.is-outside{background:#f8f9f7;opacity:.52}.day-number{width:27px;height:27px;border:0;border-radius:50%;background:transparent;font-size:13px;font-weight:600;color:var(--navy);cursor:pointer;margin-bottom:3px}.month-day.is-today .day-number{background:var(--navy);color:var(--lime)}.lesson-item.is-compact{padding:4px 5px;margin:3px 0;border-radius:5px}.lesson-item.is-compact span,.lesson-item.is-compact small{display:none}.lesson-item.is-compact strong{font-size:13px}.more-lessons{font-size:13px;color:var(--muted);font-weight:600}.student-toolbar{padding:13px 15px;display:flex;align-items:center;gap:18px;margin-bottom:14px}.search-field{height:44px;display:flex;align-items:center;gap:8px;flex:1;max-width:630px;border:1px solid var(--line);border-radius:12px;padding:0 12px;background:#fff}.search-field input{border:0;padding:0;box-shadow:none!important}.search-field span{font-size:1.25rem;color:var(--muted)}.count-label{font-size:13px;color:var(--muted);font-weight:600}.student-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.student-card{padding:18px;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start}.student-avatar{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;background:var(--navy);color:var(--lime);font-weight:600}.student-info{min-width:0}.student-info h2{font-size:.95rem;margin-bottom:3px}.student-info a{display:block;font-size:13px;color:#5e6c7b;overflow:hidden;text-overflow:ellipsis}.student-info p{font-size:13px;color:var(--muted);margin-top:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.empty-state{grid-column:1/-1;padding:70px 20px;text-align:center}.empty-state>span{font-size:2rem}.empty-state h2{font-size:1.1rem;margin-top:8px}.empty-state p,.loading{color:var(--muted);font-size:13px}.loading{padding:45px;text-align:center}.modal{border:0;padding:0;background:transparent;max-width:none;max-height:none;width:100%;height:100%}.modal::backdrop{background:rgba(3,16,38,.7);backdrop-filter:blur(4px)}.modal[open]{display:grid;place-items:center;padding:18px}.modal-card{width:min(100%,610px);max-height:calc(100vh - 36px);overflow:auto;background:#fff;border-radius:22px;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.28)}.modal-card--wide{width:min(100%,760px)}.modal-card>header,.modal-card>footer{display:flex;align-items:center;gap:10px}.modal-card>header{justify-content:space-between;margin-bottom:21px}.modal-card>header h2{font-size:1.35rem}.modal-card>footer{border-top:1px solid var(--line);padding-top:17px;margin-top:19px;justify-content:flex-end}.modal-close{width:40px;height:40px;border:0;border-radius:11px;background:#edf0f2;color:var(--navy);font-size:1.5rem;cursor:pointer}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-row--3{grid-template-columns:1fr 1fr 1fr}label{position:relative}textarea,select{width:100%;border:1px solid #d7dce2;border-radius:11px;background:#fff;color:var(--navy);padding:11px 12px;outline:0;font:inherit}textarea{resize:vertical;min-height:90px}textarea:focus,select:focus{border-color:#6e8300;box-shadow:0 0 0 3px rgba(202,255,0,.25)}.optional{position:absolute;right:0;color:#929ba6;font-size:13px;font-weight:600}fieldset{border:1px solid var(--line);border-radius:12px;padding:12px}legend{padding:0 5px;font-size:13px;font-weight:600;color:#465466}.student-options{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;max-height:185px;overflow:auto}.student-options label{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:9px;padding:8px;cursor:pointer}.student-options input{width:17px;height:17px;accent-color:var(--navy)}.student-options strong,.student-options small{display:block}.student-options strong{font-size:13px}.student-options small{font-size:13px;color:var(--muted)}.empty-inline{font-size:13px;color:var(--danger);grid-column:1/-1}.form-error,.occurrence-note{padding:10px 12px;border-radius:9px;font-size:13px;margin-top:13px}.form-error{background:#fff0f1;color:var(--danger)}.occurrence-note{background:#eef4d2;color:#435100}.footer-spacer{flex:1}.settings-list{width:min(100%,520px);display:grid;gap:8px}.settings-list div{display:flex;justify-content:space-between;gap:20px;padding:13px;border-radius:10px;background:#f5f6f4;font-size:13px}.settings-list span{color:var(--muted)}code{background:#edf0f2;padding:2px 5px;border-radius:5px}
@media(max-width:1100px){.agenda-days{overflow-x:auto;grid-template-columns:repeat(7,145px)}.student-grid{grid-template-columns:1fr}.agenda-toolbar{grid-template-columns:auto 1fr}.agenda-toolbar h2{grid-column:1/-1;text-align:left}.period-nav{justify-self:end}}
@media(max-width:720px){.desktop-label{display:none}.topbar>.btn{width:42px;height:42px;padding:0;border-radius:11px}.compact-welcome{min-height:410px}.welcome-actions{flex-direction:column;align-items:stretch}.welcome-actions .btn{width:100%}.agenda-toolbar{padding:11px;gap:10px}.segmented{width:100%}.segmented button{flex:1}.agenda-toolbar h2{font-size:.9rem}.calendar{min-height:430px}.agenda-days{display:block;overflow:visible;min-height:0}.agenda-day{border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:64px 1fr;min-height:90px}.agenda-day>header{height:auto;border-bottom:0;border-right:1px solid var(--line)}.day-lessons{padding:9px}.month-day{min-height:76px;padding:3px}.month-weekdays span{padding:8px 2px;font-size:13px}.lesson-item.is-compact{border-left-width:3px;padding:3px}.lesson-item.is-compact strong{font-size:13px}.student-toolbar{display:block}.count-label{display:block;margin:8px 2px 0}.student-card{grid-template-columns:auto 1fr}.student-card>.btn{grid-column:1/-1}.modal[open]{align-items:end;padding:0}.modal-card,.modal-card--wide{width:100%;max-height:92vh;border-radius:22px 22px 0 0;padding:20px}.form-row,.form-row--3{grid-template-columns:1fr}.student-options{grid-template-columns:1fr}.modal-card>footer{position:sticky;bottom:-20px;background:#fff;padding-bottom:20px}.toast{right:14px;top:14px}.offline-banner~.toast{top:55px}}
[hidden]{display:none!important}

/* FASE 3 — partilha e página privada */
.share-panel{margin-top:18px;padding:16px;border:1px solid #dbe2ca;border-radius:14px;background:#fbfdf5}.share-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px}.share-heading h3{font-size:1rem}.share-heading>span{font-size:13px;color:var(--muted)}.share-recipients{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.share-recipients label{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px;cursor:pointer}.share-recipients input{width:17px;height:17px;accent-color:var(--navy)}.share-recipients strong,.share-recipients small{display:block}.share-recipients strong{font-size:13px}.share-recipients small{font-size:13px;color:var(--muted)}.loading-inline{font-size:13px;color:var(--muted);grid-column:1/-1}.share-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:11px}.share-actions .btn{font-size:13px;padding:9px 10px}.btn--whatsapp{background:#168c50;color:#fff}.share-results{margin-top:11px;padding:10px;border-radius:10px;background:#fff;border:1px solid var(--line);display:grid;grid-template-columns:1fr;gap:6px}.share-results p{font-size:13px;color:var(--muted)}.share-results .btn{justify-content:flex-start;font-size:13px}.share-note{font-size:13px;color:#707b68;margin-top:10px}.booking-page{min-height:100vh;background:var(--navy);padding:26px 18px;display:grid;place-items:center}.booking-shell{width:min(100%,560px)}.booking-brand{display:flex;align-items:center;gap:12px;color:#fff;margin:0 0 18px 6px}.booking-brand img{width:58px;height:58px;border-radius:15px}.booking-brand strong,.booking-brand small{display:block}.booking-brand small{font-size:.68rem;color:var(--lime);font-weight:850}.booking-card{position:relative;background:#fff;border-radius:24px;padding:29px;box-shadow:0 26px 80px rgba(0,0,0,.25)}.booking-card h1{font-size:2rem;letter-spacing:-.05em;margin:4px 0 23px}.booking-status{display:inline-flex;border-radius:999px;padding:6px 10px;margin-bottom:18px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.booking-status.status-scheduled{background:#edf4ff;color:#315e9e}.booking-status.status-completed{background:#e9f7e5;color:#39792d}.booking-status.status-cancelled{background:#fff0f1;color:#9b3540}.booking-details{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:20px}.booking-details div{background:#fff;padding:13px}.booking-details dt{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.booking-details dd{font-size:.86rem;font-weight:600;margin-top:2px}.booking-note{text-align:center;font-size:13px;color:var(--muted);margin-top:14px}.booking-empty{text-align:center}.booking-empty>p:last-child{color:var(--muted)}
@media(max-width:720px){.share-recipients,.share-actions{grid-template-columns:1fr}.share-heading{display:block}.share-heading>span{display:block;margin-top:2px}.booking-page{align-items:start;padding-top:max(24px,env(safe-area-inset-top))}.booking-card{padding:23px}.booking-details{grid-template-columns:1fr}.booking-card h1{font-size:1.7rem}}

/* FASE 4 — Google Calendar */
.settings-page{display:grid;gap:14px}.settings-card{padding:23px;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:start}.settings-icon{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:var(--navy);color:var(--lime);font-size:1.2rem;font-weight:600}.settings-copy h2{font-size:1.2rem;margin:2px 0 6px}.settings-copy>p:not(.eyebrow){font-size:13px;color:var(--muted);max-width:650px}.settings-copy .settings-list{margin-top:14px}.settings-actions{display:flex;gap:8px;align-items:center}.settings-actions form{display:flex}.google-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}.google-meta span{border-radius:999px;background:#edf0f2;padding:6px 9px;font-size:13px;font-weight:600;color:#596675}.alert--success{background:#edf8e9;color:#39792d}.google-sync-panel{margin-top:14px;border:1px solid var(--line);border-radius:12px;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f7f8f6}.google-sync-panel>div{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center}.google-sync-panel span{width:9px;height:9px;border-radius:50%;background:#d49c31;grid-row:1/3}.google-sync-panel strong{font-size:13px}.google-sync-panel small{display:block;font-size:13px;color:var(--muted);max-width:430px}.google-sync-panel[data-status="synced"] span{background:#61a84f}.google-sync-panel[data-status="error"] span{background:#b74f59}.google-sync-panel .btn{font-size:13px;min-height:36px;padding:7px 10px}
@media(max-width:720px){.settings-card{grid-template-columns:auto 1fr;padding:18px}.settings-actions{grid-column:1/-1;display:grid}.settings-actions .btn{width:100%}.google-meta{display:grid}.google-sync-panel{align-items:flex-start}.google-sync-panel>div{min-width:0}.google-sync-panel .btn{flex:0 0 auto}}

/* FASE 5 — revisão final de responsividade e instalação */
.has-modal{overflow:hidden}.modal-card{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.calendar{overscroll-behavior-x:contain}.lesson-item:focus-visible,.segmented button:focus-visible,.day-number:focus-visible,.modal-close:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(79,103,0,.35);outline-offset:2px}
@media(max-width:720px){
  input,select,textarea{font-size:16px}
  .main-content{padding-bottom:max(42px,env(safe-area-inset-bottom))}
  .modal-card,.modal-card--wide{max-height:calc(100dvh - max(12px,env(safe-area-inset-top)));padding:18px 18px calc(18px + env(safe-area-inset-bottom))}
  .modal-card>header{position:sticky;top:-18px;z-index:4;background:#fff;padding:18px 0 12px;margin-bottom:14px;border-bottom:1px solid var(--line)}
  .modal-card>footer{display:grid;grid-template-columns:1fr 1fr;bottom:calc(-18px - env(safe-area-inset-bottom));z-index:4;margin-left:-2px;margin-right:-2px;padding:13px 2px calc(18px + env(safe-area-inset-bottom))}
  .modal-card>footer .footer-spacer{display:none}.modal-card>footer #cancelLessonBtn{grid-column:1/-1}.modal-card>footer .btn{width:100%;padding-inline:10px}
  .month-weekdays,.month-grid{min-width:630px}.calendar:has(.month-grid){overflow-x:auto;-webkit-overflow-scrolling:touch}.month-day{min-height:92px;padding:5px}.lesson-item.is-compact strong{font-size:13px}
  .google-sync-panel{display:grid}.google-sync-panel .btn{width:100%}
}

/* Fase 5 — programa, planos e evolução */
.program-toolbar{display:grid;gap:12px;margin-bottom:18px;padding:16px}.program-toolbar label{margin:0}.archive-toggle{display:flex!important;align-items:center;gap:8px}.archive-toggle input{width:auto}.program-level{margin-bottom:28px}.program-level>header{margin:0 0 12px 4px}.program-level h2{margin:2px 0}.program-module-grid{display:grid;gap:16px}.program-module{padding:18px}.program-module.is-archived{opacity:.62}.program-module-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.program-module-head h3{margin:0 0 6px}.program-module-head p{margin:0;color:var(--muted)}.compact-actions{display:flex;gap:6px;flex-wrap:wrap}.compact-actions button{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:7px 9px;color:var(--navy);cursor:pointer;font:inherit;font-size:13px;font-weight:600}.program-lessons{display:grid;gap:8px;margin-top:16px}.program-lessons>article{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border-radius:12px;background:#f5f6f4}.program-lessons strong,.program-lessons small{display:block}.program-lessons small{color:var(--muted);margin-top:4px}.add-library-lesson{justify-self:start}.adaptation-note{padding:12px;border-radius:10px;background:#f4f7ec;color:#496020}.level-chip,.module-pills span,.competency-tag{display:inline-flex;width:max-content;border-radius:999px;padding:5px 9px;background:#edf1f5;color:#31435d;font-size:13px;font-weight:600}.card-actions{display:flex;gap:8px;flex-wrap:wrap}.session-plan-editor{border:1px solid var(--line);border-radius:14px;padding:0}.session-plan-editor summary{cursor:pointer;padding:14px 16px;font-weight:600}.session-plan-editor summary span{font-weight:500;color:var(--muted)}.session-plan-editor>.form-stack{border-top:1px solid var(--line);padding:16px}.plan-module-options,.plan-lesson-options{display:grid;gap:8px;max-height:230px;overflow:auto}.plan-module-options label,.plan-lesson-options label{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:10px}.plan-module-options input,.plan-lesson-options input{width:auto}.plan-module-options span,.plan-lesson-options span{display:flex;flex-direction:column}.private-label{color:#8b4c17;font-size:13px;font-weight:600}.profile-layout{display:grid;gap:24px}.history-list{display:grid;gap:8px}.history-list article{display:grid;gap:3px;padding:11px;border-radius:10px;background:#f5f6f4}.history-list span,.history-list small{color:var(--muted)}.competency-editor{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.competency-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.competency-tag.status-working{background:#fff2d8}.competency-tag.status-developing{background:#e8f1ff}.competency-tag.status-consolidated{background:#e4f8e9}.public-plan{margin:24px 0;padding-top:20px;border-top:1px solid #dce3ea}.public-plan h2,.public-plan h3{margin:16px 0 8px}.public-plan p,.public-plan li{line-height:1.6}.module-pills{display:flex;flex-wrap:wrap;gap:7px}.module-pills span{background:#eefe9b;color:#223400}
@media(min-width:720px){.program-toolbar{grid-template-columns:180px minmax(260px,1fr) auto;align-items:end}.program-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-layout{grid-template-columns:minmax(280px,.8fr) minmax(320px,1.2fr)}}
@media(max-width:719px){.program-module-head,.program-lessons>article{flex-direction:column;align-items:stretch}.compact-actions button{flex:1}.card-actions{width:100%}.card-actions .btn{flex:1}.session-plan-editor>.form-stack{padding:12px}}

/* Programa de Aulas — revisão visual responsiva */
.program-intro{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:32px;margin-bottom:16px;padding:28px 32px;border-radius:22px;background:var(--navy);color:#fff}.program-intro::after{content:"";position:absolute;right:-70px;top:-120px;width:280px;height:280px;border:1px solid rgba(202,255,0,.17);border-radius:50%;box-shadow:0 0 0 42px rgba(202,255,0,.035),0 0 0 84px rgba(202,255,0,.018)}.program-intro>div{position:relative;z-index:1}.program-intro .eyebrow{color:var(--lime)}.program-intro h2{margin:4px 0 7px;font-size:clamp(1.45rem,2.8vw,2.15rem);line-height:1.1;letter-spacing:-.045em}.program-intro p:last-child{max-width:650px;color:#b8c4d5;font-size:.84rem}.program-stats{display:flex;flex:0 0 auto;gap:8px}.program-stats>span{min-width:84px;padding:12px 14px;border:1px solid rgba(255,255,255,.13);border-radius:14px;background:rgba(255,255,255,.07);text-align:center;backdrop-filter:blur(6px)}.program-stats strong,.program-stats small{display:block}.program-stats strong{color:var(--lime);font-size:1.35rem;line-height:1}.program-stats small{margin-top:5px;color:#c3ccda;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.program-toolbar{grid-template-columns:minmax(180px,220px) minmax(260px,1fr) auto!important;align-items:end;padding:13px 15px!important;border-radius:16px!important}.program-filter>span{font-size:13px;text-transform:uppercase;letter-spacing:.08em}.program-filter select{height:44px}.program-search{max-width:none!important}.archive-toggle{height:44px;padding:0 12px;border-radius:11px;background:#f4f5f2;white-space:nowrap}.archive-toggle span{font-size:13px}.archive-toggle input{width:16px;height:16px;accent-color:var(--navy)}
.program-library{max-width:1120px;margin-inline:auto}.program-level{--level-color:var(--lime);margin:30px 0 38px!important}.program-level--intermedio{--level-color:#73a7ff}.program-level--avancado{--level-color:#ff8a7a}.program-level-head{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:12px;margin:0 0 14px!important;padding:0 4px}.program-level-index{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:var(--navy);color:var(--level-color);font-size:13px;font-weight:600;letter-spacing:.08em}.program-level-head .eyebrow{font-size:13px}.program-level-head h2{margin:0!important;font-size:1.45rem;letter-spacing:-.04em}.program-level-total{padding:7px 10px;border-radius:999px;background:#e8ebed;color:#586575;font-size:13px;font-weight:600}.program-module-list{display:grid;gap:10px}
.program-module{padding:0!important;overflow:hidden;border-radius:16px!important;transition:border-color .18s ease,box-shadow .18s ease}.program-module[open]{border-color:#cbd3da;box-shadow:0 12px 35px rgba(7,29,65,.07)}.program-module>summary{list-style:none;display:grid;grid-template-columns:42px minmax(0,1fr) auto 28px;align-items:center;gap:12px;min-height:78px;padding:14px 16px;cursor:pointer;user-select:none}.program-module>summary::-webkit-details-marker{display:none}.program-module>summary:hover{background:#fafbf9}.program-module>summary:focus-visible{outline:3px solid rgba(202,255,0,.6);outline-offset:-3px}.program-module-number{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#eef1f3;color:#657184;font-size:13px;font-weight:600}.program-module[open] .program-module-number{background:var(--navy);color:var(--level-color)}.program-module-title{min-width:0}.program-module-title strong,.program-module-title small{display:block}.program-module-title strong{font-size:.88rem;line-height:1.3}.program-module-title small{margin-top:3px;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.program-module-count{padding:6px 9px;border-radius:999px;background:#f1f3f4;color:#657184;font-size:13px;font-weight:600}.program-chevron{display:grid;place-items:center;color:#718094;font-size:1.2rem;transition:transform .18s ease}.program-module[open] .program-chevron{transform:rotate(180deg)}.program-module-body{padding:0 16px 16px;border-top:1px solid var(--line);background:#fcfdfb}.module-actionbar{display:flex;gap:7px;padding:11px 0}.module-actionbar button,.lesson-actionbar button{min-height:38px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--navy);padding:8px 11px;font:inherit;font-size:13px;font-weight:600;cursor:pointer}.module-actionbar button:hover,.lesson-actionbar button:hover{border-color:#aeb8c1;background:#f5f7f7}
.program-lessons{margin:0!important;gap:8px!important}.program-lesson-card{display:grid!important;grid-template-columns:38px minmax(0,1fr) auto;align-items:center!important;gap:11px!important;padding:11px!important;border:1px solid #e6e9e5;border-radius:12px!important;background:#fff!important}.program-lesson-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#eff5d7;color:#526900;font-size:13px}.program-lesson-copy{min-width:0}.program-lesson-copy strong{display:inline;font-size:13px}.program-lesson-copy>span{display:inline-flex;margin-left:7px;padding:2px 6px;border-radius:999px;background:#eff1f3;color:#687487;font-size:13px;font-weight:600}.program-lesson-copy small{display:block!important;margin-top:3px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-actionbar{display:flex;gap:5px}.lesson-actionbar button:not(.lesson-edit){width:38px;padding:0;font-size:.9rem}.lesson-edit{min-width:62px}.add-library-lesson{width:100%;min-height:54px;display:flex;align-items:center;gap:11px;margin-top:2px;padding:9px 11px;border:1px dashed #b9c2c9;border-radius:12px;background:transparent;color:var(--navy);text-align:left;cursor:pointer}.add-library-lesson>span:first-child{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--navy);color:var(--lime);font-size:1rem}.add-library-lesson strong,.add-library-lesson small{display:block}.add-library-lesson strong{font-size:13px}.add-library-lesson small{margin-top:1px;color:var(--muted);font-size:13px}.add-library-lesson:hover{border-color:#84919c;background:#f8faf7}
@media(max-width:820px){.mobile-only{display:grid}.sidebar{width:min(82vw,285px);transform:translateX(-105%);transition:transform .22s ease;box-shadow:20px 0 70px rgba(0,0,0,.25)}.sidebar.is-open{transform:none}.main-content{margin-left:0;padding:20px 18px 48px}.topbar{height:64px;justify-content:flex-start;gap:12px;margin-bottom:18px}.topbar>div{flex:1}.program-intro{align-items:flex-start;flex-direction:column}.program-stats{width:100%}.program-stats>span{flex:1}.program-toolbar{grid-template-columns:1fr 1fr!important}.program-search{grid-column:1/-1;grid-row:1}.archive-toggle{align-self:end}}
@media(max-width:560px){.program-intro{margin-inline:-2px;padding:22px 20px;border-radius:18px}.program-intro h2{font-size:1.55rem}.program-intro p:last-child{font-size:13px}.program-stats{gap:6px}.program-stats>span{min-width:0;padding:10px 6px}.program-stats strong{font-size:1.18rem}.program-stats small{font-size:13px}.program-toolbar{position:sticky;top:8px;z-index:8;grid-template-columns:1fr!important;gap:8px!important;padding:10px!important;box-shadow:0 10px 30px rgba(7,29,65,.08)}.program-search{grid-column:auto;grid-row:auto;order:-1}.program-filter select{height:42px}.archive-toggle{height:38px;padding-inline:10px}.program-level{margin:24px 0 32px!important}.program-level-head{grid-template-columns:40px 1fr;gap:10px}.program-level-index{width:40px;height:40px;border-radius:12px}.program-level-total{grid-column:2;justify-self:start;margin-top:-5px}.program-level-head h2{font-size:1.3rem}.program-module>summary{grid-template-columns:36px minmax(0,1fr) 24px;min-height:72px;gap:9px;padding:12px}.program-module-number{width:34px;height:34px}.program-module-count{display:none}.program-module-title strong{font-size:13px}.program-module-title small{font-size:13px}.program-module-body{padding:0 11px 12px}.module-actionbar{display:grid;grid-template-columns:1fr 1fr;padding:10px 0}.module-actionbar button{padding-inline:7px}.module-actionbar button:nth-child(3){grid-column:1/-1}.program-lesson-card{grid-template-columns:34px minmax(0,1fr)!important;align-items:start!important}.program-lesson-icon{width:32px;height:32px}.program-lesson-copy strong{display:block;font-size:13px}.program-lesson-copy>span{margin:3px 0 0}.program-lesson-copy small{white-space:normal;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lesson-actionbar{grid-column:1/-1;display:grid;grid-template-columns:1fr 42px 42px;width:100%}.lesson-actionbar button{min-height:40px}.lesson-edit{width:auto}.add-library-lesson{min-height:58px}}

/* Número de aulas atribuído por aluno */
.student-allowance{display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:6px;margin-top:10px;padding:9px 10px;border-radius:11px;background:#f1f6dc;color:#405300}.student-allowance strong{font-size:1.05rem;line-height:1}.student-allowance span{font-size:13px;font-weight:600}.student-allowance small{grid-column:1/-1;margin-top:4px;color:#68754a;font-size:13px}.lesson-allowance-panel{margin-bottom:22px;padding:18px;border:1px solid #dce4c4;border-radius:16px;background:linear-gradient(135deg,#fbfdf4,#f1f6dc)}.lesson-allowance-heading{display:flex;align-items:end;justify-content:space-between;gap:18px}.lesson-allowance-heading h3{font-size:1.08rem}.allowance-total-field{width:150px;margin:0;font-size:13px}.allowance-total-field input{margin-top:5px;background:#fff}.lesson-allowance-stats{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px;padding-bottom:11px}.lesson-allowance-stats>div{padding:11px 9px;border-radius:11px;background:#fff;text-align:center;border:1px solid rgba(7,29,65,.06)}.lesson-allowance-stats strong,.lesson-allowance-stats span{display:block}.lesson-allowance-stats strong{font-size:1.2rem;line-height:1.1}.lesson-allowance-stats span{margin-top:4px;color:var(--muted);font-size:13px;font-weight:600;text-transform:uppercase}.lesson-allowance-stats .is-highlight{background:var(--navy);color:var(--lime)}.lesson-allowance-stats .is-highlight span{color:#d2dbea}.allowance-progress{position:absolute;inset:auto 0 0;height:5px!important;margin:0!important;border-radius:999px;background:#dce4c4;overflow:hidden}.allowance-progress i{display:block;height:100%;border-radius:inherit;background:#789500}.allowance-empty{grid-column:1/-1;padding:12px;border-radius:11px;background:#fff;color:var(--muted);font-size:13px}.allowance-reset{display:flex;align-items:flex-start;gap:9px;margin-top:12px;padding-top:11px;border-top:1px solid #dce4c4;cursor:pointer}.allowance-reset input{flex:0 0 auto;width:18px;height:18px;margin-top:2px;accent-color:var(--navy)}.allowance-reset strong,.allowance-reset small{display:block}.allowance-reset strong{font-size:13px}.allowance-reset small{margin-top:2px;color:var(--muted);font-size:13px}
@media(max-width:560px){.lesson-allowance-panel{padding:14px}.lesson-allowance-heading{align-items:stretch;flex-direction:column;gap:10px}.allowance-total-field{width:100%}.lesson-allowance-stats{grid-template-columns:repeat(2,1fr)}.student-allowance{grid-column:1/-1}.student-card{align-items:start}.student-card .card-actions{grid-column:1/-1}}
/* Portais por perfil — FASE 1 multiutilizador */
.portal-shell{width:min(1120px,100%);margin:auto;padding:clamp(16px,3vw,32px)}
.portal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:32px}
.portal-header>div,.portal-header form{display:flex;align-items:center;gap:12px;margin:0}
.portal-list{display:grid;gap:10px}.portal-list article{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid var(--line,#dde3ea);border-radius:14px;background:#fff}.portal-list article div{display:grid;gap:4px}.portal-list article span{color:var(--muted,#687386)}
@media(max-width:640px){.portal-header{align-items:flex-start}.portal-header .brand small{max-width:140px}.portal-list article{align-items:flex-start;flex-direction:column}.portal-list article form,.portal-list article .btn{width:100%}}

/* Área autenticada do aluno */
.student-portal-hero{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:28px 0}.student-portal-hero h1{margin:.25rem 0}.student-portal-hero>span{background:#d8ff00;color:#071d41;border-radius:999px;padding:10px 16px;font-weight:600;white-space:nowrap}.portal-section{margin-top:32px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:14px}.student-lesson-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px}.student-lesson{display:grid;gap:16px}.student-lesson>header{display:flex;align-items:start;justify-content:space-between;gap:12px}.student-lesson h3{margin:4px 0}.attendance-chip{font-size:13px;font-weight:600;border-radius:999px;padding:7px 10px;background:#eef1f4;white-space:nowrap}.attendance-confirmed{background:#dff7e7;color:#176b3a}.attendance-unavailable{background:#ffe3e3;color:#9b2424}.attendance-form{display:grid;gap:10px;padding-top:12px;border-top:1px solid var(--line,#dde3ea)}.attendance-form>div{display:flex;gap:8px;flex-wrap:wrap}.public-plan{padding:12px 0;display:grid;gap:8px}.evolution-card{display:grid;gap:10px}.contact-card{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(300px,1.3fr);gap:32px}.dashboard-next{margin-top:20px}
@media(max-width:700px){.student-portal-hero{align-items:flex-start;flex-direction:column}.contact-card{grid-template-columns:1fr}.student-lesson>header{flex-direction:column}.attendance-form>div,.attendance-form .btn{width:100%}.portal-section{margin-top:24px}}
