:root{--bg-primary:#f8f9fa;--bg-sidebar:#fff;--bg-card:#fff;--text-primary:#1a1b1e;--text-secondary:#868e96;--text-light:#ced4da;--accent:#2b4162;--accent-light:#f1f3f5;--accent-highlight:#e9ecef;--success:#37b24d;--warning:#f59f00;--danger:#fa5252;--info:#228be6;--shadow-sm:0 2px 8px #0000000a;--shadow-md:0 8px 24px #0000000f;--shadow-lg:0 20px 40px #00000014;--radius:16px;--radius-sm:8px;--border:#f1f3f5;--font:"Outfit", sans-serif;--ease:all .3s cubic-bezier(.25, .8, .25, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);min-height:100vh}.hidden{display:none!important}.page{display:none}.page.active{display:flex}.page-login{align-items:stretch;min-height:100vh}.login-wrapper{width:100%;min-height:100vh;display:flex}.login-left{color:#fff;text-align:center;background:linear-gradient(135deg,#2b4162 0%,#12202f 100%);flex-direction:column;flex:1;justify-content:center;align-items:center;padding:4rem;display:flex;position:relative;overflow:hidden}.login-brand{align-items:center;gap:1rem;margin-bottom:2rem;display:flex}.login-logo{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #fff3;border-radius:14px;width:48px;height:48px}.login-left h1{font-size:2rem;font-weight:700}.login-left h2{margin-bottom:.5rem;font-size:2.5rem;font-weight:700}.login-left p{color:#ffffffb3;font-size:1.1rem}.login-decoration{pointer-events:none;position:absolute;inset:0}.deco-circle{border:1px solid #ffffff14;border-radius:50%;position:absolute}.c1{width:400px;height:400px;animation:8s ease-in-out infinite float;top:-100px;right:-100px}.c2{width:300px;height:300px;animation:6s ease-in-out infinite reverse float;bottom:-50px;left:-50px}.c3{width:200px;height:200px;animation:10s ease-in-out infinite float;top:50%;left:60%}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.login-right{background:var(--bg-primary);flex:1;justify-content:center;align-items:center;padding:4rem;display:flex}.login-form{width:100%;max-width:420px}.login-form h3{margin-bottom:.25rem;font-size:1.75rem;font-weight:700}.login-subtitle{color:var(--text-secondary);margin-bottom:2rem}.form-group{margin-bottom:1.25rem}.form-group label{color:var(--text-secondary);margin-bottom:.5rem;font-size:.9rem;font-weight:500;display:block}.form-group input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;transition:var(--ease);background:#fff;outline:none;padding:.85rem 1.25rem;font-family:inherit;font-size:1rem}.form-group input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2b41621a}.login-error{color:var(--danger);border-radius:var(--radius-sm);background:#fa525214;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.btn-login-submit{width:100%;margin-top:.5rem;padding:1rem}.login-hint{text-align:center;color:var(--text-light);margin-top:1.5rem;font-size:.85rem}.app-container{width:100%;max-width:1600px;min-height:100vh;margin:0 auto;display:flex}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);flex-direction:column;width:270px;height:100vh;padding:2rem 1.5rem;display:flex;position:sticky;top:0}.brand{align-items:center;gap:.75rem;margin-bottom:3rem;display:flex}.logo{background:linear-gradient(135deg,var(--accent),#12202f);border-radius:10px;width:36px;height:36px}.brand h1{letter-spacing:-.5px;font-size:1.4rem;font-weight:700}.nav-menu{flex-direction:column;flex-grow:1;gap:.35rem;display:flex}.nav-item{color:var(--text-secondary);border-radius:var(--radius-sm);transition:var(--ease);align-items:center;gap:.85rem;padding:.85rem 1rem;font-size:.95rem;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background:var(--accent-light);color:var(--text-primary)}.nav-item.active{background:var(--accent);color:#fff;box-shadow:var(--shadow-md)}.nav-item.active svg{stroke:#fff}.sidebar-footer{margin-top:auto}.btn-logout{width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;transition:var(--ease);border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:.85rem;padding:.85rem 1rem;font-family:inherit;font-size:.95rem;font-weight:500;display:flex}.btn-logout:hover{background:var(--accent-light);color:var(--danger)}.main-content{flex-grow:1;max-height:100vh;padding:2.5rem 3.5rem;overflow-y:auto}.page-section{flex-direction:column;gap:2rem;animation:.3s fadeIn;display:none}.page-section.active{display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.top-header{justify-content:space-between;align-items:center;display:flex}.top-header h2{letter-spacing:-.5px;margin-bottom:.15rem;font-size:1.85rem;font-weight:600}.subtitle{color:var(--text-secondary);font-size:.95rem}.user-pill{background:var(--bg-card);box-shadow:var(--shadow-sm);border:1px solid var(--border);border-radius:50px;align-items:center;gap:1rem;padding:.4rem .8rem .4rem .5rem;display:flex}.avatar{object-fit:cover;border-radius:50%;width:40px;height:40px}.user-pill-info{flex-direction:column;display:flex}.user-pill-name{font-size:.9rem;font-weight:600}.user-pill-id{color:var(--text-secondary);font-size:.75rem}.cards-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;display:grid}.stat-card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--border);transition:var(--ease);flex-direction:column;gap:.4rem;padding:1.5rem 1.75rem;display:flex}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card .label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;font-size:.8rem;font-weight:500}.stat-card .val{font-size:2rem;font-weight:700}.stat-card .val.accent{color:var(--accent)}.stat-card .val.success{color:var(--success)}.stat-card .val.warning{color:var(--warning)}.badge{border-radius:20px;padding:.3rem 1rem;font-size:.85rem;font-weight:500;display:inline-block}.badge-draft{background:var(--accent-light);color:var(--text-secondary)}.badge-submitted{color:var(--info);background:#228be61a}.badge-approved{color:var(--success);background:#37b24d1a}.welcome-banner{color:#fff;border-radius:var(--radius);background:linear-gradient(135deg,#2b4162,#12202f);padding:2.5rem;position:relative;overflow:hidden}.welcome-banner h2{margin-bottom:.35rem;font-size:1.6rem}.welcome-banner p{color:#ffffffb3;font-size:.95rem}.welcome-banner .deco{border:1px solid #ffffff14;border-radius:50%;width:200px;height:200px;position:absolute;top:-60px;right:-30px}.section-title{margin-bottom:.75rem;font-size:1.15rem;font-weight:600}.announcements{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}.announcement-item{border-bottom:1px solid var(--border);transition:var(--ease);padding:1.25rem 1.75rem}.announcement-item:last-child{border-bottom:none}.announcement-item:hover{background:var(--accent-light)}.announcement-item .ann-date{color:var(--text-secondary);margin-bottom:.25rem;font-size:.8rem}.announcement-item .ann-title{font-size:.95rem;font-weight:600}.quick-actions{gap:1rem;display:flex}.quick-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);cursor:pointer;transition:var(--ease);color:var(--text-primary);padding:.75rem 1.5rem;font-family:inherit;font-size:.9rem;font-weight:500}.quick-btn:hover{border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow-sm)}.krs-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.semester-tabs{flex-wrap:wrap;gap:.35rem;display:flex}.sem-tab{border:1px solid var(--border);background:var(--bg-card);cursor:pointer;transition:var(--ease);color:var(--text-secondary);border-radius:20px;padding:.5rem 1rem;font-family:inherit;font-size:.85rem;font-weight:500}.sem-tab:hover{border-color:var(--accent);color:var(--accent)}.sem-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.krs-actions{align-items:center;gap:.75rem;display:flex}.search-input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-primary);transition:var(--ease);outline:none;width:220px;padding:.65rem 1rem;font-family:inherit;font-size:.9rem}.search-input:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #2b41621a}.btn-primary{border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer;transition:var(--ease);box-shadow:var(--shadow-sm);border:none;padding:.7rem 1.5rem;font-family:inherit;font-size:.9rem;font-weight:500}.btn-primary:hover{box-shadow:var(--shadow-md);background:#1a283e;transform:translateY(-1px)}.btn-primary:disabled{background:var(--text-light);cursor:not-allowed;box-shadow:none;transform:none}.btn-secondary{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:var(--ease);padding:.7rem 1.5rem;font-family:inherit;font-size:.9rem;font-weight:500}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.btn-danger{border-radius:var(--radius-sm);background:var(--danger);color:#fff;cursor:pointer;transition:var(--ease);border:none;padding:.7rem 1.5rem;font-family:inherit;font-size:.9rem;font-weight:500}.btn-danger:hover{background:#e03131}.table-wrap{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--border);overflow:hidden}.table-wrap-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1.25rem 1.75rem;display:flex}.table-wrap-header h3{font-size:1.1rem;font-weight:600}table.course-table{border-collapse:collapse;width:100%}.course-table th{text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--border);background:var(--bg-primary);text-transform:uppercase;letter-spacing:.5px;padding:1rem 1.5rem;font-size:.8rem;font-weight:500}.course-table td{border-bottom:1px solid var(--border);vertical-align:middle;transition:var(--ease);padding:1rem 1.5rem;font-size:.9rem}.course-table tr:last-child td{border-bottom:none}.course-table tbody tr{cursor:pointer}.course-table tbody tr:hover{background:var(--accent-light)}.course-table tbody tr.selected{background:#2b41620a}.course-table tbody tr.conflict{opacity:.5;cursor:not-allowed}.code-cell{color:var(--text-secondary);background:var(--bg-primary);border-radius:4px;padding:.25rem .5rem;font-family:Courier New,monospace;font-size:.85rem;font-weight:600}.subject-name{font-weight:600}.credits-badge{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-secondary);border-radius:20px;padding:.25rem .7rem;font-size:.8rem;font-weight:600;display:inline-block}.conflict-tag{color:var(--danger);background:#fa525214;border-radius:4px;margin-left:.5rem;padding:.2rem .6rem;font-size:.75rem;font-weight:500;display:inline-block}.ck{cursor:pointer;-webkit-user-select:none;user-select:none;width:20px;height:20px;display:block;position:relative}.ck input{opacity:0;cursor:pointer;width:0;height:0;position:absolute}.ck .cm{border:2px solid var(--text-light);width:20px;height:20px;transition:var(--ease);background:#fff;border-radius:5px;position:absolute;top:0;left:0}.ck:hover input~.cm{border-color:var(--text-secondary)}.ck input:checked~.cm{background:var(--accent);border-color:var(--accent)}.ck .cm:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:9px;display:none;position:absolute;top:2px;left:6px;transform:rotate(45deg)}.ck input:checked~.cm:after{display:block}.selected-summary{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);padding:1.5rem 1.75rem}.selected-summary h3{margin-bottom:.75rem;font-size:1rem;font-weight:600}.selected-list{flex-wrap:wrap;gap:.5rem;display:flex}.selected-chip{background:var(--accent-light);border-radius:20px;align-items:center;gap:.5rem;padding:.4rem .5rem .4rem .85rem;font-size:.85rem;font-weight:500;display:flex}.chip-remove{cursor:pointer;width:22px;height:22px;transition:var(--ease);color:var(--text-secondary);background:#0000000f;border:none;border-radius:50%;justify-content:center;align-items:center;font-family:inherit;font-size:.75rem;display:flex}.chip-remove:hover{background:var(--danger);color:#fff}.empty-state{text-align:center;color:var(--text-secondary);padding:3rem;font-size:.95rem}.timetable{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);grid-template-columns:80px repeat(5,1fr);display:grid;overflow:hidden}.tt-header{text-align:center;background:var(--accent);color:#fff;text-transform:uppercase;letter-spacing:.5px;padding:.85rem .5rem;font-size:.8rem;font-weight:600}.tt-time{color:var(--text-secondary);text-align:center;border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:var(--bg-primary);justify-content:center;align-items:flex-start;min-height:52px;padding:.5rem;font-size:.75rem;display:flex}.tt-cell{border-bottom:1px solid var(--border);border-right:1px solid var(--border);min-height:52px;padding:2px;position:relative}.tt-cell:last-child{border-right:none}.tt-block{border-radius:6px;flex-direction:column;gap:1px;padding:.4rem .5rem;font-size:.72rem;font-weight:500;line-height:1.2;display:flex;position:absolute;inset:2px;overflow:hidden}.tt-block .tt-code{font-size:.75rem;font-weight:700}.tt-c0{color:#2b4162;background:#2b41621f;border-left:3px solid #2b4162}.tt-c1{color:#2b8a3e;background:#37b24d1f;border-left:3px solid #37b24d}.tt-c2{color:#1971c2;background:#228be61f;border-left:3px solid #228be6}.tt-c3{color:#e67700;background:#f59f001f;border-left:3px solid #f59f00}.tt-c4{color:#9c36b5;background:#be4bdb1f;border-left:3px solid #be4bdb}.tt-c5{color:#c92a2a;background:#fa52521f;border-left:3px solid #fa5252}.tt-c6{color:#0ca678;background:#20c9971f;border-left:3px solid #20c997}.tt-c7{color:#d9480f;background:#ff922b1f;border-left:3px solid #ff922b}.profile-grid{grid-template-columns:1fr 1.5fr;gap:1.5rem;display:grid}.profile-card{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);text-align:center;box-shadow:var(--shadow-sm);padding:2rem}.profile-avatar{object-fit:cover;border:4px solid var(--accent-light);border-radius:50%;width:100px;height:100px;margin:0 auto 1rem}.profile-name{margin-bottom:.15rem;font-size:1.25rem;font-weight:700}.profile-nim{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.9rem}.profile-details{text-align:left}.profile-row{border-bottom:1px solid var(--border);justify-content:space-between;padding:.65rem 0;font-size:.9rem;display:flex}.profile-row:last-child{border-bottom:none}.profile-row .pr-label{color:var(--text-secondary)}.profile-row .pr-value{font-weight:500}.history-table{border-collapse:collapse;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);width:100%;box-shadow:var(--shadow-sm);overflow:hidden}.history-table th{text-align:left;color:var(--text-secondary);background:var(--bg-primary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);padding:.85rem 1.25rem;font-size:.8rem;font-weight:500}.history-table td{border-bottom:1px solid var(--border);padding:.85rem 1.25rem;font-size:.9rem}.history-table tr:last-child td{border-bottom:none}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:.75rem;display:flex;position:fixed;top:1.5rem;right:1.5rem}.toast{border-radius:var(--radius-sm);background:var(--bg-card);box-shadow:var(--shadow-lg);border-left:4px solid var(--accent);pointer-events:auto;max-width:380px;font-size:.9rem;font-weight:500;font-family:var(--font);padding:1rem 1.5rem;animation:.3s slideIn}.toast.success{border-left-color:var(--success)}.toast.error{border-left-color:var(--danger)}.toast.warning{border-left-color:var(--warning)}.toast.info{border-left-color:var(--info)}@keyframes slideIn{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes slideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(40px)}}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9998;background:#0006;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-box{background:var(--bg-card);border-radius:var(--radius);width:90%;max-width:440px;box-shadow:var(--shadow-lg);padding:2rem}.modal-box h3{margin-bottom:.5rem;font-size:1.2rem;font-weight:600}.modal-box p{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.95rem;line-height:1.5}.modal-actions{justify-content:flex-end;gap:.75rem;display:flex}.role-selector{gap:.75rem;margin-bottom:1.75rem;display:flex}.role-btn{border-radius:var(--radius-sm);border:2px solid var(--border);background:var(--bg-card);cursor:pointer;transition:var(--ease);color:var(--text-secondary);flex-direction:column;flex:1;align-items:center;gap:.35rem;padding:.75rem .5rem;font-family:inherit;font-size:.85rem;font-weight:500;display:flex}.role-btn:hover{border-color:var(--accent);color:var(--accent)}.role-btn.active{border-color:var(--role-color,var(--accent));color:var(--role-color,var(--accent));background:#2b41620f}.role-btn[data-role=admin].active{color:#c0392b;background:#c0392b0f;border-color:#c0392b}.role-btn[data-role=lecturer].active{color:#0ca678;background:#0ca6780f;border-color:#0ca678}.role-btn[data-role=student].active{color:#2b4162;background:#2b41620f;border-color:#2b4162}.role-icon{font-size:1.4rem}.login-hints{flex-direction:column;gap:.25rem;margin-top:1.25rem;display:flex}.login-hint{text-align:center;color:var(--text-light);font-size:.8rem}.app-container.role-admin .sidebar{border-right-color:#fbe9e7}.app-container.role-admin .nav-item.active{background:#c0392b}.app-container.role-admin .logo{background:linear-gradient(135deg,#c0392b,#7f1d1d)}.app-container.role-admin .role-badge{color:#c0392b;background:#c0392b1f}.app-container.role-lecturer .nav-item.active{background:#0ca678}.app-container.role-lecturer .logo{background:linear-gradient(135deg,#0ca678,#065f46)}.app-container.role-lecturer .role-badge{color:#0ca678;background:#0ca6781f}.role-badge{text-transform:uppercase;letter-spacing:.5px;color:var(--accent);background:#2b41621a;border-radius:20px;padding:.2rem .6rem;font-size:.65rem;font-weight:600;display:inline-block}.sidebar-user{background:var(--bg-primary);border-radius:var(--radius-sm);align-items:center;gap:.75rem;margin-top:1rem;padding:1rem;display:flex}.sidebar-user img{object-fit:cover;border-radius:50%;width:38px;height:38px}.sidebar-user-info{flex-direction:column;display:flex}.sidebar-user-name{font-size:.85rem;font-weight:600}.sidebar-user-id{color:var(--text-secondary);font-size:.72rem}.brand h1{letter-spacing:-.5px;font-size:1.3rem;font-weight:700;line-height:1.1}.badge-rejected{color:var(--danger);background:#fa52521a}.admin-stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.25rem;display:grid}.admin-stat{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--border);transition:var(--ease);flex-direction:column;gap:.4rem;padding:1.5rem 1.75rem;display:flex}.admin-stat:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.admin-stat .as-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;font-size:.78rem;font-weight:500}.admin-stat .as-val{font-size:2rem;font-weight:700}.admin-stat .as-sub{color:var(--text-secondary);font-size:.8rem}.admin-stat.red .as-val{color:#c0392b}.admin-stat.green .as-val{color:var(--success)}.admin-stat.blue .as-val{color:var(--info)}.admin-stat.orange .as-val{color:var(--warning)}.mgmt-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.mgmt-filters{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.filter-select{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;outline:none;padding:.55rem .9rem;font-family:inherit;font-size:.85rem}.filter-select:focus{border-color:var(--accent)}.action-btn{border-radius:var(--radius-sm);cursor:pointer;transition:var(--ease);border:none;padding:.4rem .9rem;font-family:inherit;font-size:.8rem;font-weight:500}.action-btn.approve{color:#2b8a3e;background:#37b24d1f}.action-btn.approve:hover{color:#fff;background:#37b24d}.action-btn.reject{color:var(--danger);background:#fa52521f}.action-btn.reject:hover{background:var(--danger);color:#fff}.action-btn.edit{color:var(--info);background:#228be61f}.action-btn.edit:hover{background:var(--info);color:#fff}.action-btn.delete{color:var(--danger);background:#fa525214}.action-btn.delete:hover{background:var(--danger);color:#fff}.action-btn.view{color:var(--accent);background:#2b416214}.action-btn.view:hover{background:var(--accent);color:#fff}.btn-add{border-radius:var(--radius-sm);background:var(--success);color:#fff;cursor:pointer;transition:var(--ease);border:none;padding:.65rem 1.25rem;font-family:inherit;font-size:.9rem;font-weight:500}.btn-add:hover{background:#2f9e44;transform:translateY(-1px)}.btn-add.admin-add{background:#c0392b}.btn-add.admin-add:hover{background:#a93226}.action-group{flex-wrap:wrap;gap:.4rem;display:flex}table.mgmt-table{border-collapse:collapse;width:100%}.mgmt-table th{text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--border);background:var(--bg-primary);text-transform:uppercase;letter-spacing:.5px;padding:.85rem 1.25rem;font-size:.78rem;font-weight:500}.mgmt-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:.9rem 1.25rem;font-size:.88rem}.mgmt-table tr:last-child td{border-bottom:none}.mgmt-table tbody tr:hover{background:var(--accent-light)}.nim-tag{background:var(--bg-primary);color:var(--text-secondary);border-radius:4px;padding:.2rem .5rem;font-family:Courier New,monospace;font-size:.82rem;font-weight:600}.lecturer-banner{color:#fff;border-radius:var(--radius);background:linear-gradient(135deg,#0ca678,#065f46);padding:2.5rem;position:relative;overflow:hidden}.lecturer-banner h2{margin-bottom:.35rem;font-size:1.6rem}.lecturer-banner p{color:#ffffffbf;font-size:.95rem}.lecturer-banner .deco{border:1px solid #ffffff1a;border-radius:50%;width:200px;height:200px;position:absolute;top:-60px;right:-30px}.admin-banner{background:linear-gradient(135deg,#c0392b,#7f1d1d)}.modal-form-box{max-width:560px;padding:0;overflow:hidden}.modal-form-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1.5rem 1.75rem;display:flex}.modal-form-header h3{margin:0;font-size:1.1rem;font-weight:600}.modal-close-btn{background:var(--bg-primary);cursor:pointer;width:32px;height:32px;transition:var(--ease);color:var(--text-secondary);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;display:flex}.modal-close-btn:hover{background:var(--danger);color:#fff}#form-modal-content{padding:1.5rem 1.75rem}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-group select{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;transition:var(--ease);cursor:pointer;background:#fff;outline:none;padding:.85rem 1.25rem;font-family:inherit;font-size:1rem}.form-group select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2b41621a}.form-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:.75rem;margin-top:1.25rem;padding-top:1.25rem;display:flex}.krs-detail-list{flex-direction:column;gap:.5rem;margin:.75rem 0 1rem;list-style:none;display:flex}.krs-detail-list li{background:var(--bg-primary);border-radius:var(--radius-sm);justify-content:space-between;padding:.65rem 1rem;font-size:.88rem;display:flex}.teach-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.teach-card{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:var(--ease);padding:1.25rem 1.5rem}.teach-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.teach-card-code{color:var(--text-secondary);background:var(--bg-primary);border-radius:4px;margin-bottom:.5rem;padding:.2rem .5rem;font-family:Courier New,monospace;font-size:.78rem;font-weight:700;display:inline-block}.teach-card-name{margin-bottom:.4rem;font-weight:600}.teach-card-meta{color:var(--text-secondary);font-size:.82rem}.section-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.section-header h3{font-size:1.1rem;font-weight:600}
