@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--primary:#4f46e5;--primary-hover:#4338ca;--primary-light:#eef2ff;--secondary:#10b981;--secondary-hover:#059669;--secondary-light:#d1fae5;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--info:#3b82f6;--bg-color:#f8fafc;--surface-color:#fff;--surface-hover:#f1f5f9;--text-main:#0f172a;--text-muted:#64748b;--text-inverse:#fff;--border-color:#e2e8f0;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-full:9999px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.3s cubic-bezier(.4, 0, .2, 1)}.dark{--bg-color:#0f172a;--surface-color:#1e293b;--surface-hover:#334155;--text-main:#f8fafc;--text-muted:#94a3b8;--border-color:#334155}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-main);-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif;line-height:1.5}.glass{-webkit-backdrop-filter:blur(10px);background:#ffffffb3;border:1px solid #ffffff4d}.dark .glass{background:#1e293bb3;border:1px solid #ffffff1a}.card{background-color:var(--surface-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);transition:box-shadow var(--transition-fast), transform var(--transition-fast)}.card:hover{box-shadow:var(--shadow-md)}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{color:var(--text-main);border:1px solid var(--border-color);background-color:#fff}.btn-secondary:hover{background-color:var(--surface-hover)}.input{border-radius:var(--radius-md);border:1px solid var(--border-color);background-color:var(--surface-color);width:100%;color:var(--text-main);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:.5rem .75rem;font-family:inherit}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translate(-50%)translateY(-20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes shrink{0%{width:100%}to{width:0%}}.animate-fade-in{animation:.4s ease-out forwards fadeIn}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.w-full{width:100%}.h-screen{height:100vh}.h-full{height:100%}.admin-layout{height:100vh;display:flex;overflow:hidden}.admin-sidebar{background-color:var(--surface-color);border-right:1px solid var(--border-color);width:260px;transition:width var(--transition-normal);flex-direction:column;display:flex}.admin-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.admin-header{background-color:var(--surface-color);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;height:64px;padding:0 1.5rem;display:flex}.admin-content{flex:1;padding:1.5rem;overflow-y:auto}.mobile-layout{background-color:var(--bg-color);max-width:480px;height:100vh;box-shadow:var(--shadow-lg);flex-direction:column;margin:0 auto;display:flex;position:relative}.mobile-header{background-color:var(--primary);color:#fff;z-index:10;justify-content:space-between;align-items:center;height:60px;padding:0 1rem;display:flex;position:sticky;top:0}.mobile-content{flex:1;padding:1rem 1rem 80px;overflow-y:auto}.bottom-nav{background-color:var(--surface-color);border-top:1px solid var(--border-color);z-index:10;justify-content:space-around;align-items:center;height:65px;display:flex;position:absolute;bottom:0;left:0;right:0}.nav-item{color:var(--text-muted);transition:color var(--transition-fast);flex-direction:column;align-items:center;gap:.25rem;font-size:.75rem;text-decoration:none;display:flex}.nav-item.active{color:var(--primary)}.nav-item:hover{color:var(--primary-hover)}.print-only-receipt{box-sizing:border-box;color:#000;background:#fff;width:80mm;max-width:80mm;padding:4mm;font-family:Courier New,Consolas,monospace;font-size:12px;line-height:1.5;display:none}.print-header{text-align:center;margin-bottom:3mm}.print-title{text-transform:uppercase;letter-spacing:1px;color:#000;font-size:14px;font-weight:700}.print-school{color:#000;margin-top:1mm;font-size:12px;font-weight:700}.print-date{color:#000;margin-top:1mm;font-size:10px}.print-divider{border-top:2px dashed #000;margin:3mm 0}.print-notice{text-align:center;color:#000;border:2px solid #000;margin-bottom:3mm;padding:2mm;font-size:11px;font-weight:700}.print-table{border-collapse:collapse;width:100%}.print-label{white-space:nowrap;color:#000;width:25mm;padding:1mm 1mm 1mm 0;font-weight:700}.print-value{color:#000;word-break:break-word;padding:1mm 0}.print-bold{font-weight:700}.print-meta{color:#000;margin-bottom:2mm;font-size:10px}.print-signature{text-align:center;margin-top:4mm}.print-sig-label{color:#000;margin-bottom:2mm;font-size:10px}.print-sig-line{border-bottom:1px solid #000;width:35mm;height:8mm;margin:0 auto}.print-sig-name{color:#000;margin-top:1mm;font-size:10px}.print-id{text-align:center;color:#000;margin-top:3mm;font-size:10px}@media print{@page{size:80mm auto;margin:0}body *{visibility:hidden!important}.print-only-receipt,.print-only-receipt *{visibility:visible!important}.mobile-layout,.mobile-header,.bottom-nav,.mobile-content,header,nav,.toast,[style*="position: fixed"]{display:none!important}.print-only-receipt{color:#000;background:#fff;width:80mm!important;height:auto!important;margin:0!important;padding:4mm!important;display:block!important;position:absolute!important;top:0!important;left:0!important}}
