:root{font-family:Inter,system-ui,sans-serif;color:#17251d;background:#f5f8f6}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}.login{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#edf7f0,#f8faf8)}.login-card{background:#fff;width:min(100%,420px);padding:36px;border:1px solid #e3eee6;border-radius:22px;box-shadow:0 18px 55px #16452b12;display:flex;flex-direction:column}.mark{width:56px;height:56px;border-radius:15px;background:#e8f4ec;color:#176b45;display:grid;place-items:center;margin-bottom:20px}.login-card small,.content header small{letter-spacing:1.5px;color:#238653;font-weight:800}.login-card h1{font-size:25px;margin:8px 0}.login-card p,.card p{color:#748178;font-size:14px}.login-card label{font-size:13px;font-weight:700;margin:15px 0 7px}.login-card input{padding:13px;border:1px solid #dce7df;border-radius:10px}.login-card button,.welcome{background:#176b45;color:#fff;border:0;border-radius:10px;padding:14px;font-weight:750;margin-top:20px;cursor:pointer}.secure{display:flex;gap:8px;color:#688174;font-size:12px;margin-top:20px}.error{background:#fff0ef;color:#a3332b;padding:12px;border-radius:9px;margin-top:12px;font-size:13px}.shell{min-height:100vh;display:flex}aside{width:250px;background:#fff;border-right:1px solid #e7eee9;padding:22px 15px;display:flex;flex-direction:column}.brand{padding:0 8px 25px;color:#176b45}.brand b{display:block;letter-spacing:1px}.brand small,.bottom small{display:block;color:#829087;font-size:11px}.small{width:42px;height:42px;margin-bottom:10px}.navtitle{font-size:10px;letter-spacing:1.5px;color:#9aa79f;padding-left:10px}.nav{display:flex;align-items:center;gap:11px;width:100%;border:0;background:none;padding:12px;border-radius:10px;text-align:left;color:#637168;cursor:pointer;margin:2px 0;font-size:13px}.nav.active{background:#eaf5ee;color:#176b45;font-weight:750}.bottom{margin-top:auto;border-top:1px solid #edf1ee;padding:18px 8px 0;font-size:12px}.logout{display:flex;align-items:center;gap:8px;border:0;background:none;color:#8a554e;padding:12px 0;cursor:pointer}.content{flex:1;padding:30px clamp(18px,4vw,55px);max-width:1500px;margin:auto}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}header h2{margin:5px 0;font-size:25px}.refresh{padding:10px;border:1px solid #e1eae4;background:#fff;border-radius:10px;color:#176b45}.welcome{padding:25px 28px;margin:0;border-radius:17px}.welcome h2{margin:0 0 7px}.welcome p{margin:0;color:#d5eadc;font-size:13px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:20px 0}.stat,.card{background:#fff;border:1px solid #e7eee9;border-radius:15px;padding:20px}.stat svg{color:#238653}.stat span{display:block;color:#738078;font-size:12px;margin-top:12px}.stat strong{display:block;font-size:27px;margin-top:5px}.card h3{margin:0 0 8px}.notice{background:#f0f7f2;padding:14px;border-radius:10px;font-size:13px;color:#41654f}footer{text-align:center;color:#9aa69f;font-size:11px;margin-top:40px}.loading{min-height:100vh;display:grid;place-items:center;color:#176b45}@media(max-width:800px){.shell{display:block}aside{width:100%;padding:12px}.brand{padding-bottom:8px}.navtitle,.bottom{display:none}.nav{display:inline-flex;width:auto;padding:9px;font-size:11px}.stats{grid-template-columns:repeat(2,1fr)}.content{padding:20px 14px}}.student-heading,.form-heading,.form-actions,.student-toolbar,.student-row,.student-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.student-heading h3,.form-heading h3{margin:0}.primary-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#176b45;color:#fff;border:0;border-radius:9px;padding:11px 15px;cursor:pointer;font-weight:700}.primary-btn:disabled{opacity:.6;cursor:wait}.secondary-btn,.icon-btn{background:#fff;border:1px solid #dce7df;border-radius:9px;padding:9px;cursor:pointer;color:#176b45}.student-form{background:#f7faf8;border:1px solid #e4eee7;border-radius:13px;padding:20px;margin:20px 0}.student-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:18px}.student-fields label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:650}.student-fields input,.student-fields textarea,.student-toolbar input{width:100%;padding:12px;border:1px solid #dce7df;border-radius:9px;background:#fff;font:inherit}.student-fields textarea{min-height:85px;resize:vertical}.full-field{grid-column:1/-1}.form-actions{justify-content:flex-end;margin-top:18px}.student-toolbar{margin:22px 0 12px}.student-toolbar input{max-width:350px}.student-toolbar span{color:#748178;font-size:12px}.student-list{display:flex;flex-direction:column}.student-row{justify-content:flex-start;border-top:1px solid #edf1ee;padding:15px 2px}.student-avatar{width:42px;height:42px;flex-shrink:0;display:grid;place-items:center;border-radius:12px;background:#e8f4ec;color:#176b45;font-weight:800}.student-info{flex:1;min-width:0}.student-info strong,.student-info span,.student-info small{display:block}.student-info span,.student-info small{color:#748178;font-size:12px;margin-top:4px}.student-actions{justify-content:flex-end}.delete-btn{color:#b34b43}.empty-state{text-align:center;padding:40px 15px;color:#748178}.empty-state svg{color:#238653}.empty-state h3{color:#17251d}@media(max-width:600px){.student-fields{grid-template-columns:1fr}.full-field{grid-column:auto}.student-heading{align-items:flex-start}.student-heading .primary-btn{padding:10px}.student-row{gap:8px}.student-actions{gap:5px}}.public-home{min-height:100vh;background:#f7faf8;color:#18352b}.public-header{display:flex;justify-content:space-between;align-items:center;padding:22px 7%;background:#fff;border-bottom:1px solid #e5eee8}.public-brand{display:flex;align-items:center;gap:12px}.public-brand strong,.public-brand small{display:block}.public-brand small{color:#718078;margin-top:4px}.public-hero{padding:90px 8%;background:#e7f3eb;text-align:center}.public-hero span{color:#238052;font-weight:700;letter-spacing:2px}.public-hero h1{max-width:800px;margin:20px auto;font-size:clamp(32px,5vw,54px);line-height:1.2}.public-hero p{max-width:650px;margin:0 auto 28px;color:#607168;line-height:1.8}.public-about,.public-announcements{max-width:1000px;margin:65px auto;padding:0 22px}.public-announcements h2{color:#174d35;font-size:28px;margin-bottom:12px}.public-about p{line-height:1.8;color:#607168}.public-announcement-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:28px}.public-announcement{background:linear-gradient(145deg,#fff,#f5faf6);border:1px solid #dcebe1;border-left:5px solid #258653;border-radius:16px;padding:24px;box-shadow:0 5px 18px #144b2d0f;transition:transform .2s ease,box-shadow .2s ease}.public-announcement:hover{transform:translateY(-4px);box-shadow:0 10px 25px #144b2d1f}.announcement-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.announcement-label{background:#e3f3e9;color:#17643b;font-size:11px;font-weight:800;letter-spacing:1px;padding:7px 12px;border-radius:20px}.public-announcement h3{color:#174d35;font-size:20px;margin:0 0 12px}.public-announcement p{color:#56685e;line-height:1.8;white-space:pre-wrap;margin-bottom:0}.public-announcement small{color:#718078;font-size:12px}.public-footer{padding:25px;text-align:center;color:#718078;background:#fff}.home-back-btn{position:absolute;top:15px;left:15px;z-index:2}.public-contact{max-width:1000px;margin:55px auto;padding:40px 24px;text-align:center;background:linear-gradient(135deg,#eaf6ee,#fff);border:1px solid #dcebe1;border-radius:20px}.public-contact h2{color:#174d35;font-size:28px;margin-bottom:12px}.public-contact p{color:#607168;line-height:1.7}.public-contact h3{color:#17643b;font-size:30px;margin:25px 0}.contact-buttons{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.contact-buttons a{display:inline-block;text-decoration:none;padding:13px 22px;border-radius:10px}.whatsapp-btn{background:#218b50}@media(max-width:600px){.public-contact h2{font-size:23px}.public-contact h3{font-size:25px}.contact-buttons a{width:100%}}.public-about{max-width:1000px;margin:65px auto;padding:35px 22px;text-align:center}.about-label{display:inline-block;background:#e3f3e9;color:#17643b;padding:8px 16px;border-radius:30px;font-size:12px;font-weight:800;letter-spacing:1px}.public-about h2{color:#174d35;font-size:30px;margin:20px 0}.about-intro{max-width:750px;margin:0 auto;color:#607168;line-height:1.9}.about-services{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:35px}.about-service{background:#fff;border:1px solid #e1ece5;border-radius:16px;padding:25px 20px;box-shadow:0 5px 18px #144b2d0f;transition:transform .2s ease}.about-service:hover{transform:translateY(-5px)}.about-service h3{color:#218653;font-size:18px;margin-top:0}.about-service p{color:#607168;line-height:1.7;margin-bottom:0}@media(max-width:600px){.public-about h2{font-size:24px}}.public-hero{max-width:1200px;margin:35px auto;padding:65px 55px;border-radius:25px;background:linear-gradient(125deg,#123f2c,#218653);color:#fff;display:grid;grid-template-columns:1.5fr .8fr;align-items:center;gap:35px;overflow:hidden}.hero-label{display:inline-block;color:#d2f5dc;font-size:12px;font-weight:800;letter-spacing:2px;margin-bottom:18px}.hero-content h1{font-size:clamp(34px,5vw,54px);line-height:1.15;margin:0 0 20px}.hero-content h1 span{color:#a8efbd}.hero-content>p{max-width:600px;color:#e0f0e6;line-height:1.8;font-size:17px}.hero-features{display:flex;flex-wrap:wrap;gap:18px;margin:25px 0;color:#e0f0e6;font-size:13px}.hero-side{background:#ffffff1f;border:1px solid rgba(255,255,255,.2);border-radius:22px;padding:35px 20px;text-align:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.hero-symbol{width:140px;height:140px;margin:0 auto 20px;display:grid;place-items:center;background:#ffffff26;border-radius:50%;color:#c9f3d6}.hero-side h3{font-size:25px;margin:10px 0}.hero-side p{color:#e0f0e6}.hero-side>span{color:#b9efca;font-weight:700;letter-spacing:2px}@media(max-width:750px){.public-hero{grid-template-columns:1fr;padding:40px 24px;margin:20px 14px}.hero-side{max-width:320px;width:100%;margin:auto}}:root{--green: #176b45;--green-dark: #104b32;--green-light: #eaf5ee;--green-soft: #f3f8f4;--text: #17251d;--muted: #748178;--border: #e4ece6;--white: #ffffff;--shadow: 0 8px 28px rgba(22, 75, 46, .07)}body{background:#f5f8f6;color:var(--text)}button{transition:all .2s ease}button:hover{filter:brightness(.96);transform:translateY(-1px)}input,textarea,select{outline:none;transition:border-color .2s,box-shadow .2s}input:focus,textarea:focus,select:focus{border-color:#329365!important;box-shadow:0 0 0 3px #3293651a}.shell{background:#f5f8f6}aside{box-shadow:5px 0 25px #14462a09;position:relative;z-index:2}.brand{padding-top:12px}.brand b{font-size:16px}.nav{min-height:44px;font-size:13px;transition:all .2s ease}.nav:hover{background:#f1f7f3;color:var(--green)}.nav.active{background:#e7f4eb;color:var(--green);box-shadow:inset 3px 0 0 var(--green)}.content{width:100%}.content header{padding-bottom:15px;border-bottom:1px solid var(--border)}.content header h2{font-size:26px;font-weight:800;letter-spacing:-.5px}.welcome{background:linear-gradient(120deg,#104b32,#218653);box-shadow:0 12px 30px #176b4526;position:relative;overflow:hidden}.welcome:after{content:"";position:absolute;width:220px;height:220px;border:35px solid rgba(255,255,255,.07);border-radius:50%;right:-55px;top:-100px}.welcome h2{font-size:24px;font-weight:800}.welcome p{line-height:1.7}.stats{gap:18px;margin:24px 0}.stat{border-radius:17px;padding:23px;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s}.stat:hover{transform:translateY(-4px);box-shadow:0 12px 30px #164b2e1c}.stat strong{font-size:30px;font-weight:800;color:var(--green-dark)}.stat span{font-size:13px;line-height:1.5}.card{border-radius:17px;padding:23px;box-shadow:var(--shadow);margin-bottom:18px}.card h3{font-size:17px;font-weight:800}.card p{line-height:1.7}.notice{border:1px solid #dcece1;line-height:1.7}.student-form{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:24px}.student-fields input,.student-fields textarea,.student-toolbar input{min-height:43px;color:var(--text)}.student-fields label{color:#43564a}.student-row{padding:17px 10px;border-radius:10px;transition:background .2s}.student-row:hover{background:#f7faf8}.student-avatar{border-radius:14px;background:linear-gradient(145deg,#e8f5ec,#d6eddf)}.primary-btn{background:linear-gradient(120deg,#176b45,#218653);box-shadow:0 5px 12px #176b4521}.secondary-btn:hover,.icon-btn:hover{background:var(--green-light)}.login{background:radial-gradient(circle at 15% 15%,#dcefe2 0,transparent 35%),linear-gradient(135deg,#edf7f0,#f8faf8)}.login-card{border-radius:24px;padding:40px;box-shadow:0 25px 70px #104b321f}.login-card h1{font-weight:850;letter-spacing:-.5px}.login-card input{min-height:46px}.login-card button{min-height:47px;background:linear-gradient(120deg,#176b45,#218653);box-shadow:0 6px 16px #176b4526}.public-home{background:#f6faf7}.public-header{padding:20px 7%;box-shadow:0 3px 15px #14462a0a}.public-brand strong{color:var(--green-dark);font-size:17px}.public-hero{box-shadow:0 18px 45px #104b3221}.hero-content h1{font-weight:850;letter-spacing:-1.5px}.hero-content>p{font-size:16px}.hero-side{box-shadow:inset 0 0 30px #ffffff0a}.public-about,.public-announcements{padding-top:20px;padding-bottom:20px}.about-service,.public-announcement,.public-contact{box-shadow:var(--shadow)}.section-heading,.student-heading,.form-heading{margin-bottom:18px}.empty-state{background:#fff;border:1px dashed #dce8df;border-radius:15px}@media(max-width:800px){.shell{display:block}aside{border-right:0;border-bottom:1px solid var(--border);box-shadow:0 4px 15px #14462a0a}.content header h2{font-size:21px}.welcome{padding:22px}.welcome h2{font-size:21px}.stats{gap:12px}.stat{padding:17px}.stat strong{font-size:25px}}@media(max-width:600px){.login-card{padding:27px 22px}.public-header{padding:16px}.public-hero{padding:35px 20px;border-radius:18px}.hero-content h1{font-size:34px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.card{padding:17px}.student-form{padding:16px}.student-toolbar{align-items:stretch;flex-direction:column}.student-toolbar input{max-width:100%}.student-row{flex-wrap:wrap}.student-actions{width:100%;justify-content:flex-end}}.panel{min-height:100vh;background:#f4f8f5;color:#17251d}.panel-header{background:#145b3b;color:#fff;padding:22px 6%;display:flex;align-items:center;justify-content:space-between;box-shadow:0 4px 18px #00000014}.panel-header h1{margin:0;font-size:24px;font-weight:800}.panel-header p{margin:5px 0 0;color:#d7ebdf;font-size:13px}.panel-header button{background:#fff;color:#145b3b;border:0;border-radius:9px;padding:11px 18px;font-weight:700;cursor:pointer}.panel-content{max-width:1150px;width:92%;margin:30px auto}.section-heading{background:#fff;padding:25px;border-radius:16px;border:1px solid #e3ece5;margin-bottom:22px;box-shadow:0 5px 20px #144b2e0d}.section-heading h2{color:#145b3b;font-size:25px;margin:0 0 8px}.section-heading p{color:#718078;margin:0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:25px}.stat-card{background:#fff;border:1px solid #e3ece5;border-radius:16px;padding:23px;box-shadow:0 5px 20px #144b2e0d}.stat-card h3{color:#176b45;font-size:32px;margin:0 0 8px}.stat-card p{color:#718078;font-size:13px;margin:0}.content-card{background:#fff;border:1px solid #e3ece5;border-radius:16px;padding:24px;margin-bottom:20px;box-shadow:0 5px 20px #144b2e0d}.content-card h2{color:#145b3b;font-size:19px;margin:0 0 18px;padding-bottom:13px;border-bottom:1px solid #edf2ee}.content-card>p{color:#718078;font-size:14px}.student-item{padding:16px;margin:10px 0;background:#f6faf7;border:1px solid #e7efe9;border-radius:12px}.student-item strong{display:block;color:#176b45;font-size:15px;margin-bottom:7px}.student-item p{color:#46574c;font-size:14px;line-height:1.7;margin:5px 0}.student-item small{display:block;color:#849087;font-size:12px;margin-top:8px}.error-message{background:#fff0ef;color:#a3332b;padding:14px;border-radius:10px;margin-bottom:18px}@media(max-width:750px){.stats-grid{grid-template-columns:repeat(2,1fr)}.panel-header{padding:18px}.panel-content{width:94%;margin:20px auto}.section-heading h2{font-size:21px}.content-card{padding:17px}}@media(max-width:400px){.stats-grid{grid-template-columns:1fr}}.shell{background:#f4f8f5}.shell aside{width:260px;min-width:260px;background:#fff;border-right:1px solid #e4ece6;padding:25px 17px}.shell .brand{padding:8px 10px 30px}.shell .brand b{font-size:17px;color:#145b3b}.shell .brand small{margin-top:5px;font-size:12px}.shell .navtitle{margin:0 0 12px;font-weight:800}.shell .nav{min-height:46px;padding:12px 13px;margin:3px 0;border-radius:10px;font-size:13px;transition:.2s ease}.shell .nav:hover{background:#f0f7f2;color:#176b45}.shell .nav.active{background:#e8f4ec;color:#176b45;box-shadow:inset 3px 0 #176b45}.shell .bottom{padding-top:20px}.shell .bottom b{color:#214b35}.shell .content{padding:32px clamp(18px,4vw,55px)}.shell .content>header{padding-bottom:20px;border-bottom:1px solid #e4ece6;margin-bottom:25px}.shell .content>header h2{font-size:27px;font-weight:800;color:#173b29}.shell .content>header small{font-size:11px;letter-spacing:1.8px}.shell .refresh{width:42px;height:42px;display:grid;place-items:center;cursor:pointer;transition:.2s}.shell .refresh:hover{background:#eaf5ee}.shell .welcome{padding:30px;border-radius:18px;background:linear-gradient(120deg,#104b32,#218653);box-shadow:0 12px 28px #176b4524}.shell .welcome h2{font-size:25px;font-weight:800}.shell .welcome p{font-size:14px;line-height:1.7}.shell .stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:25px 0}.shell .stat{min-width:0;border-radius:17px;padding:23px;box-shadow:0 5px 22px #144b2e0f;transition:.2s ease}.shell .stat:hover{transform:translateY(-4px);box-shadow:0 12px 28px #144b2e1c}.shell .stat svg{width:24px;height:24px;color:#218653}.shell .stat span{font-size:13px;font-weight:650}.shell .stat strong{font-size:30px;font-weight:850;color:#145b3b}.shell .card{border-radius:17px;padding:25px;box-shadow:0 5px 22px #144b2e0d}.shell .card h3{font-size:18px;color:#174d35}.shell .notice{border:1px solid #dcece1;line-height:1.7}.shell .error{margin-bottom:20px}@media(max-width:950px){.shell .stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.shell aside{width:100%;min-width:0}.shell .content{padding:22px 15px}.shell .content>header h2{font-size:22px}.shell .welcome{padding:23px}.shell .welcome h2{font-size:21px}}@media(max-width:400px){.shell .stats{grid-template-columns:1fr}}
