:root{font-synthesis:none;text-rendering:optimizelegibility;--bg:#e6e9ef;--bg-elevated:#eef1f6;--surface:#e9ecf2;--surface-strong:#eef1f7;--text-primary:#1c2333;--text-secondary:#5b6478;--text-muted:#8891a3;--border-soft:#1c23330f;--shadow-light:#ffffffd9;--shadow-dark:#a3adc48c;--shadow-dark-strong:#919cb8a6;--neu-raised:8px 8px 18px var(--shadow-dark), -8px -8px 18px var(--shadow-light);--neu-raised-sm:4px 4px 10px var(--shadow-dark), -4px -4px 10px var(--shadow-light);--neu-pressed:inset 5px 5px 12px var(--shadow-dark-strong), inset -5px -5px 12px var(--shadow-light);--neu-flat:2px 2px 6px var(--shadow-dark), -2px -2px 6px var(--shadow-light);--accent:#2859b8;--accent-strong:#1d3f8a;--accent-soft:#2859b824;--accent-contrast:#fff;--success:#1c8a5a;--success-soft:#1c8a5a24;--danger:#c1432f;--danger-soft:#c1432f24;--warning:#b8860f;--warning-soft:#b8860f24;--gradient-brand:linear-gradient(145deg, #153779f5, #186d90eb);color:var(--text-primary);background:var(--bg);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}[data-theme=dark]{--bg:#1b1f2a;--bg-elevated:#20242f;--surface:#1f2330;--surface-strong:#232838;--text-primary:#e9edf6;--text-secondary:#aab1c4;--text-muted:#7a8197;--border-soft:#ffffff0f;--shadow-light:#ffffff0b;--shadow-dark:#0000008c;--shadow-dark-strong:#000000b3;--accent:#4d79d9;--accent-strong:#6e93e6;--accent-soft:#4d79d92e;--accent-contrast:#0c0f16;--success:#36c08c;--success-soft:#36c08c29;--danger:#e2685a;--danger-soft:#e2685a29;--warning:#d9ad3f;--warning-soft:#d9ad3f29;--gradient-brand:linear-gradient(145deg, #0d1a38f7, #0f4054f0)}*{box-sizing:border-box}html{min-width:320px;min-height:100%}html,body,#root{background:var(--bg)}body{min-width:320px;min-height:100vh;color:var(--text-primary);background:var(--bg);margin:0;transition:background-color .25s,color .25s}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin:0}table{border-collapse:collapse}.login-page{background:var(--bg);grid-template-columns:1.1fr .9fr;min-height:100vh;display:grid}.login-brand{color:#fff;background:var(--gradient-brand);align-items:center;padding:64px;display:flex}.brand-content{max-width:620px}.brand-badge{letter-spacing:1.5px;border:1px solid #ffffff59;border-radius:999px;margin-bottom:24px;padding:8px 13px;font-size:12px;font-weight:700;display:inline-flex}.brand-content h1{max-width:560px;margin:0 0 20px;font-size:clamp(36px,6vw,64px);line-height:1.05}.brand-content p{color:#ffffffd9;max-width:540px;font-size:17px;line-height:1.7}.login-form-section{background:var(--bg);justify-content:center;align-items:center;padding:36px;display:flex}.login-card{background:var(--surface);width:100%;max-width:430px;box-shadow:var(--neu-raised);border-radius:24px;padding:36px}.login-heading{margin-bottom:28px}.login-heading h2{margin:0 0 8px;font-size:28px}.login-heading p{color:var(--text-secondary)}.login-footer{text-align:center;color:var(--text-muted);margin:20px 0 0;font-size:13px}.password-field{align-items:center;display:flex;position:relative}.password-field input{padding-right:88px}.show-password-button{background:var(--surface-strong);box-shadow:var(--neu-flat);color:var(--accent);border:none;border-radius:10px;padding:8px 12px;font-size:13px;font-weight:600;position:absolute;right:6px}@media (width<=880px){.login-page{grid-template-columns:1fr}.login-brand{padding:40px 28px}}.form-group{margin-bottom:20px}.form-group label{color:var(--text-secondary);margin-bottom:8px;font-size:14px;font-weight:650;display:block}.form-group input,.form-group select,.form-group textarea{background:var(--surface);width:100%;min-height:48px;box-shadow:var(--neu-pressed);color:var(--text-primary);border:none;border-radius:12px;outline:none;padding:0 14px;transition:box-shadow .2s}.form-group textarea{resize:vertical;min-height:96px;padding:12px 14px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{box-shadow:var(--neu-pressed), 0 0 0 3px var(--accent-soft)}.form-group input:disabled,.form-group select:disabled{opacity:.6}.form-hint{color:var(--text-muted);margin-top:6px;font-size:12px;display:block}input[type=search]{background:var(--surface);width:100%;min-height:44px;box-shadow:var(--neu-pressed);color:var(--text-primary);border:none;border-radius:12px;outline:none;padding:0 14px}input[type=file]{background:var(--surface);width:100%;box-shadow:var(--neu-flat);border-radius:12px;padding:10px 14px}.primary-action-button,.primary-button,.form-submit-button,.admin-course-submit,.admin-schedule-submit,.period-submit-button,.approve-action-button,.grading-save-button,.grading-publish-button{background:var(--accent);color:var(--accent-contrast);box-shadow:var(--neu-raised-sm);border:none;border-radius:14px;padding:13px 22px;font-size:14px;font-weight:650;transition:transform .15s,box-shadow .15s}.primary-action-button:hover:not(:disabled),.primary-button:hover:not(:disabled),.form-submit-button:hover:not(:disabled),.approve-action-button:hover:not(:disabled),.grading-save-button:hover:not(:disabled),.grading-publish-button:hover:not(:disabled){transform:translateY(-1px)}.primary-action-button:active:not(:disabled),.primary-button:active:not(:disabled){box-shadow:var(--neu-pressed);transform:translateY(0)}.secondary-action-button,.secondary-button,.cancel-edit-button,.table-edit-button,.theme-toggle-button{background:var(--surface-strong);color:var(--text-primary);box-shadow:var(--neu-flat);border:none;border-radius:14px;padding:11px 18px;font-size:14px;font-weight:600;transition:box-shadow .15s}.secondary-action-button:hover:not(:disabled),.secondary-button:hover:not(:disabled),.table-edit-button:hover:not(:disabled){box-shadow:var(--neu-raised-sm)}.table-delete-button,.danger-button,.reject-action-button{background:var(--danger-soft);color:var(--danger);box-shadow:var(--neu-flat);border:none;border-radius:12px;padding:9px 16px;font-size:13px;font-weight:650}.table-delete-button:hover:not(:disabled),.reject-action-button:hover:not(:disabled){box-shadow:var(--neu-raised-sm)}.logout-button{background:var(--danger-soft);color:var(--danger);text-align:left;border:none;border-radius:14px;margin-top:auto;padding:12px 16px;font-weight:650}.theme-toggle-button{border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;padding:0;font-size:18px;display:flex}.alert{box-shadow:var(--neu-flat);border-radius:14px;margin-bottom:20px;padding:14px 18px;font-size:14px;font-weight:550}.alert-error{background:var(--danger-soft);color:var(--danger)}.alert-success{background:var(--success-soft);color:var(--success)}.app-shell{background:var(--bg);min-height:100vh;display:flex}.sidebar{background:var(--surface);width:264px;box-shadow:var(--neu-flat);z-index:20;flex-direction:column;height:100vh;padding:28px 20px;display:flex;position:sticky;top:0}.sidebar-brand{align-items:center;gap:12px;margin-bottom:36px;display:flex}.brand-logo{width:44px;height:44px;color:var(--accent-contrast);box-shadow:var(--neu-raised-sm);border-radius:14px;justify-content:center;align-items:center;font-size:20px;font-weight:800;display:flex;overflow:hidden}.brand-logo img,.logo{object-fit:contain;width:100%;height:100%;display:block}.sidebar-brand strong{font-size:15px;display:block}.sidebar-brand span{color:var(--text-muted);font-size:12px;display:block}.sidebar-navigation{flex-direction:column;flex:1;gap:6px;display:flex;overflow-y:auto}.sidebar-link{color:var(--text-secondary);border-radius:12px;padding:12px 16px;font-size:14px;font-weight:550;transition:background-color .15s,box-shadow .15s}.sidebar-link:hover{background:var(--surface-strong)}.sidebar-link-active{background:var(--surface-strong);box-shadow:var(--neu-pressed);color:var(--accent);font-weight:650}.sidebar-overlay{display:none}.main-area{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--bg-elevated);box-shadow:var(--neu-flat);z-index:10;justify-content:space-between;align-items:center;padding:18px 32px;display:flex;position:sticky;top:0}.menu-button{background:var(--surface);width:42px;height:42px;box-shadow:var(--neu-flat);border:none;border-radius:12px;font-size:18px;display:none}.topbar-right{align-items:center;gap:16px;display:flex}.topbar-user{align-items:center;gap:12px;display:flex}.topbar-user>div:first-child{text-align:right}.topbar-user strong{font-size:14px;display:block}.topbar-user span{color:var(--text-muted);text-transform:capitalize;font-size:12px;display:block}.avatar{background:var(--accent);width:42px;height:42px;color:var(--accent-contrast);box-shadow:var(--neu-raised-sm);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.page-content{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:32px}@media (width<=1024px){.sidebar{transition:left .25s;position:fixed;left:-280px}.sidebar-open{left:0}.sidebar-overlay{z-index:15;background:#0a0e1666;border:none;display:block;position:fixed;inset:0}.menu-button{justify-content:center;align-items:center;display:flex}.page-content{padding:20px}.topbar{padding:16px 20px}.topbar-user>div:first-child{display:none}}.page-heading,.admin-page-heading,.approval-page-heading,.grading-page-heading,.ipk-page-heading,.lecturer-page-heading,.schedule-page-heading,.teaching-page-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px;display:flex}.page-eyebrow{letter-spacing:1px;text-transform:uppercase;color:var(--accent);margin-bottom:10px;font-size:12px;font-weight:700;display:inline-flex}.page-heading h1,.admin-page-heading h1{margin-bottom:8px;font-size:26px}.page-heading p,.admin-page-heading p{max-width:560px;color:var(--text-secondary);font-size:14px;line-height:1.6}.lecturer-subtitle{color:var(--text-secondary);font-size:14px}.summary-grid,.admin-summary-grid,.approval-summary-grid,.approval-total-grid,.grading-summary-grid,.ipk-summary-grid,.khs-summary-grid,.lecturer-summary-grid,.period-summary-grid,.schedule-summary-grid,.teaching-summary-grid,.admin-schedule-summary-grid,.user-summary-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px;margin-bottom:28px;display:grid}.summary-card,.admin-summary-card,.approval-summary-card,.grading-summary-card,.ipk-summary-card,.khs-summary-card,.lecturer-summary-card,.period-summary-card,.schedule-summary-card,.teaching-summary-card,.admin-schedule-summary-card,.user-summary-card{background:var(--surface);box-shadow:var(--neu-raised-sm);border-radius:18px;padding:20px}.summary-card span,.admin-summary-card span,.approval-summary-card span,.grading-summary-card span,.ipk-summary-card span,.khs-summary-card span,.lecturer-summary-card span,.period-summary-card span,.schedule-summary-card span,.teaching-summary-card span,.admin-schedule-summary-card span,.user-summary-card span{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px;font-size:12px;font-weight:650;display:block}.summary-card strong,.admin-summary-card strong,.approval-summary-card strong,.grading-summary-card strong,.ipk-summary-card strong,.khs-summary-card strong,.lecturer-summary-card strong,.period-summary-card strong,.schedule-summary-card strong,.teaching-summary-card strong,.admin-schedule-summary-card strong,.user-summary-card strong{margin-bottom:6px;font-size:26px;font-weight:750;display:block}.summary-card p,.admin-summary-card p,.approval-summary-card p,.grading-summary-card p,.ipk-summary-card p,.khs-summary-card p,.lecturer-summary-card p,.period-summary-card p,.schedule-summary-card p,.teaching-summary-card p,.admin-schedule-summary-card p,.user-summary-card p{color:var(--text-secondary);font-size:13px;line-height:1.5}.content-card{background:var(--surface);box-shadow:var(--neu-raised);border-radius:22px;margin-bottom:24px;padding:26px}.content-card-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.content-card-header h2{margin-bottom:6px;font-size:18px}.content-card-header p{color:var(--text-secondary);font-size:13px}.admin-form-header,.admin-list-header,.admin-class-list-header,.admin-schedule-list-header,.user-list-header,.teaching-list-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.profile-photo-section{border-bottom:1px solid var(--border-soft);align-items:center;gap:24px;margin-bottom:24px;padding-bottom:24px;display:flex}.profile-photo-avatar{background:var(--accent);width:96px;height:96px;color:var(--accent-contrast);box-shadow:var(--neu-raised);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:30px;font-weight:700;display:flex;overflow:hidden}.profile-photo-avatar img{object-fit:cover;width:100%;height:100%}.profile-photo-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.profile-photo-hint{width:100%;color:var(--text-muted);margin:4px 0 0;font-size:12px}.profile-grid,.ipk-profile-grid,.khs-profile-grid,.user-profile-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:18px;display:grid}.profile-grid>div,.ipk-profile-grid>div,.khs-profile-grid>div,.user-profile-grid>div{background:var(--bg-elevated);box-shadow:var(--neu-flat);border-radius:14px;padding:16px}.profile-grid span,.ipk-profile-grid span,.khs-profile-grid span,.user-profile-grid span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:12px;display:block}.profile-grid strong,.ipk-profile-grid strong,.khs-profile-grid strong,.user-profile-grid strong{font-size:15px}.simple-empty-state,.empty-state,.table-empty{text-align:center;color:var(--text-muted);background:var(--bg-elevated);box-shadow:var(--neu-pressed);border-radius:16px;padding:48px 24px;font-size:14px}.empty-icon{margin-bottom:12px;font-size:32px;display:block}.table-container{border-radius:16px;overflow-x:auto}.academic-table,.admin-course-table,.admin-class-table,.admin-schedule-table,.approval-course-table,.grading-attendance-row,.ipk-history-table,.khs-table,.lecturer-participant-table,.period-table,.teaching-table,.user-table{border-collapse:collapse;width:100%;font-size:14px}.academic-table thead th,.admin-course-table thead th,.admin-class-table thead th,.admin-schedule-table thead th,.approval-course-table thead th,.ipk-history-table thead th,.khs-table thead th,.lecturer-participant-table thead th,.period-table thead th,.teaching-table thead th,.user-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);background:var(--bg-elevated);padding:12px 16px;font-size:12px;font-weight:650}.academic-table tbody td,.admin-course-table tbody td,.admin-class-table tbody td,.admin-schedule-table tbody td,.approval-course-table tbody td,.ipk-history-table tbody td,.khs-table tbody td,.lecturer-participant-table tbody td,.period-table tbody td,.teaching-table tbody td,.user-table tbody td{border-bottom:1px solid var(--border-soft);color:var(--text-primary);padding:14px 16px}.academic-table tbody tr:last-child td,.admin-course-table tbody tr:last-child td,.admin-class-table tbody tr:last-child td,.admin-schedule-table tbody tr:last-child td{border-bottom:none}.academic-table tbody tr:hover,.admin-course-table tbody tr:hover,.admin-class-table tbody tr:hover,.admin-schedule-table tbody tr:hover,.user-table tbody tr:hover{background:var(--bg-elevated)}.admin-table-footer{color:var(--text-muted);margin-top:16px;font-size:13px}.teaching-table-actions,.user-table-actions,.period-table-actions{flex-wrap:wrap;gap:8px;display:flex}.course-code-badge,.schedule-class-badge{background:var(--accent-soft);color:var(--accent);letter-spacing:.3px;border-radius:8px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.academic-status,.status-badge{text-transform:capitalize;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:650;display:inline-flex}.academic-status-aktif,.status-badge.active,.academic-status-disetujui,.academic-status-dipublikasikan{background:var(--success-soft);color:var(--success)}.academic-status-nonaktif,.academic-status-ditolak{background:var(--danger-soft);color:var(--danger)}.academic-status-draft,.academic-status-diajukan,.academic-status-belum_dinilai{background:var(--warning-soft);color:var(--warning)}.letter-grade{background:var(--accent-soft);min-width:32px;color:var(--accent);border-radius:8px;justify-content:center;align-items:center;padding:4px 8px;font-size:13px;font-weight:700;display:inline-flex}.admin-search,.approval-search,.grading-search,.lecturer-participant-search,.khs-filter-card,.ipk-period-filter,.user-filter-grid,.schedule-filter-card,.admin-schedule-filter,.admin-class-filter,.teaching-day-filter{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.admin-search label,.user-filter-grid label,.admin-class-filter label,.admin-schedule-filter label{color:var(--text-secondary);margin-bottom:8px;font-size:13px;font-weight:600;display:block}.admin-class-filter>div,.admin-schedule-filter>div{min-width:160px}.khs-filter-row,.schedule-filter-row{flex-wrap:wrap;gap:14px;display:flex}.admin-course-form,.admin-class-main-grid,.admin-schedule-form,.teaching-form-grid,.user-basic-form-grid,.grading-score-grid,.assessment-weight-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;margin-bottom:8px;display:grid}.admin-course-name-field,.admin-schedule-class-field,.user-name-field{grid-column:span 2}.admin-class-bobot-grid{border-top:1px solid var(--border-soft);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:end;gap:18px;margin:20px 0;padding-top:20px;display:grid}.admin-class-bobot-total{background:var(--bg-elevated);box-shadow:var(--neu-flat);color:var(--text-secondary);border-radius:12px;align-items:center;min-height:48px;padding:0 16px;font-size:13px;display:flex}.admin-class-bobot-total-valid strong{color:var(--success)}.admin-class-bobot-total-invalid strong{color:var(--danger)}.admin-class-form-action,.teaching-form-action,.user-form-action{margin-top:12px}@media (width<=720px){.admin-course-name-field,.admin-schedule-class-field,.user-name-field{grid-column:span 1}}.krs-layout{grid-template-columns:1.1fr .9fr;gap:24px;display:grid}@media (width<=1024px){.krs-layout{grid-template-columns:1fr}}.krs-create-card{margin-bottom:24px}.krs-list-header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.krs-list{flex-direction:column;gap:12px;display:flex}.krs-list-summary,.krs-information-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px;margin:16px 0;display:grid}.krs-detail-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.krs-submit-area{justify-content:flex-end;gap:12px;margin-top:20px;display:flex}.available-class-card,.class-card{background:var(--bg-elevated);box-shadow:var(--neu-flat);border-radius:16px;margin-bottom:12px;padding:16px}.class-card-heading{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.class-card-information{color:var(--text-secondary);font-size:13px;line-height:1.6}.class-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;display:grid}.khs-header,.ipk-history-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.khs-student-card,.ipk-profile-card{margin-bottom:20px}.khs-ip-card,.ip-semester-card{background:var(--accent-soft);color:var(--accent);border-radius:18px;flex-direction:column;padding:18px 24px;display:inline-flex}.khs-ip-card span,.ip-semester-card span{text-transform:uppercase;letter-spacing:.5px;font-size:12px}.khs-ip-card strong,.ip-semester-card strong{font-size:28px}.khs-final-ip{margin-top:8px;font-weight:700}.khs-total-section{border-top:1px solid var(--border-soft);justify-content:flex-end;gap:24px;margin-top:18px;padding-top:18px;display:flex}.khs-course-name,.ipk-course-name,.approval-course-name,.teaching-course-name{font-weight:650}.khs-course-name span,.ipk-course-name span{color:var(--text-muted);font-size:12px;font-weight:400;display:block}.ipk-main-card{margin-bottom:20px}.ipk-note,.grading-class-note,.grading-weight-information,.approval-note-information,.import-format-hint{background:var(--bg-elevated);box-shadow:var(--neu-flat);color:var(--text-secondary);border-radius:14px;margin-bottom:16px;padding:14px 18px;font-size:13px;line-height:1.6}.semester-ip-badge{background:var(--accent-soft);color:var(--accent);border-radius:8px;padding:4px 10px;font-size:13px;font-weight:700;display:inline-flex}.weekly-schedule-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.schedule-day-column{background:var(--bg-elevated);box-shadow:var(--neu-flat);border-radius:16px;overflow:hidden}.schedule-day-heading{text-align:center;background:var(--surface-strong);box-shadow:var(--neu-flat);padding:12px 16px;font-size:13px;font-weight:650}.schedule-day-content{flex-direction:column;gap:10px;min-height:80px;padding:12px;display:flex}.schedule-day-empty{text-align:center;color:var(--text-muted);padding:16px 0;font-size:12px}.schedule-item-card,.admin-selected-class{background:var(--surface);box-shadow:var(--neu-raised-sm);border-radius:12px;padding:12px 14px}.schedule-time{color:var(--accent);font-size:12px;font-weight:700}.schedule-time-separator{color:var(--text-muted);margin:0 4px}.schedule-course-code,.admin-schedule-course{color:var(--text-muted);font-size:12px}.schedule-information{color:var(--text-secondary);font-size:12px;line-height:1.5}.schedule-table-card{margin-top:20px}.schedule-year-value{font-weight:700}.schedule-conflict-box{background:var(--danger-soft);color:var(--danger);border-radius:14px;margin-top:14px;padding:14px 16px;font-size:13px}.schedule-conflict-item{border-bottom:1px solid #c1432f26;padding:6px 0}.schedule-conflict-item:last-child{border-bottom:none}.admin-schedule-lecturer{color:var(--text-secondary);font-size:13px}.admin-schedule-form-card{margin-bottom:24px}.grading-main-layout{grid-template-columns:1fr;gap:20px;display:grid}.grading-class-grid,.lecturer-weight-card{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.grading-class-section{margin-bottom:24px}.grading-form-heading{margin-bottom:14px}.grading-form{flex-direction:column;gap:16px;display:flex}.grading-attendance-result,.grading-preview-grid{background:var(--bg-elevated);box-shadow:var(--neu-flat);border-radius:14px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;padding:16px;display:grid}.grading-action-area{flex-wrap:wrap;justify-content:flex-end;gap:12px;display:flex}.grading-participant-list{flex-direction:column;gap:10px;display:flex}.grading-student-information{color:var(--text-secondary);font-size:13px}.lecturer-weight-form{flex-direction:column;gap:16px;display:flex}.approval-layout{grid-template-columns:1fr 1fr;gap:24px;display:grid}@media (width<=1024px){.approval-layout{grid-template-columns:1fr}}.approval-list{flex-direction:column;gap:12px;display:flex}.approval-list-top{justify-content:space-between;align-items:flex-start;margin-bottom:6px;display:flex}.approval-list-heading{font-weight:650}.approval-list-meta,.approval-list-program{color:var(--text-muted);font-size:12px}.approval-list-footer{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.approval-detail-heading{margin-bottom:16px}.approval-student-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:18px;display:grid}.approval-action-area{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.approval-note-section{margin-top:16px}.lecturer-class-layout{flex-direction:column;gap:16px;display:flex}.lecturer-class-list{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.lecturer-class-item-header{justify-content:space-between;align-items:flex-start;margin-bottom:10px;display:flex}.lecturer-class-information{color:var(--text-secondary);margin-bottom:12px;font-size:13px;line-height:1.6}.lecturer-class-meta{color:var(--text-muted);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.lecturer-class-item-footer{justify-content:flex-end;margin-top:14px;display:flex}.lecturer-detail-heading{margin-bottom:16px}.lecturer-participant-heading{margin-bottom:14px}.lecturer-participant-name{font-weight:650}.lecturer-participant-footer{color:var(--text-muted);margin-top:16px;font-size:13px}.import-form{flex-direction:column;gap:4px;display:flex}.import-confirm-actions{justify-content:flex-end;gap:12px;margin-top:20px;display:flex}.import-info-card{color:var(--text-muted);font-size:13px}.period-form{flex-direction:column;gap:16px;max-width:420px;display:flex}.active-period-banner{background:var(--accent-soft);color:var(--accent);border-radius:16px;align-items:center;gap:12px;margin-bottom:20px;padding:16px 20px;font-weight:600;display:flex}.active-period-indicator{background:var(--accent);width:10px;height:10px;box-shadow:0 0 0 4px var(--accent-soft);border-radius:50%}.period-activate-button{background:var(--success-soft);color:var(--success);border:none;border-radius:10px;padding:8px 14px;font-size:13px;font-weight:650}.user-management-form{flex-direction:column;gap:16px;display:flex}.user-profile-section{border-top:1px solid var(--border-soft);margin-top:8px;padding-top:16px}.user-identity-cell{flex-direction:column;display:flex}.user-identity-cell span{color:var(--text-muted);font-size:12px}.user-role-badge{text-transform:uppercase;background:var(--accent-soft);color:var(--accent);border-radius:8px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.user-password-button{background:var(--surface-strong);box-shadow:var(--neu-flat);border:none;border-radius:10px;padding:8px 14px;font-size:13px;font-weight:600}.protected-account-label{color:var(--text-muted);font-size:12px;font-style:italic}.inline-form{align-items:center;gap:10px;display:flex}@media (width<=720px){.content-card{border-radius:18px;padding:18px}.login-card{padding:24px}.profile-photo-section{flex-direction:column;align-items:flex-start}.khs-total-section{flex-direction:column;gap:10px}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--shadow-dark);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--shadow-dark-strong)}.admin-class-form-card,.admin-course-form-card,.period-form-card,.teaching-form-card,.user-form-card{margin-bottom:24px}.admin-class-form,.teaching-form,.admin-class-course{flex-direction:column;gap:4px;display:flex}.admin-class-course strong{font-size:13px}.admin-class-lecturer{flex-direction:column;gap:2px;display:flex}.admin-class-lecturer span{color:var(--text-muted);font-size:12px}.admin-course-table-name{font-weight:600}.teaching-form-header{margin-bottom:18px}.schedule-table-course{flex-direction:column;gap:4px;font-weight:600;display:flex}.user-role-admin{background:var(--accent-soft);color:var(--accent)}.user-role-dosen{background:var(--success-soft);color:var(--success)}.user-role-mahasiswa{background:var(--warning-soft);color:var(--warning)}.language-select{background:var(--surface);height:42px;box-shadow:var(--neu-flat);color:var(--text-primary);cursor:pointer;border:none;border-radius:12px;padding:0 12px;font-size:13px;font-weight:600}.language-select:focus{box-shadow:var(--neu-flat), 0 0 0 3px var(--accent-soft);outline:none}@media (width<=1024px){.language-select{height:38px;padding:0 8px;font-size:12px}}
