:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.5;font-weight:400;color:#213547;background-color:#f5f7fa;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}.main-nav{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:#0f172af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.1);position:sticky;top:0;z-index:100}.nav-brand{display:flex;align-items:center;gap:.75rem}.nav-logo{display:inline-flex;width:42px;height:42px;border-radius:10px;overflow:hidden}.nav-logo img{width:100%;height:100%;object-fit:contain}.nav-title{font-size:1.25rem;font-weight:700;color:#fff}.nav-links{display:flex;gap:.5rem}.nav-link{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border-radius:10px;color:#9ca3af;text-decoration:none;font-weight:500;transition:all .2s}.nav-link:hover{background:#ffffff1a;color:#fff}.nav-link.active{background:linear-gradient(135deg,#4ade8033,#22d3ee33);color:#4ade80;border:1px solid rgba(74,222,128,.3)}@media(max-width:600px){.main-nav{flex-direction:column;gap:1rem;padding:1rem}.nav-links{width:100%;justify-content:center}.nav-link{padding:.5rem 1rem;font-size:.9rem}}.chart-container{background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:24px}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:12px}.chart-header h2{margin:0;color:#fff;font-size:1.25rem;font-weight:600}.chart-legend{display:flex;gap:20px;font-size:.875rem;color:#9ca3af}.legend-item{display:flex;align-items:center;gap:8px}.legend-line{width:24px;height:3px;background:#4ade80;border-radius:2px}.legend-avg{width:24px;height:0;border-top:2px dashed #60a5fa}.chart-wrapper{width:100%;min-height:400px}.custom-tooltip{background:#1f2937;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:12px 16px;box-shadow:0 4px 12px #0000004d}.tooltip-date{margin:0 0 4px;font-size:.875rem;color:#9ca3af}.tooltip-session{margin:0 0 8px;font-size:.9rem;color:#fff;text-transform:capitalize}.tooltip-attendance{margin:0;font-size:1rem;color:#4ade80}.attendance-page{min-height:calc(100vh - 70px);padding:2rem;background:linear-gradient(135deg,#0f172a,#1e1b4b)}.page-header{text-align:center;margin-bottom:2rem}.page-header h1{font-size:2.5rem;color:#fff;margin-bottom:.5rem}.page-header .subtitle{color:#9ca3af;font-size:1.1rem}.stat-label{font-size:.875rem;color:#9ca3af;margin-top:.5rem}.page-content{margin-bottom:2rem}.page-footer{text-align:center;color:#6b7280;font-size:.875rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,.1)}.feedback-dashboard{min-height:100vh;padding:2rem;background:linear-gradient(135deg,#0f172a,#1e1b4b)}.feedback-header{text-align:center;margin-bottom:2rem}.feedback-header h1{font-size:2.5rem;color:#fff;margin-bottom:.5rem}.feedback-header .subtitle{color:#9ca3af;font-size:1.1rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:1.5rem;display:flex;flex-direction:column;align-items:center;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-4px);box-shadow:0 10px 40px #0000004d}.stat-card.highlight{background:linear-gradient(135deg,#4ade8033,#22d3ee33);border-color:#4ade804d}.stat-value{font-size:2.5rem;font-weight:700;color:#fff;line-height:1}.stat-label{font-size:.875rem;color:#9ca3af;margin-top:.5rem;text-align:center}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem}.chart-card{background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:1.5rem}.chart-card.wide{grid-column:span 2}@media(max-width:900px){.chart-card.wide{grid-column:span 1}.charts-grid{grid-template-columns:1fr}}.chart-card h3{color:#fff;font-size:1.1rem;margin-bottom:1rem;font-weight:600}.recharts-legend-item-text{color:#9ca3af!important}.recharts-tooltip-label{color:#fff!important}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:#0f172a;min-height:100vh}#root,.app{min-height:100vh}.auth-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 20% 20%,rgba(96,165,250,.15),transparent 25%),radial-gradient(circle at 80% 0%,rgba(74,222,128,.12),transparent 22%),#0b1224;z-index:9999;padding:1.5rem}.auth-card{width:min(420px,100%);background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:2rem;box-shadow:0 20px 60px #00000059;text-align:center}.auth-logo{width:72px;height:72px;margin:0 auto 1rem;border-radius:16px;overflow:hidden;background:#ffffff0a;border:1px solid rgba(255,255,255,.08)}.auth-logo img{width:100%;height:100%;object-fit:contain}.auth-card h2{margin:0 0 .5rem;color:#fff;font-size:1.5rem;font-weight:700}.auth-subtitle{margin:0 0 1.5rem;color:#9ca3af;font-size:.95rem}.auth-form{display:flex;flex-direction:column;gap:.75rem}.auth-consent{display:flex;align-items:center;gap:.5rem;color:#cbd5e1;font-size:.9rem}.auth-consent input{width:16px;height:16px;accent-color:#4ade80}.auth-input{width:100%;padding:.85rem 1rem;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#ffffff0f;color:#fff;font-size:1rem}.auth-input::placeholder{color:#9ca3af}.auth-button{padding:.85rem 1rem;border-radius:10px;border:none;cursor:pointer;font-weight:700;color:#0b1224;background:linear-gradient(135deg,#4ade80,#22d3ee);transition:transform .1s ease,box-shadow .2s ease}.auth-button:hover{transform:translateY(-1px);box-shadow:0 10px 30px #22d3ee33}.auth-button:active{transform:translateY(0)}.auth-error{color:#f87171;font-size:.9rem;text-align:left}
