:root{--ink-900: #17181b;--ink-700: #3a3d42;--ink-500: #73716d;--primary-900: #0f2e26;--primary-700: #1a4438;--primary-500: #2d6650;--primary-300: #6b9c85;--coral-500: #a97650;--coral-300: #c9a37e;--coral-100: #ece2d4;--sun-500: #c99a3f;--sun-300: #e0c07f;--neutral-0: #ffffff;--neutral-50: #faf7f2;--neutral-100: #f1ece4;--neutral-200: #e3dcd1;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--radius-pill: 999px;--shadow-card: 0 12px 30px rgba(12, 53, 53, .08);--shadow-elevated: 0 20px 45px rgba(12, 53, 53, .16);--font-display: "Manrope", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--container-width: 1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:var(--font-body);color:var(--ink-900);background:var(--neutral-50);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4{font-family:var(--font-display);line-height:1.15;margin:0 0 .6em;color:var(--primary-900)}p{margin:0 0 1em;color:var(--ink-700)}a{color:inherit}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}.container{width:100%;max-width:var(--container-width);margin:0 auto;padding:0 1.5rem}.section{padding:4.5rem 0}.section-tight{padding:2.5rem 0}.badge{display:inline-flex;align-items:center;gap:.4rem;width:fit-content;border-radius:var(--radius-pill);background:var(--sun-500);color:var(--ink-900);padding:.45rem .9rem;font-size:.75rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:none;border-radius:var(--radius-pill);padding:.85rem 1.6rem;font-weight:700;font-size:.95rem;cursor:pointer;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.btn:hover{transform:translateY(-2px)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary{background:var(--primary-700);color:var(--neutral-0);box-shadow:var(--shadow-card)}.btn-secondary{background:transparent;color:inherit;border:1.5px solid currentColor}.btn-ghost{background:#ffffff1f;color:inherit;border:1px solid rgba(255,255,255,.4)}.btn-dark{background:var(--primary-700);color:var(--neutral-0)}.card{background:var(--neutral-0);border:1px solid var(--neutral-200);border-radius:var(--radius-lg);padding:1.75rem;box-shadow:var(--shadow-card)}.field{display:grid;gap:.4rem;text-align:left}.field label{font-size:.85rem;font-weight:600;color:var(--ink-700)}.field input,.field select,.field textarea{border:1.5px solid var(--neutral-200);border-radius:var(--radius-sm);padding:.75rem .9rem;background:var(--neutral-0);color:var(--ink-900)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--primary-500)}.password-field{position:relative;display:flex}.password-field input{flex:1;padding-right:4.2rem}.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:var(--primary-700);font-weight:700;font-size:.82rem;padding:.4rem .6rem;cursor:pointer}.password-toggle:hover{text-decoration:underline}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.alert{border-radius:var(--radius-md);padding:.9rem 1.1rem;font-weight:600;font-size:.92rem}.alert-error{background:#fdecea;color:#9c2b1f;border:1px solid #f4c2bb}.alert-success{background:#e8f5ea;color:#276b34;border:1px solid #b9e0be}.alert-info{background:var(--coral-100);color:var(--primary-900);border:1px solid var(--coral-300)}@media (max-width: 860px){.grid-2{grid-template-columns:1fr}}.brand-mark{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-weight:700;font-size:1.1rem;text-decoration:none;color:var(--primary-900)}.brand-mark-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--coral-500);color:var(--neutral-0);font-size:1.1rem}.site-header{position:sticky;top:0;z-index:50;background:#faf7f2e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--neutral-200)}.site-header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1rem 1.5rem}.site-nav{display:flex;gap:1.8rem;font-weight:600}.site-nav a{text-decoration:none;color:var(--ink-700);padding-bottom:4px;border-bottom:2px solid transparent}.site-nav a:hover,.site-nav a.active{color:var(--primary-700);border-bottom-color:var(--coral-500)}.site-header-actions{display:flex;gap:.75rem;align-items:center}.site-footer{background:var(--primary-900);color:var(--neutral-200);padding:3.5rem 0 1.5rem;margin-top:auto}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.12)}.footer-links{list-style:none;margin:.8rem 0 0;padding:0;display:grid;gap:.6rem}.footer-links a{color:var(--neutral-200);text-decoration:none}.footer-links a:hover{color:var(--sun-500)}.footer-copy{margin-top:1.5rem;font-size:.85rem;color:#fff9}.hero-section{background:linear-gradient(160deg,var(--primary-900) 0%,var(--primary-700) 60%,var(--primary-500) 130%);color:var(--neutral-0);padding:5rem 0 6rem}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:3.5rem;align-items:center}.hero-grid h1{color:var(--neutral-0);font-size:clamp(1.9rem,3vw,2.6rem);letter-spacing:-.01em;margin:1rem 0}.hero-grid p{color:var(--coral-100);font-size:1.1rem;max-width:520px}.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2rem}.hero-visual{aspect-ratio:4 / 3;border-radius:var(--radius-lg);background:radial-gradient(circle at 25% 20%,rgba(255,255,255,.14),transparent 45%),linear-gradient(150deg,var(--primary-300) 0%,var(--primary-700) 100%);box-shadow:var(--shadow-elevated);position:relative;overflow:hidden}.hero-visual:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.18) 1px,transparent 1px);background-size:18px 18px;opacity:.4}.hero-visual-caption{position:absolute;left:1.25rem;bottom:1.25rem;right:1.25rem;background:#12302e8c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--neutral-0);padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600}.stats-strip{background:var(--neutral-0);border-bottom:1px solid var(--neutral-200)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:2.5rem 0}.stat-item{text-align:center}.stat-item strong{display:block;font-family:var(--font-display);font-size:2.4rem;color:var(--primary-700)}.stat-item span{color:var(--ink-500);font-weight:600;font-size:.9rem}.section-heading{max-width:640px;margin:0 auto 2.5rem;text-align:center}.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.cursos-grid{grid-template-columns:repeat(3,1fr)}.curso-card{text-align:center}.curso-icone{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--neutral-100);font-size:1.6rem;margin-bottom:1rem}@media (max-width: 720px){.cursos-grid{grid-template-columns:1fr}}.cta-band{background:var(--primary-700);color:var(--neutral-0);border-radius:var(--radius-lg);padding:3rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}.cta-band h2{color:var(--neutral-0);margin:0}@media (max-width: 960px){.hero-grid{grid-template-columns:1fr}.hero-visual{order:-1}.stats-grid{grid-template-columns:repeat(2,1fr)}.cards-grid,.footer-grid{grid-template-columns:1fr}.site-nav{display:none}}.painel-shell{--p-border: #e4ded4;--p-border-strong: #d3cbbd;--p-surface: #ffffff;--p-bg: #f6f3ee;--p-muted: #7a766f;--p-text: #25272b;--p-radius: 8px;--p-radius-lg: 12px;--p-focus: 0 0 0 3px rgba(45, 102, 80, .18);display:grid;grid-template-columns:232px 1fr;min-height:100vh;font-size:.875rem;color:var(--p-text);background:var(--p-bg)}.painel-shell h1{font-size:1.35rem;margin:0}.painel-shell h2{font-size:1.05rem;margin:0}.painel-shell h3{font-size:.95rem;margin:0}.painel-shell p{font-size:.875rem}.painel-sidebar{background:var(--primary-900);color:var(--neutral-0);padding:1rem .75rem;display:flex;flex-direction:column;gap:1.25rem;position:sticky;top:0;height:100vh;overflow-y:auto}.painel-brand{display:flex;align-items:center;gap:.6rem;padding:.25rem .5rem;font-family:var(--font-display);font-weight:800;font-size:1rem}.painel-brand-icon{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;background:var(--coral-500);font-size:.9rem}.painel-nav{display:grid;gap:.1rem}.painel-nav-group{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#ffffff73;padding:.9rem .6rem .35rem}.painel-nav a{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:#ffffffc7;padding:.45rem .6rem;border-radius:6px;font-weight:500;font-size:.85rem}.painel-nav a:hover{background:#ffffff12;color:#fff}.painel-nav a.active{background:#ffffff1f;color:#fff;font-weight:600;box-shadow:inset 3px 0 0 var(--coral-300)}.painel-nav .nav-icon{width:18px;text-align:center;opacity:.85}.painel-main{display:flex;flex-direction:column;min-width:0}.painel-topbar{display:flex;align-items:center;justify-content:flex-end;gap:.9rem;height:56px;padding:0 1.5rem;background:var(--p-surface);border-bottom:1px solid var(--p-border);position:sticky;top:0;z-index:10}.painel-user{text-align:right;line-height:1.2}.painel-user strong{display:block;font-size:.85rem}.painel-user span{font-size:.75rem;color:var(--p-muted);text-transform:capitalize}.painel-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--primary-700);color:#fff;font-weight:700;font-size:.8rem}.painel-content{padding:1.5rem;flex:1;max-width:1400px;width:100%}.page-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.1rem;flex-wrap:wrap}.page-head .subtitle{color:var(--p-muted);font-size:.82rem;margin-top:.2rem}.breadcrumb{font-size:.78rem;color:var(--p-muted);margin-bottom:.25rem}.breadcrumb a{color:var(--p-muted);text-decoration:none}.breadcrumb a:hover{color:var(--primary-700);text-decoration:underline}.painel-shell .btn{border-radius:var(--p-radius);padding:.45rem .9rem;font-size:.82rem;font-weight:600;line-height:1.2;gap:.35rem;box-shadow:none;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.painel-shell .btn:hover{transform:none}.painel-shell .btn-primary{background:var(--primary-700);color:#fff;border:1px solid var(--primary-700)}.painel-shell .btn-primary:hover:not(:disabled){background:var(--primary-900)}.painel-shell .btn-secondary{background:var(--p-surface);color:var(--p-text);border:1px solid var(--p-border-strong)}.painel-shell .btn-secondary:hover:not(:disabled){background:var(--neutral-50);border-color:var(--ink-500)}.painel-shell .btn-ghost{background:transparent;color:var(--primary-700);border:1px solid transparent}.painel-shell .btn-ghost:hover:not(:disabled){background:#2d665014}.painel-shell .btn-danger{background:transparent;color:#a3322a;border:1px solid transparent}.painel-shell .btn-danger:hover:not(:disabled){background:#fdecea}.painel-shell .btn-xs{padding:.25rem .55rem;font-size:.76rem}.btn-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.btn-row.end{justify-content:flex-end}.panel-card{background:var(--p-surface);border:1px solid var(--p-border);border-radius:var(--p-radius-lg)}.panel-card+.panel-card{margin-top:1rem}.panel-card-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1.1rem;border-bottom:1px solid var(--p-border)}.panel-card-head p{margin:.15rem 0 0;color:var(--p-muted);font-size:.78rem}.panel-card-body{padding:1.1rem}.panel-card-body.flush{padding:0}.form-section+.form-section{border-top:1px solid var(--p-border)}.form-section{padding:1.1rem}.form-section-title{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--primary-500);margin-bottom:.8rem}.form-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.75rem .9rem}.col-2{grid-column:span 2}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-8{grid-column:span 8}.col-9{grid-column:span 9}.col-12{grid-column:span 12}.painel-shell .field{gap:.3rem}.painel-shell .field label{font-size:.76rem;font-weight:600;color:var(--ink-700)}.painel-shell .field label .req{color:#a3322a;margin-left:2px}.painel-shell .field .hint{font-size:.72rem;color:var(--p-muted)}.painel-shell .field input,.painel-shell .field select,.painel-shell .field textarea,.painel-shell .input{border:1px solid var(--p-border-strong);border-radius:var(--p-radius);padding:.45rem .65rem;min-height:34px;font-size:.85rem;background:var(--p-surface);color:var(--p-text);width:100%}.painel-shell .field textarea{min-height:64px;resize:vertical}.painel-shell .field input:focus,.painel-shell .field select:focus,.painel-shell .field textarea:focus,.painel-shell .input:focus{outline:none;border-color:var(--primary-500);box-shadow:var(--p-focus)}.painel-shell .field input:disabled{background:var(--neutral-50);color:var(--p-muted)}.check{display:inline-flex;align-items:center;gap:.45rem;font-size:.82rem;font-weight:500;cursor:pointer}.check-grid{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem}.search-input{position:relative;min-width:260px}.search-input input{padding-left:2rem!important}.search-input:before{content:"⌕";position:absolute;left:.65rem;top:50%;transform:translateY(-52%);color:var(--p-muted);font-size:1rem;pointer-events:none}.form-footer{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1.1rem;border-top:1px solid var(--p-border);background:#fbfaf7;border-radius:0 0 var(--p-radius-lg) var(--p-radius-lg);flex-wrap:wrap}.painel-shell .alert{border-radius:var(--p-radius);padding:.55rem .8rem;font-size:.82rem;font-weight:500;margin:0}.table-wrap{overflow-x:auto}table.data-table{width:100%;border-collapse:collapse}table.data-table th,table.data-table td{text-align:left;padding:.55rem .9rem;border-bottom:1px solid #efeae2;font-size:.83rem;vertical-align:middle}table.data-table th{color:var(--p-muted);font-weight:600;text-transform:uppercase;font-size:.68rem;letter-spacing:.05em;background:#fbfaf7;white-space:nowrap}table.data-table tbody tr:hover{background:#fbfaf7}table.data-table tr:last-child td{border-bottom:none}table.data-table tr.clickable{cursor:pointer}table.data-table td.actions{text-align:right;white-space:nowrap}table.data-table .cell-sub{display:block;color:var(--p-muted);font-size:.75rem}table.data-table a{color:var(--primary-700);font-weight:600;text-decoration:none}table.data-table a:hover{text-decoration:underline}.empty-state{padding:2rem 1rem;text-align:center;color:var(--p-muted);font-size:.85rem}.empty-state strong{display:block;color:var(--p-text);margin-bottom:.25rem}.tag{display:inline-flex;align-items:center;gap:.25rem;padding:.12rem .5rem;border-radius:999px;font-size:.72rem;font-weight:600;background:#eef2ef;color:var(--primary-700);white-space:nowrap}.tag+.tag{margin-left:.25rem}.tag-gray{background:#efedea;color:var(--ink-700)}.tag-warn{background:#fbf1dc;color:#7a5410}.tag-danger{background:#fdecea;color:#9c2b1f}.tag-clay{background:var(--coral-100);color:#6e4a2d}.tabs{display:flex;gap:.15rem;border-bottom:1px solid var(--p-border);margin-bottom:1rem;overflow-x:auto}.tabs button{border:none;background:none;padding:.6rem .85rem;font-size:.83rem;font-weight:600;color:var(--p-muted);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap}.tabs button:hover{color:var(--p-text)}.tabs button.active{color:var(--primary-700);border-bottom-color:var(--primary-700)}.tabs button .count{margin-left:.35rem;font-size:.7rem;color:var(--p-muted);background:#efedea;border-radius:999px;padding:.05rem .4rem}.profile-head{display:flex;align-items:center;gap:.9rem}.profile-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--coral-100);color:#6e4a2d;font-weight:800;font-family:var(--font-display)}.profile-meta{display:flex;flex-wrap:wrap;gap:.35rem .9rem;color:var(--p-muted);font-size:.8rem;margin-top:.2rem}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;margin-bottom:1.25rem}.metric-card{background:var(--p-surface);border:1px solid var(--p-border);border-radius:var(--p-radius-lg);padding:.9rem 1rem}.metric-card span{color:var(--p-muted);font-weight:600;font-size:.76rem}.metric-card strong{display:block;font-family:var(--font-display);font-size:1.6rem;color:var(--primary-700);margin-top:.15rem}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem}.stat{border:1px solid var(--p-border);border-radius:var(--p-radius);padding:.6rem .8rem;background:#fbfaf7}.stat span{display:block;font-size:.72rem;color:var(--p-muted);font-weight:600}.stat strong{font-size:1.05rem;color:var(--primary-900)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f141273;display:grid;place-items:center;padding:1rem;z-index:50}.modal{background:var(--p-surface);border-radius:var(--p-radius-lg);width:min(640px,100%);max-height:calc(100vh - 2rem);overflow-y:auto;box-shadow:0 24px 60px #00000040}.modal.wide{width:min(860px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1.1rem;border-bottom:1px solid var(--p-border)}.modal-close{border:none;background:none;font-size:1.3rem;line-height:1;color:var(--p-muted);cursor:pointer}.modal-body{padding:1.1rem;display:grid;gap:.9rem}.modal-foot{padding:.8rem 1.1rem;border-top:1px solid var(--p-border);display:flex;justify-content:flex-end;gap:.5rem}.picker-results{border:1px solid var(--p-border);border-radius:var(--p-radius);max-height:220px;overflow-y:auto;margin-top:.4rem}.picker-results button{display:flex;justify-content:space-between;width:100%;border:none;background:none;padding:.5rem .7rem;text-align:left;font-size:.83rem;cursor:pointer;border-bottom:1px solid #efeae2}.picker-results button:last-child{border-bottom:none}.picker-results button:hover{background:#f3f7f4}.picker-results button.selected{background:#e6efe9}.segmented{display:inline-flex;border:1px solid var(--p-border-strong);border-radius:var(--p-radius);overflow:hidden}.segmented button{border:none;background:var(--p-surface);padding:.4rem .8rem;font-size:.8rem;font-weight:600;color:var(--p-muted);cursor:pointer}.segmented button+button{border-left:1px solid var(--p-border-strong)}.segmented button.active{background:var(--primary-700);color:#fff}@media (max-width: 1000px){.col-2,.col-3,.col-4{grid-column:span 6}.col-5,.col-8,.col-9{grid-column:span 12}}@media (max-width: 760px){.painel-shell{grid-template-columns:1fr}.painel-sidebar{position:static;height:auto;flex-direction:row;align-items:center;overflow-x:auto;padding:.6rem}.painel-nav{display:flex}.painel-nav-group{display:none}.painel-content{padding:1rem}.form-grid>*{grid-column:span 12}.search-input{min-width:0;width:100%}}.attendance-toggle{display:inline-flex;border:1px solid var(--p-border-strong);border-radius:var(--p-radius);overflow:hidden}.attendance-toggle button{border:none;background:var(--p-surface);padding:.3rem .65rem;font-size:.76rem;font-weight:700;color:var(--p-muted);cursor:pointer}.attendance-toggle button+button{border-left:1px solid var(--p-border-strong)}.attendance-toggle button.on-presente{background:#2d6650;color:#fff}.attendance-toggle button.on-falta{background:#a3322a;color:#fff}.attendance-toggle button.on-justificada{background:#b88a2a;color:#fff}.rate-bar{display:flex;align-items:center;gap:.5rem;min-width:140px}.rate-bar .track{flex:1;height:6px;border-radius:999px;background:#efeae2;overflow:hidden}.rate-bar .fill{height:100%;background:var(--primary-500)}.rate-bar.low .fill{background:#a3322a}.rate-bar strong{font-size:.8rem;min-width:44px;text-align:right}.class-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem}.class-card{background:var(--p-surface);border:1px solid var(--p-border);border-radius:var(--p-radius-lg);padding:.9rem 1rem;text-decoration:none;color:inherit;display:grid;gap:.35rem}.class-card:hover{border-color:var(--primary-300)}.class-card strong{font-size:.92rem}.class-card span{color:var(--p-muted);font-size:.78rem}
