.avatar-wrapper[data-v-fafd33e8]{display:inline-block;position:relative}.profile-dropdown[data-v-fafd33e8]{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);z-index:1000;-webkit-backdrop-filter:blur(20px);border-radius:12px;min-width:180px;max-width:220px;position:absolute;top:46px;right:0;overflow:hidden}.dropdown-header[data-v-fafd33e8]{border-bottom:1px solid var(--border-color);text-align:left;padding:12px 16px 8px}.user-role-tag[data-v-fafd33e8]{background:var(--bg-input);color:var(--text-secondary);border-radius:30px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.dropdown-item[data-v-fafd33e8]{color:var(--text-primary);text-align:left;cursor:pointer;width:100%;transition:var(--transition);box-sizing:border-box;background:0 0;border:none;align-items:center;gap:10px;padding:12px 16px;font-size:13px;font-weight:500;text-decoration:none;display:flex}.dropdown-item i[data-v-fafd33e8]{text-align:center;width:16px;color:var(--text-secondary);font-size:14px}.dropdown-item[data-v-fafd33e8]:hover{background:var(--bg-input)}.dropdown-item:hover i[data-v-fafd33e8]{color:var(--text-primary)}.dropdown-item.logout[data-v-fafd33e8]{color:#e91e63;border-top:1px solid var(--border-color);border-radius:0 0 12px 12px}.dropdown-item.logout i[data-v-fafd33e8]{color:#e91e63}.dropdown-item.logout[data-v-fafd33e8]:hover{background:#e91e630d}.dropdown-fade-enter-active[data-v-fafd33e8]{animation:.22s cubic-bezier(.4,0,.2,1) dropdownIn-fafd33e8}.dropdown-fade-leave-active[data-v-fafd33e8]{animation:.16s cubic-bezier(.4,0,.2,1) reverse dropdownIn-fafd33e8}@keyframes dropdownIn-fafd33e8{0%{opacity:0;transform:translateY(-8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.custom-select-wrapper[data-v-01bc3ad8]{width:100%;position:relative}.custom-select-trigger[data-v-01bc3ad8]{border:1px solid var(--border-color);background:var(--bg-input);color:var(--text-primary);cursor:pointer;transition:var(--transition);border-radius:12px;justify-content:space-between;align-items:center;padding:12px 16px;font-size:14px;display:flex}.custom-select-trigger[data-v-01bc3ad8]:hover{border-color:#e91e63}.custom-select-trigger.open[data-v-01bc3ad8]{background:var(--bg-card);border-color:#e91e63;box-shadow:0 0 0 3px #e91e631a}.custom-select-options[data-v-01bc3ad8]{background:var(--bg-card);border:1px solid var(--border-color);width:100%;box-shadow:var(--shadow-lg);z-index:10;border-radius:12px;flex-direction:column;max-height:250px;animation:.2s dropdownFadeIn-01bc3ad8;display:flex;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden}@keyframes dropdownFadeIn-01bc3ad8{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.custom-select-search[data-v-01bc3ad8]{border-bottom:1px solid var(--border-color);background:var(--bg-input);align-items:center;gap:8px;padding:10px 12px;display:flex}.custom-select-search i[data-v-01bc3ad8]{color:var(--text-secondary);font-size:14px}.custom-select-search input[data-v-01bc3ad8]{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;font-family:inherit;font-size:13px}.custom-select-list[data-v-01bc3ad8]{max-height:180px;padding:6px 0;overflow-y:auto}.custom-select-option[data-v-01bc3ad8]{color:var(--text-primary);cursor:pointer;transition:var(--transition);justify-content:space-between;align-items:center;padding:10px 16px;font-size:13px;display:flex}.custom-select-option[data-v-01bc3ad8]:hover{color:#e91e63;background:#e91e6314}.custom-select-option.selected[data-v-01bc3ad8]{color:#e91e63;background:#e91e631f;font-weight:600}.custom-select-option .student-name[data-v-01bc3ad8]{font-weight:500}.custom-select-option .student-class[data-v-01bc3ad8]{color:var(--text-secondary);font-size:11px}.custom-select-empty[data-v-01bc3ad8]{text-align:center;color:var(--text-secondary);padding:16px;font-size:13px}.disabled-select-display[data-v-01bc3ad8]{border:1px solid var(--border-color);background:var(--bg-input);color:var(--text-secondary);cursor:not-allowed;opacity:.8;border-radius:12px;padding:12px 16px;font-size:14px;font-weight:500}.dropdown-loading-more[data-v-01bc3ad8]{text-align:center;color:var(--text-secondary);background:var(--bg-card);justify-content:center;align-items:center;gap:8px;padding:12px;font-size:12px;display:flex}.toast-fade-enter-active{animation:.4s toastIn}.toast-fade-leave-active{animation:.4s reverse toastIn}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.auth-loading-screen{background:var(--bg-body);width:100%;min-height:100vh;color:var(--text-primary);transition:var(--transition);justify-content:center;align-items:center;font-family:Inter,sans-serif;display:flex}.loader-content{text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.loader-icon{color:#e91e63;font-size:40px}.loader-content p{color:var(--text-secondary);margin:0;font-size:14px;font-weight:600}@keyframes warningPulse{0%{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes modalBounce{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.fab.loading{opacity:.85;cursor:wait}.fab:disabled{cursor:not-allowed}.app-loading-container{z-index:3500;pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@media (width>=1024px){.app-loading-container{left:calc(50% + 130px)}}.app-loading-spinner-circle{background:var(--bg-card,#fff);border:1px solid var(--border-color,#00000014);border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;display:flex;box-shadow:0 8px 24px #00000029}.app-loading-spinner{color:#e91e63;font-size:24px}.fade-spinner-enter-active,.fade-spinner-leave-active{transition:opacity .2s,transform .2s}.fade-spinner-enter-from,.fade-spinner-leave-to{opacity:0;transform:translate(-50%,-50%)scale(.7)}.empty-state-text[data-v-25e20bf9]{font-family:Inter,sans-serif;font-size:13px}.bar-hover-zone[data-v-25e20bf9]{position:relative}.bar-tooltip-val[data-v-25e20bf9]{color:#fff;white-space:nowrap;opacity:0;pointer-events:none;z-index:10;background:#111827;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700;transition:opacity .2s;position:absolute;top:-24px;left:50%;transform:translate(-50%)}.bar-hover-zone:hover .bar-tooltip-val[data-v-25e20bf9]{opacity:1}.bar-fill-vertical[data-v-25e20bf9]:hover{filter:brightness(1.1);box-shadow:0 0 10px #e91e6366}.pagination-container[data-v-33b2c372]{justify-content:center;align-items:center;gap:16px;margin-top:20px;padding:10px 0;display:flex}.pagination-btn[data-v-33b2c372]{background:var(--bg-card,#fff);color:var(--text-primary,#1a1a2e);border:1px solid var(--border-color,#eef2f6);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:8px 12px;transition:all .2s;display:flex}.pagination-btn[data-v-33b2c372]:hover:not(:disabled){background:var(--accent-color,#e91e63);border-color:var(--accent-color,#e91e63);color:#fff}.pagination-btn[data-v-33b2c372]:disabled{opacity:.5;cursor:not-allowed}.pagination-info[data-v-33b2c372]{color:var(--text-secondary,#a0a5b5);font-size:14px}.bulk-action-bar[data-v-33b2c372]{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding:10px 14px;transition:all .2s;display:flex;box-shadow:0 1px 3px #0000000d}.bulk-bar-left[data-v-33b2c372]{align-items:center;display:flex}.custom-checkbox-label[data-v-33b2c372]{cursor:pointer;color:var(--text-primary);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.bulk-checkbox[data-v-33b2c372],.bulk-item-checkbox[data-v-33b2c372]{cursor:pointer;accent-color:#e91e63;border-radius:4px;width:17px;height:17px}.bulk-bar-right[data-v-33b2c372]{align-items:center;gap:8px;display:flex}.selected-badge[data-v-33b2c372]{color:#e91e63;background:#e91e6314;border:1px solid #e91e6333;border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.btn-bulk-verify[data-v-33b2c372]{color:#fff;cursor:pointer;background:#e91e63;border:none;border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;transition:all .2s;display:inline-flex}.btn-bulk-verify[data-v-33b2c372]:hover{background:#d81b60;transform:translateY(-1px)}.btn-bulk-clear[data-v-33b2c372]{color:var(--text-secondary);border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:8px;padding:6px 10px;font-size:12px;transition:all .2s}.btn-bulk-clear[data-v-33b2c372]:hover{color:#e91e63;border-color:#e91e63}.violation-item.is-selected[data-v-33b2c372]{background:#e91e6308!important;border-color:#e91e6380!important}.pagination-container[data-v-42d6259f]{justify-content:center;align-items:center;gap:16px;margin-top:20px;padding:10px 0;display:flex}.pagination-btn[data-v-42d6259f]{background:var(--bg-card,#fff);color:var(--text-primary,#1a1a2e);border:1px solid var(--border-color,#eef2f6);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:8px 12px;transition:all .2s;display:flex}.pagination-btn[data-v-42d6259f]:hover:not(:disabled){background:var(--accent-color,#e91e63);border-color:var(--accent-color,#e91e63);color:#fff}.pagination-btn[data-v-42d6259f]:disabled{opacity:.5;cursor:not-allowed}.pagination-info[data-v-42d6259f]{color:var(--text-secondary,#a0a5b5);font-size:14px}@media (width>=769px){.mobile-only-card-content[data-v-42d6259f]{display:none!important}.desktop-only-card-content[data-v-42d6259f]{display:block!important}}@media (width<=768px){.desktop-only-card-content[data-v-42d6259f]{display:none!important}.mobile-only-card-content[data-v-42d6259f]{text-align:left;align-items:center;gap:16px;width:100%;display:flex!important}.student-card-mini.student-card-responsive[data-v-42d6259f]{min-width:100%;margin-bottom:10px;padding:16px;display:block}.mobile-avatar[data-v-42d6259f]{flex-shrink:0}.mobile-middle[data-v-42d6259f]{flex:1}.mobile-middle h4[data-v-42d6259f]{margin-bottom:2px;font-size:15px}.mobile-class[data-v-42d6259f]{color:var(--text-secondary);font-size:12px}.mobile-right[data-v-42d6259f]{text-align:right;flex-shrink:0}.mobile-violations-num[data-v-42d6259f]{color:#e91e63;font-size:13px;font-weight:700}.mobile-violations-label[data-v-42d6259f]{color:var(--text-secondary);font-size:10px}}.custom-select-option[data-v-42d6259f]:hover{color:#e91e63!important;background:#e91e6314!important}.custom-select-option.selected[data-v-42d6259f]{font-weight:600;color:#e91e63!important;background:#e91e631f!important}table th[data-v-9865f5b7]{color:var(--text-primary)}.chart-bar[data-v-9865f5b7]{margin-top:10px}.chart-row[data-v-9865f5b7]{justify-content:space-between;margin-bottom:4px;font-size:13px;display:flex}.chart-track[data-v-9865f5b7]{background:var(--border-color);border-radius:4px;height:8px;margin-bottom:16px;overflow:hidden}.chart-fill[data-v-9865f5b7]{border-radius:4px;height:100%;transition:width .6s}.bar-hover-zone[data-v-9865f5b7]{position:relative}.bar-tooltip-val[data-v-9865f5b7]{color:#fff;white-space:nowrap;opacity:0;pointer-events:none;z-index:10;background:#111827;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700;transition:opacity .2s;position:absolute;top:-24px;left:50%;transform:translate(-50%)}.bar-hover-zone:hover .bar-tooltip-val[data-v-9865f5b7]{opacity:1}.bar-fill-vertical[data-v-9865f5b7]:hover{filter:brightness(1.1);box-shadow:0 0 10px #e91e6366}.format-btn[data-v-9865f5b7]{background:var(--bg-card,#fff);color:var(--text-primary)}.format-btn.active[data-v-9865f5b7]{background:var(--accent-color,#e91e63)!important;border-color:var(--accent-color,#e91e63)!important;color:#fff!important}.report-table-header[data-v-9865f5b7]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}@media (width>=769px){.report-table-header[data-v-9865f5b7]{z-index:10;flex-direction:column;align-self:start;align-items:flex-start;gap:16px;position:sticky;top:80px}}.kop-settings-container[data-v-35f7caa3]{padding:20px}.kop-header[data-v-35f7caa3]{margin-bottom:20px}.kop-subtitle[data-v-35f7caa3]{color:var(--text-secondary);margin:4px 0 0;font-size:12px}.logo-grid-container[data-v-35f7caa3]{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px;display:grid}.logo-upload-card[data-v-35f7caa3]{background:var(--bg-input);border:1px dashed var(--border-color);text-align:center;border-radius:14px;flex-direction:column;align-items:center;padding:14px;transition:border-color .2s;display:flex}.logo-upload-card[data-v-35f7caa3]:hover{border-color:#e91e63}.card-label span[data-v-35f7caa3]{color:var(--text-primary);font-size:13px;font-weight:700;display:block}.card-label small[data-v-35f7caa3]{color:var(--text-secondary);font-size:11px}.logo-preview-box[data-v-35f7caa3]{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;justify-content:center;align-items:center;width:100px;height:100px;margin:12px 0;display:flex;overflow:hidden}.logo-preview-box img[data-v-35f7caa3]{object-fit:contain;max-width:100%;max-height:100%}.empty-preview[data-v-35f7caa3]{color:var(--text-secondary);flex-direction:column;align-items:center;gap:4px;font-size:11px;display:flex}.empty-preview i[data-v-35f7caa3]{opacity:.5;font-size:24px}.compression-badge[data-v-35f7caa3]{color:#e91e63;background:#e91e631f;border-radius:20px;margin-bottom:8px;padding:4px 8px;font-size:10px}.card-actions[data-v-35f7caa3]{justify-content:center;gap:8px;width:100%;display:flex}.btn-upload-file[data-v-35f7caa3]{color:#fff;cursor:pointer;background:#e91e63;border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;transition:opacity .2s;display:flex}.btn-upload-file[data-v-35f7caa3]:hover{opacity:.9}.btn-delete-logo[data-v-35f7caa3]{color:#f44336;cursor:pointer;background:#f4433626;border:none;border-radius:8px;padding:6px 10px;font-size:12px;transition:background .2s}.btn-delete-logo[data-v-35f7caa3]:hover{background:#f4433640}.kop-form[data-v-35f7caa3]{flex-direction:column;gap:16px;display:flex}.form-row-2[data-v-35f7caa3]{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=640px){.form-row-2[data-v-35f7caa3]{grid-template-columns:1fr}}.form-group-kop label[data-v-35f7caa3]{color:var(--text-primary);margin-bottom:6px;font-size:12px;font-weight:700;display:block}.form-group-kop input[data-v-35f7caa3],.form-group-kop textarea[data-v-35f7caa3]{border:1px solid var(--border-color);background:var(--bg-input);width:100%;color:var(--text-primary);border-radius:10px;outline:none;padding:10px 12px;font-size:13px;transition:border-color .2s}.form-group-kop input[data-v-35f7caa3]:focus,.form-group-kop textarea[data-v-35f7caa3]:focus{border-color:#e91e63}.kop-preview-container[data-v-35f7caa3]{background:var(--bg-input);border:1px solid var(--border-color);border-radius:14px;margin-top:12px;padding:14px}.preview-header-title[data-v-35f7caa3]{color:var(--text-secondary);align-items:center;gap:6px;margin-bottom:12px;font-size:12px;font-weight:700;display:flex}.kop-paper-mockup[data-v-35f7caa3]{color:#111;background:#fff;border-radius:8px;padding:16px 20px;box-shadow:0 2px 8px #00000014}.kop-paper-header[data-v-35f7caa3]{justify-content:space-between;align-items:center;gap:16px;padding:0 15px;display:flex}.kop-side-logo[data-v-35f7caa3]{flex-shrink:0;justify-content:center;align-items:center;width:95px;height:95px;display:flex}.kop-side-logo img[data-v-35f7caa3]{object-fit:contain;max-width:95px;max-height:95px}.kop-center-content[data-v-35f7caa3]{text-align:center;flex:1}.kop-center-logo-inline[data-v-35f7caa3]{object-fit:contain;height:30px;margin:1px 0}.kop-text-pemda[data-v-35f7caa3]{text-transform:uppercase;letter-spacing:.5px;white-space:pre-line;font-size:14px;line-height:1.2}.kop-text-dinas[data-v-35f7caa3]{text-transform:uppercase;letter-spacing:.5px;white-space:pre-line;font-size:14px;font-weight:700;line-height:1.2}.kop-text-sekolah[data-v-35f7caa3]{font-size:146x;text-transform:uppercase;letter-spacing:.5px;white-space:pre-line;margin:2px 0;font-weight:800}.kop-text-alamat[data-v-35f7caa3]{color:#444;white-space:pre-line;font-size:11px;line-height:1.3}.kop-text-kontak[data-v-35f7caa3]{color:#555;white-space:pre-line;font-size:11px;line-height:1.3}.kop-double-line[data-v-35f7caa3]{border-bottom:3px double #111;margin-top:10px}.form-submit-row[data-v-35f7caa3]{justify-content:flex-end;margin-top:8px;display:flex}.btn-save-kop[data-v-35f7caa3]{color:#fff;cursor:pointer;background:#e91e63;border:none;border-radius:10px;align-items:center;gap:8px;padding:10px 24px;font-size:13px;font-weight:700;transition:transform .15s,opacity .2s;display:flex;box-shadow:0 4px 12px #e91e634d}.btn-save-kop[data-v-35f7caa3]:hover{opacity:.95;transform:translateY(-1px)}.btn-save-kop[data-v-35f7caa3]:disabled{opacity:.6;cursor:not-allowed}.password-toggle[data-v-35f7caa3]{color:var(--text-secondary);cursor:pointer;transition:var(--transition);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;font-size:14px;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.password-toggle[data-v-35f7caa3]:hover{color:var(--text-primary)}.master-grid[data-v-9fad312c]{flex-direction:column;gap:10px;display:flex}.pagination-container[data-v-9fad312c]{justify-content:center;align-items:center;gap:16px;margin-top:20px;padding:10px 0;display:flex}.pagination-btn[data-v-9fad312c]{background:var(--bg-card,#fff);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:8px 12px;transition:all .2s;display:flex}.pagination-btn[data-v-9fad312c]:hover:not(:disabled){color:#fff;background:#e91e63;border-color:#e91e63}.pagination-btn[data-v-9fad312c]:disabled{opacity:.5;cursor:not-allowed}.pagination-info[data-v-9fad312c]{color:var(--text-secondary);font-size:14px}.custom-select-option[data-v-9fad312c]:hover{color:#e91e63!important;background:#e91e6314!important}.custom-select-option.selected[data-v-9fad312c]{font-weight:600;color:#e91e63!important;background:#e91e631f!important}.password-toggle[data-v-9fad312c]{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;padding:0;font-size:14px;display:flex;position:absolute;right:14px}.password-toggle[data-v-9fad312c]:hover{color:var(--text-primary)}.btn-download-format[data-v-9fad312c]{color:#e91e63;cursor:pointer;background:#e91e631a;border:1px solid #e91e634d;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.btn-download-format[data-v-9fad312c]:hover{color:#fff;background:#e91e63;border-color:#e91e63;transform:translateY(-1px);box-shadow:0 2px 6px #e91e634d}.chat-workspace[data-v-3c641508]{background:var(--bg-card);border:1px solid var(--border-color);height:calc(100vh - 210px);box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;display:flex;overflow:hidden}.student-chat-list[data-v-3c641508]{border-right:1px solid var(--border-color);background:#ffffff05;flex-direction:column;flex-shrink:0;width:320px;display:flex}.list-header[data-v-3c641508]{border-bottom:1px solid var(--border-color);padding:16px 20px}.list-header h3[data-v-3c641508]{color:var(--text-primary);font-size:16px;font-weight:700}.add-chat-btn[data-v-3c641508]{background:var(--bg-input);width:32px;height:32px;color:var(--text-primary);cursor:pointer;transition:var(--transition);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.add-chat-btn[data-v-3c641508]:hover{background:var(--border-color)}.add-chat-btn[data-v-3c641508]:active{transform:scale(.92)}.sessions-container[data-v-3c641508]{flex:1;padding:8px;overflow-y:auto}.session-row[data-v-3c641508]{cursor:pointer;transition:var(--transition);border-radius:14px;align-items:center;gap:12px;margin-bottom:4px;padding:12px;display:flex}.session-row[data-v-3c641508]:hover{background:var(--bg-input)}.session-row.active[data-v-3c641508]{background:#e91e6314;border-left:3px solid #e91e63}.avatar-chat[data-v-3c641508]{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:16px;font-weight:700;display:flex;position:relative}.online-indicator[data-v-3c641508]{border:2px solid var(--bg-card);background:#43e97b;border-radius:50%;width:12px;height:12px;position:absolute;bottom:0;right:0}.session-info[data-v-3c641508]{flex:1;min-width:0}.info-top[data-v-3c641508]{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.info-top h4[data-v-3c641508]{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:14px;font-weight:600;overflow:hidden}.class-tag[data-v-3c641508]{background:var(--bg-input);color:var(--text-secondary);border-radius:30px;padding:1px 6px;font-size:10px;font-weight:600}.info-bottom[data-v-3c641508]{justify-content:space-between;align-items:center;display:flex}.last-msg-preview[data-v-3c641508]{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;padding-right:8px;font-size:12px;overflow:hidden}.unread-badge[data-v-3c641508]{color:#fff;background:#e91e63;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:9px;font-weight:700;display:flex}.chat-thread-panel[data-v-3c641508]{background:var(--bg-card);flex-direction:column;flex:1;display:flex}.thread-header[data-v-3c641508]{border-bottom:1px solid var(--border-color);align-items:center;gap:12px;padding:14px 20px;display:flex}.back-btn[data-v-3c641508]{color:var(--text-primary);cursor:pointer;background:0 0;border:none;padding:4px;font-size:18px;display:none}.header-avatar[data-v-3c641508]{width:40px;height:40px;font-size:14px}.header-details h4[data-v-3c641508]{color:var(--text-primary);margin:0 0 2px;font-size:15px;font-weight:700}.status-indicator[data-v-3c641508]{color:var(--text-secondary);align-items:center;gap:6px;font-size:11px;display:flex}.status-indicator .dot[data-v-3c641508]{background:#8892a8;border-radius:50%;width:8px;height:8px}.status-indicator .dot.online[data-v-3c641508]{background:#43e97b}.messages-pane[data-v-3c641508]{background:#00000003;flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.bubble-wrapper[data-v-3c641508]{width:100%;display:flex}.bubble-wrapper.sent[data-v-3c641508]{justify-content:flex-end}.bubble-wrapper.received[data-v-3c641508]{justify-content:flex-start}.bubble[data-v-3c641508]{max-width:70%;box-shadow:var(--shadow);border-radius:18px;padding:12px 16px;animation:.3s scaleIn-3c641508;position:relative}@keyframes scaleIn-3c641508{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.sent .bubble[data-v-3c641508]{background:var(--gradient-danger);color:#fff;border-bottom-right-radius:4px}.received .bubble[data-v-3c641508]{background:var(--bg-input);color:var(--text-primary);border-bottom-left-radius:4px}.bubble-text[data-v-3c641508]{word-break:break-word;margin:0 0 4px;font-size:14px;line-height:1.4}.bubble-time[data-v-3c641508]{text-align:right;opacity:.7;font-size:9px;display:block}.sent .bubble-time[data-v-3c641508]{color:#fffc}.received .bubble-time[data-v-3c641508]{color:var(--text-secondary)}.thread-footer[data-v-3c641508]{border-top:1px solid var(--border-color);background:#ffffff05;padding:16px 20px}.input-form[data-v-3c641508]{align-items:center;gap:12px;display:flex}.input-form input[data-v-3c641508]{border:1px solid var(--border-color);background:var(--bg-input);color:var(--text-primary);transition:var(--transition);border-radius:30px;outline:none;flex:1;padding:12px 18px;font-size:14px}.input-form input[data-v-3c641508]:focus{border-color:#e91e63;box-shadow:0 0 0 3px #e91e631a}.send-btn[data-v-3c641508]{background:var(--gradient-danger);color:#fff;cursor:pointer;width:44px;height:44px;transition:var(--transition);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:16px;display:flex;box-shadow:0 4px 12px #e91e6333}.send-btn[data-v-3c641508]:active{transform:scale(.92)}.no-active-chat[data-v-3c641508]{color:var(--text-secondary);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:40px;display:flex}.no-active-chat i[data-v-3c641508]{color:var(--border-color);margin-bottom:16px;font-size:56px}.no-active-chat h3[data-v-3c641508]{color:var(--text-primary);margin-bottom:8px;font-size:18px}@media (width<=768px){.chat-workspace[data-v-3c641508]{height:calc(100vh - 230px)}.student-chat-list[data-v-3c641508]{border-right:none;width:100%}.student-chat-list.mobile-hidden[data-v-3c641508],.chat-thread-panel[data-v-3c641508]{display:none}.chat-thread-panel.mobile-open[data-v-3c641508]{width:100%;display:flex}.back-btn[data-v-3c641508]{display:block}}.bubble-content-wrapper[data-v-3c641508]{justify-content:space-between;align-items:flex-start;gap:16px;display:flex;position:relative}.msg-menu-toggle[data-v-3c641508]{color:inherit;opacity:0;cursor:pointer;background:0 0;border:none;margin-top:2px;padding:2px 4px;font-size:10px;transition:opacity .2s,transform .2s}.bubble:hover .msg-menu-toggle[data-v-3c641508]{opacity:.6}.msg-menu-toggle[data-v-3c641508]:hover{transform:scale(1.1);opacity:1!important}.msg-context-menu[data-v-3c641508]{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);z-index:10;border-radius:8px;min-width:120px;animation:.15s fadeIn-3c641508;position:absolute;top:100%;right:0;overflow:hidden}@keyframes fadeIn-3c641508{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.delete-opt[data-v-3c641508]{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:8px 12px;font-family:inherit;font-size:12px;transition:background .2s;display:flex}.delete-opt[data-v-3c641508]:hover{color:#e91e63;background:#e91e631a}.deleted-text[data-v-3c641508]{color:var(--text-secondary);opacity:.85}.sent .deleted-text[data-v-3c641508]{color:#ffffffb3}.clear-chat-btn[data-v-3c641508]{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;transition:var(--transition);background:0 0;border-radius:20px;align-items:center;padding:6px 12px;font-size:12px;font-weight:500;display:flex}.clear-chat-btn[data-v-3c641508]:hover{color:#e91e63;background:#e91e631a;border-color:#e91e6333}.deleted-bubble[data-v-3c641508]{opacity:.75}.delete-session-btn[data-v-3c641508]{color:var(--text-secondary);opacity:0;cursor:pointer;background:0 0;border:none;padding:4px;font-size:11px;transition:opacity .2s,color .2s}.session-row:hover .delete-session-btn[data-v-3c641508]{opacity:.6}.delete-session-btn[data-v-3c641508]:hover{color:#e91e63;opacity:1!important}.session-menu-toggle[data-v-3c641508]{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;font-size:11px;transition:color .2s,transform .2s;display:flex}.session-menu-toggle[data-v-3c641508]:hover{color:var(--text-primary);transform:scale(1.1)}.session-context-menu[data-v-3c641508]{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);z-index:10;border-radius:8px;min-width:120px;animation:.15s fadeIn-3c641508;position:absolute;top:100%;right:0;overflow:hidden}.login-wrapper[data-v-273dd437]{background:var(--bg-body);box-sizing:border-box;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:20px;font-family:Inter,sans-serif;display:flex}.login-card[data-v-273dd437]{background:var(--bg-card);border:1px solid var(--border-color);width:100%;max-width:420px;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(20px);text-align:center;box-sizing:border-box;border-radius:24px;padding:32px 24px;animation:.5s cubic-bezier(.4,0,.2,1) cardIn-273dd437}@keyframes cardIn-273dd437{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.logo-area[data-v-273dd437]{margin-bottom:20px}.logo-icon[data-v-273dd437]{background:var(--gradient-danger);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:10px;font-size:44px}.logo-area h1[data-v-273dd437]{letter-spacing:-.5px;color:var(--text-primary);margin:0 0 4px;font-size:26px;font-weight:800}.subtitle[data-v-273dd437]{color:var(--text-secondary);margin:0;font-size:13px}.divider[data-v-273dd437]{background:var(--border-color);height:1px;margin:20px 0}.login-actions[data-v-273dd437]{flex-direction:column;gap:8px;display:flex}.login-title[data-v-273dd437]{color:var(--text-primary);margin:0 0 2px;font-size:18px;font-weight:700}.login-desc[data-v-273dd437]{color:var(--text-secondary);margin:0 0 12px;font-size:12px;line-height:1.4}.login-form[data-v-273dd437]{text-align:left;flex-direction:column;gap:16px;display:flex}.error-alert[data-v-273dd437]{color:#e91e63;background:#e91e6314;border:1px solid #e91e6333;border-radius:12px;align-items:center;gap:10px;padding:12px 14px;font-size:12px;line-height:1.4;display:flex}.error-alert i[data-v-273dd437]{flex-shrink:0;font-size:16px}.input-group[data-v-273dd437]{flex-direction:column;gap:6px;display:flex}.floating-label[data-v-273dd437]{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);transition:var(--transition);font-size:11px;font-weight:700}.floating-label.active[data-v-273dd437]{color:#e91e63}.input-wrapper[data-v-273dd437]{align-items:center;display:flex;position:relative}.input-icon[data-v-273dd437]{color:var(--text-secondary);pointer-events:none;font-size:14px;position:absolute;left:16px}.input-wrapper input[data-v-273dd437]{border:1px solid var(--border-color);background:var(--bg-input);width:100%;color:var(--text-primary);transition:var(--transition);box-sizing:border-box;border-radius:14px;padding:14px 16px 14px 44px;font-family:inherit;font-size:14px}.input-wrapper input[data-v-273dd437]:focus{background:var(--bg-card);border-color:#e91e63;outline:none;box-shadow:0 0 0 3px #e91e631a}.password-toggle[data-v-273dd437]{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:flex;position:absolute;right:16px}.password-toggle[data-v-273dd437]:hover{color:var(--text-primary)}.form-options[data-v-273dd437]{justify-content:space-between;align-items:center;margin-top:-4px;display:flex}.checkbox-container[data-v-273dd437]{color:var(--text-secondary);cursor:pointer;align-items:center;gap:8px;font-size:12px;display:flex}.submit-btn[data-v-273dd437]{background:var(--gradient-danger);color:#fff;cursor:pointer;transition:var(--transition);box-shadow:var(--shadow);box-sizing:border-box;border:none;border-radius:14px;justify-content:center;align-items:center;gap:10px;width:100%;padding:14px;font-size:14px;font-weight:700;display:flex}.submit-btn[data-v-273dd437]:hover{transform:translateY(-2px);box-shadow:0 6px 20px #e91e634d}.submit-btn[data-v-273dd437]:active{transform:translateY(0)}.submit-btn[data-v-273dd437]:disabled{opacity:.7;cursor:not-allowed;box-shadow:none;transform:none}.demo-accounts-section[data-v-273dd437]{flex-direction:column;gap:8px;display:flex}.toggle-demo-btn[data-v-273dd437]{border:1px dashed var(--border-color);color:var(--text-secondary);cursor:pointer;transition:var(--transition);background:0 0;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px;font-size:12px;font-weight:600;display:inline-flex}.toggle-demo-btn[data-v-273dd437]:hover{background:var(--bg-input);color:var(--text-primary);border-color:#e91e63}.demo-grid[data-v-273dd437]{text-align:left;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.demo-title[data-v-273dd437]{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;grid-column:span 2;margin-bottom:2px;font-size:11px;font-weight:700}.demo-btn[data-v-273dd437]{color:#fff;cursor:pointer;transition:var(--transition);box-shadow:var(--shadow);border:none;border-radius:10px;align-items:center;gap:8px;padding:10px 12px;font-size:11px;font-weight:600;display:flex}.demo-btn i[data-v-273dd437]{font-size:12px}.demo-btn[data-v-273dd437]:hover{opacity:.95;transform:translateY(-1px);box-shadow:0 4px 10px #0000001a}.admin-btn[data-v-273dd437]{background:var(--gradient-danger)}.bk-btn[data-v-273dd437]{color:#1a1a2e;background:linear-gradient(135deg,#a18cd1,#fbc2eb)}.bk-btn i[data-v-273dd437]{color:#1a1a2e}.siswa-btn[data-v-273dd437]{background:var(--gradient-info)}.bypass-area[data-v-273dd437]{border-top:1px dashed var(--border-color);grid-column:span 2;margin-top:12px;padding-top:12px}.bypass-btn-group[data-v-273dd437]{justify-content:center;gap:8px;display:flex}.bypass-btn[data-v-273dd437]{color:#fff;cursor:pointer;transition:var(--transition);border:none;border-radius:8px;align-items:center;gap:6px;padding:6px 14px;font-size:10px;font-weight:600;display:inline-flex}.bypass-btn[data-v-273dd437]:hover{opacity:.9;transform:translateY(-1px)}.db-btn[data-v-273dd437]{background:var(--gradient-danger)}.db-bk-btn[data-v-273dd437]{color:#1a1a2e;background:linear-gradient(135deg,#a18cd1,#fbc2eb)}.db-siswa-btn[data-v-273dd437]{background:var(--gradient-info)}.fade-enter-active[data-v-273dd437],.fade-leave-active[data-v-273dd437]{transition:opacity .25s}.fade-enter-from[data-v-273dd437],.fade-leave-to[data-v-273dd437]{opacity:0}.expand-enter-active[data-v-273dd437],.expand-leave-active[data-v-273dd437]{max-height:250px;transition:max-height .3s ease-in-out,opacity .3s;overflow:hidden}.expand-enter-from[data-v-273dd437],.expand-leave-to[data-v-273dd437]{opacity:0;max-height:0}.shortcut-trigger-btn[data-v-273dd437]{border:1px dashed var(--border-color);color:var(--text-secondary);cursor:pointer;transition:var(--transition);box-sizing:border-box;background:#ffffff05;border-radius:14px;justify-content:center;align-items:center;gap:10px;width:100%;padding:12px 18px;font-size:12px;font-weight:600;display:inline-flex}.shortcut-trigger-btn[data-v-273dd437]:hover{background:var(--bg-input);color:var(--text-primary);border-color:#e91e63}.login-footer[data-v-273dd437]{color:var(--text-secondary);margin-top:24px;font-size:11px}@media print{.success-page-container[data-v-e793ed18]{display:none!important}}.success-page-container[data-v-e793ed18]{-webkit-user-select:none;user-select:none;background:linear-gradient(145deg,#f7f0f2 0%,#f0e3e7 100%);justify-content:center;align-items:center;width:100%;min-height:100vh;padding:1.5rem;display:flex}.card-wrapper[data-v-e793ed18]{background:#fff;border:1px solid #e91e6314;border-radius:2.5rem;width:100%;max-width:480px;padding:2.2rem 2rem 2rem;transition:filter .2s,transform .2s;position:relative;overflow:hidden;box-shadow:0 25px 50px -10px #b4284633,0 8px 20px #0000000f}.card-blurred[data-v-e793ed18]{transform:scale(.98);filter:blur(25px)!important}.card-wrapper[data-v-e793ed18]:after{content:"";pointer-events:none;z-index:0;background-image:radial-gradient(circle at 20% 30%,#e91e630d 0%,#0000 30%),radial-gradient(circle at 80% 70%,#e91e630f 0%,#0000 40%),radial-gradient(circle at 40% 90%,#e91e630a 0%,#0000 35%);position:absolute;inset:0}.brand[data-v-e793ed18],.proof-animation[data-v-e793ed18],.detail-grid[data-v-e793ed18],.action-group[data-v-e793ed18],.footer-note[data-v-e793ed18],.footer-copyright[data-v-e793ed18]{z-index:2;position:relative}.brand[data-v-e793ed18]{align-items:center;gap:12px;margin-bottom:1.8rem;display:flex}.brand img[data-v-e793ed18]{object-fit:contain;background:#fce4ec;border-radius:18px;width:2.2rem;height:2.2rem;padding:.5rem;box-shadow:0 4px 8px #e91e631a}.brand h1[data-v-e793ed18]{letter-spacing:-.5px;background:linear-gradient(135deg,#880e4f,#e91e63);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:1.9rem;font-weight:700}.brand span[data-v-e793ed18]{color:#880e4f;letter-spacing:.3px;background:#fce4ec;border-radius:40px;margin-left:auto;padding:.25rem 1rem;font-size:.8rem;font-weight:300}.proof-animation[data-v-e793ed18]{flex-direction:column;align-items:center;margin:1.8rem 0 1.2rem;display:flex;position:relative}.emoticon-container[data-v-e793ed18]{justify-content:center;align-items:center;width:150px;height:150px;display:flex;position:relative}.circle-check[data-v-e793ed18]{z-index:3;background:linear-gradient(135deg,#e91e63,#c2185b);border-radius:50%;justify-content:center;align-items:center;width:110px;height:110px;animation:2s ease-in-out infinite pulseGlow-e793ed18,3s ease-in-out infinite floatY-e793ed18;display:flex;position:relative;box-shadow:0 12px 28px -8px #e91e6380}.circle-check[data-v-e793ed18]:before{content:"";border:3px solid #e91e6340;border-radius:50%;animation:2.4s ease-out infinite ringPulse-e793ed18;position:absolute;inset:-10px}.circle-check[data-v-e793ed18]:after{content:"";border:2px dashed #e91e632e;border-radius:50%;animation:10s linear infinite spinRing-e793ed18;position:absolute;inset:-20px}.emoticon[data-v-e793ed18]{z-index:3;filter:drop-shadow(0 4px 12px #0000001a);font-size:3.8rem;line-height:1;animation:2s ease-in-out infinite salute-e793ed18}@keyframes salute-e793ed18{0%{transform:rotate(0)scale(1)}15%{transform:rotate(-12deg)scale(1.1)}30%{transform:rotate(4deg)scale(1.05)}45%{transform:rotate(-6deg)scale(1.08)}60%{transform:rotate(0)scale(1)}to{transform:rotate(0)scale(1)}}@keyframes pulseGlow-e793ed18{0%{transform:scale(1);box-shadow:0 12px 28px -8px #e91e6380}50%{transform:scale(1.03);box-shadow:0 20px 40px -4px #e91e63b3,0 0 0 8px #e91e631a}to{transform:scale(1);box-shadow:0 12px 28px -8px #e91e6380}}@keyframes floatY-e793ed18{0%{transform:translateY(0)scale(1)}50%{transform:translateY(-8px)scale(1.02)}to{transform:translateY(0)scale(1)}}@keyframes ringPulse-e793ed18{0%{opacity:.6;transform:scale(.9)}to{opacity:0;transform:scale(1.6)}}@keyframes spinRing-e793ed18{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.firework-particle[data-v-e793ed18]{pointer-events:none;z-index:4;opacity:0;border-radius:50%;position:absolute}.firework-particle[data-v-e793ed18]:first-child{background:#ff6b6b;width:8px;height:8px;animation:2.2s ease-out .1s infinite fireworkBurst1-e793ed18;box-shadow:0 0 12px #ff6b6b}.firework-particle[data-v-e793ed18]:nth-child(2){background:#ffd93d;width:7px;height:7px;animation:2.6s ease-out .4s infinite fireworkBurst2-e793ed18;box-shadow:0 0 12px #ffd93d}.firework-particle[data-v-e793ed18]:nth-child(3){background:#6bcbff;width:9px;height:9px;animation:2s ease-out .7s infinite fireworkBurst3-e793ed18;box-shadow:0 0 14px #6bcbff}.firework-particle[data-v-e793ed18]:nth-child(4){background:#a66cff;width:6px;height:6px;animation:2.4s ease-out .2s infinite fireworkBurst4-e793ed18;box-shadow:0 0 12px #a66cff}.firework-particle[data-v-e793ed18]:nth-child(5){background:#ff8a8a;width:8px;height:8px;animation:2.8s ease-out .6s infinite fireworkBurst5-e793ed18;box-shadow:0 0 14px #ff8a8a}.firework-particle[data-v-e793ed18]:nth-child(6){background:#ffb347;width:7px;height:7px;animation:2.3s ease-out .9s infinite fireworkBurst6-e793ed18;box-shadow:0 0 12px #ffb347}.firework-particle[data-v-e793ed18]:nth-child(7){background:#ff6b9d;width:10px;height:10px;animation:2.5s ease-out .3s infinite fireworkBurst7-e793ed18;box-shadow:0 0 16px #ff6b9d}.firework-particle[data-v-e793ed18]:nth-child(8){background:#4ecdc4;width:6px;height:6px;animation:2.7s ease-out .8s infinite fireworkBurst8-e793ed18;box-shadow:0 0 12px #4ecdc4}.firework-particle[data-v-e793ed18]:nth-child(9){background:#ff85a1;width:8px;height:8px;animation:2.1s ease-out .5s infinite fireworkBurst9-e793ed18;box-shadow:0 0 14px #ff85a1}.firework-particle[data-v-e793ed18]:nth-child(10){background:#ffd93d;width:7px;height:7px;animation:2.9s ease-out infinite fireworkBurst10-e793ed18;box-shadow:0 0 12px #ffd93d}@keyframes fireworkBurst1-e793ed18{0%{opacity:0;transform:translate(0)scale(.5)}15%{opacity:1;transform:translate(-45px,-50px)scale(1.2)}50%{opacity:.9;transform:translate(-65px,-70px)scale(.9)}to{opacity:0;transform:translate(-85px,-90px)scale(.3)}}@keyframes fireworkBurst2-e793ed18{0%{opacity:0;transform:translate(0)scale(.5)}15%{opacity:1;transform:translate(50px,-45px)scale(1.2)}50%{opacity:.9;transform:translate(70px,-65px)scale(.9)}to{opacity:0;transform:translate(90px,-85px)scale(.3)}}@keyframes fireworkBurst3-e793ed18{0%{opacity:0;transform:translate(0)scale(.5)}15%{opacity:1;transform:translate(-35px,50px)scale(1.2)}50%{opacity:.9;transform:translate(-55px,70px)scale(.9)}to{opacity:0;transform:translate(-75px,90px)scale(.3)}}@keyframes fireworkBurst4-e793ed18{0%{opacity:0;transform:translate(0)scale(.5)}15%{opacity:1;transform:translate(40px,48px)scale(1.2)}50%{opacity:.9;transform:translate(60px,68px)scale(.9)}to{opacity:0;transform:translate(80px,88px)scale(.3)}}@keyframes fireworkBurst5-e793ed18{0%{opacity:0;transform:translate(0)scale(.5)}15%{opacity:1;transform:translate(-60px,20px)scale(1.2)}50%{opacity:.9;transform:translate(-80px,30px)scale(.9)}to{opacity:0;transform:translate(-100px,40px)scale(.3)}}@keyframes fireworkBurst6-e793ed18{0%{opacity:0;transform:translate(0)scale(.5)}15%{opacity:1;transform:translate(55px,-20px)scale(1.2)}50%{opacity:.9;transform:translate(75px,-35px)scale(.9)}to{opacity:0;transform:translate(95px,-50px)scale(.3)}}@keyframes fireworkBurst7-e793ed18{0%{opacity:0;transform:translate(0)scale(.5)}15%{opacity:1;transform:translate(-20px,-60px)scale(1.2)}50%{opacity:.9;transform:translate(-30px,-80px)scale(.9)}to{opacity:0;transform:translate(-40px,-100px)scale(.3)}}@keyframes fireworkBurst8-e793ed18{0%{opacity:0;transform:translate(0)scale(.5)}15%{opacity:1;transform:translate(25px,-55px)scale(1.2)}50%{opacity:.9;transform:translate(40px,-75px)scale(.9)}to{opacity:0;transform:translate(55px,-95px)scale(.3)}}@keyframes fireworkBurst9-e793ed18{0%{opacity:0;transform:translate(0)scale(.5)}15%{opacity:1;transform:translate(-50px,-25px)scale(1.2)}50%{opacity:.9;transform:translate(-70px,-40px)scale(.9)}to{opacity:0;transform:translate(-90px,-55px)scale(.3)}}@keyframes fireworkBurst10-e793ed18{0%{opacity:0;transform:translate(0)scale(.5)}15%{opacity:1;transform:translate(45px,30px)scale(1.2)}50%{opacity:.9;transform:translate(65px,45px)scale(.9)}to{opacity:0;transform:translate(85px,60px)scale(.3)}}.proof-title[data-v-e793ed18]{letter-spacing:-.3px;background:linear-gradient(90deg,#880e4f,#e91e63,#f06292,#880e4f) 0 0/300% 100%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-top:.8rem;font-size:1.7rem;font-weight:700;animation:4s ease-in-out infinite gradientMove-e793ed18}@keyframes gradientMove-e793ed18{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.proof-sub[data-v-e793ed18]{color:#880e4f;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fce4ec;border:1px solid #e91e6326;border-radius:40px;margin-top:.2rem;padding:.3rem 1.6rem;font-size:.95rem;font-weight:500;animation:3s ease-in-out infinite fadePulse-e793ed18}@keyframes fadePulse-e793ed18{0%{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.02)}to{opacity:.8;transform:scale(1)}}.divider[data-v-e793ed18]{opacity:.5;background:linear-gradient(90deg,#0000,#f48fb1,#e91e63,#f48fb1,#0000) 0 0/200% 100%;height:2px;margin:1.8rem 0 1.5rem;animation:3s linear infinite dividerShimmer-e793ed18}@keyframes dividerShimmer-e793ed18{0%{background-position:-200% 0}to{background-position:200% 0}}.detail-grid[data-v-e793ed18]{background:#fdf6f9;border:1px solid #f8d7e2;border-radius:28px;flex-direction:column;gap:1rem;padding:1.2rem 1.5rem;display:flex;box-shadow:inset 0 2px 6px #e91e6308}.row-detail[data-v-e793ed18]{border-bottom:1px dashed #f5cdda;justify-content:space-between;align-items:baseline;padding-bottom:.6rem;display:flex}.row-detail[data-v-e793ed18]:last-child{border-bottom:none;padding-bottom:0}.label[data-v-e793ed18]{color:#880e4f;letter-spacing:.3px;align-items:center;gap:8px;font-size:.9rem;font-weight:600;display:flex}.label i[data-v-e793ed18]{color:#e91e63;width:1.4rem;font-size:1rem;animation:3s ease-in-out infinite iconWiggle-e793ed18}@keyframes iconWiggle-e793ed18{0%,to{transform:rotate(0)}25%{transform:rotate(6deg)}75%{transform:rotate(-6deg)}}.value[data-v-e793ed18]{color:#4a1a2e;background:#fff;border:1px solid #f5cdda;border-radius:40px;padding:.25rem 1rem;font-size:.95rem;font-weight:600;box-shadow:0 1px 4px #e91e630d}.value-catatan[data-v-e793ed18]{color:#6a2a4e;word-break:break-word;text-align:right;max-width:65%;font-size:.9rem;font-style:italic;font-weight:400}.status-badge[data-v-e793ed18]{color:#880e4f;background:#fce4ec;border:1px solid #f8b4c9;border-radius:60px;padding:.2rem 1.2rem;font-size:.85rem;font-weight:600;animation:2.4s ease-in-out infinite statusPulse-e793ed18}@keyframes statusPulse-e793ed18{0%{background:#fce4ec}50%{background:#f8d7e2;box-shadow:0 0 0 4px #e91e6314}to{background:#fce4ec}}.action-group[data-v-e793ed18]{flex-wrap:wrap;justify-content:center;gap:.8rem;margin:2rem 0 .8rem;display:flex}.btn[data-v-e793ed18]{color:#880e4f;cursor:pointer;background:#fdf6f9;border:1px solid #f5cdda;border-radius:60px;outline:none;align-items:center;gap:10px;padding:.7rem 1.8rem;font-size:.95rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 4px 8px #e91e6308}.btn-primary[data-v-e793ed18]{color:#fff;background:linear-gradient(145deg,#c2185b,#e91e63);border:none;padding:.7rem 2.2rem;animation:2s ease-in-out infinite btnGlow-e793ed18;box-shadow:0 8px 18px -6px #e91e6366}@keyframes btnGlow-e793ed18{0%{box-shadow:0 8px 18px -6px #e91e6366}50%{box-shadow:0 12px 28px -4px #e91e6399}to{box-shadow:0 8px 18px -6px #e91e6366}}.btn i[data-v-e793ed18]{color:#e91e63}.btn-primary i[data-v-e793ed18]{color:#fff}.btn[data-v-e793ed18]:hover{opacity:.95;transform:scale(.97)}.btn-outline[data-v-e793ed18]{background:0 0;border:1.5px solid #f5a3bb}.footer-note[data-v-e793ed18]{color:#880e4f;letter-spacing:.2px;border-top:1px solid #f5cdda;justify-content:space-between;margin-top:1.8rem;padding-top:1.2rem;font-size:.7rem;display:flex}.footer-note i[data-v-e793ed18]{color:#e91e63;margin-right:6px}.footer-copyright[data-v-e793ed18]{text-align:center;color:#880e4f;letter-spacing:.4px;border-top:1px solid #f5cdda;margin-top:.8rem;padding-top:.8rem;font-size:.7rem}.particle-bg[data-v-e793ed18]{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.particle[data-v-e793ed18]{background:#e91e631a;border-radius:50%;width:6px;height:6px;animation:8s linear infinite particleUp-e793ed18;position:absolute}.particle[data-v-e793ed18]:first-child{animation-duration:9s;animation-delay:0s;left:10%}.particle[data-v-e793ed18]:nth-child(2){background:#e91e6314;width:8px;height:8px;animation-duration:7s;animation-delay:2s;left:25%}.particle[data-v-e793ed18]:nth-child(3){animation-duration:11s;animation-delay:1s;left:45%}.particle[data-v-e793ed18]:nth-child(4){background:#e91e631f;width:5px;height:5px;animation-duration:8s;animation-delay:3s;left:65%}.particle[data-v-e793ed18]:nth-child(5){animation-duration:10s;animation-delay:.5s;left:80%}.particle[data-v-e793ed18]:nth-child(6){background:#e91e630f;width:7px;height:7px;animation-duration:6s;animation-delay:4s;left:90%}@keyframes particleUp-e793ed18{0%{opacity:0;transform:translateY(100%)scale(0)}20%{opacity:.5;transform:translateY(60%)scale(1)}80%{opacity:.5;transform:translateY(-40%)scale(1)}to{opacity:0;transform:translateY(-120%)scale(.5)}}@media (width<=480px){.card-wrapper[data-v-e793ed18]{padding:1.8rem 1.2rem}.brand h1[data-v-e793ed18]{font-size:1.6rem}.circle-check[data-v-e793ed18]{width:90px;height:90px}.emoticon[data-v-e793ed18]{font-size:3rem}.proof-title[data-v-e793ed18]{font-size:1.4rem}.emoticon-container[data-v-e793ed18]{width:120px;height:120px}}:root{--bg-body:#f5f7fb;--bg-sidebar:linear-gradient(180deg, #1a0a2e 0%, #2d1b4e 40%, #1a0a2e 100%);--bg-card:#fff;--bg-input:#f0f2f6;--bg-header:#fff;--bg-bottom:#fff;--text-primary:#1a1a2e;--text-secondary:#8892a8;--text-white:#fff;--border-color:#eef2f6;--shadow:0 2px 12px #0000000f;--shadow-lg:0 8px 32px #00000014;--shadow-bottom:0 -4px 30px #00000014;--badge-bg:#e91e63;--gradient-danger:linear-gradient(135deg, #f093fb, #e91e63);--gradient-warning:linear-gradient(135deg, #fa709a, #fee140);--gradient-info:linear-gradient(135deg, #4facfe, #00f2fe);--gradient-success:linear-gradient(135deg, #43e97b, #38f9d7);--transition:all .3s cubic-bezier(.4, 0, .2, 1);--safe-top:env(safe-area-inset-top,20px);--safe-bottom:env(safe-area-inset-bottom,0px)}[data-theme=dark]{--bg-body:#0f0a1a;--bg-card:#1a0a2e;--bg-input:#2d1b4e;--bg-header:#1a0a2e;--bg-bottom:#1a0a2e;--text-primary:#e8e0f0;--text-secondary:#8892b0;--border-color:#2d1b4e;--shadow:0 2px 12px #0000004d;--shadow-lg:0 8px 32px #0006;--shadow-bottom:0 -4px 30px #0006}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{background:var(--bg-body);min-height:100vh;transition:var(--transition);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;overflow-x:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--border-color)}::-webkit-scrollbar-thumb{background:linear-gradient(#a18cd1,#e91e63);border-radius:10px}.sidebar{background:var(--bg-sidebar);color:#fff;z-index:1000;width:260px;height:100vh;transition:var(--transition);padding:28px 20px;position:fixed;top:0;left:0;overflow-y:auto;box-shadow:4px 0 30px #0000004d}.sidebar .logo{letter-spacing:-.5px;align-items:center;gap:12px;margin-bottom:40px;font-size:22px;font-weight:800;display:flex}.sidebar .logo i{background:var(--gradient-danger);color:#fff;border-radius:14px;padding:8px;font-size:30px}.sidebar .logo span{background:var(--gradient-danger);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.sidebar .logo small{-webkit-text-fill-color:#ffffff4d;letter-spacing:.5px;background:0 0;font-size:10px;font-weight:400;display:block}.sidebar .menu-label{text-transform:uppercase;letter-spacing:1px;color:#ffffff4d;margin:24px 0 10px;font-size:11px}.sidebar .menu-item{color:#fff9;transition:var(--transition);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:12px;align-items:center;gap:14px;width:100%;margin-bottom:4px;padding:12px 16px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.sidebar .menu-item i{color:#fff9;width:22px;transition:var(--transition);font-size:18px}.sidebar .menu-item:hover i,.sidebar .menu-item.active i{color:#fff}.sidebar .menu-item:hover,.sidebar .menu-item.active{color:#fff;background:#ffffff14}.sidebar .menu-item.active{background:#e11e6333;border-left:3px solid #e91e63}.sidebar .menu-item .badge-menu{color:#fff;background:#e91e63;border-radius:30px;margin-left:auto;padding:2px 8px;font-size:10px;font-weight:700}.sidebar .user-profile{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0f;border-radius:14px;align-items:center;gap:12px;padding:14px 16px;display:flex;position:absolute;bottom:28px;left:20px;right:20px}.sidebar .user-profile img{object-fit:cover;border:2px solid #e91e63;border-radius:50%;width:44px;height:44px}.sidebar .user-profile .name{color:#fff;font-size:14px;font-weight:600}.sidebar .user-profile .role{color:#ffffff80;font-size:12px}.app-container{background:var(--bg-body);max-width:430px;min-height:100vh;margin:0 auto;position:relative;box-shadow:0 0 40px #00000014}.status-bar{display:none}.app-header{background:var(--bg-header);border-bottom:1px solid var(--border-color);z-index:100;-webkit-backdrop-filter:blur(20px);padding:12px 20px 16px;padding-top:calc(8px + var(--safe-top));position:sticky;top:0}.app-header .header-top{justify-content:space-between;align-items:center;display:flex}.app-header .header-left{align-items:center;gap:10px;display:flex}.app-header .header-left .greeting-text{color:var(--text-secondary);font-size:12px}.app-header .header-left .greeting-name{color:var(--text-primary);background:var(--gradient-danger);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:16px;font-weight:700}.app-header .header-right{align-items:center;gap:6px;display:flex}.app-header .header-right .icon-btn{background:var(--bg-input);width:38px;height:38px;color:var(--text-primary);cursor:pointer;transition:var(--transition);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:16px;display:flex;position:relative}.app-header .header-right .icon-btn:active{transform:scale(.92)}.app-header .header-right .icon-btn .badge{background:var(--badge-bg);color:#fff;border:2px solid var(--bg-header);border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:9px;font-weight:700;display:flex;position:absolute;top:-2px;right:-2px}.app-header .header-right .avatar-btn{cursor:pointer;background:var(--gradient-danger);color:#fff;width:38px;height:38px;transition:var(--transition);border:2px solid #e91e63;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:14px;font-weight:700;display:flex}.app-header .header-right .avatar-btn:active{transform:scale(.92)}.search-bar{background:var(--bg-header);padding:12px 20px}.search-bar .search-input-wrapper{background:var(--bg-input);border:1px solid var(--border-color);transition:var(--transition);border-radius:30px;align-items:center;gap:12px;padding:10px 16px;display:flex}.search-bar .search-input-wrapper:focus-within{border-color:#e91e63;box-shadow:0 0 0 3px #e91e631a}.search-bar .search-input-wrapper i{color:var(--text-secondary);font-size:16px}.search-bar .search-input-wrapper input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-family:Inter,sans-serif;font-size:14px}.search-bar .search-input-wrapper input::placeholder{color:var(--text-secondary)}.main-content{min-height:calc(100vh - 180px);padding:0 16px 100px}.page{animation:.4s fadeSlide;display:none}.page.active{display:block}@keyframes fadeSlide{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.stats-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);transition:var(--transition);box-shadow:var(--shadow);border-radius:16px;padding:16px}.stat-card:active{transform:scale(.97)}.stat-card .stat-icon{border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:10px;font-size:18px;display:flex}.stat-card .stat-icon i{font-size:18px}.stat-card .stat-icon.danger{color:#c62828;background:#fce4ec}.stat-card .stat-icon.warning{color:#e65100;background:#fff3e0}.stat-card .stat-icon.info{color:#0d47a1;background:#e3f2fd}.stat-card .stat-icon.success{color:#1b5e20;background:#e8f5e9}.stat-card .stat-number{color:var(--text-primary);font-size:22px;font-weight:800}.stat-card .stat-label{color:var(--text-secondary);margin-top:2px;font-size:12px}.stat-card .stat-change{border-radius:30px;margin-top:4px;padding:1px 10px;font-size:10px;font-weight:600;display:inline-block}.stat-card .stat-change.up{color:#2e7d32;background:#e8f5e9}.stat-card .stat-change.down{color:#c62828;background:#fce4ec}.section-header{justify-content:space-between;align-items:center;margin:24px 0 14px;display:flex}.section-header h2{color:var(--text-primary);font-size:18px;font-weight:700}.section-header .view-all{color:#e91e63;cursor:pointer;background:0 0;border:none;font-family:Inter,sans-serif;font-size:13px;font-weight:600}.section-header .view-all:active{opacity:.6}.section-header .tabs-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:6px;padding:4px 0;display:flex;overflow-x:auto}.section-header .tabs-scroll::-webkit-scrollbar{display:none}.section-header .tabs-scroll button{cursor:pointer;transition:var(--transition);background:var(--bg-input);color:var(--text-secondary);white-space:nowrap;border:none;border-radius:30px;padding:6px 16px;font-family:Inter,sans-serif;font-size:12px;font-weight:600}.section-header .tabs-scroll button.active{background:var(--gradient-danger);color:#fff;box-shadow:0 4px 16px #e91e6340}.student-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:12px;padding:4px 0 8px;display:flex;overflow-x:auto}.student-scroll::-webkit-scrollbar{display:none}.student-card-mini{background:var(--bg-card);border:1px solid var(--border-color);text-align:center;min-width:120px;box-shadow:var(--shadow);transition:var(--transition);border-radius:16px;flex-shrink:0;padding:16px}.student-card-mini:active{transform:scale(.96)}.student-card-mini .avatar-mini{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 8px;font-size:20px;font-weight:700;display:flex}.student-card-mini h4{color:var(--text-primary);font-size:13px;font-weight:600}.student-card-mini .class-label{color:var(--text-secondary);font-size:11px}.student-card-mini .violation-count{color:#e91e63;margin-top:4px;font-size:11px;font-weight:600}.violation-item{background:var(--bg-card);border:1px solid var(--border-color);transition:var(--transition);box-shadow:var(--shadow);border-radius:14px;margin-bottom:10px;padding:14px 16px}.violation-item:active{transform:scale(.99)}.violation-item .violation-top{justify-content:space-between;align-items:flex-start;margin-bottom:6px;display:flex}.violation-item .violation-top .violation-title{color:var(--text-primary);font-size:14px;font-weight:600}.violation-item .violation-top .violation-student{color:var(--text-secondary);font-size:13px}.violation-item .violation-meta{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.badge{text-transform:capitalize;letter-spacing:.2px;border-radius:30px;justify-content:center;align-items:center;padding:2.5px 10px;font-size:10px;font-weight:600;line-height:1.3;display:inline-flex}.badge.ringan{color:#b7950b;background:#fef9e7;border:1px solid #f9e79f}.badge.sedang{color:#e65100;background:#fff3e0;border:1px solid #ffe0b2}.badge.berat{color:#e53e3e;background:#fde8e8;border:1px solid #fed7d7}.badge.sangat-berat,.badge.sangat_berat{color:#b71c1c;background:#ffebee;border:1px solid #ffcdd2}[data-theme=dark] .badge.ringan{color:#fcc419;background:#f59f0026;border-color:#f59f004d}[data-theme=dark] .badge.sedang{color:#ff922b;background:#e6510026;border-color:#e651004d}[data-theme=dark] .badge.berat{color:#ff6b6b;background:#e53e3e26;border-color:#e53e3e4d}[data-theme=dark] .badge.sangat-berat,[data-theme=dark] .badge.sangat_berat{color:#ff8787;background:#b71c1c33;border-color:#b71c1c59}.violation-item .violation-meta .badge{border-radius:30px;padding:2.5px 10px;font-size:10px;font-weight:600}.violation-item .violation-meta .badge.ringan{color:#b7950b;background:#fef9e7;border:1px solid #f9e79f}.violation-item .violation-meta .badge.sedang{color:#e65100;background:#fff3e0;border:1px solid #ffe0b2}.violation-item .violation-meta .badge.berat{color:#e53e3e;background:#fde8e8;border:1px solid #fed7d7}.violation-item .violation-meta .badge.sangat-berat,.violation-item .violation-meta .badge.sangat_berat{color:#b71c1c;background:#ffebee;border:1px solid #ffcdd2}.status{text-transform:capitalize;letter-spacing:.2px;background:#64748b;border-radius:30px;justify-content:center;align-items:center;padding:2.5px 10px;font-size:10px;font-weight:600;line-height:1.3;display:inline-flex;box-shadow:0 1px 2px #0000001f;color:#fff!important}.status.selesai,.status.lunas,.status.aktif,.status[class*=selesai],.violation-item .violation-meta .status.selesai,.violation-item .violation-meta .status[class*=selesai]{border:1px solid #15803d;color:#fff!important;background:#16a34a!important}.status.diproses,.status.proses,.status.tindakan,.status[class*=proses],.violation-item .violation-meta .status.diproses,.violation-item .violation-meta .status.proses,.violation-item .violation-meta .status[class*=proses]{border:1px solid #1d4ed8;color:#fff!important;background:#2563eb!important}.status.menunggu,.status.pending,.status[class*=menunggu],.violation-item .violation-meta .status.menunggu,.violation-item .violation-meta .status[class*=menunggu]{border:1px solid #c2410c;color:#fff!important;background:#ea580c!important}.violation-item .violation-meta .status{border-radius:30px;padding:2.5px 10px;font-size:10px;font-weight:600;color:#fff!important}.violation-item .violation-meta .date{color:var(--text-secondary);font-size:12px}.bottom-nav{background:var(--bg-bottom);-webkit-backdrop-filter:blur(20px);width:100%;max-width:430px;padding:6px 0 calc(6px + var(--safe-bottom));z-index:999;box-shadow:var(--shadow-bottom);border-top:1px solid var(--border-color);margin:0 auto;position:fixed;bottom:0;left:0;right:0}.bottom-nav .nav-items{justify-content:space-around;align-items:flex-start;width:100%;padding:0 4px;display:flex}.bottom-nav .nav-item{color:var(--text-secondary);cursor:pointer;transition:var(--transition);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-width:0;padding:4px 0;font-family:Inter,sans-serif;text-decoration:none;display:flex;position:relative}.bottom-nav .nav-item .nav-icon{transition:var(--transition);justify-content:center;align-items:center;width:28px;height:28px;font-size:22px;display:flex;position:relative}.bottom-nav .nav-item .nav-icon .badge-bottom{color:#fff;text-align:center;background:#e91e63;border-radius:30px;min-width:16px;padding:1px 5px;font-size:8px;font-weight:700;line-height:14px;position:absolute;top:-6px;right:-10px}.bottom-nav .nav-item .nav-label{transition:var(--transition);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10px;font-weight:500;line-height:1.2;overflow:hidden}.bottom-nav .nav-item.active{color:#e91e63}.bottom-nav .nav-item.active .nav-icon{transform:translateY(-1px)}.bottom-nav .nav-item.active .nav-label{color:#e91e63;font-weight:600}.bottom-nav .nav-item .nav-indicator{opacity:0;width:4px;height:4px;transition:var(--transition);background:#e91e63;border-radius:50%;margin-top:1px}.bottom-nav .nav-item.active .nav-indicator{opacity:1}.bottom-nav .nav-item:active{transform:scale(.92)}.fab{background:var(--gradient-danger);color:#fff;cursor:pointer;z-index:800;width:56px;height:56px;transition:var(--transition);border:none;border-radius:50%;justify-content:center;align-items:center;max-width:430px;font-size:24px;display:flex;position:fixed;bottom:90px;right:20px;box-shadow:0 4px 20px #e91e6366}.fab i{color:#fff;font-size:24px}.fab:active{transform:scale(.88)}.modal-overlay{z-index:3000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:flex-end;width:100%;height:100%;animation:.3s fadeIn;display:none;position:fixed;top:0;left:0}.modal-overlay.open{display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-card);border-radius:24px 24px 0 0;width:100%;max-width:430px;max-height:85vh;padding:24px 20px 30px;animation:.4s cubic-bezier(.4,0,.2,1) slideUp;overflow-y:auto;box-shadow:0 -8px 40px #00000026}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.modal .modal-handle{background:var(--border-color);border-radius:4px;width:40px;height:4px;margin:0 auto 16px}.modal .modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal .modal-header h2{color:var(--text-primary);font-size:20px}.modal .modal-header h2 i{color:#e91e63;margin-right:8px}.modal .modal-header .close-modal{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;padding:0 4px;font-size:24px}.modal .modal-header .close-modal:active{transform:scale(.8)}.modal .form-group{margin-bottom:16px}.modal .form-group label{color:var(--text-primary);margin-bottom:4px;font-size:13px;font-weight:600;display:block}.modal .form-group input,.modal .form-group select,.modal .form-group textarea{border:1px solid var(--border-color);background:var(--bg-input);width:100%;color:var(--text-primary);transition:var(--transition);-webkit-appearance:none;border-radius:12px;padding:12px 14px;font-family:Inter,sans-serif;font-size:14px}.modal .form-group input:focus,.modal .form-group select:focus,.modal .form-group textarea:focus{border-color:#e91e63;outline:none;box-shadow:0 0 0 3px #e91e631a}.modal .form-group textarea{resize:vertical;min-height:70px}.modal .form-actions{gap:12px;margin-top:20px;display:flex}.modal .form-actions button{cursor:pointer;transition:var(--transition);border:none;border-radius:30px;flex:1;padding:12px;font-family:Inter,sans-serif;font-size:14px;font-weight:600}.modal .form-actions .btn-cancel{background:var(--bg-input);color:var(--text-secondary)}.modal .form-actions .btn-cancel:active{transform:scale(.97)}.modal .form-actions .btn-submit{background:var(--gradient-danger);color:#fff}.modal .form-actions .btn-submit:active{transform:scale(.97)}.modal .form-actions .btn-submit i{margin-right:6px}.notif-panel{z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;animation:.3s fadeIn;display:none;position:fixed;inset:0}.notif-panel.open{display:block}.notif-panel .notif-content{background:var(--bg-card);width:100%;max-width:400px;height:100%;padding:20px;animation:.3s slideInRight;position:absolute;top:0;right:0;overflow-y:auto}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.notif-panel .notif-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;display:flex}.notif-panel .notif-header h3{color:var(--text-primary);font-size:18px}.notif-panel .notif-header h3 i{color:#e91e63;margin-right:8px}.notif-panel .notif-header .close-notif{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;padding:0 4px;font-size:24px}.notif-panel .notif-item{border-bottom:1px solid var(--border-color);align-items:flex-start;gap:12px;padding:12px 0;display:flex}.notif-panel .notif-item:last-child{border-bottom:none}.notif-panel .notif-item .notif-icon{margin-top:2px;font-size:20px}.notif-panel .notif-item .notif-text{color:var(--text-primary);font-size:14px}.notif-panel .notif-item .notif-time{color:var(--text-secondary);font-size:12px}.settings-group{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow);border-radius:16px;margin-bottom:16px;padding:16px}.settings-group h3{color:var(--text-primary);margin-bottom:12px;font-size:16px}.settings-row{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.settings-row:last-child{border-bottom:none}.settings-row .setting-label{color:var(--text-primary);font-size:14px;font-weight:500}.settings-row .setting-desc{color:var(--text-secondary);font-size:12px}.switch{background:var(--border-color);cursor:pointer;width:44px;height:24px;transition:var(--transition);border-radius:30px;flex-shrink:0;position:relative}.switch.active{background:#e91e63}.switch .slider{width:20px;height:20px;transition:var(--transition);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 2px 8px #00000026}.switch.active .slider{left:22px}.category-item{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow);border-radius:14px;justify-content:space-between;align-items:center;margin-bottom:10px;padding:14px 16px;display:flex}.category-item .category-info h4{color:var(--text-primary);font-size:14px}.category-item .category-info p{color:var(--text-secondary);font-size:12px}.chart-bar{margin:8px 0}.chart-bar .chart-row{color:var(--text-secondary);justify-content:space-between;margin-bottom:4px;font-size:13px;display:flex}.chart-bar .chart-track{background:var(--border-color);border-radius:10px;width:100%;height:6px;margin-bottom:12px;overflow:hidden}.chart-bar .chart-track .chart-fill{border-radius:10px;height:100%;transition:width 1s}.toast{background:var(--text-primary);color:var(--bg-card);z-index:99999;pointer-events:auto;border-radius:30px;max-width:90%;padding:12px 24px;font-size:14px;font-weight:500;animation:.4s toastIn;position:fixed;bottom:100px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #0003}.empty-state{text-align:center;color:var(--text-secondary);padding:40px 20px}.empty-state i{color:var(--border-color);margin-bottom:12px;font-size:48px}.empty-state h3{color:var(--text-primary);margin-bottom:4px;font-size:18px}@media (width>=769px){.sidebar{display:block!important}.app-container{max-width:100%;box-shadow:none;background:var(--bg-body);margin-left:260px;padding:0 32px 32px}.status-bar{display:none!important}.app-header{border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:none;background:0 0;padding:20px 0 16px;position:relative}.app-header .header-left .greeting-text{font-size:14px}.app-header .header-left .greeting-name{font-size:20px}.app-header .header-right .icon-btn{width:42px;height:42px;font-size:18px}.app-header .header-right .avatar-btn{width:42px;height:42px;font-size:16px}.search-bar{background:0 0;padding:16px 0}.search-bar .search-input-wrapper{padding:12px 20px}.search-bar .search-input-wrapper input{font-size:15px}.main-content{min-height:auto;padding:0 0 40px}.bottom-nav,.fab{display:none!important}.stats-grid{grid-template-columns:repeat(4,1fr);gap:16px}.stat-card{padding:20px 24px}.stat-card .stat-number{font-size:28px}.stat-card .stat-icon{width:48px;height:48px;font-size:22px}.stat-card .stat-icon i{font-size:22px}.student-scroll{grid-template-columns:repeat(4,1fr);gap:16px;padding:0;display:grid;overflow:visible}.student-card-mini{min-width:auto;padding:20px}.student-card-mini .avatar-mini{width:64px;height:64px;font-size:24px}.student-card-mini h4{font-size:15px}.violation-item{padding:16px 20px}.violation-item .violation-top .violation-title{font-size:15px}.section-header h2{font-size:22px}.section-header .view-all{font-size:14px}.modal{border-radius:24px;max-width:560px;max-height:90vh;animation:.3s modalIn}@keyframes modalIn{0%{opacity:0;transform:scale(.95)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-overlay{align-items:center}.modal .modal-handle{display:none}.notif-panel .notif-content{border-radius:16px 0 0 16px;max-width:420px}.settings-group{padding:20px 24px}.category-item{padding:16px 20px}#studentList{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}#studentList .student-card-mini{min-width:auto;margin-bottom:0}#page-kategori>div{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}#page-laporan>div:last-child{grid-template-columns:1fr 1fr;gap:20px;display:grid}}@media (width<=768px){.sidebar{display:none!important}.bottom-nav,.fab{display:flex!important}.app-container{max-width:100%;box-shadow:none}.main-content{padding:0 12px 90px}.stats-grid{gap:8px}.stat-card{padding:12px 14px}.stat-card .stat-number{font-size:18px}.modal{border-radius:20px 20px 0 0;padding:20px 16px 24px}#studentList .student-card-mini{min-width:100%;margin-bottom:10px}#page-kategori>div,#page-laporan>div:last-child{display:block}.section-header .tabs-scroll{flex-wrap:nowrap}.bottom-nav{max-width:100%;padding:4px 0 calc(4px + var(--safe-bottom))}.bottom-nav .nav-items{padding:0 2px}.bottom-nav .nav-item{padding:2px 0}.bottom-nav .nav-item .nav-icon{width:24px;height:24px;font-size:20px}.bottom-nav .nav-item .nav-label{font-size:9px}.bottom-nav .nav-item .nav-icon .badge-bottom{min-width:14px;padding:1px 4px;font-size:7px;line-height:12px;top:-5px;right:-8px}.bottom-nav .nav-item .nav-indicator{width:3px;height:3px}.status-bar{display:none!important}.app-header{padding-top:12px}}@media (width<=430px){.app-container{max-width:100%}.main-content{padding:0 12px 90px}.stats-grid{gap:8px}.stat-card{padding:12px 14px}.stat-card .stat-number{font-size:18px}.modal{border-radius:20px 20px 0 0;padding:20px 16px 24px}.bottom-nav .nav-item .nav-icon{width:22px;height:22px;font-size:18px}.bottom-nav .nav-item .nav-label{font-size:8px}.bottom-nav .nav-item{padding:2px 0}.bottom-nav .nav-item .nav-icon .badge-bottom{min-width:12px;padding:1px 3px;font-size:6px;line-height:10px;top:-4px;right:-6px}}@media (width<=360px){.stats-grid{grid-template-columns:1fr 1fr;gap:6px}.stat-card{padding:10px 12px}.stat-card .stat-number{font-size:16px}.stat-card .stat-icon{width:32px;height:32px;font-size:14px}.stat-card .stat-icon i{font-size:14px}.bottom-nav .nav-item .nav-icon{width:20px;height:20px;font-size:16px}.bottom-nav .nav-item .nav-label{font-size:7px}.bottom-nav .nav-item{padding:2px 0}.app-header .header-left .greeting-name{font-size:15px}.app-header .header-left .greeting-text{font-size:12px}}@media (width>=769px) and (width<=1024px){.sidebar{width:72px;padding:20px 10px}.sidebar .logo span,.sidebar .logo small,.sidebar .menu-item span,.sidebar .menu-label,.sidebar .user-profile .name,.sidebar .user-profile .role{display:none!important}.sidebar .logo{justify-content:center}.sidebar .menu-item{justify-content:center;padding:12px}.sidebar .menu-item .badge-menu{display:none}.sidebar .user-profile{justify-content:center}.app-container{margin-left:72px;padding:0 24px 24px}.status-bar{display:none!important}}
