:root{--max-width:1100px;--border-radius:16px;--primary:#1e40af;--primary-dark:#1e3a8a;--primary-light:#3b82f6;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-700:#374151;--gray-900:#111827;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);--transition:all 0.3s cubic-bezier(0.4,0,0.2,1)}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:linear-gradient(135deg,#f5f7fa,#e9ecef);min-height:100vh}a{color:inherit;text-decoration:none;transition:var(--transition)}a:hover{opacity:.85}.btn{border-radius:12px;padding:12px 24px;font-weight:600;transition:var(--transition);border:none;box-shadow:none}.btn:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.05)}.btn:active:not(:disabled){transform:translateY(0)}.btn-primary{background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%)}.btn-primary:hover{background:linear-gradient(135deg,var(--primary-light) 0,var(--primary) 100%)}.btn-lg{padding:16px 32px;font-size:1.1rem;border-radius:14px}.card{border:none;border-radius:var(--border-radius);box-shadow:var(--shadow);transition:var(--transition);overflow:hidden;background:#fff}.card:hover{box-shadow:var(--shadow-lg)}.card-header{background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);border:none;padding:24px}.card-body{padding:24px}.form-control,.form-select{border-radius:10px;border:2px solid var(--gray-200);padding:12px 16px;transition:var(--transition)}.form-control:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(30,64,175,.1)}.badge{padding:6px 12px;border-radius:8px;font-weight:600;font-size:.85rem}.alert{border-radius:12px;border:none;box-shadow:var(--shadow-sm)}.progress{border-radius:10px;height:12px;background:var(--gray-200);overflow:hidden}.progress-bar{background:linear-gradient(90deg,var(--primary) 0,var(--primary-light) 100%)}.modal-content{border-radius:var(--border-radius);border:none;box-shadow:var(--shadow-xl)}.modal-header{border-bottom:1px solid var(--gray-200);padding:20px 24px}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--gray-200);padding:20px 24px}.table{border-collapse:separate;border-spacing:0}.table thead th{background:var(--gray-50);font-weight:700;text-transform:uppercase;font-size:.75rem;letter-spacing:.05em;color:var(--gray-700);padding:16px;border-bottom:2px solid var(--gray-200)}.table tbody td{padding:16px;vertical-align:middle;border-bottom:1px solid var(--gray-100)}.stamp-circle{width:52px;height:52px;border-radius:50%;border:3px solid var(--gray-300);display:inline-flex;align-items:center;justify-content:center;margin:5px;transition:all .4s cubic-bezier(.4,0,.2,1);font-weight:700;font-size:1.05rem;position:relative;overflow:hidden}.stamp-circle.filled{color:#fff;transform:scale(1);animation:stampPop .5s cubic-bezier(.68,-.55,.265,1.55);font-size:1.5rem}.stamp-circle.empty{background-color:#fff;color:var(--gray-700);box-shadow:var(--shadow-sm)}.stamp-circle:hover{transform:scale(1.05)}@keyframes stampPop{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.qr-container{background:linear-gradient(135deg,#fff,#f9fafb);padding:40px;border-radius:20px;box-shadow:var(--shadow-lg);text-align:center;border:1px solid var(--gray-200);position:relative;overflow:hidden}.qr-container:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--primary) 0,var(--primary-light) 100%)}.card-animate{animation:slideInUp .6s cubic-bezier(.4,0,.2,1)}@keyframes slideInUp{0%{opacity:0;transform:translateY(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.feature-card{transition:all .3s cubic-bezier(.4,0,.2,1)}.feature-card:hover{box-shadow:0 20px 40px rgba(0,0,0,.12)!important}.btn{transition:all .3s ease}.btn:hover{transform:translateY(-2px)}.card{transition:all .3s ease}section{scroll-margin-top:80px}.metric-card{transition:all .3s cubic-bezier(.4,0,.2,1)}.metric-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(0,0,0,.1)!important}@media (max-width:768px){.recharts-wrapper{margin:0 auto}.recharts-legend-wrapper{padding-top:15px!important}.recharts-text{font-size:.7rem!important}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{box-shadow:0 0 0 0 rgba(37,99,235,.7)}50%{box-shadow:0 0 0 15px rgba(37,99,235,0)}}.pwa-prompt{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:1050;max-width:90%;width:420px;animation:slideUpBounce .6s cubic-bezier(.68,-.55,.265,1.55)}.pwa-prompt .card{box-shadow:var(--shadow-xl);border:1px solid var(--gray-200)}@keyframes slideUpBounce{0%{opacity:0;transform:translateX(-50%) translateY(120px)}60%{transform:translateX(-50%) translateY(-10px)}80%{transform:translateX(-50%) translateY(5px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.glass-card{background:hsla(0,0%,100%,.95);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid hsla(0,0%,100%,.2);box-shadow:var(--shadow-lg)}.gradient-text{background:linear-gradient(135deg,var(--primary) 0,var(--primary-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.feature-card{transition:var(--transition);border:1px solid var(--gray-100)}.feature-card:hover{transform:translateY(-8px);border-color:var(--primary);box-shadow:var(--shadow-xl)}.feature-card .feature-icon{font-size:3rem;margin-bottom:16px;animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.metric-card{transition:var(--transition);position:relative;overflow:hidden;border:1px solid var(--gray-100)}.metric-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary) 0,var(--primary-light) 100%);transform:scaleX(0);transition:transform .3s ease}.metric-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-xl)}.metric-card:hover:before{transform:scaleX(1)}.icon-badge{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.75rem;transition:var(--transition)}.icon-badge-primary{background:linear-gradient(135deg,rgba(37,99,235,.1),rgba(37,99,235,.05))}.icon-badge-success{background:linear-gradient(135deg,rgba(16,185,129,.1),rgba(16,185,129,.05))}.icon-badge-warning{background:linear-gradient(135deg,rgba(245,158,11,.1),rgba(245,158,11,.05))}.metric-card:hover .icon-badge{transform:rotate(5deg) scale(1.1)}@media (max-width:576px){.stamp-circle{width:44px;height:44px;margin:3px;font-size:.95rem}.stamp-circle.filled{font-size:1.3rem}.btn-lg{padding:14px 24px;font-size:1.05rem}.card-body{padding:20px}.display-2{font-size:2.5rem!important}.display-5{font-size:2rem!important}.feature-icon{font-size:2.5rem!important}}html{scroll-behavior:smooth}@media (max-width:991px){aside.sidebar-closed{transform:translateX(-100%)!important}aside.sidebar-open{transform:translateX(0)!important}}@media (min-width:992px){aside.admin-sidebar{transform:translateX(0)!important}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-spinner{animation:spin 1s linear infinite}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--primary);outline-offset:2px;border-radius:8px}@keyframes successPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}