@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--primary:#c41e3a;--primary-hover:#9b1b30;--secondary:#e8e8e8;--accent:gold;--accent-hover:#e6c200;--text-main:#4a4a4a;--text-muted:#7a7a7a;--bg-app:#f5f5f5;--white:#fff;--danger:#dc2626;--success:#16a34a;--warning-bg:#fef3c7;--warning-text:#92400e;--success-bg:#dcfce7;--success-text:#166534;--border:#d4d4d4;--gradient-primary:linear-gradient(135deg, var(--primary) 0%, var(--primary-hover) 100%);--gradient-accent:linear-gradient(135deg, var(--accent) 0%, orange 100%);--gradient-auth:linear-gradient(135deg, var(--primary) 0%, var(--accent) 100%);--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--transition-fast:.2s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1)}@keyframes fadeInScale{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-468px 0}to{background-position:468px 0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fadeInScale var(--transition-slow)}.animate-fade{animation:.3s fadeIn}.animate-slide{animation:.4s slideUp}.loading-overlay{z-index:9999;background:rgba(255,255,255,.9);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.loading-overlay .spinner{border:4px solid var(--secondary);border-top:4px solid var(--primary);border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.skeleton{border-radius:var(--radius-sm);background:#f6f7f8 linear-gradient(90deg,#f6f7f8 0%,#edeef1 20%,#f6f7f8 40%,#f6f7f8 100%) 0 0/800px 104px no-repeat;animation-name:shimmer;animation-duration:1.2s;animation-timing-function:linear;animation-iteration-count:infinite;animation-fill-mode:forwards;display:inline-block;position:relative}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}#app{flex-direction:column;min-height:100vh;display:flex}h1{font-size:2rem;font-weight:700}h2{font-size:1.5rem;font-weight:600}p{color:var(--text-muted)}.btn{border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{background-color:var(--primary);color:var(--white)}.btn-primary:hover{background-color:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-treinamento{transition:all .3s}.btn-treinamento:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);background-color:var(--accent-hover)!important}.btn-accent{background-color:var(--accent);color:var(--text-main);border:2px solid var(--accent)}.btn-accent:hover{background-color:var(--accent-hover);border-color:var(--accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-sm{padding:.4rem .8rem;font-size:.75rem}.form-group{margin-bottom:var(--spacing-lg)}.label{margin-bottom:var(--spacing-sm);font-size:.9rem;font-weight:500;display:block}.input{border-radius:var(--radius-md);background-color:var(--white);border:1px solid #e1e7ef;width:100%;padding:.75rem 1rem;font-size:1rem;transition:border-color .2s}.input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px rgba(46,87,184,.1)}.auth-container{min-height:100vh;padding:var(--spacing-lg);background:var(--gradient-auth);justify-content:center;align-items:center;display:flex}.auth-card{background-color:var(--white);padding:var(--spacing-xl);border-radius:var(--radius-lg);width:100%;max-width:400px;box-shadow:var(--shadow-lg)}.auth-card h2{margin-bottom:var(--spacing-md);text-align:center}.auth-footer{margin-top:var(--spacing-lg);text-align:center;font-size:.9rem}.auth-footer a{color:var(--primary);font-weight:600;text-decoration:none}.dashboard-layout{grid-template-columns:280px 1fr;min-height:100vh;display:grid}.sidebar{background-color:var(--primary);color:var(--white);padding:var(--spacing-xl) var(--spacing-lg);flex-direction:column;display:flex}.sidebar-brand{margin-bottom:var(--spacing-xl);align-items:center;gap:10px;font-size:1.25rem;font-weight:700;display:flex}.sidebar-user{padding:var(--spacing-md);border-radius:var(--radius-md);background-color:rgba(255,255,255,.1);flex-direction:column;margin-top:auto;display:flex}.sidebar-user .user-name{font-size:.9rem;font-weight:600}.sidebar-user .user-role{opacity:.8;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.main-content{padding:var(--spacing-xl);background-color:var(--bg-app);overflow-y:auto}.nav-item{margin-bottom:var(--spacing-xs);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:12px;padding:.75rem 1rem;transition:background .2s;display:flex}.nav-item:hover{background-color:rgba(255,255,255,.05)}.nav-item.active{background-color:rgba(255,255,255,.15);font-weight:600}.profile-card{background:var(--white);padding:var(--spacing-lg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);align-items:center;gap:var(--spacing-lg);transition:transform .2s;display:flex}.profile-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.avatar-circle{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.1rem;font-weight:700;display:flex}.badge{text-transform:uppercase;background:var(--secondary);border-radius:99px;padding:.2rem .6rem;font-size:.7rem;font-weight:600}.badge-warning{background:var(--warning-bg);color:var(--warning-text)}.badge-success{background:var(--success-bg);color:var(--success-text)}.bg-white{background-color:var(--white)}.rounded-lg{border-radius:var(--radius-lg)}.shadow-sm{box-shadow:var(--shadow-sm)}.mt-4{margin-top:1.5rem}.fw-600{font-weight:600}.text-main{color:var(--text-main)}.text-muted{color:var(--text-muted)}.text-sm{font-size:.85rem}.error-text{color:var(--danger)}.view-header{margin-bottom:2rem}.view-header .title{color:var(--text-main);font-size:2rem}.view-header .subtitle{color:var(--text-muted)}.data-table{border-collapse:collapse;text-align:left;width:100%}.data-table thead{background:var(--secondary);text-transform:uppercase;font-size:.85rem}.data-table th{padding:1.25rem}.data-table td{border-top:1px solid var(--secondary);padding:1.25rem}.table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}.toast-container{bottom:var(--spacing-xl);right:var(--spacing-xl);z-index:1000;position:fixed}.toast{background:var(--white);color:var(--text-main);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border-left:4px solid var(--primary);align-items:center;gap:12px;margin-top:10px;padding:1rem 1.5rem;animation:.3s ease-out slideIn;display:flex}.toast.success{border-left-color:var(--success)}.toast.error{border-left-color:var(--danger)}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@media (max-width:768px){.dashboard-layout{grid-template-columns:1fr}.sidebar{width:100%;height:60px;padding:0 var(--spacing-sm);z-index:50;background-color:var(--primary);flex-direction:row;justify-content:space-around;margin:0;position:fixed;bottom:0;left:0}.sidebar-brand,.sidebar-user{display:none}.main-content{padding:var(--spacing-md);padding-bottom:80px}nav{justify-content:space-around;align-items:center;width:100%;display:flex}.nav-item{border-radius:8px;flex-direction:column;gap:2px;margin-bottom:0;padding:.4rem .25rem;font-size:.65rem}.nav-item svg{width:18px;height:18px}.nav-item.active{background-color:rgba(255,255,255,.15)}.card-stats{padding:1rem}.data-table{font-size:.85rem}.data-table th,.data-table td{padding:.75rem}.auth-card{padding:var(--spacing-lg)}.input{font-size:16px}.btn{padding:.65rem 1.25rem;font-size:.9rem}}@media (min-width:769px) and (max-width:1024px){.dashboard-layout{grid-template-columns:240px 1fr}.sidebar{padding:var(--spacing-md)}.nav-item{padding:.6rem .75rem;font-size:.85rem}}@media (min-width:1025px){.dashboard-layout{grid-template-columns:280px 1fr}}.home-container{background:var(--gradient-auth);min-height:100vh;padding:var(--spacing-lg);justify-content:center;align-items:center;display:flex}.home-card{background:var(--white);padding:var(--spacing-xl);text-align:center;border-radius:20px;width:100%;max-width:480px;box-shadow:0 20px 60px rgba(0,0,0,.3)}.home-header{margin-bottom:var(--spacing-xl)}.home-logo{margin-bottom:var(--spacing-md);font-size:3.5rem}.home-header h1{color:var(--primary);margin-bottom:var(--spacing-sm);font-size:1.8rem}.home-header p{color:var(--text-muted);font-size:1rem}.home-options{gap:var(--spacing-md);margin-bottom:var(--spacing-xl);flex-direction:column;display:flex}.home-option{background:var(--bg-app);border:2px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-lg);cursor:pointer;align-items:center;gap:var(--spacing-md);text-align:left;transition:all .3s;display:flex}.home-option:hover{border-color:var(--primary);background:var(--white);box-shadow:var(--shadow-md);transform:translateY(-2px)}.home-option-icon{background:var(--primary);color:var(--white);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:2rem;display:flex}.home-option h3{color:var(--text-main);margin-bottom:2px;font-size:1.1rem}.home-option p{color:var(--text-muted);font-size:.85rem}.home-footer{padding-top:var(--spacing-md);border-top:1px solid var(--border)}.home-link{color:var(--primary);font-size:.9rem;font-weight:500;text-decoration:none;transition:color .2s}.home-link:hover{color:var(--primary-hover)}.tabs-container{border-bottom:1px solid var(--secondary);gap:1rem;margin-bottom:2rem;display:flex}.tab-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-bottom:2px solid transparent;padding:.75rem 1.5rem;font-weight:600;transition:all .2s}.tab-btn:hover{color:var(--primary)}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.tab-content{animation:.3s fadeIn}@media (max-width:768px){.home-container{padding:var(--spacing-md)}.home-card{padding:var(--spacing-lg)}.home-logo{font-size:2.5rem}.home-header h1{font-size:1.4rem}.tabs-container{flex-direction:column;gap:.5rem}.tab-btn{text-align:left;padding:.5rem 1rem}}@media print{.sidebar,.tabs-container,.btn,.modal,.toast-container,.loading-overlay{display:none!important}body{font-size:12pt;line-height:1.4;color:#000!important;background:#fff!important}.dashboard-layout{display:block!important}.main-content{background:#fff!important;padding:0!important}.print-header{text-align:center;border-bottom:2px solid var(--primary);margin-bottom:2rem;padding-bottom:1rem}.print-header h1{color:var(--primary);margin-bottom:.5rem;font-size:18pt}.print-header p{color:#666;font-size:10pt}table{border-collapse:collapse;width:100%;margin:1rem 0;font-size:10pt}th,td{text-align:left;border:1px solid #ccc;padding:.5rem}th{-webkit-print-color-adjust:exact;print-color-adjust:exact;font-weight:700;background-color:#f0f0f0!important}.discipline-card,.boletim-section{break-inside:avoid;page-break-inside:avoid}a{color:#000!important;text-decoration:none!important}.badge{border:1px solid #ccc;padding:2px 6px;font-size:9pt}.badge-success{-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#065f46!important;background-color:#d1fae5!important}.badge-warning{-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#92400e!important;background-color:#fef3c7!important}input{font-size:10pt;background:0 0!important;border:none!important}input:disabled{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f9fafb!important}.print-footer{text-align:center;color:#999;border-top:1px solid #ccc;padding-top:.5rem;font-size:8pt;position:fixed;bottom:0;left:0;right:0}.page-break{page-break-before:always}@page{margin:2cm;size:A4}::-webkit-scrollbar{display:none!important}div[style*="background: var(--primary)"]{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-color:#c41e3a!important}div[style*="background: var(--accent)"]{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-color:gold!important}.media-teoria,.media-final{font-weight:700!important}}
