.login-container{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:1rem;background:linear-gradient(135deg,#e0f2fe,#f0fdf4)}.login-card{background:var(--white);border:var(--border);border-radius:12px;padding:2rem;box-shadow:var(--shadow);width:100%;max-width:400px;position:relative}.login-card:before{content:"";position:absolute;top:0;left:0;right:0;height:8px;background:linear-gradient(90deg,var(--primary-blue),var(--accent-yellow),var(--accent-green));border-radius:12px 12px 0 0}.login-header{text-align:center;margin-bottom:2rem}.login-header h1{color:var(--primary-blue);font-size:2rem;font-weight:800;margin-bottom:.5rem;text-shadow:2px 2px 0px var(--accent-yellow)}.login-header p{color:var(--gray-dark);font-size:1rem}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column}.form-group label{font-weight:600;color:var(--black);margin-bottom:.5rem;font-size:.9rem}.form-group input{padding:.8rem 1rem;border:2px solid var(--black);border-radius:8px;font-size:1rem;font-family:inherit;transition:all .2s ease;background:var(--white)}.form-group input:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px #2563eb1a}.form-group input:disabled{background:var(--gray-light);cursor:not-allowed}.login-button{padding:1rem;background:var(--primary-blue);color:var(--white);border:2px solid var(--black);border-radius:8px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow);text-transform:uppercase;letter-spacing:.5px}.login-button:hover:not(:disabled){background:var(--secondary-blue);transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--black)}.login-button:disabled{background:var(--gray-light);color:var(--gray-dark);cursor:not-allowed;transform:none;box-shadow:var(--shadow)}.login-info{margin-top:1.5rem;padding:1rem;background:#fef3c7;border:2px solid #f59e0b;border-radius:8px;text-align:center}.login-info p{margin:.3rem 0;font-size:.8rem;color:#92400e}.login-info p:first-child{font-weight:600;margin-bottom:.5rem}.error-message{background:#fee2e2;border:2px solid #ef4444;color:#dc2626;padding:.8rem;border-radius:8px;text-align:center;font-weight:600;font-size:.9rem}@media(max-width:480px){.login-card{padding:1.5rem}.login-header h1{font-size:1.7rem}}.filter-section{display:flex;gap:1rem;align-items:end;margin-bottom:2rem;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{font-weight:600;color:var(--black);font-size:.9rem}.filter-group select{padding:.6rem;border:2px solid var(--black);border-radius:6px;font-family:inherit;background:var(--white);min-width:120px}.refresh-button{background:var(--primary-blue);color:#fff;border:2px solid var(--black);border-radius:6px;padding:.6rem 1rem;cursor:pointer;font-size:1.2rem;box-shadow:var(--shadow-sm);transition:all .2s ease}.refresh-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow)}.refresh-button:disabled{opacity:.6;cursor:not-allowed}.statistics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:var(--white);border:2px solid var(--black);border-radius:8px;padding:1rem;text-align:center;box-shadow:var(--shadow-sm)}.stat-number{font-size:2rem;font-weight:800;margin-bottom:.5rem}.stat-label{font-size:.8rem;font-weight:600;color:var(--gray-dark);text-transform:uppercase;letter-spacing:.5px}.tab-navigation{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid var(--gray-light)}.tab-button{padding:.8rem 1.5rem;background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;font-weight:600;color:var(--gray-dark);transition:all .2s ease}.tab-button.active{color:var(--primary-blue);border-bottom-color:var(--primary-blue)}.tab-button:hover:not(.active){color:var(--black);border-bottom-color:var(--gray-dark)}.presensi-list{display:flex;flex-direction:column;gap:1rem}.presensi-item{background:var(--white);border:2px solid var(--black);border-radius:8px;padding:1.5rem;box-shadow:var(--shadow-sm);transition:all .2s ease}.presensi-item:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.presensi-header{display:flex;justify-content:between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.presensi-date{font-weight:700;color:var(--black);font-size:1rem;flex:1}.presensi-status{padding:.4rem .8rem;border-radius:20px;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;box-shadow:1px 1px #0003}.presensi-details{display:flex;flex-direction:column;gap:.5rem}.detail-item{display:flex;gap:.5rem;flex-wrap:wrap}.detail-item strong{color:var(--black);min-width:120px}.empty-list{text-align:center;padding:3rem;color:var(--gray-dark)}@media(max-width:768px){.filter-section{flex-direction:column;align-items:stretch}.presensi-header{flex-direction:column;align-items:flex-start}.tab-navigation{flex-direction:column}.detail-item{flex-direction:column;gap:.2rem}.detail-item strong{min-width:auto}}.export-button{padding:.6rem 1rem;color:#fff;border:2px solid var(--black);border-radius:6px;cursor:pointer;font-weight:600;box-shadow:var(--shadow-sm);transition:all .2s ease;font-size:.9rem}.export-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow)}.export-button:disabled{opacity:.6;cursor:not-allowed}.rekap-table-container{overflow-x:auto;margin-top:1rem;border:2px solid var(--black);border-radius:8px;background:var(--white)}.rekap-table{width:100%;border-collapse:collapse;font-size:.9rem}.rekap-table th{background:var(--primary-blue);color:#fff;padding:1rem .8rem;text-align:left;font-weight:700;border-bottom:2px solid var(--black)}.rekap-table td{padding:.8rem;border-bottom:1px solid var(--gray-light)}.rekap-table tr:nth-child(2n){background:#f8fafc}.rekap-table tr:hover{background:#f0f9ff}.rekap-table .nama-siswa{font-weight:600;color:var(--black)}.rekap-table .number-cell{text-align:center;font-weight:600}.rekap-table .presentase-cell{text-align:center;font-weight:700;font-size:.85rem}@media print{.navigation-controls,.filter-section,.export-button{display:none!important}.card{border:none!important;box-shadow:none!important;padding:0!important}.rekap-table-container{border:1px solid #000!important}.rekap-table th{background:#f3f4f6!important;color:#000!important;border:1px solid #000!important}.rekap-table td{border:1px solid #ddd!important}}@media(max-width:768px){.rekap-table{font-size:.8rem}.rekap-table th,.rekap-table td{padding:.6rem .4rem}.filter-section{flex-direction:column}.filter-group{width:100%}}.app{max-width:1000px;margin:0 auto;padding:15px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh}h1{text-align:center;color:#2c3e50;margin-bottom:25px;font-size:24px}h2{color:#34495e;margin-bottom:15px;text-align:center;font-size:18px}.component{background:#f8f9fa;border-radius:8px;padding:20px;margin-bottom:20px;box-shadow:0 1px 5px #0000001a;border:1px solid #e9ecef}.button-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;justify-content:center}.school-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;max-width:300px;margin:0 auto}.subject-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;justify-content:center}.day-button,.school-button,.subject-button{padding:12px 8px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;text-align:center;min-height:auto}.day-button{background:#3498db;color:#fff}.day-button:hover{background:#2980b9}.day-button.selected{background:#2c3e50;box-shadow:0 2px 4px #0003}.school-button{background:#9b59b6;color:#fff}.school-button:hover:not(.disabled){background:#8e44ad}.school-button.selected{background:#2c3e50;box-shadow:0 2px 4px #0003}.school-button.disabled{background:#bdc3c7;cursor:not-allowed;opacity:.5}.subject-button{background:#27ae60;color:#fff;padding:10px 8px;font-size:13px;min-height:50px;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.3}.subject-button:hover{background:#219a52}.subject-button.selected{background:#2c3e50;box-shadow:0 2px 4px #0003}.selection-preview{background:#e8f4fc;border-radius:8px;padding:15px;margin-top:20px;border-left:4px solid #3498db;font-size:14px}.selection-preview h3{color:#2c3e50;margin-bottom:10px;font-size:16px}.selection-preview p{margin:3px 0;color:#34495e}.components-container{display:flex;flex-direction:column;gap:15px}@media(max-width:768px){.button-grid{grid-template-columns:repeat(3,1fr)}.subject-grid{grid-template-columns:repeat(2,1fr)}.component{padding:15px}.day-button,.school-button,.subject-button{padding:10px 6px;font-size:13px}}@media(max-width:480px){.button-grid{grid-template-columns:repeat(2,1fr)}.subject-grid{grid-template-columns:1fr}.app{padding:10px}h1{font-size:20px;margin-bottom:20px}}.class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;justify-content:center}.class-button{background:#e67e22;color:#fff;padding:12px 8px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;text-align:center}.class-button:hover{background:#d35400}.class-button.selected{background:#2c3e50;box-shadow:0 2px 4px #0003}.navigation-section{text-align:center;margin-top:20px;padding-top:15px;border-top:1px solid #eee}.navigation-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 24px;font-size:16px;font-weight:700;border-radius:8px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #0003}.navigation-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000004d}.navigation-button:active{transform:translateY(0)}.btn-back-home{background:var(--accent-yellow);color:var(--black);border:2px solid var(--black);border-radius:6px;padding:.5rem 1rem;cursor:pointer;font-weight:600;box-shadow:2px 2px 0 var(--black);margin-bottom:1rem;transition:all .2s ease}.btn-back-home:hover{transform:translateY(-2px);box-shadow:3px 3px 0 var(--black)}.auto-selected-text{text-align:center;color:#27ae60;font-style:italic;margin-top:10px}.navigation-hint{text-align:center;font-style:italic;color:#666;margin-top:5px}:root{--primary-blue: #2563eb;--secondary-blue: #3b82f6;--accent-yellow: #fbbf24;--accent-red: #ef4444;--accent-green: #10b981;--white: #ffffff;--black: #000000;--gray-light: #f3f4f6;--gray-dark: #374151;--shadow: 4px 4px 0px var(--black);--shadow-sm: 2px 2px 0px var(--black);--border: 3px solid var(--black)}.absensi-container{max-width:1000px;margin:0 auto;padding:1rem;scroll-margin-top:0}.absensi-header{color:var(--primary-blue);font-size:2.5rem;font-weight:800;margin-bottom:1.5rem;text-align:center;text-shadow:2px 2px 0px var(--accent-yellow);letter-spacing:-.5px}.navigation-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1rem;background:var(--white);border:var(--border);border-radius:12px;box-shadow:var(--shadow-sm)}.nav-button{padding:.8rem 1.5rem;font-size:1rem;font-weight:700;border:var(--border);border-radius:8px;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:.5rem}.nav-button:disabled{background:var(--gray-light);color:var(--gray-dark);cursor:not-allowed;opacity:.6}.nav-button:not(:disabled):hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--black)}.btn-back{background:var(--accent-yellow);color:var(--black)}.btn-forward{background:var(--primary-blue);color:var(--white)}.info-card{background:var(--white);border:var(--border);border-radius:12px;box-shadow:var(--shadow-sm);padding:1.5rem;margin:1rem 0;position:relative;background:linear-gradient(135deg,#fff,#f8fafc)}.info-card:before{content:"";position:absolute;top:0;left:0;width:8px;height:100%;background:linear-gradient(180deg,var(--primary-blue),var(--accent-green));border-radius:8px 0 0 8px}.info-item{display:flex;align-items:center;margin-bottom:.8rem;padding:.5rem;background:var(--white);border:2px solid var(--gray-light);border-radius:6px;transition:all .3s ease}.info-item:hover{border-color:var(--primary-blue);transform:translate(4px);background:#f0f9ff}.info-icon{font-size:1.2rem;margin-right:1rem;width:30px;text-align:center}.info-label{font-weight:600;color:var(--gray-dark);font-size:.9rem;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.2rem}.info-value{font-weight:700;color:var(--black);font-size:1.1rem}.teacher-info{background:linear-gradient(135deg,#fef3c7,#fef7ed);border:3px solid var(--accent-yellow)}.status-badge{display:inline-block;padding:.3rem .8rem;border:2px solid var(--black);border-radius:20px;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;box-shadow:2px 2px 0 var(--black)}.loading-text{text-align:center;font-size:1.2rem;font-weight:600;color:var(--primary-blue);margin:2rem 0}.loading-pulse{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.error-message{background:#fee2e2;border:3px solid #dc2626;color:#dc2626;padding:1rem;border-radius:8px;margin:1rem 0;font-weight:600;text-align:center;box-shadow:var(--shadow-sm)}.success-message{background:#d1fae5;border:3px solid #059669;color:#059669;padding:1rem;border-radius:8px;margin:1rem 0;font-weight:600;text-align:center;box-shadow:var(--shadow-sm)}.siswa-card{background:var(--white);border:var(--border);border-radius:12px;padding:1.5rem;margin-bottom:1rem;box-shadow:var(--shadow-sm);transition:all .3s ease;display:flex;justify-content:space-between;align-items:center;position:relative;overflow:hidden}.siswa-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--gray-light);transition:all .3s ease}.siswa-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.siswa-nama{font-size:1.2rem;font-weight:700;color:var(--black);margin:0;flex:1;padding:.8rem 1rem;border-radius:8px;transition:all .3s ease;background:transparent}.siswa-card[data-status=Hadir]{border-color:#10b981}.siswa-card[data-status=Hadir]:before{background:#10b981}.siswa-card[data-status=Hadir] .siswa-nama{background:#d1fae5;color:#065f46;border:2px solid #10b981;font-weight:800}.siswa-card[data-status=Izin]{border-color:#f59e0b}.siswa-card[data-status=Izin]:before{background:#f59e0b}.siswa-card[data-status=Izin] .siswa-nama{background:#fef3c7;color:#92400e;border:2px solid #f59e0b;font-weight:800}.siswa-card[data-status=Sakit]{border-color:#ef4444}.siswa-card[data-status=Sakit]:before{background:#ef4444}.siswa-card[data-status=Sakit] .siswa-nama{background:#fee2e2;color:#991b1b;border:2px solid #ef4444;font-weight:800}.siswa-card[data-status=Alpa]{border-color:#6b7280}.siswa-card[data-status=Alpa]:before{background:#6b7280}.siswa-card[data-status=Alpa] .siswa-nama{background:#f3f4f6;color:#374151;border:2px solid #6b7280;font-weight:800}.siswa-card[data-status=Terlambat]{border-color:#b45309}.siswa-card[data-status=Terlambat]:before{background:#b45309}.siswa-card[data-status=Terlambat] .siswa-nama{background:#feeada;color:#b45309;border:2px solid #b45309;font-weight:800}.siswa-nama:after{content:"";margin-left:.5rem;font-size:.8rem;font-weight:600;padding:.2rem .5rem;border-radius:12px;background:var(--white)}.siswa-card[data-status=Hadir] .siswa-nama:after{content:"HADIR";background:#10b981;color:#fff}.siswa-card[data-status=Izin] .siswa-nama:after{content:"IZIN";background:#f59e0b;color:#fff}.siswa-card[data-status=Sakit] .siswa-nama:after{content:"SAKIT";background:#ef4444;color:#fff}.siswa-card[data-status=Alpa] .siswa-nama:after{content:"ALPA";background:#6b7280;color:#fff}.siswa-card[data-status=Terlambat] .siswa-nama:after{content:"TERLAMBAT";background:#b45309;color:#fff}.status-options{display:flex;gap:.5rem;flex-wrap:wrap}.status-option{padding:.6rem 1rem;border:2px solid var(--black);border-radius:6px;cursor:pointer;font-weight:600;font-size:.9rem;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px;position:relative;background:var(--white)}.status-radio{display:none}.status-hadir{color:#065f46;border-color:#065f46}.status-izin{color:#92400e;border-color:#92400e}.status-sakit{color:#991b1b;border-color:#991b1b}.status-alpa{color:#374151;border-color:#374151}.status-terlambat{color:#b45309;border-color:#b45309}.status-option:has(.status-radio:checked){transform:scale(1.05);box-shadow:2px 2px 0 var(--black);font-weight:800;color:#fff}.status-hadir:has(.status-radio:checked){background:#10b981;border-color:#065f46}.status-izin:has(.status-radio:checked){background:#f59e0b;border-color:#92400e}.status-sakit:has(.status-radio:checked){background:#ef4444;border-color:#991b1b}.status-alpa:has(.status-radio:checked){background:#6b7280;border-color:#374151}.status-terlambat:has(.status-radio:checked){background:#f97316;border-color:#b45309}.status-option:hover{transform:translateY(-1px)}.status-hadir:hover{background:#d1fae5}.status-izin:hover{background:#fef3c7}.status-sakit:hover{background:#fee2e2}.status-alpa:hover{background:#f3f4f6}.status-terlambat:hover{background:#fff7ed}.form-actions{display:flex;gap:1rem;justify-content:center;margin-top:2rem;padding-top:2rem;border-top:3px dashed var(--black);flex-wrap:wrap}.submit-button,.share-button{padding:1rem 2rem;font-size:1.1rem;font-weight:700;border:var(--border);border-radius:8px;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px;min-width:200px}.submit-button{background:var(--accent-green);color:var(--white);box-shadow:var(--shadow)}.submit-button:hover:not(:disabled){background:#059669;transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--black)}.submit-button:disabled{background:var(--gray-light);color:var(--gray-dark);cursor:not-allowed;opacity:.6}.share-button{background:var(--accent-yellow);color:var(--black);box-shadow:var(--shadow)}.share-button:hover{background:#f59e0b;transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--black)}.empty-state{text-align:center;padding:3rem;background:var(--white);border:var(--border);border-radius:12px;box-shadow:var(--shadow-sm)}.empty-state p{font-size:1.2rem;color:var(--gray-dark);margin-bottom:1rem}.retry-button{padding:.8rem 1.5rem;background:var(--primary-blue);color:var(--white);border:var(--border);border-radius:8px;cursor:pointer;font-weight:700;transition:all .2s ease}.retry-button:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--black)}@keyframes statusChange{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}.siswa-card[data-status]:not([data-status=""]){animation:statusChange .3s ease}@media(max-width:768px){.absensi-container{padding:.5rem}.absensi-header{font-size:2rem}.siswa-card{flex-direction:column;gap:1rem;text-align:center}.siswa-nama{width:100%;text-align:center}.status-options{justify-content:center;width:100%}.form-actions{flex-direction:column;align-items:center}.submit-button,.share-button{width:100%;max-width:300px}.navigation-controls{flex-direction:column;gap:1rem}.nav-button{width:100%;justify-content:center}}html{scroll-behavior:smooth}.qr-scanner-modal{font-family:Inter,Arial Rounded MT Bold,Arial,sans-serif}@keyframes modalAppear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.qr-scanner-container{animation:modalAppear .3s ease-out}@keyframes scanSuccess{0%{background-color:transparent}50%{background-color:#10b9814d}to{background-color:transparent}}.scan-success{animation:scanSuccess .5s ease}.siswa-card .cancel-button{background:#ef4444;color:#fff;border:2px solid #000;border-radius:6px;padding:.3rem .6rem;cursor:pointer;font-weight:600;box-shadow:1px 1px #000;font-size:.7rem;margin-left:.5rem;white-space:nowrap;transition:all .2s ease}.siswa-card .cancel-button:hover{transform:translate(-1px,-1px);box-shadow:2px 2px #000}.siswa-card .cancel-button:active{transform:translate(1px,1px);box-shadow:0 0 #000}@media(max-width:768px){.siswa-card .cancel-button{margin-left:0;margin-top:.5rem;width:100%}}.keterangan-badge{transition:all .2s ease}.keterangan-badge:hover{transform:translateY(-1px);box-shadow:1px 1px #0369a1}.keterangan-button{transition:all .2s ease}.keterangan-button:hover{background:#0000001a!important;transform:scale(1.1)}@media(max-width:768px){.siswa-card{flex-direction:column;align-items:flex-start}.siswa-card>div:first-child{width:100%;margin-bottom:1rem}.status-options{width:100%;justify-content:center}.keterangan-badge{margin-top:.5rem;align-self:flex-start}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.keterangan-modal .keterangan-editor{animation:modalSlideIn .3s ease-out}.warning-text-absen{display:flex;flex-direction:column}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-300:oklch(80.8% .114 19.571);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-gray-600:oklch(44.6% .03 256.802);--color-white:#fff;--spacing:.25rem;--text-base:1rem;--text-base--line-height: 1.5 ;--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-bold:700;--radius-lg:.5rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.fixed{position:fixed}.relative{position:relative}.end{inset-inline-end:var(--spacing)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-6{margin-top:calc(var(--spacing) * 6)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.min-h-screen{min-height:100vh}.w-fit{width:fit-content}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.self-center{align-self:center}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.bg-blue-600{background-color:var(--color-blue-600)}.bg-red-300{background-color:var(--color-red-300)}.bg-\[repeating-linear-gradient\(45deg\,transparent\,transparent_10px\,rgba\(59\,130\,246\,0\.05\)_10px\,rgba\(59\,130\,246\,0\.05\)_20px\)\]{background-image:repeating-linear-gradient(45deg,#0000,#0000 10px,#3b82f60d 10px 20px)}.p-10{padding:calc(var(--spacing) * 10)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-3{padding-block:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.text-gray-600{color:var(--color-gray-600)}.text-white{color:var(--color-white)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}@media(hover:hover){.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}}}:root{--primary-blue:#2563eb;--secondary-blue:#3b82f6;--accent-yellow:#fbbf24;--accent-red:#ef4444;--accent-green:#10b981;--white:#fff;--black:#000;--gray-light:#f3f4f6;--gray-dark:#374151;--shadow:4px 4px 0px var(--black);--shadow-sm:2px 2px 0px var(--black);--border:3px solid var(--black)}body{min-height:100vh;color:var(--black);background:linear-gradient(135deg,#e0f2fe,#f0fdf4);font-family:Inter,Arial Rounded MT Bold,Arial,sans-serif}.card{background:var(--white);border:var(--border);box-shadow:var(--shadow);border-radius:12px;max-width:800px;margin:0 auto;padding:2rem;position:relative;overflow:hidden}.card:before{content:"";background:linear-gradient(90deg,var(--primary-blue),var(--accent-yellow),var(--accent-green),var(--accent-red));height:8px;position:absolute;top:0;left:0;right:0}h1{color:var(--primary-blue);text-shadow:2px 2px 0px var(--accent-yellow);letter-spacing:-.5px;margin-bottom:1rem;font-size:2.5rem;font-weight:800}h2{color:var(--gray-dark);margin-bottom:1rem;font-size:1.8rem;font-weight:700}p{color:var(--gray-dark);margin-bottom:2rem;font-size:1.1rem;line-height:1.6}.btn{border:var(--border);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;border-radius:8px;min-width:200px;margin:.5rem;padding:1rem 2rem;font-size:1.1rem;font-weight:700;text-decoration:none;transition:all .2s;display:inline-block;position:relative;overflow:hidden}.btn:active{box-shadow:2px 2px 0 var(--black);transform:translate(2px,2px)}.btn-primary{background:var(--primary-blue);color:var(--white);box-shadow:var(--shadow)}.btn-primary:hover{background:var(--secondary-blue);box-shadow:6px 6px 0 var(--black);transform:translate(-2px,-2px)}.btn-secondary{background:var(--accent-yellow);color:var(--black);box-shadow:var(--shadow)}.btn-secondary:hover{box-shadow:6px 6px 0 var(--black);background:#f59e0b;transform:translate(-2px,-2px)}.btn-disabled{background:var(--gray-light);color:var(--gray-dark);border-color:var(--gray-dark);box-shadow:var(--shadow);cursor:not-allowed;opacity:.6}.btn-disabled:hover{box-shadow:var(--shadow);transform:none}.button-group{flex-flow:column wrap;align-items:center;gap:1rem;margin-top:2rem;display:flex}.school-decoration{justify-content:center;gap:2rem;margin:2rem 0;display:flex}.decoration-item{font-size:2rem;animation:3s ease-in-out infinite float}.decoration-item:nth-child(2){animation-delay:.5s}.decoration-item:nth-child(3){animation-delay:1s}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@media(min-width:768px){.button-group{flex-direction:row;justify-content:center}h1{font-size:3rem}}.neo-border{border:3px solid var(--black)}.neo-shadow{box-shadow:6px 6px 0 var(--black)}.neo-corner{position:relative}.neo-corner:after{content:"";background:var(--accent-yellow);border:3px solid var(--black);z-index:-1;border-radius:12px;width:100%;height:100%;position:absolute;bottom:-8px;right:-8px}.info-card{background:var(--white);border:var(--border);box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#fff,#f8fafc);border-radius:12px;margin:1rem 0;padding:1.5rem;position:relative}.info-card:before{content:"";background:linear-gradient(180deg,var(--primary-blue),var(--accent-green));border-radius:8px 0 0 8px;width:8px;height:100%;position:absolute;top:0;left:0}.info-item{background:var(--white);border:2px solid var(--gray-light);border-radius:6px;align-items:center;margin-bottom:.8rem;padding:.5rem;transition:all .3s;display:flex}.info-item:hover{border-color:var(--primary-blue);background:#f0f9ff;transform:translate(4px)}.info-item:last-child{margin-bottom:0}.info-icon{text-align:center;width:30px;margin-right:1rem;font-size:1.2rem}.info-content{flex:1}.info-label{color:var(--gray-dark);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.2rem;font-size:.9rem;font-weight:600}.info-value{color:var(--black);font-size:1.1rem;font-weight:700}.status-badge{border:2px solid var(--black);text-transform:uppercase;letter-spacing:.5px;box-shadow:2px 2px 0 var(--black);border-radius:20px;padding:.3rem .8rem;font-size:.8rem;font-weight:700;display:inline-block}.status-active{background:var(--accent-green);color:var(--white)}.status-inactive{background:var(--accent-red);color:var(--white)}.info-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin:1.5rem 0;display:grid}.info-section{background:var(--white);border:var(--border);box-shadow:var(--shadow-sm);border-radius:12px;padding:1.5rem}.info-section-title{color:var(--primary-blue);border-bottom:3px solid var(--accent-yellow);text-transform:uppercase;letter-spacing:1px;margin-bottom:1rem;padding-bottom:.5rem;font-size:1.2rem;font-weight:700}.teacher-info{border:3px solid var(--accent-yellow);background:linear-gradient(135deg,#fef3c7,#fef7ed)}.teacher-info .info-label{color:#92400e}.teacher-info .info-value{color:#000;font-weight:800}.kegiatan-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;margin:1.5rem 0;display:grid}.kegiatan-card{background:var(--white);border:var(--border);cursor:pointer;text-align:left;width:100%;box-shadow:var(--shadow-sm);border-radius:12px;align-items:center;gap:1rem;padding:1.5rem;transition:all .3s;display:flex}.kegiatan-card:hover{box-shadow:var(--shadow);border-color:var(--primary-blue);transform:translateY(-2px)}.kegiatan-icon{flex-shrink:0;font-size:2rem}.kegiatan-content{flex:1}.kegiatan-content h3{color:var(--black);margin:0 0 .5rem;font-size:1.2rem;font-weight:700}.kegiatan-content p{color:var(--gray-dark);margin:0 0 .5rem;font-size:.9rem;line-height:1.4}.kegiatan-content small{color:var(--gray-dark);font-size:.8rem;font-weight:600}.kegiatan-arrow{color:var(--primary-blue);font-size:1.5rem;font-weight:800}.kelas-grid,.kamar-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin:1.5rem 0;display:grid}.kelas-card,.kamar-card{background:var(--white);border:var(--border);cursor:pointer;text-align:left;width:100%;box-shadow:var(--shadow-sm);border-radius:12px;align-items:center;gap:1rem;padding:1.5rem;transition:all .3s;display:flex}.kelas-card:hover,.kamar-card:hover{box-shadow:var(--shadow);border-color:var(--primary-blue);transform:translateY(-2px)}.kelas-icon,.kamar-icon{flex-shrink:0;font-size:2rem}.kelas-content h3,.kamar-content h3{color:var(--black);margin:0 0 .5rem;font-size:1.1rem;font-weight:700}.kelas-content p,.kamar-content p{color:var(--gray-dark);margin:0 0 .3rem;font-size:.9rem}.kelas-arrow,.kamar-arrow{color:var(--primary-blue);font-size:1.5rem;font-weight:800}.kegiatan-section{background:var(--white);border:2px solid var(--gray-light);border-radius:12px;margin-bottom:1.5rem;padding:1.5rem}@media(max-width:768px){.kegiatan-grid,.kelas-grid,.kamar-grid{grid-template-columns:1fr}.kegiatan-card,.kelas-card,.kamar-card{padding:1rem}.kegiatan-icon,.kelas-icon,.kamar-icon{font-size:1.5rem}}.loading-text{text-align:center;color:#666;padding:20px;font-style:italic}.retry-btn{color:#fff;cursor:pointer;background:#1976d2;border:none;border-radius:4px;margin-left:10px;padding:4px 10px}.retry-btn:hover{background:#0d5bb5}.try{flex-direction:column;justify-content:center;align-items:center;display:flex}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}.rekap-absensi{padding:24px;max-width:1600px;margin:0 auto}.rekap-header{margin-bottom:24px}.rekap-header h1{margin:0 0 6px;font-size:28px}.rekap-header p{margin:0;color:#666}.rekap-filter{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr)) auto;gap:16px;padding:20px;border:1px solid #e5e5e5;border-radius:12px;margin-bottom:20px}.filter-item{display:flex;flex-direction:column;gap:7px}.filter-item label{font-size:14px;font-weight:600}.filter-item input,.filter-item select{height:42px;padding:0 12px;border:1px solid #d7d7d7;border-radius:8px;background:#fff;font-size:14px}.filter-action{display:flex;align-items:end}.filter-action button{height:42px;padding:0 18px;border:none;border-radius:8px;background:#111;color:#fff;font-size:14px;font-weight:600;cursor:pointer}.filter-action button:disabled{opacity:.6;cursor:not-allowed}.rekap-error{padding:12px 16px;border:1px solid #ddd;border-radius:8px;margin-bottom:20px;color:#b00020;background:#fff5f5}.rekap-info{display:flex;gap:16px;margin-bottom:20px}.rekap-info>div{display:flex;flex-direction:column;gap:4px;padding:16px 20px;min-width:160px;border:1px solid #e5e5e5;border-radius:10px}.rekap-info strong{font-size:13px;color:#666}.rekap-info span{font-size:18px;font-weight:600}.rekap-section{margin-bottom:28px}.section-header{margin-bottom:12px}.section-header h2{margin:0;font-size:20px}.table-wrapper{width:100%;overflow-x:auto;border:1px solid #e5e5e5;border-radius:10px}.table-wrapper table{width:100%;border-collapse:collapse;min-width:900px}.table-wrapper th,.table-wrapper td{padding:11px 12px;border-bottom:1px solid #eeeeee;text-align:left;font-size:14px}.table-wrapper th{background:#f7f7f7;font-weight:600;white-space:nowrap}.table-wrapper tbody tr:last-child td{border-bottom:none}.table-wrapper tbody tr:hover{background:#fafafa}.empty-data{padding:40px;border:1px dashed #d5d5d5;border-radius:10px;text-align:center;color:#777}@media(max-width:1000px){.rekap-filter{grid-template-columns:repeat(2,1fr)}.filter-action{align-items:stretch}.filter-action button{width:100%}}@media(max-width:600px){.rekap-absensi{padding:16px}.rekap-filter{grid-template-columns:1fr}.rekap-info{flex-direction:column}}
