*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f1f5f9;color:#1a1a2e;min-height:100vh;-webkit-font-smoothing:antialiased}.container{max-width:620px;margin:0 auto;padding:24px 16px}.container-wide{max-width:min(1200px,100% - 48px);margin:0 auto;padding:24px 16px 48px}.card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 1px 3px #0000000f,0 4px 24px #0f172a0f;margin-bottom:20px;transition:box-shadow .25s ease,transform .2s ease}.card:hover{box-shadow:0 4px 12px #00000014,0 8px 32px #0f172a14}h2{font-size:1.3rem;margin-bottom:16px;color:#2d3748}p{line-height:1.6;color:#4a5568;margin-bottom:12px}.btn{display:block;width:100%;padding:16px;font-size:1.05rem;font-weight:600;border:none;border-radius:12px;cursor:pointer;transition:opacity .2s}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:#2563eb;color:#fff}.btn-success{background:#16a34a;color:#fff}.btn-danger{background:#dc2626;color:#fff}.btn-secondary{background:#64748b;color:#fff}.btn-sm{padding:8px 14px;font-size:.85rem;width:auto;display:inline-block}select,input[type=text],input[type=email],input[type=password],input[type=number],input[type=url]{width:100%;padding:14px;font-size:1rem;border:2px solid #e2e8f0;border-radius:10px;background:#fff;color:#1a1a2e;margin-bottom:12px}select:focus,input:focus{outline:none;border-color:#2563eb}label{display:block;font-weight:600;margin-bottom:4px;color:#374151;font-size:.9rem}.error-box{background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;padding:12px;color:#dc2626;margin-bottom:16px}.logo{text-align:center;padding:16px 0;font-size:1.15rem;font-weight:700;color:#2563eb;letter-spacing:.02em}.status-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:.78rem;font-weight:700}.status-pending{background:#fef3c7;color:#92400e}.status-approved{background:#d1fae5;color:#065f46}.status-locked{background:#fee2e2;color:#991b1b}.status-processing{background:#dbeafe;color:#1e40af}.dropzone{border:2px dashed #93c5fd;border-radius:12px;padding:28px;text-align:center;background:#eff6ff;cursor:pointer;transition:background .2s;margin-bottom:12px}.dropzone:hover{background:#dbeafe}.dropzone p{color:#3b82f6;margin:0}table{width:100%;border-collapse:collapse}th{text-align:left;padding:10px;background:#f8fafc;font-size:.82rem;color:#64748b;border-bottom:1px solid #e2e8f0}td{padding:12px 10px;border-bottom:1px solid #f1f5f9;font-size:.9rem;vertical-align:middle}tr:last-child td{border-bottom:none}.stat-card{text-align:center;padding:20px 16px!important;border:1px solid transparent}.stat-number{font-size:2rem;font-weight:700;line-height:1.2}.stat-label{font-size:.82rem;color:#64748b;margin-top:4px;font-weight:500}.stat-card.stat-total{background:linear-gradient(180deg,#f8fafc,#fff);border-color:#e2e8f0}.stat-card.stat-total .stat-number{color:#334155}.stat-card.stat-pending{background:linear-gradient(180deg,#fffbeb,#fff);border-color:#fde68a}.stat-card.stat-pending .stat-number{color:#d97706}.stat-card.stat-locked{background:linear-gradient(180deg,#fef2f2,#fff);border-color:#fecaca}.stat-card.stat-locked .stat-number{color:#991b1b}.stat-card.stat-approved{background:linear-gradient(180deg,#ecfdf5,#fff);border-color:#a7f3d0}.stat-card.stat-approved .stat-number{color:#16a34a}.admin-header-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:20px}.admin-header-bar .logo{text-align:left;padding:0}.admin-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:20px;padding-bottom:2px;border-bottom:1px solid #e2e8f0}.admin-tab{width:auto;display:inline-block;padding:10px 18px;font-size:.9rem;font-weight:600;color:#64748b;background:transparent;border:none;border-radius:10px 10px 0 0;cursor:pointer;transition:color .2s,background .2s;margin-bottom:-2px}.admin-tab:hover{color:#334155;background:#fff9}.admin-tab-active{color:#2563eb!important;background:#fff!important;box-shadow:0 -1px #fff;border:1px solid #e2e8f0;border-bottom-color:#fff}.admin-tab-panel{min-height:120px}.admin-tab-panel-inner{animation:adminPanelIn .35s ease forwards}@keyframes adminPanelIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.admin-data-table th,.admin-data-table td{padding:14px 12px}.admin-data-table tbody tr{transition:background .15s ease}.admin-data-table tbody tr:hover{background:#fafafa}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}@media (max-width: 900px){.stat-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.stat-grid{grid-template-columns:1fr}}.spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:spin .75s linear infinite;margin:16px auto}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{display:inline-block;background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0,#f1f5f9 75%);background-size:200% 100%;animation:skeletonShimmer 1.2s ease-in-out infinite;border-radius:6px}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-cell{height:14px;width:100%;max-width:140px}.skeleton-stat{height:36px;width:48px;margin:0 auto 8px}.skeleton-line{height:12px;width:72px;margin:0 auto}.admin-auth-loading .card{min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px}.verify-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.verify-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 1px 3px #0000000f,0 4px 24px #0f172a0f;max-width:440px;width:100%}.school-logo{display:block;margin-left:auto;margin-right:auto}@media (max-width: 640px){.viewer-pdf-embed,.viewer-embed-hint{display:none!important}.viewer-approve-card{margin-top:8px}}
