@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Inter:wght@400;500;600&display=swap";:root{--color-primary:#176b67;--color-primary-light:#259b96;--color-primary-bg:#e6f2f0;--color-secondary:#a8c3a0;--color-secondary-bg:#f1f6f0;--color-accent:#f4b6a6;--color-accent-light:#f7c8bc;--color-accent-bg:#fdf2f0;--color-bg:#fff9f0;--color-surface:#fff;--color-text-main:#2c3539;--color-text-muted:#606669;--color-border:#ebe5dc;--color-urgent:#ef4444;--color-urgent-bg:#fef2f2;--color-important:#f4b6a6;--color-important-bg:#fdf2f0;--color-general:#176b67;--color-general-bg:#e6f2f0;--color-success:#a8c3a0;--color-success-bg:#f1f6f0;--font-heading:"Outfit", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000000d, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #176b670d, 0 4px 6px -4px #176b670d;--shadow-card:0 12px 24px -8px #176b670a;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-full:9999px;--transition-fast:.15s ease;--transition-normal:.25s ease}body.light-mode{--color-bg:#fff9f0;--color-surface:#fff;--color-text-main:#2c3539;--color-text-muted:#606669;--color-border:#ebe5dc;--color-primary-bg:#e6f2f0;--color-accent-bg:#fdf2f0;--color-secondary-bg:#f1f6f0;--color-success-bg:#f1f6f0;--color-important-bg:#fdf2f0;--color-urgent-bg:#fef2f2;--color-general-bg:#e6f2f0}body.dark-mode{--color-bg:#0f172a;--color-surface:#1e293b;--color-text-main:#f8fafc;--color-text-muted:#94a3b8;--color-border:#334155;--color-primary-bg:#1e3a3a;--color-accent-bg:#3b2a27;--color-secondary-bg:#2a362d;--color-success-bg:#2a362d;--color-important-bg:#3b2a27;--color-urgent-bg:#451a1a;--color-general-bg:#1e3a3a}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--color-text-main);font-weight:600;line-height:1.2}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;outline:none;font-family:inherit}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border:1px solid var(--color-border);transition:transform var(--transition-fast), box-shadow var(--transition-fast);padding:1.5rem}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.btn{border-radius:var(--radius-full);transition:all var(--transition-fast);font-weight:500;font-family:var(--font-heading);justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;display:inline-flex}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover{background-color:var(--color-primary-light);transform:translateY(-1px)}.btn-secondary{background-color:var(--color-primary-bg);color:var(--color-primary)}.btn-secondary:hover{background-color:#ccfbf1}.badge{border-radius:var(--radius-full);align-items:center;padding:.25rem .75rem;font-size:.875rem;font-weight:500;display:inline-flex}.app-container{min-height:100vh;display:flex}.main-content{flex:1;max-width:800px;margin:0 auto;padding:2rem 2rem 6rem}@media (width>=768px){.main-content{margin-left:250px;padding-bottom:2rem}}.welcome-container{background-color:var(--color-bg);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex;position:relative;overflow:hidden}.blob-container{pointer-events:none;z-index:1;position:absolute;inset:0}.blob{border-radius:var(--radius-full);filter:blur(80px);opacity:.15;animation:25s ease-in-out infinite alternate float-blob;position:absolute}.blob-1{background-color:var(--color-primary);width:300px;height:300px;top:10%;left:5%}.blob-2{background-color:var(--color-accent);width:400px;height:400px;animation-delay:-5s;bottom:10%;right:5%}.blob-3{background-color:var(--color-secondary);width:250px;height:250px;animation-delay:-10s;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes float-blob{0%{transform:translate(0)scale(1)rotate(0)}50%{transform:translate(50px,-50px)scale(1.1)rotate(180deg)}to{transform:translate(-30px,30px)scale(.95)rotate(360deg)}}.welcome-content{z-index:2;flex-direction:column;align-items:center;gap:1.5rem;max-width:600px;display:flex;position:relative}.welcome-logo-container{background-color:var(--color-primary);border-radius:var(--radius-lg);color:#fff;opacity:0;justify-content:center;align-items:center;width:96px;height:96px;margin-bottom:.5rem;animation:1s cubic-bezier(.34,1.56,.64,1) forwards logo-intro;display:flex;transform:rotate(-5deg);box-shadow:0 12px 30px #176b674d}@keyframes logo-intro{0%{opacity:0;transform:translateY(30px)scale(.8)rotate(15deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(-5deg)}}.animate-item{opacity:0;animation:.8s cubic-bezier(.16,1,.3,1) forwards slide-fade-in;transform:translateY(20px)}.anim-title{animation-delay:.15s}.anim-tagline{animation-delay:.3s}.anim-desc{animation-delay:.45s}.anim-btn{animation-delay:.6s}@keyframes slide-fade-in{to{opacity:1;transform:translateY(0)}}.welcome-title{color:var(--color-primary);letter-spacing:-.03em;margin:0;font-size:3.5rem;font-weight:700}.welcome-tagline{color:var(--color-text-main);margin:0;font-size:1.35rem;font-weight:600;line-height:1.4}.welcome-desc{color:var(--color-text-muted);margin:0 0 1rem;font-size:1rem;line-height:1.6}.get-started-btn{border-radius:var(--radius-full);background-color:var(--color-primary);color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;font-family:var(--font-heading);border:none;align-items:center;gap:.75rem;padding:1rem 2.5rem;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 10px 20px -5px #176b674d}.get-started-btn svg{transition:transform .25s}.get-started-btn:hover{background-color:var(--color-primary-light);transform:translateY(-2px);box-shadow:0 12px 25px -5px #176b6766}.get-started-btn:hover svg{transform:translate(4px)}.get-started-btn:active{transform:translateY(0)scale(.97)}@media (prefers-reduced-motion:reduce){.blob,.welcome-logo-container,.animate-item,.get-started-btn,.get-started-btn svg{opacity:1!important;transition:none!important;animation:none!important;transform:none!important}}@media (width<=576px){.welcome-title{font-size:2.5rem}.welcome-tagline{font-size:1.15rem}.welcome-desc{font-size:.95rem}.get-started-btn{padding:.85rem 2rem;font-size:1rem}}.login-container{background-color:var(--color-bg);background-image:radial-gradient(circle at top right, var(--color-primary-bg), transparent 40%), radial-gradient(circle at bottom left, var(--color-accent-bg), transparent 40%);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.login-card{text-align:center;flex-direction:column;gap:3rem;width:100%;max-width:480px;padding:3rem 2rem;display:flex}.logo-container{flex-direction:column;align-items:center;gap:1rem;display:flex}.logo-icon{background:var(--color-primary);border-radius:var(--radius-lg);justify-content:center;align-items:center;width:80px;height:80px;display:flex;transform:rotate(-10deg);box-shadow:0 10px 25px -5px #0f766e66}.logo-container h1{color:var(--color-primary);margin-bottom:.5rem;font-size:2.5rem}.tagline{color:var(--color-text-muted);font-size:1.1rem;font-style:italic}.role-selection{flex-direction:column;gap:1.5rem;display:flex}.role-selection h2{color:var(--color-text-main);margin-bottom:.5rem;font-size:1.25rem}.role-btn{border-radius:var(--radius-lg);border:2px solid var(--color-border);background:var(--color-surface);text-align:left;transition:all var(--transition-normal);align-items:center;gap:1.5rem;padding:1.5rem;display:flex}.role-btn:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-md);transform:translateY(-2px)}.parent-btn:hover{background-color:var(--color-general-bg)}.teacher-btn:hover{background-color:var(--color-primary-bg)}.role-btn svg{color:var(--color-primary)}.role-text h3{margin-bottom:.25rem;font-size:1.25rem}.role-text p{color:var(--color-text-muted);font-size:.9rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.password-input-container{align-items:center;width:100%;display:flex;position:relative}.password-toggle-btn{color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;align-items:center;padding:4px;display:flex;position:absolute;right:.75rem}.password-toggle-btn:hover{color:var(--color-text-main)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0006;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);width:100%;max-width:440px;box-shadow:var(--shadow-lg);text-align:left;padding:2rem;animation:.3s modalFadeIn;position:relative}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.app-container{background-color:var(--color-bg);min-height:100vh;display:flex}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);z-index:50;flex-direction:column;width:250px;display:none;position:fixed;top:0;bottom:0;left:0}@media (width>=768px){.sidebar{display:flex}}.sidebar-header{border-bottom:1px solid var(--color-border);padding:1.5rem}.sidebar-logo{font-family:var(--font-heading);color:var(--color-primary);align-items:center;gap:.75rem;font-size:1.5rem;font-weight:700;display:flex}.sidebar-nav{flex-direction:column;flex:1;gap:.25rem;padding:1rem .5rem;display:flex;overflow-y:auto}.nav-link{color:var(--color-text-muted);border-radius:var(--radius-md);transition:all var(--transition-fast);align-items:center;gap:.75rem;padding:.75rem 1rem;font-weight:500;display:flex}.nav-link:hover{background:var(--color-bg);color:var(--color-text-main)}.nav-link.active{background:var(--color-primary-bg);color:var(--color-primary)}.sidebar-footer{border-top:1px solid var(--color-border);padding:1rem}.logout-btn{width:100%;color:var(--color-urgent);background:0 0}.logout-btn:hover{background:var(--color-urgent-bg);color:var(--color-urgent)}.bottom-nav{background:var(--color-surface);border-top:1px solid var(--color-border);z-index:50;padding:.5rem;padding-bottom:calc(.5rem + env(safe-area-inset-bottom));justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}@media (width>=768px){.bottom-nav{display:none}}.bottom-nav-item{color:var(--color-text-muted);border-radius:var(--radius-md);flex-direction:column;flex:1;align-items:center;gap:.25rem;padding:.5rem;display:flex}.bottom-nav-item.active{color:var(--color-primary)}.bottom-nav-label{text-align:center;font-size:.65rem;font-weight:500}.ai-summary-card{border:1px solid var(--color-accent-light);background:linear-gradient(to right bottom, var(--color-surface), var(--color-accent-bg));padding:0;overflow:hidden}.ai-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.ai-title-group{align-items:center;gap:1rem;display:flex}.ai-icon-container{border-radius:var(--radius-md);background:var(--color-accent);color:#fff;justify-content:center;align-items:center;width:40px;height:40px;display:flex;box-shadow:0 4px 10px #f59e0b4d}.ai-icon{animation:2s ease-in-out infinite pulse-soft}@keyframes pulse-soft{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.ai-title{color:var(--color-text-main);margin:0 0 .25rem;font-size:1.15rem}.ai-subtitle{color:var(--color-text-muted);margin:0;font-size:.85rem}.expand-btn{color:var(--color-text-muted);border-radius:var(--radius-full);transition:background var(--transition-fast);padding:.5rem}.expand-btn:hover{background:#0000000d}.ai-content{border-top:1px solid var(--color-accent-light);padding:0 1.5rem 1.5rem;animation:.3s ease-out slide-down}@keyframes slide-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.ai-disclaimer{color:var(--color-text-muted);text-align:right;padding:1rem 0;font-size:.75rem;font-style:italic}.ai-stats-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.ai-stat-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:.25rem;padding:.75rem;font-size:.85rem;display:flex}.ai-stat-item span{color:var(--color-text-muted)}.ai-stat-item strong{color:var(--color-primary);font-size:1rem}.ai-highlights,.ai-teacher-note{background:var(--color-surface);border-radius:var(--radius-md);margin-bottom:1rem;padding:1.25rem}.ai-highlights h3,.ai-teacher-note h3{color:var(--color-text-main);margin:0 0 .75rem;font-size:1rem}.ai-highlights ul{color:var(--color-text-muted);margin:0;padding-left:1.25rem;line-height:1.6}.ai-teacher-note p{color:var(--color-text-main);margin:0;font-style:italic}@keyframes skeleton-pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.loading-skeleton-card{padding:1.5rem!important}.skeleton-pulse{animation:1.5s ease-in-out infinite skeleton-pulse}@media (width>=768px){.dashboard-header{flex-direction:row;align-items:center}}.date-container{flex-direction:column;gap:.25rem;display:flex}.date{color:var(--color-text-muted);margin:0;font-size:1rem}.timestamp{color:var(--color-text-muted);opacity:.85;font-size:.75rem}.child-profile{cursor:pointer;transition:transform var(--transition-fast), border-color var(--transition-fast);align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex;position:relative}.child-profile:hover{border-color:var(--color-primary-light);transform:translateY(-2px)}.child-avatar{border-radius:var(--radius-full);background:var(--color-bg);object-fit:cover;width:48px;height:48px}.child-info h2{margin:0;font-size:1.1rem}.child-info p{color:var(--color-text-muted);margin:0;font-size:.85rem}.child-dropdown{z-index:100;width:240px;box-shadow:var(--shadow-lg);background:var(--color-surface);padding:.75rem;position:absolute;top:110%;right:0}.child-dropdown-item{border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:.75rem;padding:.5rem;display:flex}.child-dropdown-item:hover{background:var(--color-bg)}.child-dropdown-item.active{background:var(--color-primary-bg);border:1px solid #0f766e26}.quick-actions-bar{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.quick-action-card{cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:.75rem;padding:1.25rem;display:flex}.quick-action-card:hover{border-color:var(--color-primary-light);background-color:var(--color-primary-bg);transform:translateY(-2px)}.quick-action-icon-container{border-radius:var(--radius-md);justify-content:center;align-items:center;width:36px;height:36px;display:flex}.quick-action-card span{color:var(--color-text-main);font-size:.9rem;font-weight:600}.section-title{align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.25rem;display:flex}.attention-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=768px){.attention-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}.attention-card{border-radius:var(--radius-lg);cursor:pointer;transition:transform var(--transition-fast);border:1px solid #0000;align-items:flex-start;gap:1rem;padding:1.25rem;display:flex}.attention-card:hover{transform:translateY(-2px)}.alert-urgent{background-color:var(--color-urgent-bg);color:var(--color-urgent);border-color:#ef444433}.alert-urgent h3{color:var(--color-urgent)}.alert-urgent p{color:#b91c1c}.alert-important{background-color:var(--color-important-bg);color:var(--color-important);border-color:#f59e0b33}.alert-important h3{color:#b45309}.alert-important p{color:#92400e}.attention-card h3{margin-bottom:.25rem;font-size:1rem}.attention-card p{font-size:.9rem}.dashboard-grid{grid-template-columns:1fr;gap:2rem;display:grid}@media (width>=1024px){.dashboard-grid{grid-template-columns:1fr 1fr}}.progress-details{flex-direction:column;gap:1.25rem;display:flex}.stat-row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-bottom:.75rem;display:flex}.stat-label-group{flex-direction:column;gap:.15rem;display:flex}.rating-text{color:var(--color-text-muted);font-size:.75rem}.stars{gap:.25rem;display:flex}.teacher-note{background:var(--color-bg);border-radius:var(--radius-lg);border:1px solid var(--color-border);margin-top:.5rem;padding:1.25rem;font-size:.95rem;font-style:italic}.teacher-note strong{color:var(--color-primary);margin-bottom:.25rem;font-style:normal;display:block}.attendance-grid{justify-content:space-between;align-items:center;gap:1rem;margin-top:.5rem;display:flex}.attendance-percentage{flex-direction:column;align-items:center;display:flex}.attendance-percentage h3{color:var(--color-primary);margin:0;font-size:2.25rem;line-height:1}.attendance-percentage span{color:var(--color-text-muted);font-size:.8rem}.attendance-streak-container{flex-direction:column;gap:.5rem;display:flex}.attendance-streak-title{color:var(--color-text-muted);font-size:.8rem;font-weight:600}.attendance-streak{gap:.35rem;display:flex}.streak-dot{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:28px;height:28px;font-size:.75rem;font-weight:700;display:flex}.streak-p{background-color:var(--color-success-bg);color:var(--color-success);border:1px solid #a8c3a066}.streak-a{background-color:var(--color-urgent-bg);color:var(--color-urgent);border:1px solid #ef444466}.event-list,.activity-list{flex-direction:column;gap:1rem;display:flex}.event-item,.activity-item{background:var(--color-bg);border-radius:var(--radius-lg);border:1px solid var(--color-border);transition:transform var(--transition-fast), border-color var(--transition-fast);align-items:center;gap:1rem;padding:1.25rem;display:flex}.event-item:hover,.activity-item:hover{border-color:var(--color-primary-light);transform:translateY(-2px)}.event-icon,.activity-icon{color:var(--color-general);background:var(--color-general-bg);border-radius:var(--radius-md);box-sizing:content-box;padding:.5rem}.event-item h4,.activity-item h4{margin:0 0 .25rem;font-size:1rem}.event-item p,.activity-item p{color:var(--color-text-muted);margin:0;font-size:.85rem}.empty-state{color:var(--color-text-muted);text-align:center;padding:2rem;font-style:italic}.fee-status-card{border-left:4px solid var(--color-primary);justify-content:space-between;align-items:center;gap:1.5rem;padding:1.5rem;display:flex}.fee-info h3{color:var(--color-primary);margin:.25rem 0;font-size:1.75rem}.fee-info p{color:var(--color-text-muted);margin:0;font-size:.85rem}.page-container{flex-direction:column;gap:2rem;display:flex}.page-header h1{margin-bottom:.5rem}.page-header p{color:var(--color-text-muted)}.announcements-list{flex-direction:column;gap:1.5rem;display:flex}.announcement-card{flex-direction:column;gap:1rem;display:flex}.announcement-header{justify-content:space-between;align-items:flex-start;display:flex}.title-group{align-items:center;gap:.75rem;display:flex}.title-group h2{margin:0;font-size:1.15rem}.icon-urgent{color:var(--color-urgent)}.icon-important{color:var(--color-important)}.icon-general{color:var(--color-general)}.badge-urgent{background:var(--color-urgent-bg);color:var(--color-urgent)}.badge-important{background:var(--color-important-bg);color:var(--color-important)}.badge-general{background:var(--color-general-bg);color:var(--color-general)}.announcement-desc{color:var(--color-text-main);line-height:1.6}.announcement-footer{color:var(--color-text-muted);border-top:1px solid var(--color-border);justify-content:space-between;margin-top:.5rem;padding-top:1rem;font-size:.85rem;display:flex}.hw-section h2{color:var(--color-text-muted);margin-bottom:1rem;font-size:1.25rem}.hw-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=768px){.hw-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}}.hw-card{flex-direction:column;gap:1rem;display:flex}.hw-header{justify-content:space-between;align-items:center;display:flex}.subject-badge{background:var(--color-bg);border-radius:var(--radius-full);padding:.25rem .75rem;font-size:.85rem;font-weight:500}.due-date{color:var(--color-text-muted);align-items:center;gap:.25rem;font-size:.85rem;display:flex}.overdue{color:var(--color-urgent);font-weight:500}.completed-text{color:var(--color-success)}.hw-card h3{margin:0;font-size:1.15rem}.completed-title{color:var(--color-text-muted);text-decoration:line-through}.mark-done-btn{width:100%;margin-top:auto}.hw-card.completed{opacity:.8;background:var(--color-bg)}.progress-history{flex-direction:column;gap:1.5rem;display:flex}.progress-card{flex-direction:column;gap:1.25rem;display:flex}.progress-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-bottom:1rem;display:flex}.progress-header h2{margin:0;font-size:1.15rem}.ratings-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=768px){.ratings-grid{grid-template-columns:repeat(3,1fr)}}.rating-item{background:var(--color-bg);border-radius:var(--radius-md);flex-direction:column;align-items:center;gap:.5rem;padding:1rem;display:flex}.rating-label{align-items:center;gap:.5rem;font-size:.95rem;font-weight:500;display:flex}.teacher-note-full{background:var(--color-primary-bg);border-radius:var(--radius-md);border-left:4px solid var(--color-primary);padding:1.25rem}.note-header{color:var(--color-primary);align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.photo-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=640px){.photo-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}.photo-card{flex-direction:column;padding:0;display:flex;overflow:hidden}.photo-image{object-fit:cover;width:100%;height:200px}.photo-content{padding:1.25rem}.photo-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.photo-header h3{align-items:center;gap:.5rem;margin:0;font-size:1.1rem;display:flex}.photo-date{color:var(--color-text-muted);font-size:.85rem}.events-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}.event-card-large{align-items:stretch;gap:1.5rem;display:flex}.event-date-block{background:var(--color-primary-bg);color:var(--color-primary);border-radius:var(--radius-md);flex-direction:column;justify-content:center;align-items:center;min-width:80px;padding:1rem;display:flex}.event-month{text-transform:uppercase;font-size:.9rem;font-weight:600}.event-day{font-size:1.75rem;font-weight:700;font-family:var(--font-heading)}.event-details-large{flex-direction:column;flex:1;justify-content:center;gap:.5rem;display:flex}.event-details-large h2{margin:0;font-size:1.25rem}.event-meta{color:var(--color-text-muted);gap:1.5rem;margin-top:.5rem;font-size:.9rem;display:flex}.event-meta span{align-items:center;gap:.5rem;display:flex}.chat-container{height:calc(100vh - 4rem);max-height:800px}.chat-header{justify-content:space-between;align-items:flex-start;display:flex}.status-badge{border-radius:var(--radius-full);align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9rem;font-weight:500;display:flex}.status-open{background:var(--color-success-bg);color:var(--color-success)}.status-closed{background:var(--color-bg);color:var(--color-text-muted)}.alert-box{background:var(--color-important-bg);color:#b45309;border-radius:var(--radius-md);text-align:center;padding:1rem;font-weight:500}.chat-window{flex-direction:column;flex:1;padding:0;display:flex;overflow:hidden}.chat-messages{background:var(--color-bg);flex-direction:column;flex:1;gap:1.5rem;padding:1.5rem;display:flex;overflow-y:auto}.message-wrapper{gap:1rem;max-width:80%;display:flex}.message-right{flex-direction:row-reverse;align-self:flex-end}.message-left{align-self:flex-start}.chat-avatar{border-radius:var(--radius-full);object-fit:cover;flex-shrink:0;width:36px;height:36px}.message-bubble{border-radius:var(--radius-lg);padding:1rem;position:relative}.my-message{background:var(--color-primary);color:#fff;border-bottom-right-radius:4px}.their-message{background:var(--color-surface);border:1px solid var(--color-border);border-bottom-left-radius:4px}.message-bubble p{margin-bottom:.25rem}.timestamp{opacity:.8;text-align:right;font-size:.75rem;display:block}.their-message .timestamp{color:var(--color-text-muted)}.chat-input-area{background:var(--color-surface);border-top:1px solid var(--color-border);gap:1rem;padding:1rem;display:flex}.chat-input-area input{border-radius:var(--radius-full);border:1px solid var(--color-border);transition:border-color var(--transition-fast);outline:none;flex:1;padding:.75rem 1rem;font-family:inherit;font-size:1rem}.chat-input-area input:focus{border-color:var(--color-primary)}.chat-input-area input:disabled{background:var(--color-bg);cursor:not-allowed}.send-btn{border-radius:var(--radius-full);width:48px;height:48px;padding:0}.send-btn:disabled{background:var(--color-border);cursor:not-allowed;transform:none}.chat-layout{grid-template-columns:1fr;gap:1.5rem;margin-top:1rem;display:grid}@media (width>=768px){.chat-layout{grid-template-columns:280px 1fr}}.chat-sidebar{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-card);flex-direction:column;display:flex;overflow:hidden}.chat-sidebar-header{border-bottom:1px solid var(--color-border);color:var(--color-primary);background-color:var(--color-bg);padding:1.25rem;font-size:1.1rem;font-weight:600}.chat-contacts-list{flex-direction:column;max-height:400px;display:flex;overflow-y:auto}@media (width>=768px){.chat-contacts-list{max-height:600px}}.chat-contact-item{cursor:pointer;border-bottom:1px solid var(--color-border);transition:all var(--transition-fast);text-align:left;align-items:center;gap:.75rem;padding:1rem;display:flex}.chat-contact-item:last-child{border-bottom:none}.chat-contact-item:hover{background-color:var(--color-bg)}.chat-contact-item.active{background-color:var(--color-primary-bg);border-left:4px solid var(--color-primary)}.chat-contact-avatar{border-radius:var(--radius-full);object-fit:cover;border:2px solid var(--color-border);width:40px;height:40px}.chat-contact-info{flex-direction:column;display:flex;overflow:hidden}.chat-contact-name{white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:600;overflow:hidden}.chat-contact-subtitle{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.profile-container{flex-direction:column;gap:2rem;display:flex}.profile-grid{grid-template-columns:1fr;gap:2rem;display:grid}@media (width>=992px){.profile-grid{grid-template-columns:1.5fr 1fr}}.profile-header-section{border-bottom:1px solid var(--color-border);align-items:center;gap:1.5rem;margin-bottom:1.5rem;padding-bottom:1.5rem;display:flex}.profile-avatar-wrapper{width:90px;height:90px;position:relative}.profile-avatar{border-radius:var(--radius-full);object-fit:cover;background-color:var(--color-primary-bg);border:3px solid var(--color-primary);width:100%;height:100%}.profile-meta h2{margin-bottom:.25rem;font-size:1.5rem}.profile-meta p{color:var(--color-text-muted);font-size:.95rem}.form-group{margin-bottom:1.25rem}.form-group label{color:var(--color-text-main);margin-bottom:.5rem;font-size:.9rem;font-weight:500;display:block}.form-control{border-radius:var(--radius-md);border:1px solid var(--color-border);width:100%;font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text-main);transition:all var(--transition-fast);padding:.75rem 1rem;font-size:.95rem}.form-control:focus{border-color:var(--color-primary);background-color:var(--color-surface);outline:none;box-shadow:0 0 0 3px #0f766e26}.form-row{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=576px){.form-row{grid-template-columns:1fr 1fr}}.settings-section-title{border-bottom:1px solid var(--color-border);color:var(--color-primary);margin-top:1.5rem;margin-bottom:1rem;padding-bottom:.5rem;font-size:1.1rem}.preference-item{justify-content:space-between;align-items:center;padding:.75rem 0;display:flex}.preference-info h4{margin-bottom:.15rem;font-size:.95rem}.preference-info p{color:var(--color-text-muted);font-size:.85rem}.switch{width:48px;height:24px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;background-color:var(--color-border);border-radius:var(--radius-full);transition:all .3s;position:absolute;inset:0}.slider:before{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:all .3s;position:absolute;bottom:3px;left:3px;box-shadow:0 1px 3px #0000001a}input:checked+.slider{background-color:var(--color-primary)}input:focus+.slider{box-shadow:0 0 1px var(--color-primary)}input:checked+.slider:before{transform:translate(24px)}.toast-success{background-color:var(--color-success-bg);border:1px solid var(--color-success);color:var(--color-success);border-radius:var(--radius-md);align-items:center;gap:.75rem;margin-bottom:1.5rem;padding:1rem;animation:.3s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.child-card-header{text-align:center;border-bottom:1px solid var(--color-border);flex-direction:column;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.5rem;display:flex}.child-profile-image{border-radius:var(--radius-full);object-fit:cover;background-color:var(--color-accent-bg);border:3px solid var(--color-accent);width:100px;height:100px}.child-card-name h3{margin-bottom:.25rem;font-size:1.3rem}.child-card-name p{color:var(--color-text-muted);font-size:.9rem;font-weight:500}.child-detail-row{border-bottom:1px dashed var(--color-border);justify-content:space-between;align-items:center;padding:.75rem 0;font-size:.95rem;display:flex}.child-detail-row:last-of-type{border-bottom:none}.child-detail-label{color:var(--color-text-muted);font-weight:500}.child-detail-value{color:var(--color-text-main);font-weight:600}.teacher-contact-card{background-color:var(--color-primary-bg);border-radius:var(--radius-md);border:1px solid #0f766e26;margin-top:1.5rem;padding:1rem}.teacher-contact-title{color:var(--color-primary);margin-bottom:.5rem;font-size:.9rem;font-weight:600}.teacher-contact-info{flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.dashboard-container{flex-direction:column;gap:2rem;display:flex}.dashboard-header{flex-direction:column-reverse;justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}@media (width>=768px){.dashboard-header{flex-direction:row;align-items:center}}.greeting{margin-bottom:.25rem;font-size:1.75rem}.date{color:var(--color-text-muted);font-size:1rem}.class-badge{background:var(--color-primary);color:#fff;align-items:center;padding:.75rem 1.25rem;display:flex}.class-info h2{color:#fff;margin:0;font-size:1.25rem}.class-info p{color:#fffc;margin:0;font-size:.85rem}.teacher-profile-header-card{cursor:pointer;transition:transform var(--transition-fast), border-color var(--transition-fast);align-items:center;gap:1rem;padding:.75rem 1.25rem;display:flex}.teacher-profile-header-card:hover{border-color:var(--color-primary-light);transform:translateY(-2px)}.teacher-avatar-dashboard{border-radius:var(--radius-full);background:var(--color-bg);object-fit:cover;border:2px solid var(--color-primary-light);width:48px;height:48px}.teacher-info-dashboard h2{color:var(--color-text-main);margin:0;font-size:1.1rem}.teacher-info-dashboard p{color:var(--color-text-muted);margin:0;font-size:.85rem}.quick-actions-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}@media (width>=768px){.quick-actions-grid{grid-template-columns:repeat(4,1fr)}}.action-btn{text-align:center;color:var(--color-text-main);transition:all var(--transition-fast);flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:1.5rem 1rem;font-weight:500;display:flex}.action-btn:hover{border-color:var(--color-primary-light);transform:translateY(-2px)}.action-icon{border-radius:var(--radius-full);justify-content:center;align-items:center;width:56px;height:56px;display:flex}.action-megaphone{background:var(--color-general-bg);color:var(--color-general)}.action-book{background:var(--color-important-bg);color:var(--color-important)}.action-activity{background:var(--color-success-bg);color:var(--color-success)}.action-camera{background:var(--color-primary-bg);color:var(--color-primary)}.stats-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}@media (width>=1024px){.stats-grid{grid-template-columns:repeat(4,1fr)}}.stat-card{align-items:center;gap:1rem;padding:1.25rem;display:flex}.stat-icon{border-radius:var(--radius-md);background:var(--color-bg);width:48px;height:48px;color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.stat-success{background:var(--color-success-bg);color:var(--color-success)}.stat-warning{background:var(--color-important-bg);color:var(--color-important)}.stat-urgent{background:var(--color-urgent-bg);color:var(--color-urgent)}.stat-info h3{margin:0;font-size:1.5rem;line-height:1}.stat-info p{color:var(--color-text-muted);margin-top:.25rem;font-size:.85rem}.students-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=640px){.students-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}.student-card{flex-direction:column;gap:1rem;display:flex}.student-header{align-items:center;gap:1rem;display:flex}.student-avatar{border-radius:var(--radius-full);background:var(--color-bg);object-fit:cover;width:56px;height:56px}.student-header h3{margin:0 0 .25rem;font-size:1.1rem}.student-quick-stats{background:var(--color-bg);border-radius:var(--radius-md);flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.stat-sm{color:var(--color-text-muted);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.update-btn{width:100%;margin-top:auto}.flex-header{flex-direction:column;gap:1rem}@media (width>=640px){.flex-header{flex-direction:row;justify-content:space-between;align-items:center}}.manage-list{flex-direction:column;gap:1.5rem;display:flex}.manage-card{flex-direction:column;padding:0;display:flex;overflow:hidden}@media (width>=640px){.manage-card{flex-direction:row}}.manage-card-content{flex:1;padding:1.5rem}.manage-actions{background:var(--color-bg);border-top:1px solid var(--color-border);flex-direction:row;display:flex}@media (width>=640px){.manage-actions{border-top:none;border-left:1px solid var(--color-border);flex-direction:column;width:60px}}.action-icon-btn{color:var(--color-text-muted);transition:all var(--transition-fast);flex:1;justify-content:center;align-items:center;padding:1rem;display:flex}.action-icon-btn:hover{background:var(--color-border);color:var(--color-text-main)}.action-icon-btn.delete:hover{background:var(--color-urgent-bg);color:var(--color-urgent)}.completion-stats{color:var(--color-text-muted);align-items:center;gap:1rem;margin-top:1rem;font-size:.85rem;display:flex}.stat-bar-container{background:var(--color-bg);border-radius:var(--radius-full);flex:1;height:6px;overflow:hidden}.stat-bar{background:var(--color-success);border-radius:var(--radius-full);height:100%}@media (width>=768px){.quick-actions-grid{grid-template-columns:repeat(6,1fr)!important}}.action-btn:hover{border-color:var(--color-primary-light)!important;box-shadow:0 0 0 2px #176b671a!important}.action-attendance{background:var(--color-success-bg);color:var(--color-success)}.action-report{background:var(--color-accent-bg);color:var(--color-accent)}.timetable-list{flex-direction:column;gap:.75rem;display:flex}.timetable-item{background:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.timetable-time{color:var(--color-text-muted);font-size:.8rem;font-weight:500}.timetable-subject{font-size:.95rem;font-weight:600}.timetable-room{color:var(--color-primary);background:var(--color-primary-bg);border-radius:var(--radius-sm);padding:.15rem .5rem;font-size:.8rem}.roster-table{border-collapse:collapse;text-align:left;width:100%}.roster-table th{border-bottom:2px solid var(--color-border);color:var(--color-text-muted);padding:.75rem 1rem;font-size:.85rem;font-weight:600}.roster-table td{border-bottom:1px solid var(--color-border);padding:.85rem 1rem;font-size:.9rem}.roster-student-info{align-items:center;gap:.75rem;display:flex}.status-indicator{border-radius:var(--radius-full);align-items:center;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.status-marked{background:var(--color-success-bg);color:var(--color-success)}.status-pending{background:var(--color-urgent-bg);color:var(--color-urgent)}.flagged-list{flex-direction:column;gap:.75rem;display:flex}.flagged-card{border-radius:var(--radius-md);background:var(--color-urgent-bg);color:var(--color-urgent);border:1px solid #ef444433;justify-content:space-between;align-items:center;padding:.85rem 1.25rem;display:flex}.flagged-info{flex-direction:column;gap:.15rem;display:flex}.flagged-name{font-size:.9rem;font-weight:600}.flagged-reason{color:var(--color-text-muted);font-size:.75rem}
