@import"https://fonts.googleapis.com/css2?family=Noto+Sans+Khmer:wght@400;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=Outfit:wght@400;500;600;700;800;900&family=Kantumruy+Pro:wght@300;400;500;600;700&family=Moul&display=swap";@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700;800&family=Outfit:wght@400;500;600;700;800&family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Playfair+Display:wght@400;600;800&family=JetBrains+Mono:wght@400;500;700&family=Kantumruy+Pro:wght@400;500;600;700&family=Nokora:wght@400;700&family=Koh+Santepheap:wght@400;700&family=Moul&family=Kdam+Thmor+Pro&family=Battambang:wght@400;700&display=swap";.cc-page{display:flex;flex-direction:column;gap:20px;animation:slideUpFade .4s cubic-bezier(.16,1,.3,1) forwards}.cc-page-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.cc-page-header h2{font-size:22px;font-weight:800;color:var(--text-heading);margin:0 0 4px}.cc-page-header p{color:var(--text-muted);font-size:14px;margin:0}.cc-add-btn{display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:12px;font-size:14px;font-weight:700;white-space:nowrap;border:none;cursor:pointer;flex-shrink:0}.cc-header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.cc-dept-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.cc-dept-tile{background:var(--bg-card);border:1.5px solid var(--border-color);border-radius:16px;padding:20px 22px;text-align:left;cursor:default;display:flex;flex-direction:column;gap:5px;position:relative;overflow:hidden;transition:border-color .28s ease,box-shadow .28s ease,transform .28s cubic-bezier(.34,1.56,.64,1)}.cc-dept-tile:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--dg, linear-gradient(135deg, #4f46e5, #a855f7));opacity:0;transition:opacity .28s ease;pointer-events:none;z-index:0}.cc-dept-tile:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.22) 50%,transparent 75%);transform:translate(-120%);transition:transform .6s ease;pointer-events:none;z-index:1}.cc-dept-tile:hover{border-color:transparent;box-shadow:0 8px 32px #0000002e,0 2px 8px #00000014;transform:translateY(-4px) scale(1.02)}.cc-dept-tile:hover:after{opacity:1}.cc-dept-tile:hover:before{transform:translate(120%)}.cc-dept-count,.cc-dept-label{position:relative;z-index:2;transition:color .22s ease}.cc-dept-count{font-size:30px;font-weight:800;color:var(--text-heading);line-height:1}.cc-dept-label{font-size:12px;font-weight:600;color:var(--text-muted);line-height:1.4}.cc-dept-tile:hover .cc-dept-count{color:#fff;font-size:32px}.cc-dept-tile:hover .cc-dept-label{color:#ffffffd9;font-weight:700}.cc-alert{background:#fff1f2;border:1px solid #fecdd3;border-radius:12px;color:#9f1239;font-size:14px;padding:12px 16px}.cc-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:18px;box-shadow:var(--shadow-sm);overflow:hidden}.cc-tabs{display:flex;align-items:stretch;gap:2px;padding:10px 18px 0;background:var(--bg-card);border-bottom:1px solid var(--border-color)}.cc-tab{display:inline-flex;align-items:center;gap:7px;padding:9px 16px 11px;border:none;border-bottom:2.5px solid transparent;background:none;color:var(--text-muted);font-size:13.5px;font-weight:700;font-family:inherit;cursor:pointer;border-radius:10px 10px 0 0;transition:color .15s,background .15s;margin-bottom:-1px}.cc-tab:hover{color:var(--text-heading);background:#f8fafc}.cc-tab--active{color:var(--primary);border-bottom-color:var(--primary);background:transparent}.cc-tab--active.cc-tab--trash{color:#ef4444;border-bottom-color:#ef4444}.cc-tab em{font-style:normal;background:#f1f5f9;color:var(--text-muted);border-radius:6px;padding:1px 7px;font-size:11px;font-weight:800}.cc-tab--active em{background:#eef2ff;color:var(--primary)}.cc-tab--active.cc-tab--trash em{background:#fee2e2;color:#ef4444}.cc-tab__trash-count{background:#fecaca!important;color:#dc2626!important;animation:cc-trash-pop .3s cubic-bezier(.34,1.56,.64,1)}@keyframes cc-trash-pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.cc-trash-view{padding:20px 22px 24px}.cc-trash-banner{display:flex;align-items:center;gap:9px;background:#fffbeb;border:1px solid #fde68a;border-radius:12px;color:#92400e;font-size:13px;font-weight:600;padding:11px 16px;margin-bottom:18px}.cc-trash-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:56px 20px;color:#94a3b8;text-align:center}.cc-trash-empty p{font-size:17px;font-weight:700;margin:0;color:#64748b}.cc-trash-empty span{font-size:13px;max-width:320px;line-height:1.5}.cc-trash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.cc-trash-card{position:relative;background:var(--bg-card);border:1px solid #e2e8f0;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px;opacity:.88;transition:opacity .2s,box-shadow .2s,transform .2s;animation:cc-trash-in .3s cubic-bezier(.16,1,.3,1) both}@keyframes cc-trash-in{0%{opacity:0;transform:scale(.96) translateY(6px)}to{opacity:.88;transform:none}}.cc-trash-card:hover{opacity:1;box-shadow:0 6px 20px #0f172a14;transform:translateY(-2px)}.cc-trash-card__accent{position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:14px 0 0 14px;background:var(--course-color, #94a3b8);opacity:.45}.cc-trash-card__head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cc-trash-card__dept{font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px}.cc-trash-card__name{font-size:15px;font-weight:700;color:var(--text-heading);margin:0;line-height:1.35}.cc-trash-card__meta{display:flex;gap:6px;flex-wrap:wrap}.cc-trash-card__meta span{font-size:11.5px;font-weight:600;color:var(--text-muted);background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:2px 8px}.cc-trash-card__actions{display:flex;gap:8px;margin-top:2px}.cc-trash-restore{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border:none;border-radius:10px;cursor:pointer;font-size:13px;font-weight:800;font-family:inherit;color:#fff;background:linear-gradient(135deg,#6366f1,#22d3ee);background-size:200% 200%;animation:cc-gradient-shift 4s ease infinite;box-shadow:0 2px 10px #6366f14d;transition:transform .15s,box-shadow .15s}.cc-trash-restore:hover{transform:translateY(-1px);box-shadow:0 4px 16px #6366f166}.cc-trash-permanent{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border:1.5px solid #fecaca;border-radius:10px;cursor:pointer;font-size:13px;font-weight:800;font-family:inherit;color:#dc2626;background:#fff5f5;transition:all .15s}.cc-trash-permanent:hover{background:#dc2626;border-color:#dc2626;color:#fff;box-shadow:0 3px 12px #dc26264d;transform:translateY(-1px)}.cc-toolbar{display:flex;align-items:center;gap:0;padding:0 22px;border-bottom:1px solid var(--border-color);overflow-x:auto;scrollbar-width:none;min-height:58px}.cc-toolbar::-webkit-scrollbar{display:none}.cc-search-box{display:flex;align-items:center;gap:9px;background:transparent;border:none;padding:0;flex:1 1 180px;min-width:140px;max-width:260px;color:var(--text-muted)}.cc-search-box input{border:none;background:transparent;outline:none;color:var(--text-heading);font-size:14px;font-family:inherit;width:100%}.cc-search-box input::placeholder{color:var(--text-light)}.cc-toolbar-sep{width:1px;height:28px;background:var(--border-color);flex-shrink:0;margin:0 14px}.cc-filter-group{display:flex;align-items:center;gap:4px;flex-shrink:0;padding:10px 0}.cc-filter-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.7px;color:var(--text-light);white-space:nowrap;margin-right:4px}.cc-filter-pill{background:transparent;border:1.5px solid transparent;border-radius:8px;color:var(--text-muted);font-size:12.5px;font-weight:700;font-family:inherit;padding:5px 10px;cursor:pointer;display:flex;align-items:center;gap:5px;transition:all .15s ease;white-space:nowrap}.cc-filter-pill:hover{background:#eef2ff;color:var(--primary)}.cc-filter-pill.active{background:var(--primary);color:#fff;box-shadow:0 2px 8px #4f46e547}.cc-filter-pill em{font-style:normal;background:#00000012;border-radius:5px;padding:1px 5px;font-size:10.5px;font-weight:800;line-height:1.4}.cc-filter-pill.active em{background:#ffffff38;color:#fff}.cc-filter-select-wrap{position:relative;display:flex;align-items:center;flex-shrink:0}.cc-select-icon{position:absolute;left:10px;color:var(--text-muted);pointer-events:none;z-index:1}.cc-filter-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding:6px 28px 6px 30px;border:1.5px solid var(--border-color);border-radius:9px;background:var(--bg-card);color:var(--text-body);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;outline:none;transition:border-color .15s,box-shadow .15s,background .15s;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;min-width:140px}.cc-filter-select:hover{border-color:var(--primary)}.cc-filter-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.cc-filter-select--active{border-color:var(--primary);background-color:var(--primary-light);color:var(--primary);font-weight:700}.cc-filter-clear{background:none;border:none;cursor:pointer;color:var(--text-light);font-size:14px;line-height:1;padding:3px 4px;border-radius:6px;transition:all .15s}.cc-filter-clear:hover{background:#fee2e2;color:#dc2626}.cc-filter-reset{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border:none;border-radius:9px;cursor:pointer;font-size:12.5px;font-weight:800;font-family:inherit;color:#fff;white-space:nowrap;flex-shrink:0;background:linear-gradient(135deg,#6366f1,#a855f7,#ec4899);background-size:200% 200%;animation:cc-gradient-shift 3s ease infinite;box-shadow:0 2px 10px #8b5cf659;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.cc-filter-reset:hover{transform:translateY(-1px);box-shadow:0 4px 16px #8b5cf673}.cc-filter-reset:active{transform:translateY(0);opacity:.88}@keyframes cc-gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.cc-table-wrap{overflow-x:auto}.cc-table{width:100%;border-collapse:collapse;min-width:680px}.cc-table th{text-align:left;padding:13px 20px;font-size:11px;font-weight:800;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;background:#f8fafc;border-bottom:1px solid var(--border-color)}.cc-expand-col{width:52px}.cc-table td{padding:15px 20px;border-bottom:1px solid #f0f4f8;vertical-align:middle;font-size:14px}.cc-table tbody tr:last-child td{border-bottom:none}.cc-row:hover td{background:#fafafe}.cc-expand-btn{width:28px;height:28px;border-radius:8px;background:#f1f5f9;border:1px solid var(--border-color);color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.cc-expand-btn:hover{background:#eef2ff;border-color:#c7d2fe;color:var(--primary)}.cc-code{font-weight:800;font-size:13px;white-space:nowrap}.cc-name{font-weight:600;color:var(--text-heading)}.cc-dept-badge{display:inline-flex;padding:5px 10px;border-radius:8px;font-size:12px;font-weight:700;white-space:nowrap}.cc-desc-row td{padding:0!important;border-bottom:1px solid #f0f4f8!important}.cc-desc{background:#f8fafc;border-top:1px solid var(--border-color);color:var(--text-body);font-size:14px;line-height:1.65;padding:14px 20px 14px 68px}.cc-empty{text-align:center;padding:56px 20px!important;color:#94a3b8;font-size:14px}.cc-table-footer{padding:13px 22px;border-top:1px solid var(--border-color);background:#f8fafc;color:var(--text-muted);font-size:13px;font-weight:600}.cc-course-grid-wrap{padding:0;background:transparent}.cc-table-scroll{overflow-x:auto}.cc-course-table{width:100%;border-collapse:collapse}.cc-course-table thead th{padding:10px 14px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.55px;color:#64748b;background:#f8fafc;border-bottom:1px solid #e2e8f0;text-align:left;white-space:nowrap}.cc-course-table thead th:first-child{padding-left:20px}.cc-course-row td{padding:11px 14px;font-size:14px;color:#334155;border-bottom:1px solid #f1f5f9;vertical-align:middle}.cc-course-row:last-child td{border-bottom:none}.cc-course-row{border-left:3px solid var(--course-color, #0284c7);transition:background .15s ease}.cc-course-row:hover td{background:#f8fafc}.cc-course-row--new{animation:ccRowFlash 1.4s ease}.cc-row-name{font-weight:700;font-size:14px;color:#0f172a;max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-row-dept-pill{display:inline-block;padding:3px 9px;border-radius:20px;font-size:12px;font-weight:700;white-space:nowrap}.cc-row-center{text-align:center;font-weight:700;color:#475569}.cc-row-muted{color:#94a3b8;font-size:13px;white-space:nowrap}.cc-enroll-cell{display:flex;align-items:center;gap:8px;min-width:110px}.cc-enroll-bar{flex:1;height:6px;background:#e2e8f0;border-radius:99px;overflow:hidden;max-width:64px}.cc-enroll-bar span{display:block;height:100%;border-radius:inherit;transition:width .4s ease;opacity:.85}.cc-enroll-text{font-size:12px;white-space:nowrap}.cc-row-actions{display:flex;gap:5px;align-items:center}.cc-row-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border:none;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;transition:all .18s ease;font-family:inherit;white-space:nowrap}.cc-row-btn--edit{background:#e0e7ff;color:#4f46e5}.cc-row-btn--edit:hover{background:#4f46e5;color:#fff}.cc-row-btn--del{background:#fee2e2;color:#dc2626;padding:5px 8px}.cc-row-btn--del:hover{background:#dc2626;color:#fff}@keyframes ccRowFlash{0%{background:#4f46e514}to{background:transparent}}.cc-course-code,.cc-course-status,.cc-course-year{display:inline-flex;align-items:center;gap:6px;min-height:28px;border-radius:999px;font-size:12px;font-weight:800;padding:5px 10px;white-space:nowrap}.cc-course-code{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;box-shadow:none;justify-content:center;min-width:12ch;max-width:12ch;overflow:hidden;text-overflow:ellipsis}.cc-course-status--active{background:#dcfce7;color:#047857}.cc-course-status--inactive{background:#fee2e2;color:#b91c1c}.cc-course-year{background:#f1f5f9;color:#475569}.cc-course-icon{display:none;align-items:center;justify-content:center;width:64px;height:64px;border-radius:18px;flex:0 0 auto;background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;box-shadow:0 14px 28px #0ea5e93d}.cc-course-title{color:var(--text-heading);font-size:17px;font-weight:800;line-height:1.3;margin:0}.cc-course-dept{display:inline-flex;align-items:center;gap:8px;color:#64748b;font-size:13px;font-weight:700;min-width:0}.cc-professor-strip{display:none;align-items:center;gap:10px;margin-left:-24px;margin-right:-24px;padding:16px 24px;background:#f1f5f9c7;color:#94a3b8;font-size:18px;font-style:italic;font-weight:650}.cc-course-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;border-top:1px solid #edf2f7;padding-top:12px}.cc-course-info-grid div{display:grid;gap:4px;min-width:0}.cc-course-info-grid span{color:#94a3b8;font-size:11px;font-weight:850;letter-spacing:.3px;text-transform:uppercase}.cc-course-info-grid strong{color:#334155;font-size:14px;font-weight:850;line-height:1.3}.cc-course-description{border:1px solid rgba(186,230,253,.9);border-radius:14px;background:#f0f9ffb8;color:#475569;font-size:14px;line-height:1.6;padding:12px 14px}.cc-enrollment{display:grid;gap:8px;border-top:1px solid rgba(226,232,240,.9);padding-top:12px}.cc-enrollment>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px}.cc-enrollment span{color:#64748b;font-size:13px;font-weight:850}.cc-enrollment strong{color:#0284c7;font-size:14px;font-weight:900}.cc-enrollment-track{height:8px;overflow:hidden;border-radius:999px;background:#e2e8f0}.cc-enrollment-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0284c7,#38bdf8)}.cc-course-actions{display:grid;grid-template-columns:1fr 46px 46px;gap:8px;margin-top:2px}.cc-assign-btn,.cc-card-action{min-height:50px;border:1px solid #dbeafe;border-radius:10px;background:#eff6ffe6;color:#2563eb;cursor:pointer;font:inherit;font-size:13px;font-weight:900;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;backface-visibility:hidden}.cc-assign-btn:hover,.cc-card-action:hover{transform:none;box-shadow:none;background:#dbeafe}.cc-card-action{display:inline-flex;align-items:center;justify-content:center;color:#475569;background:#f8fafceb}.cc-card-action--danger{background:#fee2e2;border-color:#fecaca;color:#dc2626}@media(prefers-reduced-motion:reduce){.cc-page,.cc-course-card,.cc-course-card--new,.bulk-row,.modal.bulk-modal{animation:none!important;transition:none!important}.cc-drawer-backdrop,.cc-drawer{transition:none!important}}.modal-form textarea{padding:12px 16px;border:1px solid var(--border-color);border-radius:12px;background:#f8fafc;color:var(--text-heading);font-size:1rem;font-family:inherit;transition:var(--transition);outline:none;resize:vertical;min-height:80px}.modal-form textarea:focus{background:#fff;border-color:var(--primary);box-shadow:0 0 0 4px #4f46e51a}.cc-form-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:15px}@media(max-width:560px){.cc-form-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1024px){.cc-dept-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.cc-dept-grid{grid-template-columns:repeat(2,1fr);gap:12px}.cc-dept-tile{padding:16px 18px}.cc-dept-count{font-size:26px}.cc-toolbar{flex-wrap:wrap;overflow-x:visible;min-height:0;padding:12px 16px;gap:10px 12px}.cc-toolbar-sep{display:none}.cc-search-box{flex:1 1 100%;max-width:none;min-width:0;border:1px solid var(--border-color);border-radius:10px;padding:9px 12px}.cc-filter-group{width:100%;padding:0}.cc-filter-pill{flex:1;justify-content:center}.cc-filter-select-wrap{flex:1 1 150px}.cc-filter-select{width:100%;min-width:0}.cc-filter-reset{flex:1 1 100%;justify-content:center;padding:9px}}@media(max-width:720px){.cc-table-scroll{overflow-x:visible}.cc-course-table,.cc-course-table tbody{display:block;width:100%}.cc-course-table thead{display:none}.cc-course-grid-wrap{padding:14px 14px 4px}.cc-course-row{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;align-items:start;padding:16px;margin-bottom:12px;border:1px solid var(--border-color);border-left:4px solid var(--course-color, #0284c7);border-radius:14px;background:var(--bg-card);box-shadow:var(--shadow-sm)}.cc-course-row:hover td{background:transparent}.cc-course-row td{display:flex;flex-direction:column;gap:4px;padding:0;border:none;min-width:0}.cc-course-row td:before{content:attr(data-label);font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:#94a3b8}.cc-cell-name{order:1;grid-column:1 / -1}.cc-cell-code{order:2}td[data-label=Status]{order:3;align-items:flex-start}td[data-label=Department]{order:4;grid-column:1 / -1;align-items:flex-start}td[data-label=Credits]{order:5}td[data-label=Year]{order:6}td[data-label=Semester]{order:7}td[data-label=Enrollment]{order:8;grid-column:1 / -1}.cc-cell-actions{order:9;grid-column:1 / -1}.cc-cell-name:before{display:none}.cc-cell-name .cc-row-name{font-size:15.5px;max-width:none;white-space:normal;overflow:visible;line-height:1.35}.cc-row-center{text-align:left}.cc-enroll-cell{min-width:0}.cc-enroll-bar{max-width:none}.cc-cell-actions:before{display:none}.cc-row-actions{width:100%;gap:8px}.cc-row-btn{padding:10px 12px;font-size:13px}.cc-row-btn--edit{flex:1;justify-content:center}.cc-row-btn--del{padding:10px 14px}}@media(max-width:640px){.cc-page-header{flex-direction:column;align-items:stretch}.cc-header-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.cc-add-btn,.cc-bulk-btn{justify-content:center;width:100%}}@media(max-width:420px){.cc-dept-grid{grid-template-columns:1fr 1fr;gap:10px}.cc-header-actions{grid-template-columns:1fr}}.cc-bulk-btn{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1.5px solid #c7d2fe;border-radius:11px;color:var(--primary);cursor:pointer;font-size:13px;font-weight:800;padding:10px 14px;transition:var(--transition)}.cc-bulk-btn:hover{background:#eef2ff;box-shadow:0 6px 16px #4f46e52e;transform:translateY(-2px)}@keyframes bulkPopIn{0%{opacity:0;transform:scale(.9) translateY(14px)}60%{opacity:1;transform:scale(1.02) translateY(-2px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal.bulk-modal{max-width:min(1080px,calc(100vw - 32px));max-height:min(780px,calc(100vh - 32px));display:flex;flex-direction:column}.bulk-modal-header{align-items:flex-start}.bulk-modal-header p{margin:4px 0 0;color:var(--text-muted);font-size:13px;font-weight:500}.bulk-form{display:flex;flex-direction:column;gap:12px;padding:20px 24px 24px;overflow-y:auto;overscroll-behavior:contain}.bulk-csv-actions{display:flex;gap:8px}.bulk-csv-btn{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1.5px solid #c7d2fe;border-radius:11px;color:var(--primary);cursor:pointer;font-size:13px;font-weight:800;padding:9px 13px;transition:var(--transition)}.bulk-csv-btn:hover{background:#eef2ff;box-shadow:0 6px 16px #4f46e52e;transform:translateY(-2px)}.bulk-csv-btn input{display:none}.bulk-grid-head,.bulk-row{display:grid;grid-template-columns:90px minmax(140px,1fr) minmax(120px,.8fr) 72px 100px 105px 125px 85px 30px;gap:8px;align-items:center}.bulk-grid-head span{color:var(--text-muted);font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}.bulk-rows{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow-y:auto;padding:2px}.bulk-row{animation:bulkPopIn .3s cubic-bezier(.34,1.56,.64,1)}.bulk-row input,.bulk-row select{background:#ffffff94;border:1.5px solid rgba(148,163,184,.28);border-radius:10px;color:var(--text-heading);font-size:13.5px;min-width:0;outline:none;padding:9px 11px;transition:var(--transition)}.bulk-row input:focus,.bulk-row select:focus{background:#ffffffdb;border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51f}.bulk-remove-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:#fef2f2;border:1px solid #fecaca;border-radius:9px;color:#b91c1c;cursor:pointer;font-size:16px;font-weight:700;line-height:1;transition:var(--transition)}.bulk-remove-btn:hover:not(:disabled){background:#fee2e2;transform:scale(1.08)}.bulk-remove-btn:disabled{cursor:not-allowed;opacity:.4}.bulk-add-row-btn{background:transparent;border:1.5px dashed #c7d2fe;border-radius:11px;color:var(--primary);cursor:pointer;font-size:13px;font-weight:800;padding:10px;transition:var(--transition)}.bulk-add-row-btn:hover{background:#eef2ff;border-style:solid}.bulk-error{background:#fef2f2;border:1px solid #fecaca;border-radius:10px;color:#b91c1c;font-size:13px;font-weight:600;padding:10px 14px;animation:bulkPopIn .25s ease}.bulk-submit-btn{min-width:150px}@media(max-width:768px){.bulk-grid-head{display:none}.bulk-row{grid-template-columns:1fr 1fr;grid-template-areas:"code   remove" "title  title" "dept   credit" "level  semester" "ay     status"}.bulk-row input:nth-child(1){grid-area:code}.bulk-row input:nth-child(2){grid-area:title}.bulk-row select:nth-child(3){grid-area:dept}.bulk-row input:nth-child(4){grid-area:credit}.bulk-row select:nth-child(5){grid-area:level}.bulk-row select:nth-child(6){grid-area:semester}.bulk-row input:nth-child(7){grid-area:ay}.bulk-row select:nth-child(8){grid-area:status}.bulk-remove-btn{grid-area:remove;justify-self:end}}.modal.cc-modal{max-width:min(540px,100vw)!important;max-height:100vh!important;display:flex;flex-direction:column}.cc-form-overlay{align-items:stretch!important;justify-content:flex-end!important;padding:0!important;overflow:hidden}.modal.cc-modal.cc-animated-form,.modal.bulk-modal.cc-animated-form{position:fixed;will-change:transform,opacity;contain:layout paint;background:#ffffff14;border:1px solid rgba(255,255,255,.32);box-shadow:0 24px 70px #2650803d;backdrop-filter:blur(26px) saturate(1.18);-webkit-backdrop-filter:blur(26px) saturate(1.18);backface-visibility:hidden;animation:none!important}.modal.cc-modal.cc-animated-form{position:fixed!important;top:0!important;right:0!important;bottom:0!important;height:100vh!important;width:min(540px,100vw)!important;border-radius:20px 0 0 20px!important;margin:0!important;box-shadow:-10px 0 40px #0f172a26!important}.modal.bulk-modal.cc-bulk-animated-form{width:min(1080px,calc(100vw - 32px))}.modal.cc-modal.cc-animated-form .modal-header,.modal.bulk-modal.cc-animated-form .modal-header{background:#f8fafc52;border-bottom-color:#94a3b838}.modal.cc-modal .modal-form{overflow-y:auto;flex:1;padding:24px 32px;scroll-behavior:smooth;overscroll-behavior:contain}.modal.cc-modal.cc-animated-form .modal-form textarea,.modal.cc-modal.cc-animated-form .modal-form input,.modal.cc-modal.cc-animated-form .modal-form select{background:#ffffff94;border-color:#94a3b847}.modal.cc-modal.cc-animated-form .modal-form textarea:focus,.modal.cc-modal.cc-animated-form .modal-form input:focus,.modal.cc-modal.cc-animated-form .modal-form select:focus{background:#ffffffdb}.modal.cc-modal input[type=date]{min-height:48px;font-family:inherit;font-weight:500;cursor:pointer;color-scheme:light}body.dark-mode .modal.cc-modal input[type=date]{color-scheme:dark}@media(max-width:640px){.modal.cc-modal.cc-animated-form{width:100vw!important;max-height:100vh!important;border-radius:0!important}.modal.bulk-modal.cc-bulk-animated-form{width:min(100%,calc(100vw - 20px));max-height:min(760px,calc(100vh - 20px))}.modal.cc-modal .modal-form{padding:18px}}.sd-page{display:flex;flex-direction:column;gap:20px;animation:slideUpFade .4s cubic-bezier(.16,1,.3,1) forwards}.sd-page-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.sd-page-header h2{font-size:22px;font-weight:800;color:var(--text-heading);margin:0 0 4px}.sd-page-header p{color:var(--text-muted);font-size:14px;margin:0}.sd-header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.sd-register-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:none;border-radius:12px;padding:10px 16px;color:#fff;font-size:13.5px;font-weight:800;background:linear-gradient(135deg,#06b6d4,#4f46e5 52%,#db2777);box-shadow:0 12px 24px #4f46e53d;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;white-space:nowrap}.sd-register-btn--bulk{background:linear-gradient(135deg,#f59e0b,#ef4444,#db2777);box-shadow:0 12px 24px #ef444438}.sd-register-btn:hover{transform:translateY(-2px);box-shadow:0 16px 30px #4f46e552}.sd-register-btn--bulk:hover{box-shadow:0 16px 30px #ef44444d}.sd-alert{display:flex;align-items:center;gap:10px;border:1px solid #bbf7d0;border-radius:12px;padding:13px 16px;background:#f0fdf4;color:#166534;font-size:13.5px;font-weight:700;box-shadow:var(--shadow-sm);animation:sd-alert-in .28s ease both}.sd-alert--error{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.sd-message-box{border:1px solid #fecaca;border-radius:16px;background:#fff7f7;box-shadow:var(--shadow-sm);overflow:hidden}.sd-message-box__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid #fee2e2;background:#fff}.sd-message-box__header span{display:block;margin-bottom:4px;color:#ef4444;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.sd-message-box__header h3{margin:0;color:var(--text-heading);font-size:16px;font-weight:900}.sd-message-box__header strong{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;border-radius:999px;background:#fee2e2;color:#dc2626;font-size:14px;font-weight:900}.sd-message-list{display:grid;gap:10px;padding:12px}.sd-message-item{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #fee2e2;border-radius:12px;padding:12px;background:#fff}.sd-message-main{display:flex;align-items:center;gap:12px;min-width:0}.sd-message-main div:last-child{display:grid;gap:3px;min-width:0}.sd-message-main strong{color:var(--text-heading);font-size:13.5px;font-weight:900}.sd-message-main span{color:var(--text-muted);font-size:12px;font-weight:700;overflow-wrap:anywhere}.sd-message-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.sd-message-restore,.sd-message-delete{min-height:34px;border:none;border-radius:9px;padding:8px 12px;color:#fff;font-size:12px;font-weight:900;cursor:pointer;transition:var(--transition)}.sd-message-restore{background:var(--gradient-brand)}.sd-message-delete{background:linear-gradient(135deg,#f87171,#ef4444)}.sd-message-restore:hover,.sd-message-delete:hover{transform:translateY(-1px)}.sd-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:18px;box-shadow:var(--shadow-sm);overflow:hidden}.sd-toolbar{display:flex;align-items:center;gap:14px;padding:18px 22px;border-bottom:1px solid var(--border-color);flex-wrap:wrap}.sd-search-box{display:flex;align-items:center;gap:10px;background:#f8fafc;border:1.5px solid var(--border-color);border-radius:12px;padding:10px 14px;flex:1;min-width:200px;color:var(--text-muted);transition:var(--transition)}.sd-search-box:focus-within{background:#fff;border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.sd-search-box input{border:none;background:transparent;outline:none;color:var(--text-heading);font-size:14px;font-family:inherit;width:100%}.sd-search-box input::placeholder{color:var(--text-light)}.sd-filter-row{display:flex;gap:6px;flex-wrap:wrap}.sd-filter-pill{background:transparent;border:1.5px solid var(--border-color);border-radius:10px;color:var(--text-muted);font-size:13px;font-weight:700;font-family:inherit;padding:7px 12px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s ease}.sd-filter-pill em{font-style:normal;background:#f1f5f9;color:var(--text-muted);border-radius:6px;padding:1px 6px;font-size:11px;font-weight:800}.sd-filter-pill:hover{border-color:var(--primary);color:var(--primary)}.sd-filter-pill.active{background:var(--primary);border-color:var(--primary);color:#fff}.sd-filter-pill.active em{background:#ffffff38;color:#fff}.sd-table-wrap{overflow-x:auto}.sd-table{width:100%;border-collapse:collapse;min-width:840px}.sd-table th{text-align:left;padding:13px 20px;font-size:11px;font-weight:800;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;background:#f8fafc;border-bottom:1px solid var(--border-color)}.sd-table td{padding:15px 20px;border-bottom:1px solid #f0f4f8;vertical-align:middle;font-size:14px}.sd-table tbody tr:last-child td{border-bottom:none}.sd-row:hover td{background:#fafafe}.sd-table-photo{display:inline-flex;align-items:center;justify-content:center;width:36px;height:48px;border-radius:8px;background:var(--primary-light);color:var(--primary);font-size:11px;font-weight:900;overflow:hidden;box-shadow:0 3px 8px #4f46e51f}.sd-table-photo img{width:100%;height:100%;object-fit:cover}.sd-student-cell{display:flex;align-items:center;gap:12px}.sd-avatar{width:36px;height:36px;border-radius:50%;background:var(--primary-light);color:var(--primary);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:-.5px}.sd-student-info{display:flex;flex-direction:column}.sd-student-info strong{color:var(--text-heading);font-weight:600;font-size:14px}.sd-student-info small{color:var(--text-muted);font-size:12px;margin-top:1px}.sd-id{font-family:monospace;font-weight:700;color:var(--text-muted)}.sd-gpa-info{display:flex;flex-direction:column}.sd-gpa-info strong{color:var(--text-heading);font-weight:700;font-size:14px}.sd-gpa-info small{color:var(--text-light);font-size:11px;margin-top:2px}.sd-action-btn{background:transparent;border:1.5px solid var(--border-color);border-radius:10px;color:var(--text-body);font-size:13px;font-weight:600;padding:6px 12px;cursor:pointer;transition:all .2s ease}.sd-action-btn:hover{background:#f1f5f9;border-color:#cbd5e1;color:var(--text-heading)}.sd-action-btn--delete{border-color:#fecaca;background:#fef2f2;color:#dc2626}.sd-action-btn--delete:hover{border-color:#fca5a5;background:#fee2e2;color:#b91c1c}.sd-empty{text-align:center;padding:56px 20px!important;color:#94a3b8;font-size:14px}.sd-table-footer{padding:13px 22px;border-top:1px solid var(--border-color);background:#f8fafc;color:var(--text-muted);font-size:13px;font-weight:600}.pill.status-pill{font-size:11px;font-weight:700;padding:4px 8px;border-radius:6px;text-transform:uppercase}.pill.status-pill.active{background:#d1fae5;color:#065f46}.pill.status-pill.graduated{background:#dbeafe;color:#1e40af}.pill.status-pill.suspended{background:#fee2e2;color:#991b1b}.pill.status-pill.probation{background:#fef3c7;color:#92400e}@keyframes slideUpFade{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes sd-alert-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.sd-register-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:24px;background:#0f172a7a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:sd-overlay-in .22s ease both}.sd-register-modal{position:relative;width:min(620px,100%);max-height:min(92vh,780px);overflow:hidden auto;border:1px solid rgba(255,255,255,.72);border-radius:18px;background:linear-gradient(180deg,#fffffffa,#f8fafcfa);box-shadow:0 28px 80px #0f172a47;animation:sd-modal-pop .42s cubic-bezier(.16,1,.3,1) both}.sd-register-modal--bulk{width:min(920px,100%)}.sd-register-modal:before{content:"";position:absolute;inset:0 0 auto;height:7px;background:linear-gradient(90deg,#06b6d4,#4f46e5,#db2777,#f59e0b);background-size:220% 100%;animation:sd-rainbow-flow 4s linear infinite}.sd-register-glow{position:absolute;width:180px;height:180px;border-radius:50%;filter:blur(42px);opacity:.22;pointer-events:none;animation:sd-glow-float 6s ease-in-out infinite alternate}.sd-register-glow--one{top:-70px;left:-45px;background:#06b6d4}.sd-register-glow--two{right:-60px;bottom:80px;background:#db2777;animation-delay:-2s}.sd-register-header{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:26px 26px 18px}.sd-register-mark{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:14px;color:#fff;background:linear-gradient(135deg,#06b6d4,#4f46e5 55%,#db2777);box-shadow:0 12px 22px #4f46e547}.sd-register-mark--bulk{background:linear-gradient(135deg,#f59e0b,#ef4444 55%,#db2777);box-shadow:0 12px 22px #ef44443d}.sd-register-header span{display:block;margin-bottom:3px;color:#4f46e5;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.sd-register-header h3{margin:0;color:var(--text-heading);font-size:21px;font-weight:900}.sd-register-close{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--border-color);border-radius:10px;background:#fff;color:var(--text-muted);cursor:pointer;transition:var(--transition)}.sd-register-close:hover{color:var(--text-heading);border-color:#cbd5e1;background:#f8fafc}.sd-register-form{position:relative;display:grid;gap:14px;padding:0 26px 26px}.sd-form-banner{display:flex;align-items:center;gap:12px;border:1px solid #dbeafe;border-radius:14px;padding:14px;background:linear-gradient(135deg,#eff6ff,#eef2ff 55%,#fdf2f8);color:#1d4ed8}.sd-form-banner--bulk{border-color:#fed7aa;background:linear-gradient(135deg,#fff7ed,#fef2f2 48%,#fdf2f8);color:#ea580c}.sd-form-banner strong,.sd-form-banner span{display:block}.sd-form-banner strong{color:var(--text-heading);font-size:14px;font-weight:900}.sd-form-banner span{margin-top:2px;color:var(--text-muted);font-size:12.5px;font-weight:700}.sd-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sd-form-grid--three{grid-template-columns:1.2fr .8fr .9fr}.sd-csv-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.sd-csv-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;border:none;border-radius:8px;padding:11px 16px;background:#eef2ff;color:#4f46e5;font-size:14px;font-weight:900;cursor:pointer;transition:var(--transition)}.sd-csv-btn:hover{background:#e0e7ff;transform:translateY(-1px)}.sd-csv-btn--import{color:#5b4bf0}.sd-csv-btn input{display:none}.sd-field{display:grid;gap:7px;color:var(--text-heading);font-size:12.5px;font-weight:850}.sd-field input,.sd-field select,.sd-field textarea{width:100%;min-height:42px;border:1.5px solid var(--border-color);border-radius:11px;padding:10px 12px;background:#fff;color:var(--text-heading);font:inherit;font-size:13.5px;outline:none;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.sd-field input:focus,.sd-field select:focus,.sd-field textarea:focus{border-color:#4f46e5;box-shadow:0 0 0 4px #4f46e51f;transform:translateY(-1px)}.sd-field textarea{min-height:74px;resize:vertical}.sd-field--invalid input{border-color:#ef4444;box-shadow:0 0 0 4px #ef44441a}.sd-id-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.sd-id-suggest-btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border:1.5px solid #a7f3d0;border-radius:11px;padding:0 12px;background:#ecfdf5;color:#047857;font-size:12.5px;font-weight:900;cursor:pointer;white-space:nowrap;transition:var(--transition)}.sd-id-suggest-btn:hover{border-color:#34d399;background:#d1fae5}.sd-field-hint{color:var(--text-muted);font-size:11.5px;font-style:normal;font-weight:700}.sd-field-hint--error{color:#dc2626}.sd-field--icon{position:relative}.sd-field--icon svg{position:absolute;left:13px;bottom:13px;color:#64748b}.sd-field--icon input{padding-left:38px}.sd-register-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}.sd-cancel-btn,.sd-submit-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:none;border-radius:11px;padding:10px 16px;font-size:13.5px;font-weight:850;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.sd-cancel-btn{border:1.5px solid var(--border-color);background:#fff;color:var(--text-body)}.sd-submit-btn{color:#fff;background:linear-gradient(135deg,#10b981,#06b6d4 45%,#4f46e5);box-shadow:0 12px 24px #06b6d43d}.sd-cancel-btn:hover,.sd-submit-btn:hover{transform:translateY(-2px)}.sd-submit-btn:hover{box-shadow:0 16px 28px #06b6d44d}.sd-bulk-list{display:grid;gap:12px;max-height:46vh;overflow:auto;padding-right:3px}.sd-bulk-row{display:grid;gap:12px;border:1px solid #e2e8f0;border-radius:14px;padding:14px;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#06b6d459,#db277759) border-box;animation:sd-bulk-row-in .28s ease both}.sd-bulk-row__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.sd-bulk-row__head strong{color:var(--text-heading);font-size:13.5px;font-weight:900}.sd-bulk-row__head button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid #fecaca;border-radius:9px;background:#fef2f2;color:#dc2626;cursor:pointer;transition:var(--transition)}.sd-bulk-row__head button:disabled{cursor:not-allowed;opacity:.45}.sd-bulk-row__head button:hover:not(:disabled){background:#fee2e2;transform:translateY(-1px)}.sd-add-row-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border:1.5px dashed #a5b4fc;border-radius:11px;background:#eef2ff;color:#4f46e5;font-size:13px;font-weight:900;cursor:pointer;transition:var(--transition)}.sd-add-row-btn:hover{border-color:#4f46e5;background:#e0e7ff;transform:translateY(-1px)}.sd-profile-modal{position:relative;width:min(680px,100%);max-height:min(92vh,760px);overflow:hidden auto;border:1px solid rgba(255,255,255,.7);border-radius:18px;background:#fff;box-shadow:0 28px 80px #0f172a47;animation:sd-modal-pop .42s cubic-bezier(.16,1,.3,1) both}.sd-details-modal{position:relative;width:min(980px,100%);max-height:min(92vh,820px);overflow:hidden auto;border:1px solid rgba(255,255,255,.75);border-radius:18px;background:#fff;box-shadow:0 28px 80px #0f172a47;animation:sd-modal-pop .42s cubic-bezier(.16,1,.3,1) both}.sd-details-header{position:sticky;top:0;z-index:2;background:linear-gradient(135deg,#eef2ff,#ecfeff 55%,#f8fafc);border-bottom:1px solid #e2e8f0}.sd-details-body{display:grid;gap:14px;padding:20px 24px 24px}.sd-details-section{display:grid;gap:12px;border:1px solid #e2e8f0;border-radius:14px;padding:16px;background:#f8fafc}.sd-details-section h4{margin:0;color:var(--text-heading);font-size:14px;font-weight:900}.sd-details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sd-details-wide{grid-column:1 / -1}.sd-declaration-check{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:flex-start;color:var(--text-body);font-size:13px;font-weight:700;line-height:1.55}.sd-declaration-check input{width:18px;height:18px;margin-top:2px;accent-color:#4f46e5}.sd-profile-hero{position:relative;display:flex;align-items:center;gap:16px;padding:28px;background:linear-gradient(135deg,#eef2ff,#ecfeff 48%,#fdf2f8);border-bottom:1px solid #e2e8f0}.sd-profile-close{position:absolute;top:18px;right:18px}.sd-profile-avatar{display:inline-flex;align-items:center;justify-content:center;width:72px;height:96px;border-radius:16px;background:linear-gradient(135deg,#06b6d4,#4f46e5 54%,#db2777);color:#fff;font-size:20px;font-weight:900;box-shadow:0 16px 30px #4f46e540;flex-shrink:0;overflow:hidden}.sd-profile-avatar img{width:100%;height:100%;object-fit:cover}.sd-profile-hero span{display:block;margin-bottom:4px;color:#4f46e5;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.sd-profile-hero h3,.sd-profile-hero p{margin:0}.sd-profile-hero h3{color:var(--text-heading);font-size:24px;font-weight:900}.sd-profile-hero p{margin-top:4px;color:var(--text-muted);font-size:13px;font-weight:800}.sd-profile-body{position:relative;display:grid;gap:16px;padding:22px}.sd-profile-actions{display:flex;justify-content:flex-end;gap:10px}.sd-profile-delete-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:1.5px solid #fecaca;border-radius:11px;padding:10px 16px;background:#fef2f2;color:#dc2626;font-size:13.5px;font-weight:850;cursor:pointer;transition:var(--transition)}.sd-profile-delete-btn:hover{background:#fee2e2;border-color:#fca5a5;transform:translateY(-2px)}.sd-profile-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.sd-profile-summary div,.sd-profile-field,.sd-profile-note{border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc}.sd-profile-summary div{display:grid;gap:4px;padding:14px}.sd-profile-summary span,.sd-profile-field span{color:var(--text-muted);font-size:11.5px;font-weight:850;text-transform:uppercase}.sd-profile-summary strong,.sd-profile-field strong{color:var(--text-heading);font-size:14px;font-weight:900;overflow-wrap:anywhere}.sd-profile-summary input,.sd-profile-summary select,.sd-profile-field input,.sd-profile-field select{width:100%;min-height:36px;border:1.5px solid var(--border-color);border-radius:9px;background:#fff;color:var(--text-heading);font:inherit;font-size:13px;font-weight:750;outline:none;padding:8px 10px;transition:var(--transition)}.sd-profile-summary input:focus,.sd-profile-summary select:focus,.sd-profile-field input:focus,.sd-profile-field select:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51f}.sd-profile-edit-names{display:grid;grid-template-columns:1fr 1fr;gap:12px;border:1px solid #dbeafe;border-radius:14px;padding:14px;background:#f8fafc}.sd-photo-upload-card{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;border:1px solid #dbeafe;border-radius:14px;padding:14px;background:linear-gradient(135deg,#f8fafc,#eff6ff)}.sd-photo-preview{display:inline-flex;align-items:center;justify-content:center;width:90px;height:120px;border-radius:12px;border:2px dashed #a5b4fc;background:#fff;color:#4f46e5;font-size:16px;font-weight:900;overflow:hidden}.sd-photo-preview img{width:100%;height:100%;object-fit:cover}.sd-photo-upload-card strong,.sd-photo-upload-card span{display:block}.sd-photo-upload-card strong{color:var(--text-heading);font-size:14px;font-weight:900}.sd-photo-upload-card span{margin:4px 0 10px;color:var(--text-muted);font-size:12.5px;font-weight:700}.sd-photo-upload-btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;border-radius:9px;padding:8px 12px;background:var(--gradient-brand);color:#fff;font-size:12.5px;font-weight:900;cursor:pointer;box-shadow:0 8px 18px #4f46e538}.sd-photo-upload-btn input{display:none}.sd-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sd-profile-field{display:flex;align-items:flex-start;gap:12px;padding:14px}.sd-profile-field svg,.sd-profile-note svg{color:#4f46e5;flex-shrink:0;margin-top:2px}.sd-profile-field div{display:grid;gap:4px;min-width:0}.sd-profile-note{display:flex;align-items:center;gap:10px;padding:13px 14px;color:var(--text-muted);font-size:13px;font-weight:700}@keyframes sd-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes sd-modal-pop{0%{opacity:0;transform:translateY(22px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes sd-rainbow-flow{0%{background-position:0% 50%}to{background-position:220% 50%}}@keyframes sd-glow-float{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(18px,14px,0) scale(1.08)}}@keyframes sd-bulk-row-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.sd-tabs{display:flex;align-items:center;gap:12px;border-bottom:2px solid var(--border-color);padding:0 4px;margin-bottom:4px}.sd-tab-btn{display:inline-flex;align-items:center;gap:8px;background:transparent;border:none;border-bottom:3px solid transparent;color:var(--text-muted);padding:12px 18px;font-size:14.5px;font-weight:800;cursor:pointer;transition:all .22s ease;margin-bottom:-2px}.sd-tab-btn svg{color:var(--text-light);transition:color .22s ease}.sd-tab-btn:hover{color:var(--primary)}.sd-tab-btn:hover svg{color:var(--primary)}.sd-tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.sd-tab-btn.active svg{color:var(--primary)}@media(max-width:640px){.sd-tabs{flex-wrap:wrap;gap:4px;border-bottom:none}.sd-tab-btn{width:100%;justify-content:flex-start;border-bottom:none;border-left:3px solid transparent;padding:10px 14px;margin-bottom:0}.sd-tab-btn.active{border-left-color:var(--primary);background:var(--primary-light)}.sd-page-header{align-items:stretch;flex-direction:column}.sd-register-btn{width:100%}.sd-header-actions{display:grid;grid-template-columns:1fr;width:100%}.sd-toolbar{flex-direction:column;align-items:stretch}.sd-search-box{min-width:0}.sd-register-overlay{padding:12px}.sd-register-header,.sd-register-form{padding-left:18px;padding-right:18px}.sd-form-grid,.sd-form-grid--three,.sd-id-input-row{grid-template-columns:1fr}.sd-details-body{padding:16px}.sd-details-grid{grid-template-columns:1fr}.sd-csv-actions,.sd-register-actions{display:grid;grid-template-columns:1fr}.sd-message-item{align-items:stretch;flex-direction:column}.sd-message-actions{display:grid;grid-template-columns:1fr 1fr}.sd-profile-hero{align-items:flex-start;flex-direction:column;padding-right:68px}.sd-profile-summary,.sd-profile-grid,.sd-profile-edit-names,.sd-photo-upload-card{grid-template-columns:1fr}.sd-profile-actions{display:grid;grid-template-columns:1fr}}.notif-container{display:flex;flex-direction:column;gap:20px;animation:notifFadeIn .4s ease-out}@keyframes notifFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.notif-header-actions{display:flex;gap:12px;align-items:center;margin-top:5px}.notif-compose{display:grid;gap:12px;padding:16px;margin:14px 0;border:1px solid var(--border-color, rgba(255, 255, 255, .1));border-radius:8px;background:var(--bg-card, rgba(255, 255, 255, .03))}.notif-compose-title{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--text-normal)}.notif-compose-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.notif-compose label{display:grid;gap:6px}.notif-compose span{color:var(--text-muted);font-size:11px;font-weight:900;text-transform:uppercase}.notif-compose input,.notif-compose select,.notif-compose textarea{width:100%;min-height:40px;border:1px solid var(--border-color, rgba(255, 255, 255, .1));border-radius:8px;padding:9px 11px;background:var(--bg-input, rgba(255, 255, 255, .04));color:var(--text-normal);font:inherit}.notif-compose textarea{resize:vertical}.notif-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.notif-btn:disabled{opacity:.6;cursor:not-allowed}.notif-btn-primary{background:var(--primary);color:#fff}.notif-btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px)}.notif-btn-secondary{background:#ffffff0d;border-color:#ffffff1a;color:var(--text-normal)}.notif-btn-secondary:hover{background:#ffffff1a;color:var(--text-normal);transform:translateY(-1px)}.notif-btn-danger{background:#ef44441a;border-color:#ef444433;color:#ef4444}.notif-btn-danger:hover{background:#ef444433;transform:translateY(-1px)}.notif-tabs{display:flex;gap:8px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:2px}.notif-tab{background:none;border:none;padding:10px 18px;color:var(--text-muted);font-weight:600;font-size:.95rem;cursor:pointer;position:relative;transition:color .2s ease}.notif-tab:hover{color:var(--text-normal)}.notif-tab.active{color:var(--primary)}.notif-tab.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--primary);border-radius:2px}.notif-badge{background:var(--primary);color:#fff;font-size:.75rem;font-weight:700;padding:2px 7px;border-radius:10px;margin-left:6px}.notif-list{display:flex;flex-direction:column;gap:12px}.notif-item{display:flex;align-items:flex-start;gap:16px;padding:16px 20px;border-radius:12px;background:#ffffff05;border:1px solid rgba(255,255,255,.05);transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.notif-item:hover{transform:translateY(-2px);background:#ffffff0a;border-color:#ffffff1a;box-shadow:0 4px 20px #00000026}.notif-item.unread{background:rgba(var(--primary-rgb, 99, 102, 241),.04);border-color:rgba(var(--primary-rgb, 99, 102, 241),.15)}.notif-item.unread:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--primary)}.notif-icon-wrap{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:10px;flex-shrink:0}.notif-icon-info{background:#3b82f61a;color:#3b82f6}.notif-icon-grade{background:#10b9811a;color:#10b981}.notif-icon-attendance{background:#f59e0b1a;color:#f59e0b}.notif-icon-finance{background:#8b5cf61a;color:#8b5cf6}.notif-icon-schedule{background:#ec48991a;color:#ec4899}.notif-icon-warning{background:#ef44441a;color:#ef4444}.notif-content{flex-grow:1;display:flex;flex-direction:column;gap:4px}.notif-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.notif-item-title{font-size:1rem;font-weight:700;color:var(--text-normal);margin:0}.notif-item-message{font-size:.9rem;color:var(--text-muted);line-height:1.45;margin:0}.notif-item-time{font-size:.8rem;color:var(--text-muted);margin-top:4px}.notif-actions{display:flex;align-items:center;gap:8px;align-self:center}.notif-action-btn{background:none;border:none;padding:6px;border-radius:6px;cursor:pointer;color:var(--text-muted);transition:all .15s ease;display:flex;align-items:center;justify-content:center}.notif-action-btn:hover{background:#ffffff14;color:var(--text-normal)}.notif-action-btn-danger:hover{background:#ef444426;color:#ef4444}.notif-clickable{cursor:pointer}.notif-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 40px;text-align:center;background:#ffffff03;border:1px dashed rgba(255,255,255,.08);border-radius:16px;color:var(--text-muted);gap:16px}.notif-empty-icon{opacity:.4;color:var(--text-muted)}.notif-empty h3{font-size:1.2rem;font-weight:700;color:var(--text-normal);margin:0}.notif-empty p{font-size:.95rem;max-width:320px;margin:0}body.light-mode .notif-btn-secondary{background:#00000008;border-color:#00000014}body.light-mode .notif-btn-secondary:hover{background:#0000000f}body.light-mode .notif-tabs{border-bottom-color:#00000014}body.light-mode .notif-item{background:var(--bg-card);border-color:var(--border-color);box-shadow:var(--shadow-sm)}body.light-mode .notif-item:hover{background:var(--bg-card);border-color:color-mix(in srgb,var(--primary) 20%,var(--border-color));box-shadow:var(--shadow-md)}body.light-mode .notif-item.unread{background:color-mix(in srgb,var(--primary) 3%,var(--bg-card));border-color:color-mix(in srgb,var(--primary) 20%,var(--border-color))}body.light-mode .notif-action-btn:hover{background:#0000000d}body.light-mode .notif-empty{background:#00000001;border-color:#00000014}@media(max-width:1100px){.notif-compose-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.notif-header-actions,.notif-tabs,.notif-item{flex-wrap:wrap}.notif-compose-grid{grid-template-columns:1fr}}.cd-page{display:flex;flex-direction:column;gap:24px;animation:slideUpFade .45s cubic-bezier(.16,1,.3,1) forwards}.cd-alert{display:flex;align-items:center;gap:12px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:14px;padding:14px 20px;color:#166534;font-size:14px;font-weight:600;box-shadow:var(--shadow-sm);animation:slideDownFade .35s ease forwards}.cd-alert--error{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.cd-filter-dropdown{padding:10px 16px;font-size:13.5px;font-weight:700;color:var(--text-body);border:1.5px solid var(--border-color);border-radius:12px;background-color:#fff;cursor:pointer;outline:none;transition:var(--transition)}.cd-filter-dropdown:hover,.cd-filter-dropdown:focus{border-color:var(--primary);box-shadow:0 0 0 4px #4f46e51f}.cd-code-badge{display:inline-block;background:var(--primary-light);color:var(--primary);font-size:11.5px;font-weight:800;padding:4px 8px;border-radius:6px}.cd-faculty-badge{display:inline-block;background:#f1f5f9;color:#475569;font-size:11px;font-weight:800;padding:4px 8px;border-radius:6px}.cd-head-cell{display:flex;align-items:center;gap:10px;color:var(--text-body)}.cd-avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--gradient-brand);color:#fff;font-size:11px;font-weight:800;letter-spacing:.3px;box-shadow:0 2px 8px #4f46e533}.cd-empty{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:54px 24px;border:2px dashed var(--border-color);border-radius:18px;color:var(--text-muted);background:#fafbfc}.cd-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:14px;background:var(--primary-light);color:var(--primary);margin-bottom:8px;box-shadow:var(--shadow-sm)}.cd-empty strong{color:var(--text-heading);font-size:16px;font-weight:800}.cd-empty span{font-size:13.5px}.cd-message-box{border:1px solid #fecaca;border-radius:14px;background:#fff7f7;box-shadow:var(--shadow-sm);overflow:hidden}.cd-message-box__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid #fee2e2;background:#fff}.cd-message-box__eyebrow{display:block;margin-bottom:4px;color:#ef4444;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.cd-message-box__header h3{margin:0;color:var(--text-heading);font-size:16px;font-weight:900}.cd-message-box__count{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;border-radius:999px;background:#fee2e2;color:#b91c1c;font-size:13px;font-weight:900}.cd-message-box__list{display:grid;gap:10px;padding:12px}.cd-message-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px;border:1px solid #fee2e2;border-radius:10px;background:#fff}.cd-message-item__main{display:flex;align-items:center;gap:12px;min-width:0}.cd-message-item__main div{display:grid;gap:3px;min-width:0}.cd-message-item__main strong{color:var(--text-heading);font-size:13.5px;font-weight:800;overflow-wrap:anywhere}.cd-message-item__main span:last-child{color:var(--text-muted);font-size:12px;font-weight:700;overflow-wrap:anywhere}.cd-message-item__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.cd-trash-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;border:none;border-radius:8px;padding:8px 12px;color:#fff;font-size:12px;font-weight:900;cursor:pointer;transition:var(--transition);white-space:nowrap}.cd-trash-action--restore{background:var(--gradient-brand);box-shadow:0 4px 12px #4f46e533}.cd-trash-action--delete{background:linear-gradient(135deg,#f87171,#ef4444);box-shadow:0 4px 12px #ef444433}.cd-trash-action:hover{transform:translateY(-1px)}@media(max-width:700px){.cd-message-item{align-items:stretch;flex-direction:column}.cd-message-item__actions{display:grid;grid-template-columns:1fr 1fr}}@keyframes slideDownFade{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.row-actions button.cd-action-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:32px!important;height:32px!important;border-radius:8px!important;border:none!important;cursor:pointer!important;padding:0!important;transition:all .3s cubic-bezier(.4,0,.2,1)!important}.row-actions button.cd-action-btn--edit{background:linear-gradient(135deg,#fbbf24,#f59e0b,#d97706)!important;box-shadow:0 4px 10px #f59e0b4d!important;color:#fff!important}.row-actions button.cd-action-btn--edit svg{color:#fff!important;stroke:#fff!important;fill:none!important}.row-actions button.cd-action-btn--edit:hover{transform:translateY(-2px) scale(1.1)!important;box-shadow:0 6px 16px #f59e0b80!important;animation:cd-pulse-yellow 1.5s infinite!important}.row-actions button.cd-action-btn--delete,.row-actions button.cd-action-btn--delete:last-child{background:linear-gradient(135deg,#f87171,#ef4444,#b91c1c)!important;box-shadow:0 4px 10px #ef44444d!important;color:#fff!important}.row-actions button.cd-action-btn--delete svg,.row-actions button.cd-action-btn--delete:last-child svg{color:#fff!important;stroke:#fff!important;fill:none!important}.row-actions button.cd-action-btn--delete:hover,.row-actions button.cd-action-btn--delete:last-child:hover{transform:translateY(-2px) scale(1.1)!important;box-shadow:0 6px 16px #ef444480!important;animation:cd-pulse-red 1.5s infinite!important}@keyframes cd-pulse-yellow{0%{box-shadow:0 0 #f59e0b99}70%{box-shadow:0 0 0 8px #f59e0b00}to{box-shadow:0 0 #f59e0b00}}@keyframes cd-pulse-red{0%{box-shadow:0 0 #ef444499}70%{box-shadow:0 0 0 8px #ef444400}to{box-shadow:0 0 #ef444400}}.cd-delete-modal{max-width:480px!important;animation:modalEnter .35s cubic-bezier(.34,1.56,.64,1) forwards}.cd-delete-icon-wrapper{margin:0 auto 20px;display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:#fee2e2;color:#ef4444;box-shadow:0 4px 12px #ef444426;animation:pulseWarning 2s infinite}@keyframes pulseWarning{0%{transform:scale(1);box-shadow:0 0 #ef444466}70%{transform:scale(1.05);box-shadow:0 0 0 10px #ef444400}to{transform:scale(1);box-shadow:0 0 #ef444400}}.btn-get-back{background:var(--gradient-brand)!important;color:#fff!important;border:none!important;border-radius:11px!important;font-size:13.5px!important;font-weight:800!important;padding:12px 20px!important;cursor:pointer!important;box-shadow:0 4px 16px #4f46e540!important;transition:var(--transition)!important}.btn-get-back:hover{transform:translateY(-2px) scale(1.02)!important;box-shadow:0 6px 20px #4f46e559!important}.btn-delete-perm{background:linear-gradient(135deg,#f87171,#ef4444)!important;color:#fff!important;border:none!important;border-radius:11px!important;font-size:13.5px!important;font-weight:800!important;padding:12px 20px!important;cursor:pointer!important;box-shadow:0 4px 16px #ef444440!important;transition:var(--transition)!important}.btn-delete-perm:hover{transform:translateY(-2px) scale(1.02)!important;box-shadow:0 6px 20px #ef444459!important}.prof-page{display:flex;flex-direction:column;gap:18px}.prof-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.prof-header h2{color:var(--text-heading);font-size:22px;font-weight:800;margin:0 0 4px}.prof-header p{color:var(--text-muted);font-size:14px;margin:0}.prof-add-btn,.prof-submit-btn{display:inline-flex;align-items:center;gap:8px;background:var(--gradient-brand);border:0;border-radius:12px;color:#fff;cursor:pointer;font-weight:800;padding:11px 16px;box-shadow:0 8px 20px #4f46e53d}.prof-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.prof-summary-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;box-shadow:var(--shadow-sm);padding:16px}.prof-summary-card span{color:var(--text-muted);display:block;font-size:12px;font-weight:800;text-transform:uppercase}.prof-summary-card strong{color:var(--text-heading);display:block;font-size:26px;font-weight:800;margin-top:6px}.prof-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:18px;box-shadow:var(--shadow-sm);overflow:hidden}.prof-toolbar{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--border-color);flex-wrap:wrap}.prof-search{flex:1;min-width:220px;position:relative}.prof-search svg{color:var(--text-muted);left:14px;position:absolute;top:50%;transform:translateY(-50%)}.prof-search input{background:#f8fafc;border:1.5px solid var(--border-color);border-radius:12px;color:var(--text-heading);outline:none;padding:11px 14px 11px 40px;width:100%}.prof-filter-row{display:flex;gap:6px;flex-wrap:wrap}.prof-filter-row button{background:transparent;border:1.5px solid var(--border-color);border-radius:10px;color:var(--text-muted);cursor:pointer;font-size:13px;font-weight:800;padding:8px 12px;text-transform:capitalize}.prof-filter-row button.active{background:var(--primary);border-color:var(--primary);color:#fff}.prof-table-wrap{overflow-x:auto}.prof-table{border-collapse:collapse;min-width:900px;width:100%}.prof-table th,.prof-table td{border-bottom:1px solid #eef2f7;padding:14px 18px;text-align:left;vertical-align:middle}.prof-table th{background:#f8fafc;color:#94a3b8;font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}.prof-person{display:flex;align-items:center;gap:12px}.prof-avatar{align-items:center;background:#eef2ff;border-radius:50%;color:var(--primary);display:flex;flex-shrink:0;font-size:14px;font-weight:800;height:40px;justify-content:center;object-fit:cover;width:40px}.prof-person strong,.prof-table strong{color:var(--text-heading);display:block;font-size:14px}.prof-person small,.prof-table small{color:var(--text-muted);display:block;font-size:12px;margin-top:3px}.prof-actions{display:flex;justify-content:flex-end;gap:8px}.prof-icon-btn{align-items:center;border:0;border-radius:9px;cursor:pointer;display:inline-flex;height:34px;justify-content:center;width:34px}.prof-icon-btn--edit{background:#eef2ff;color:var(--primary)}.prof-icon-btn--delete{background:#fff1f2;color:#e11d48}.prof-footer{background:#f8fafc;border-top:1px solid var(--border-color);color:var(--text-muted);font-size:13px;font-weight:700;padding:13px 20px}.prof-empty{color:var(--text-muted);padding:44px 18px!important;text-align:center!important}.prof-form-grid{display:grid;grid-template-columns:152px minmax(0,1fr);gap:26px;align-items:start}.prof-modal{max-height:min(92vh,900px);max-width:820px;overflow:hidden}.prof-modal .modal-header{padding:22px 28px}.prof-modal .modal-header h3{font-size:21px}.prof-modal .modal-form{gap:18px;max-height:calc(92vh - 88px);overflow-y:auto;padding:26px 28px 28px}.prof-photo-col{align-items:center;align-self:stretch;background:#f8fafc;border:1px solid var(--border-color);border-radius:14px;display:flex;flex-direction:column;gap:12px;justify-content:flex-start;padding:16px 12px}.prof-photo-box{align-items:center;background:#fff;border:2px dashed var(--border-color);border-radius:13px;display:flex;height:160px;justify-content:center;overflow:hidden;width:120px}.prof-photo-box img{height:100%;object-fit:cover;width:100%}.prof-photo-box span{color:var(--text-muted);font-size:12px;font-weight:800;text-align:center}.prof-upload-btn,.prof-remove-btn{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;color:var(--text-heading);cursor:pointer;font-size:13px;font-weight:800;padding:8px 13px;text-align:center;width:100%}.prof-upload-btn input{display:none}.prof-remove-btn{border-color:#fecaca;color:#b91c1c}.prof-fields{display:flex;flex-direction:column;gap:18px;min-width:0}.prof-field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.prof-modal .input-group{min-width:0}.prof-modal .input-group label{color:var(--text-heading);font-size:13px;font-weight:800;margin-bottom:7px}.prof-modal .input-group input,.prof-modal .input-group select{background:#f8fafc;border:1px solid #dbe4ef;border-radius:12px;box-shadow:none;color:var(--text-heading);font-size:14px;height:46px;min-height:46px;padding:10px 13px;width:100%}.prof-modal .input-group input:focus,.prof-modal .input-group select:focus{background:#fff;border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51f}.prof-modal .modal-actions{align-items:center;gap:12px;margin-top:4px;padding-top:20px}.prof-modal .modal-actions button{min-height:44px}.prof-modal .btn-secondary{min-width:118px}.prof-modal .prof-submit-btn{justify-content:center;min-width:190px}.prof-status-active{background:#d1fae5;color:#065f46}.prof-status-on_leave{background:#fef3c7;color:#92400e}.prof-status-inactive{background:#f1f5f9;color:#64748b}.prof-status-retired{background:#ede9fe;color:#6d28d9}@media(max-width:640px){.prof-header,.prof-toolbar{align-items:stretch;flex-direction:column}.prof-form-grid,.prof-field-row{grid-template-columns:1fr}.prof-modal .modal-header,.prof-modal .modal-form{padding-left:18px;padding-right:18px}}.prof-tabs{display:flex;gap:4px;padding:14px 20px 0;border-bottom:1px solid var(--border-color)}.prof-tab{display:flex;align-items:center;gap:6px;padding:8px 16px;border:none;background:none;border-radius:10px 10px 0 0;font-size:14px;font-weight:600;color:var(--text-muted);cursor:pointer;transition:color .15s,background .15s}.prof-tab em{font-style:normal;font-size:12px;background:var(--bg-soft);color:var(--text-muted);border-radius:20px;padding:1px 7px}.prof-tab:hover{color:var(--primary);background:var(--primary-light)}.prof-tab--active{color:var(--primary);border-bottom:2px solid var(--primary)}.prof-tab--active em{background:var(--primary-light);color:var(--primary)}.prof-tab__trash-count{background:#ef4444;color:#fff;border-radius:20px;padding:1px 7px;font-size:11px;font-style:normal;animation:prof-pop .3s cubic-bezier(.34,1.56,.64,1)}@keyframes prof-pop{0%{transform:scale(0)}to{transform:scale(1)}}.prof-tab--trash.prof-tab--active{color:#ef4444;border-bottom-color:#ef4444}.prof-trash-view{display:flex;flex-direction:column;gap:12px;padding:20px}.prof-trash-card{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--bg-soft);border-radius:12px;border-left:3px solid #ef4444}.prof-trash-avatar{width:44px;height:44px;border-radius:50%;overflow:hidden;background:#fee2e2;display:flex;align-items:center;justify-content:center;font-weight:700;color:#ef4444;flex-shrink:0}.prof-trash-avatar img{width:100%;height:100%;object-fit:cover}.prof-trash-info{flex:1;min-width:0}.prof-trash-info strong{display:block;font-size:14px;color:var(--text-heading)}.prof-trash-info small{display:block;font-size:12px;color:var(--text-muted)}.prof-trash-info span{display:block;font-size:12px;color:var(--text-muted);margin-top:2px}.prof-trash-actions{display:flex;gap:8px;flex-shrink:0}.prof-trash-restore,.prof-trash-permanent{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border:none;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer}.prof-trash-restore{background:linear-gradient(135deg,#4f46e5,#06b6d4);color:#fff}.prof-trash-permanent{background:#fee2e2;color:#ef4444}.prof-trash-permanent:hover{background:#ef4444;color:#fff}.prof-icon-btn--courses{color:var(--primary);background:var(--primary-light)}.prof-icon-btn--courses:hover{background:var(--primary);color:#fff}.prof-assign-modal{width:min(680px,96vw);max-height:85vh;display:flex;flex-direction:column}.prof-assign-body{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:20px}.prof-assign-section h4{font-size:13px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 10px;display:flex;align-items:center;gap:8px}.prof-assign-section h4 em{font-style:normal;font-size:11px;background:var(--primary-light);color:var(--primary);border-radius:20px;padding:1px 8px}.prof-assign-empty{font-size:13px;color:var(--text-muted);margin:0}.prof-assign-term{display:flex;gap:12px;padding:12px 16px;background:var(--bg-soft);border-radius:10px;flex-wrap:wrap}.prof-assign-term label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text-muted)}.prof-assign-term input,.prof-assign-term select{padding:5px 10px;border:1px solid var(--border-color);border-radius:7px;font-size:13px;background:var(--bg-card);color:var(--text-heading);width:120px}.prof-assigned-list{display:flex;flex-direction:column;gap:6px}.prof-assigned-row{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;background:var(--bg-soft);border-radius:9px}.prof-assigned-row div{display:flex;flex-direction:column;gap:1px}.prof-assigned-row strong{font-size:13px;color:var(--text-heading)}.prof-assigned-row span{font-size:13px;color:var(--text-body);margin-left:6px}.prof-assigned-row small{font-size:11px;color:var(--text-muted)}.prof-unassign-btn{border:none;background:#fee2e2;color:#ef4444;border-radius:6px;padding:5px 7px;cursor:pointer;display:flex;align-items:center;flex-shrink:0}.prof-unassign-btn:hover{background:#ef4444;color:#fff}.prof-assign-search{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--border-color);border-radius:9px;background:var(--bg-soft);margin-bottom:10px;color:var(--text-muted)}.prof-assign-search input{flex:1;border:none;background:none;font-size:13px;color:var(--text-heading);outline:none}.prof-course-picker{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto}.prof-course-row{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-radius:9px;cursor:pointer;transition:background .12s}.prof-course-row:hover{background:var(--primary-light)}.prof-course-row:hover .prof-course-add-icon{color:var(--primary)}.prof-course-row div{display:flex;flex-direction:column;gap:1px}.prof-course-row strong{font-size:13px;color:var(--text-heading)}.prof-course-row span{font-size:13px;color:var(--text-body);margin-left:6px}.prof-course-row small{font-size:11px;color:var(--text-muted)}.prof-course-add-icon{color:var(--text-muted);flex-shrink:0;transition:color .12s}.sc-board-container{animation:scFadeIn .5s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;gap:20px}@keyframes scFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.sc-board-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:24px;box-shadow:var(--shadow-lg);overflow:hidden;position:relative;transition:border-color var(--transition),box-shadow var(--transition)}body.dark-mode .sc-board-card{background:#141d32a6;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-color:#ffffff0d}.sc-header{border-bottom:1px solid var(--border-color);background:linear-gradient(180deg,var(--bg-card) 0%,rgba(var(--bg-card),.7) 100%);padding:24px;position:relative;z-index:10}body.dark-mode .sc-header{border-bottom-color:#ffffff0d;background:linear-gradient(180deg,#141d32f2,#141d32b3)}.sc-header-title-area{display:flex;align-items:center;gap:16px}.sc-header-icon-box{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;box-shadow:0 8px 20px #4f46e54d}.sc-header-title-text h2{font-size:1.5rem;font-weight:800;color:var(--text-heading);margin:0;letter-spacing:-.025em}.sc-header-title-text p{font-size:.875rem;color:var(--text-muted);margin:4px 0 0}.sc-toolbar{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px;align-items:center}.sc-filter-select{height:44px;min-width:180px;border-radius:12px;border:1px solid var(--border-color);background:var(--bg-main)!important;color:var(--text-heading)!important;padding:0 36px 0 16px;font-size:.875rem;font-weight:600;cursor:pointer;outline:none;transition:all .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2364748b' stroke-width='2.5'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19.5 8.25l-7.5 7.5-7.5-7.5' /%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:14px}body.dark-mode .sc-filter-select{border-color:#ffffff14;background:#0f172a80!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2394a3b8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2.5' d='M19.5 8.25l-7.5 7.5-7.5-7.5' /%3E%3C/svg%3E")}.sc-filter-select:focus{border-color:var(--primary);box-shadow:0 0 0 4px #4f46e526}.sc-btn{height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 20px;border-radius:12px;font-size:.875rem;font-weight:700;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.sc-btn-primary{background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;box-shadow:0 6px 16px #4f46e540}.sc-btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 20px #4f46e559}.sc-btn-secondary{background:var(--bg-card);border-color:var(--border-color);color:var(--text-heading);box-shadow:var(--shadow-sm)}.sc-btn-secondary:hover{background:var(--bg-main);border-color:var(--primary);color:var(--primary)}body.dark-mode .sc-btn-secondary{background:#1e293b80;border-color:#ffffff14}body.dark-mode .sc-btn-secondary:hover{background:#1e293bcc;border-color:var(--primary);color:#fff}.sc-status-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:14px 24px;background:#00000004;border-bottom:1px solid var(--border-color)}body.dark-mode .sc-status-bar{background:#ffffff01;border-bottom-color:#ffffff0d}.sc-status-pill{font-size:.75rem;font-weight:700;padding:5px 12px;border-radius:9999px;background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-muted)}body.dark-mode .sc-status-pill{background:#1e293b80;border-color:#ffffff0d}.sc-status-pill--active{background:#10b9811a;border-color:#10b98133;color:#10b981}.sc-status-pill--saving{background:#f59e0b1a;border-color:#f59e0b33;color:#f59e0b}.sc-grid-scroll{overflow-x:auto;background:var(--bg-main);padding:20px}.sc-timetable{min-width:1080px;display:flex;flex-direction:column;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}body.dark-mode .sc-timetable{border-color:#ffffff0f}.sc-thead{display:grid;grid-template-columns:160px repeat(5,minmax(180px,1fr));background:#0f172a;color:#f8fafc}.sc-th{padding:16px 12px;text-align:center;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.075em;border-left:1px solid rgba(255,255,255,.08)}.sc-th:first-child{text-align:left;padding-left:20px;border-left:none}.sc-trow{display:grid;grid-template-columns:160px repeat(5,minmax(180px,1fr));border-bottom:1px solid var(--border-color);background:var(--bg-card)}body.dark-mode .sc-trow{border-bottom-color:#ffffff0d;background:#141d3280}.sc-trow:last-child{border-bottom:none}.sc-time-cell{padding:18px 16px;display:flex;flex-direction:column;justify-content:center;gap:8px;border-right:1px solid var(--border-color);background:var(--bg-card)}body.dark-mode .sc-time-cell{border-right-color:#ffffff0d;background:#141d32b3}.sc-time-badge{background:#0f172a;color:#fff;font-family:monospace;font-size:.75rem;font-weight:700;padding:5px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.1);text-align:center}.sc-time-meta{border-radius:8px;border:1px solid var(--border-color);background:var(--bg-main);padding:6px;text-align:center}body.dark-mode .sc-time-meta{border-color:#ffffff0a;background:#0f172a66}.sc-time-meta-start{font-size:.85rem;font-weight:800;color:var(--text-heading)}.sc-time-meta-end{font-size:.7rem;font-weight:700;color:var(--text-muted);margin-top:2px}.sc-drop-cell{display:flex;align-items:center;justify-content:center;border-left:1px solid var(--border-color);padding:12px;transition:background .2s ease,box-shadow .2s ease}body.dark-mode .sc-drop-cell{border-left-color:#ffffff0d}.sc-drop-cell--dragover{background:color-mix(in srgb,var(--primary) 6%,var(--bg-main))!important;box-shadow:inset 0 0 0 2px var(--primary)}.sc-card{width:100%;min-height:110px;border-radius:16px;padding:12px 14px;position:relative;display:flex;flex-direction:column;justify-content:space-between;border:1px solid rgba(255,255,255,.2);transition:transform .2s cubic-bezier(.175,.885,.32,1.275),box-shadow .2s ease,filter .2s ease;cursor:grab}.sc-card:hover{transform:translateY(-2px);filter:brightness(1.05)}.sc-card:active{cursor:grabbing}.sc-card--dragging{transform:scale(1.04) rotate(1.5deg)!important;box-shadow:0 12px 24px #0003!important;cursor:grabbing}.sc-card-delete-btn{position:absolute;top:8px;right:8px;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff3;border:none;color:inherit;cursor:pointer;opacity:0;transition:opacity .15s ease,background .15s ease}.sc-card:hover .sc-card-delete-btn{opacity:1}.sc-card-delete-btn:hover{background:#fff6}.sc-card-top{display:flex;gap:8px;align-items:flex-start}.sc-card-avatar-wrap{width:32px;height:32px;border-radius:10px;overflow:hidden;background:#ffffff40;border:1px solid rgba(255,255,255,.3);flex-shrink:0;display:flex;align-items:center;justify-content:center}.sc-card-avatar{width:100%;height:100%;object-fit:cover}.sc-card-initials{font-size:.65rem;font-weight:800;color:inherit}.sc-card-code{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;opacity:.85}.sc-card-subject{font-size:.825rem;font-weight:800;line-height:1.25;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sc-card-select{height:24px;border-radius:6px;border:1px solid rgba(255,255,255,.3);background:#ffffff26;color:inherit;font-size:.65rem;font-weight:700;padding:0 4px;outline:none;cursor:pointer;margin-top:6px;width:100%}.sc-card-select option{background:var(--bg-card);color:var(--text-heading)}.sc-card-footer{display:flex;align-items:center;justify-content:space-between;font-size:.65rem;font-weight:700;margin-top:8px;gap:6px}.sc-card-room{background:#ffffff26;padding:2px 6px;border-radius:4px;border:1px solid rgba(255,255,255,.25);max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sc-card-prof{text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.sc-empty-slot{width:100%;height:90px;border-radius:14px;border:1.5px dashed var(--border-color);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--text-light);cursor:pointer;transition:all .2s ease}body.dark-mode .sc-empty-slot{border-color:#ffffff14}.sc-empty-slot:hover{border-color:var(--primary);background:rgba(var(--primary-rgb, 79, 70, 229),.02);color:var(--primary)}.sc-empty-slot-read-only{width:100%;height:90px;border-radius:14px;border:1.5px dashed var(--border-color);display:flex;align-items:center;justify-content:center;color:var(--text-light);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;opacity:.5}body.dark-mode .sc-empty-slot-read-only{border-color:#ffffff0f}.sc-hidden-filter-placeholder{width:100%;height:90px;border-radius:14px;border:1.5px dashed var(--border-color);background:#00000003;display:flex;align-items:center;justify-content:center;color:var(--text-light);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;opacity:.6}.sc-card-sky{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;box-shadow:0 4px 14px #0ea5e940}.sc-card-violet{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;box-shadow:0 4px 14px #8b5cf640}.sc-card-emerald{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 14px #10b98140}.sc-card-amber{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 4px 14px #f59e0b40}.sc-card-rose{background:linear-gradient(135deg,#f43f5e,#e11d48);color:#fff;box-shadow:0 4px 14px #f43f5e40}.sc-card-cyan{background:linear-gradient(135deg,#06b6d4,#0891b2);color:#fff;box-shadow:0 4px 14px #06b6d440}.sc-card-indigo{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;box-shadow:0 4px 14px #6366f140}.sc-card-lime{background:linear-gradient(135deg,#84cc16,#65a30d);color:#fff;box-shadow:0 4px 14px #84cc1640}.sc-agenda-view{min-height:600px;background:radial-gradient(circle at 10% 20%,#f8fafc,#f1f5f9 90%);padding:24px;border-radius:20px;border:1px solid var(--border-color)}body.dark-mode .sc-agenda-view{background:radial-gradient(circle at 10% 20%,#0b1329,#141d32 90%);border-color:#ffffff0d}.sc-agenda-card{max-width:800px;margin:0 auto;background:var(--bg-card);border:1px solid var(--border-color);border-radius:24px;box-shadow:var(--shadow-lg);padding:30px}body.dark-mode .sc-agenda-card{background:#141d3299;border-color:#ffffff0d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.sc-agenda-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid var(--border-color);padding-bottom:20px;margin-bottom:24px}body.dark-mode .sc-agenda-header{border-bottom-color:#ffffff0d}.sc-agenda-title h2{font-size:1.75rem;font-weight:900;color:var(--text-heading);margin:0;letter-spacing:-.025em}.sc-agenda-title p{font-size:.875rem;color:var(--text-muted);margin-top:4px;font-weight:500}.sc-view-toggle-group{display:inline-flex;background:var(--bg-main);padding:4px;border-radius:10px;border:1px solid var(--border-color)}body.dark-mode .sc-view-toggle-group{background:#0f172a80;border-color:#ffffff0d}.sc-view-toggle-btn{padding:6px 14px;border-radius:8px;font-size:.75rem;font-weight:800;color:var(--text-muted);background:transparent;border:none;cursor:pointer;transition:all .2s ease}.sc-view-toggle-btn.active{background:var(--primary);color:#fff;box-shadow:0 4px 10px #4f46e540}body.dark-mode .sc-view-toggle-btn.active{background:var(--primary);color:#fff}.sc-next-panel{border-radius:20px;border:1px solid var(--border-color);background:linear-gradient(135deg,#4f46e50a,#7c3aed0a);padding:20px;margin-bottom:24px;display:flex;flex-direction:column;gap:12px}body.dark-mode .sc-next-panel{border-color:#ffffff0d;background:linear-gradient(135deg,#4f46e50f,#7c3aed0f)}.sc-next-label{font-size:.65rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:var(--primary);display:inline-flex;align-items:center;gap:4px}.sc-next-class-title{font-size:1.15rem;font-weight:800;color:var(--text-heading)}.sc-next-meta-row{display:flex;flex-wrap:wrap;gap:12px;font-size:.8rem;font-weight:700;color:var(--text-muted)}.sc-next-meta-item{display:flex;align-items:center;gap:4px}.sc-timeline{position:relative;padding-left:20px}.sc-timeline:before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:2px;background:var(--border-color)}body.dark-mode .sc-timeline:before{background:#ffffff0f}.sc-timeline-day-section{position:relative;margin-bottom:24px}.sc-timeline-day-section:last-child{margin-bottom:0}.sc-timeline-day-node{position:absolute;left:-20px;top:4px;width:14px;height:14px;border-radius:50%;background:var(--bg-card);border:3px solid var(--primary);z-index:2;box-shadow:0 0 0 4px var(--bg-card)}body.dark-mode .sc-timeline-day-node{background:#141d32;box-shadow:0 0 0 4px #141d32}.sc-timeline-day-label{font-size:.875rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--text-heading);margin:0 0 12px 10px}.sc-timeline-cards-list{display:flex;flex-direction:column;gap:10px;margin-left:10px}.sc-timeline-item{display:grid;grid-template-columns:110px 80px 1fr;align-items:center;gap:16px;padding:16px 20px;border-radius:16px;border:1px solid var(--border-color);background:var(--bg-card);transition:all .2s ease}body.dark-mode .sc-timeline-item{border-color:#ffffff0a;background:#ffffff03}.sc-timeline-item:hover{transform:translate(4px);border-color:var(--primary);box-shadow:var(--shadow-sm)}.sc-timeline-time{font-family:monospace;font-size:.8rem;font-weight:800;color:var(--text-muted)}.sc-timeline-room{font-size:.8rem;font-weight:800;color:var(--primary);background:var(--primary-light);padding:4px 10px;border-radius:6px;text-align:center;white-space:nowrap}body.dark-mode .sc-timeline-room{background:#4f46e526}.sc-timeline-details{min-width:0;display:flex;justify-content:space-between;align-items:center;gap:12px}.sc-timeline-subject-info{min-width:0}.sc-timeline-subject{font-size:.95rem;font-weight:800;color:var(--text-heading);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sc-timeline-meta{display:flex;gap:10px;font-size:.725rem;font-weight:700;color:var(--text-muted);margin-top:4px}.sc-status-indicator{font-size:.65rem;font-weight:900;text-transform:uppercase;padding:3px 8px;border-radius:6px}.sc-status--now{background:#10b9811a;color:#10b981;border:1px solid rgba(16,185,129,.2)}.sc-status--upcoming{background:#3b82f61a;color:#3b82f6;border:1px solid rgba(59,130,246,.2)}.sc-status--finished{background:var(--bg-main);color:var(--text-light);border:1px solid var(--border-color)}body.dark-mode .sc-status--finished{background:#ffffff05;border-color:#ffffff0a}@media(max-width:768px){.sc-timeline-item{grid-template-columns:1fr;align-items:flex-start;gap:8px}.sc-timeline-details{width:100%;flex-direction:column;align-items:flex-start;gap:8px}}.sc-weekly-scroll{overflow-x:auto;margin-top:10px;border-radius:16px;border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}body.dark-mode .sc-weekly-scroll{border-color:#ffffff0d}.sc-weekly-grid{min-width:900px;display:flex;flex-direction:column;background:var(--bg-card)}body.dark-mode .sc-weekly-grid{background:#141d3266}.sc-weekly-header{display:grid;grid-template-columns:120px repeat(5,1fr);background:#0f172a;color:#f8fafc}.sc-weekly-header-cell{padding:14px 10px;text-align:center;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border-left:1px solid rgba(255,255,255,.08)}.sc-weekly-header-cell:first-child{text-align:left;padding-left:16px;border-left:none}.sc-weekly-row{display:grid;grid-template-columns:120px repeat(5,1fr);border-bottom:1px solid var(--border-color)}body.dark-mode .sc-weekly-row{border-bottom-color:#ffffff0d}.sc-weekly-row:last-child{border-bottom:none}.sc-weekly-time-cell{padding:16px;background:#00000004;border-right:1px solid var(--border-color);display:flex;align-items:center;justify-content:center}body.dark-mode .sc-weekly-time-cell{background:#ffffff03;border-right-color:#ffffff0d}.sc-weekly-time-text{font-family:monospace;font-size:.725rem;font-weight:700;color:var(--text-muted);text-align:center}.sc-weekly-grid-cell{padding:10px;border-left:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;min-height:110px}body.dark-mode .sc-weekly-grid-cell{border-left-color:#ffffff0d}.sc-weekly-card{width:100%;height:100%;min-height:85px;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid rgba(255,255,255,.15);box-shadow:var(--shadow-sm);transition:all .2s ease}.sc-weekly-card:hover{transform:translateY(-1px) scale(1.02);box-shadow:var(--shadow-md);filter:brightness(1.05)}.sc-weekly-card-code{font-size:.65rem;font-weight:800;text-transform:uppercase;opacity:.85}.sc-weekly-card-subject{font-size:.75rem;font-weight:800;line-height:1.25;margin-top:1px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sc-weekly-card-footer{display:flex;justify-content:space-between;align-items:center;font-size:.6rem;font-weight:700;margin-top:6px;opacity:.9}.sc-weekly-card-room{background:#ffffff2e;padding:1px 4px;border-radius:3px;border:1px solid rgba(255,255,255,.2)}.sc-weekly-card-prof{text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:80px}.sc-weekly-empty-cell{font-size:.65rem;font-weight:700;text-transform:uppercase;color:var(--text-light);letter-spacing:.05em;opacity:.35}.srb-header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.srb-header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.srb-btn-outline{height:38px;display:inline-flex;align-items:center;gap:6px;padding:0 16px;border-radius:10px;font-size:.8rem;font-weight:700;cursor:pointer;transition:all .2s ease;background:var(--bg-card);border:1.5px solid var(--border-color);color:var(--text-heading)}.srb-btn-outline:hover{border-color:var(--primary);color:var(--primary);background:var(--bg-main)}body.dark-mode .srb-btn-outline{background:#1e293b80;border-color:#ffffff14;color:var(--text-muted)}body.dark-mode .srb-btn-outline:hover{border-color:var(--primary);color:#fff}.srb-btn-release{height:38px;display:inline-flex;align-items:center;gap:6px;padding:0 18px;border-radius:10px;font-size:.8rem;font-weight:700;cursor:pointer;border:none;transition:all .2s ease;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;box-shadow:0 4px 12px #4f46e547}.srb-btn-release:hover{transform:translateY(-1px);box-shadow:0 6px 16px #4f46e561}.srb-pill-error{background:#ef44441a;border-color:#ef444433!important;color:#ef4444!important}.srb-toast{position:absolute;top:12px;right:16px;z-index:9999;padding:10px 18px;border-radius:10px;font-size:.8rem;font-weight:700;pointer-events:none;animation:srbToastIn .25s ease;box-shadow:0 4px 14px #0000001f}@keyframes srbToastIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.srb-toast--success{background:#10b9811f;border:1px solid rgba(16,185,129,.25);color:#059669}.srb-toast--error{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:#ef4444}.srb-alert-error{margin:0 24px 16px;padding:12px 16px;border-radius:10px;font-size:.8rem;font-weight:600;background:#ef444414;border:1px solid rgba(239,68,68,.2);color:#ef4444}.srb-badge-count{display:inline-block;margin-top:6px;padding:3px 10px;border-radius:99px;font-size:.7rem;font-weight:700;background:var(--primary-light, rgba(79,70,229,.08));color:var(--primary);border:1px solid rgba(79,70,229,.15)}.srb-table-wrap{overflow-x:auto;padding:20px;background:var(--bg-main)}.srb-table{width:100%;min-width:860px;border-collapse:separate;border-spacing:0;border-radius:14px;overflow:hidden;border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}body.dark-mode .srb-table{border-color:#ffffff0f}.srb-th{background:#0f172a;color:#f8fafc;padding:14px 12px;text-align:center;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;border-left:1px solid rgba(255,255,255,.08);position:sticky;top:0;z-index:2;white-space:nowrap}.srb-th:first-child{border-left:none;text-align:left;padding-left:16px}.srb-th-time{width:140px;min-width:120px}.srb-th-today{background:#1e3a5f;color:#93c5fd;position:relative}.srb-today-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#60a5fa;margin-left:5px;vertical-align:middle;box-shadow:0 0 6px #60a5fab3}.srb-td{padding:10px;vertical-align:top;border-top:1px solid var(--border-color);border-left:1px solid var(--border-color);background:var(--bg-card);min-width:150px;min-height:80px;transition:background .15s ease}body.dark-mode .srb-td{border-color:#ffffff0d;background:#141d3266}.srb-td:first-child{border-left:none}.srb-td-time{padding:10px 12px;vertical-align:middle;border-top:1px solid var(--border-color);background:#00000004;width:140px;min-width:120px}body.dark-mode .srb-td-time{border-color:#ffffff0d;background:#ffffff03}.srb-td-today{background:#dbeafe40}body.dark-mode .srb-td-today{background:#1e3a8a1f}.srb-td-empty{background:transparent}.srb-cell-inner{display:flex;flex-direction:column;gap:6px;width:100%;height:100%}.srb-add-btn{width:100%;min-height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1.5px dashed var(--border-color);border-radius:10px;background:transparent;color:var(--text-light);font-size:.72rem;font-weight:600;cursor:pointer;transition:all .2s ease;padding:10px 8px}.srb-add-btn:hover{border-color:var(--primary);color:var(--primary);background:#4f46e50a}body.dark-mode .srb-add-btn{border-color:#ffffff14;color:#fff3}body.dark-mode .srb-add-btn:hover{border-color:var(--primary);color:#a5b4fc;background:#4f46e514}.srb-add-btn--small{min-height:26px;flex-direction:row;padding:4px 8px;font-size:0;border-radius:7px;opacity:.5}.srb-add-btn--small:hover{opacity:1;border-color:var(--primary);color:var(--primary);background:#4f46e50a}.srb-card{position:relative;border-radius:10px;padding:9px 10px 8px;min-height:72px;display:flex;flex-direction:column;gap:3px;border:1px solid rgba(255,255,255,.18);box-shadow:0 2px 8px #0000001a;transition:transform .18s ease,box-shadow .18s ease;overflow:hidden}.srb-card:hover{transform:translateY(-1px);box-shadow:0 4px 14px #0000002e}.srb-card-actions{position:absolute;top:5px;right:5px;display:flex;gap:3px;opacity:.55;transition:opacity .15s ease}.srb-card:hover .srb-card-actions{opacity:1}.srb-card-act{width:22px;height:22px;border-radius:5px;border:none;background:#ffffff38;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease}.srb-card-act:hover{background:#ffffff61}.srb-card-act-del:hover{background:#ef44448c}.srb-card-code{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#ffffffd9;padding-right:46px}.srb-card-subject{font-size:.78rem;font-weight:800;color:#fff;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.srb-card-meta{display:flex;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap}.srb-card-room{display:inline-flex;align-items:center;gap:2px;font-size:.62rem;font-weight:700;background:#ffffff2e;border:1px solid rgba(255,255,255,.22);border-radius:4px;padding:1px 5px;color:#ffffffeb;max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.srb-card-prof{font-size:.62rem;font-weight:700;width:22px;height:22px;border-radius:50%;background:#ffffff38;display:inline-flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;margin-left:auto}.srb-tone-bg-sky{background:linear-gradient(135deg,#0ea5e9,#0284c7);box-shadow:0 3px 10px #0ea5e947}.srb-tone-bg-violet{background:linear-gradient(135deg,#8b5cf6,#7c3aed);box-shadow:0 3px 10px #8b5cf647}.srb-tone-bg-emerald{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 3px 10px #10b98147}.srb-tone-bg-amber{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 3px 10px #f59e0b47}.srb-tone-bg-rose{background:linear-gradient(135deg,#f43f5e,#e11d48);box-shadow:0 3px 10px #f43f5e47}.srb-tone-bg-cyan{background:linear-gradient(135deg,#06b6d4,#0891b2);box-shadow:0 3px 10px #06b6d447}.srb-tone-bg-indigo{background:linear-gradient(135deg,#6366f1,#4f46e5);box-shadow:0 3px 10px #6366f147}.srb-tone-bg-lime{background:linear-gradient(135deg,#84cc16,#65a30d);box-shadow:0 3px 10px #84cc1647}.srb-tone-bg-orange{background:linear-gradient(135deg,#f97316,#ea580c);box-shadow:0 3px 10px #f9731647}.srb-tone-bg-teal{background:linear-gradient(135deg,#14b8a6,#0d9488);box-shadow:0 3px 10px #14b8a647}.srb-time-btn{display:flex;flex-direction:column;align-items:center;gap:1px;background:transparent;border:1px solid transparent;border-radius:8px;padding:6px 8px;width:100%;cursor:pointer;transition:all .18s ease;text-align:center}.srb-time-btn:hover{background:var(--bg-main);border-color:var(--border-color)}body.dark-mode .srb-time-btn:hover{background:#ffffff0a;border-color:#ffffff14}.srb-time-start{font-family:monospace;font-size:.8rem;font-weight:800;color:var(--text-heading)}.srb-time-sep{font-size:.65rem;color:var(--text-light);line-height:1}.srb-time-end{font-family:monospace;font-size:.72rem;font-weight:600;color:var(--text-muted)}.srb-time-input{width:100%;padding:6px 8px;border:1.5px solid var(--primary);border-radius:8px;font-family:monospace;font-size:.8rem;font-weight:700;color:var(--text-heading);background:var(--bg-card);outline:none;text-align:center;box-shadow:0 0 0 3px #4f46e51f}body.dark-mode .srb-time-input{background:#1e293bb3;color:#e2e8f0}.srb-rp-root{position:relative;width:100%}.srb-rp-trigger{width:100%;height:38px;display:flex;align-items:center;gap:6px;padding:0 10px;border:1.5px solid var(--border-color);border-radius:8px;background:var(--bg-main);color:var(--text-heading);font-size:.825rem;font-weight:600;cursor:pointer;transition:all .18s ease;text-align:left}.srb-rp-trigger:hover{border-color:var(--primary)}body.dark-mode .srb-rp-trigger{background:#0f172a80;border-color:#ffffff14;color:#e2e8f0}body.dark-mode .srb-rp-trigger:hover{border-color:var(--primary)}.srb-rp-placeholder{color:var(--text-light)}.srb-rp-chevron{margin-left:auto;flex-shrink:0;color:var(--text-muted);transition:transform .18s ease}.srb-rp-chevron.open{transform:rotate(180deg)}.srb-rp-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:999;background:var(--bg-card);border:1.5px solid var(--border-color);border-radius:10px;box-shadow:0 8px 24px #0000001f;overflow:hidden}body.dark-mode .srb-rp-dropdown{background:#1e293b;border-color:#ffffff14;box-shadow:0 8px 24px #0006}.srb-rp-search-row{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border-color);color:var(--text-muted)}body.dark-mode .srb-rp-search-row{border-bottom-color:#ffffff0f}.srb-rp-input{flex:1;border:none;background:transparent;outline:none;font-size:.8rem;color:var(--text-heading);font-weight:500}body.dark-mode .srb-rp-input{color:#e2e8f0}.srb-rp-input::placeholder{color:var(--text-light)}.srb-rp-list{list-style:none;margin:0;padding:4px 0;max-height:200px;overflow-y:auto}.srb-rp-item{display:flex;align-items:center;gap:6px;width:100%;padding:8px 12px;font-size:.8rem;font-weight:600;color:var(--text-heading);background:transparent;border:none;cursor:pointer;transition:background .12s ease;text-align:left}.srb-rp-item:hover,.srb-rp-item.selected{background:#4f46e50f;color:var(--primary)}body.dark-mode .srb-rp-item{color:#cbd5e1}body.dark-mode .srb-rp-item:hover,body.dark-mode .srb-rp-item.selected{background:#6366f11f;color:#a5b4fc}.srb-rp-none{padding:10px 14px;font-size:.78rem;color:var(--text-light);font-style:italic}.srb-rp-custom{padding:6px 8px;border-top:1px solid var(--border-color)}body.dark-mode .srb-rp-custom{border-top-color:#ffffff0f}.srb-rp-custom button{width:100%;padding:7px 10px;border-radius:7px;font-size:.78rem;color:var(--primary);background:#4f46e50f;border:1px dashed rgba(79,70,229,.25);cursor:pointer;transition:background .15s ease}.srb-rp-custom button:hover{background:#4f46e51f}.srb-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;animation:srbFadeIn .18s ease}@keyframes srbFadeIn{0%{opacity:0}to{opacity:1}}.srb-modal{width:100%;max-width:560px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:18px;box-shadow:0 20px 50px #0003;display:flex;flex-direction:column;animation:srbSlideUp .22s cubic-bezier(.16,1,.3,1);max-height:calc(100vh - 40px);overflow:hidden}body.dark-mode .srb-modal{background:#1e293b;border-color:#ffffff14;box-shadow:0 20px 50px #00000080}@keyframes srbSlideUp{0%{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}.srb-modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 22px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0}body.dark-mode .srb-modal-header{border-bottom-color:#ffffff0f}.srb-modal-title{font-size:1.05rem;font-weight:800;color:var(--text-heading);margin:0}.srb-modal-sub{font-size:.78rem;color:var(--text-muted);margin:3px 0 0;font-weight:500}.srb-modal-close{width:30px;height:30px;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-main);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .15s ease}.srb-modal-close:hover{background:var(--bg-card);color:var(--text-heading);border-color:var(--primary)}.srb-modal-body{padding:18px 22px;display:flex;flex-direction:column;gap:14px;overflow-y:auto}.srb-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--border-color);flex-shrink:0}body.dark-mode .srb-modal-footer{border-top-color:#ffffff0f}.srb-form-row{display:flex;gap:12px;flex-wrap:wrap}.srb-label{display:flex;flex-direction:column;gap:5px;flex:1;min-width:140px;font-size:.78rem;font-weight:700;color:var(--text-muted)}.srb-label--wide{flex:2;min-width:200px}.srb-label--full{flex:1 1 100%;min-width:100%}.srb-label-text{font-size:.78rem;font-weight:700;color:var(--text-muted)}.srb-required{color:#ef4444}.srb-input{height:38px;width:100%;padding:0 10px;border:1.5px solid var(--border-color);border-radius:8px;font-size:.8rem;font-weight:500;color:var(--text-heading);background:var(--bg-main);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.srb-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51f}body.dark-mode .srb-input{background:#0f172a80;border-color:#ffffff14;color:#e2e8f0}body.dark-mode .srb-input:focus{border-color:var(--primary)}.srb-input::placeholder{color:var(--text-light)}.srb-tone-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.srb-tone-pills{display:flex;gap:6px;flex-wrap:wrap}.srb-tone-pill{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.srb-tone-pill:hover{transform:scale(1.2)}.srb-tone-pill.active{border-color:#fff;box-shadow:0 0 0 2px #00000059;transform:scale(1.2)}.srb-tone-sky{background:#0ea5e9}.srb-tone-violet{background:#8b5cf6}.srb-tone-emerald{background:#10b981}.srb-tone-amber{background:#f59e0b}.srb-tone-rose{background:#f43f5e}.srb-tone-cyan{background:#06b6d4}.srb-tone-indigo{background:#6366f1}.srb-tone-lime{background:#84cc16}.srb-tone-orange{background:#f97316}.srb-tone-teal{background:#14b8a6}.srb-btn-cancel{height:36px;padding:0 16px;border-radius:8px;font-size:.8rem;font-weight:700;cursor:pointer;border:1.5px solid var(--border-color);background:var(--bg-card);color:var(--text-muted);transition:all .15s ease}.srb-btn-cancel:hover{border-color:var(--primary);color:var(--primary)}body.dark-mode .srb-btn-cancel{background:#1e293b80;border-color:#ffffff14}.srb-btn-save{height:36px;padding:0 20px;border-radius:8px;font-size:.8rem;font-weight:700;cursor:pointer;border:none;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;box-shadow:0 3px 10px #4f46e54d;transition:all .15s ease}.srb-btn-save:hover{transform:translateY(-1px);box-shadow:0 5px 14px #4f46e566}.srb-btn-save:disabled{opacity:.45;cursor:not-allowed;transform:none}@media(max-width:768px){.srb-header-inner{flex-direction:column;align-items:flex-start;gap:12px}.srb-header-actions{width:100%;justify-content:flex-end}.srb-form-row{flex-direction:column}.srb-label,.srb-label--wide{min-width:100%}.srb-modal{max-width:100%;border-radius:14px}}.rm-page{display:flex;flex-direction:column;gap:20px;animation:slideUpFade .4s cubic-bezier(.16,1,.3,1) forwards}.rm-page-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.rm-page-header h2{font-size:22px;font-weight:800;color:var(--text-heading);margin:0 0 4px}.rm-page-header p{color:var(--text-muted);font-size:14px;margin:0}.rm-add-btn{display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:12px;font-size:14px;font-weight:700;white-space:nowrap;border:none;cursor:pointer;flex-shrink:0}.rm-building-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.rm-building-tile{background:var(--bg-card);border:1.5px solid var(--border-color);border-radius:16px;padding:20px 22px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:5px;transition:var(--transition);position:relative;overflow:hidden}.rm-building-tile:hover{border-color:var(--dc);box-shadow:var(--shadow-md);transform:translateY(-2px)}.rm-building-tile--on{background:var(--db);border-color:var(--dc)}.rm-building-dot{position:absolute;top:14px;right:14px;width:8px;height:8px;border-radius:50%;background:var(--dc)}.rm-building-count{font-size:30px;font-weight:800;color:var(--text-heading);line-height:1}.rm-building-tile--on .rm-building-count{color:var(--dc)}.rm-building-label{font-size:12px;font-weight:600;color:var(--text-muted);line-height:1.4}.rm-building-tile--on .rm-building-label{color:var(--dc);font-weight:700}.rm-alert{background:#fff1f2;border:1px solid #fecdd3;border-radius:12px;color:#9f1239;font-size:14px;padding:12px 16px}.rm-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:18px;box-shadow:var(--shadow-sm);overflow:hidden}.rm-toolbar{display:flex;align-items:center;gap:14px;padding:18px 22px;border-bottom:1px solid var(--border-color);flex-wrap:wrap}.rm-search-box{display:flex;align-items:center;gap:10px;background:var(--bg-body);border:1.5px solid var(--border-color);border-radius:12px;padding:10px 14px;flex:1;min-width:200px;color:var(--text-muted);transition:var(--transition)}.rm-search-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51a}.rm-search-box input{border:none;background:transparent;outline:none;color:var(--text-heading);font-size:14px;font-family:inherit;width:100%}.rm-search-box input::placeholder{color:var(--text-light)}.rm-filter-row{display:flex;gap:6px}.rm-filter-pill{background:transparent;border:1.5px solid var(--border-color);border-radius:10px;color:var(--text-muted);font-size:13px;font-weight:700;font-family:inherit;padding:7px 12px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s ease}.rm-filter-pill em{font-style:normal;background:var(--bg-body);color:var(--text-muted);border-radius:6px;padding:1px 6px;font-size:11px;font-weight:800}.rm-filter-pill:hover{background:var(--bg-body);color:var(--text-heading)}.rm-filter-pill.active{background:var(--primary);color:#fff;border-color:var(--primary)}.rm-filter-pill.active em{background:#fff3;color:#fff}.rm-table-wrap{overflow-x:auto;position:relative;-webkit-overflow-scrolling:touch}.rm-table{width:100%;border-collapse:collapse;text-align:left}.rm-table th{padding:16px 20px;font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color);background:var(--bg-card)}.rm-table td{padding:18px 20px;border-bottom:1px solid var(--border-color);font-size:14px;color:var(--text-heading);vertical-align:middle;background:var(--bg-card)}.rm-table tr:hover td{background:var(--bg-body)}.rm-row-toggle{background:none;border:none;color:var(--text-light);cursor:pointer;font-size:10px;padding:4px;transition:transform .2s ease}.rm-row-toggle.is-open{transform:rotate(180deg)}.room-name-cell{font-size:15px;color:var(--text-heading)}.room-bldg-badge{display:inline-block;padding:4px 10px;border-radius:8px;font-size:12px;font-weight:700}.room-capacity-badge{font-size:13px;color:var(--text-muted);font-weight:500}.rm-detail-row td{background:var(--bg-body)!important;padding:0}.rm-detail-content{padding:20px 24px;display:flex;gap:30px;animation:slideDownFade .25s ease-out forwards}.rm-detail-item{flex:2}.rm-detail-item strong{display:block;font-size:13px;color:var(--text-muted);margin-bottom:6px}.rm-detail-item p{margin:0;font-size:14px;line-height:1.5;color:var(--text-heading)}.rm-detail-metrics{flex:1;display:flex;flex-direction:column;gap:12px;border-left:2px solid var(--border-color);padding-left:20px}.rm-detail-metrics div{display:flex;flex-direction:column}.rm-detail-metrics span{font-size:12px;color:var(--text-light);margin-bottom:2px}.rm-detail-metrics strong{font-size:14px;color:var(--text-heading);font-weight:700}.row-highlight,.row-highlight td{background:#4f46e50d!important;border-left:3px solid var(--primary);animation:pulseHighlight 2s ease-out}@keyframes pulseHighlight{0%{background:#4f46e526}to{background:#4f46e50d}}.rm-row-actions{display:flex;justify-content:flex-end;gap:8px}.rm-row-actions button{background:transparent;border:1px solid var(--border-color);border-radius:8px;padding:6px 12px;font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .2s ease}.rm-action-edit{color:var(--text-heading)}.rm-action-edit:hover{background:var(--bg-body);border-color:var(--primary);color:var(--primary)}.rm-action-delete{color:#ef4444}.rm-action-delete:hover{background:#fef2f2;border-color:#ef4444}.rm-table-footer{padding:16px 22px;border-top:1px solid var(--border-color);font-size:13px;color:var(--text-muted)}.rm-loading,.rm-empty-cell{text-align:center;padding:40px;color:var(--text-muted);font-size:14px}.rm-room-card-wrap{background:radial-gradient(circle at 18% 0%,rgba(187,249,255,.2),transparent 34%),linear-gradient(180deg,#f9feff33,#dafbff33);padding:14px}.rm-room-grid{display:grid;grid-template-columns:repeat(4,minmax(190px,1fr));gap:10px;align-items:start}.rm-room-card{--room-color: #0369a1;--room-bg: rgba(218, 251, 255, .5);--room-glow: rgba(187, 249, 255, .42);position:relative;min-width:0;overflow:hidden;border:1px solid rgba(14,165,233,.2);border-radius:14px;background:linear-gradient(145deg,#f9feff33,#eefdff33 38%,#dafbff33 70%,#bbf9ff33);backdrop-filter:blur(20px) saturate(1.22);-webkit-backdrop-filter:blur(20px) saturate(1.22);box-shadow:0 10px 24px #0ea5e914,0 1px #ffffff7a inset;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.rm-room-card:hover{transform:translateY(-2px);border-color:#0ea5e957;box-shadow:0 16px 34px #0ea5e91f,0 8px 22px #0f172a12}.rm-room-card-main{position:relative;z-index:1;display:grid;gap:7px;width:100%;min-height:150px;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;padding:12px;text-align:left}.rm-room-wave{position:absolute;inset:auto -22px -42px -22px;height:78px;z-index:-1;background:repeating-linear-gradient(170deg,rgba(14,165,233,.1) 0 2px,transparent 2px 8px),linear-gradient(165deg,transparent 5%,rgba(187,249,255,.22) 45%,transparent 85%);border-radius:52% 48% 0 0}.rm-room-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.rm-room-topline>strong{color:#0f172a;font-size:18px;font-weight:900;line-height:1}.rm-room-status{border-radius:999px;font-size:10px;font-style:normal;font-weight:850;padding:4px 7px;white-space:nowrap}.rm-room-status--active{background:#dcfce7b8;color:#047857;border:1px solid rgba(16,185,129,.22)}.rm-room-status--maintenance{background:#fef3c7c2;color:#92400e;border:1px solid rgba(245,158,11,.24)}.rm-room-name{color:#1e293b;font-size:13px;font-weight:800;line-height:1.3;min-height:33px}.rm-room-building{justify-self:start;border:1px solid rgba(14,165,233,.2);color:#075985!important;background:#c9faff33!important;border-radius:999px;font-size:11px;font-weight:850;padding:5px 8px}.rm-room-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:2px}.rm-room-stats span{display:grid;gap:2px;border:1px solid rgba(14,165,233,.14);border-radius:10px;background:linear-gradient(180deg,#f9feff33,#eefdff33);padding:6px}.rm-room-stats small{color:#64748b;font-size:9px;font-weight:850;text-transform:uppercase}.rm-room-stats strong{color:#0f172a;font-size:12px;font-weight:900}.rm-room-detail-card{border-top:1px solid rgba(14,165,233,.16);background:linear-gradient(180deg,#eefdff33,#f9feff33);padding:9px 12px}.rm-room-detail-card span{color:#0f172a;font-size:12px;font-weight:900}.rm-room-detail-card p{color:#334155;font-size:12px;line-height:1.45;margin:4px 0 0}.rm-room-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 12px 12px}.rm-room-card-actions button{min-height:32px;border:1px solid rgba(14,165,233,.18);border-radius:9px;background:#f9feff33;cursor:pointer;font:inherit;font-size:11px;font-weight:850;transition:transform .16s ease,background .16s ease,border-color .16s ease}.rm-room-card-actions button:hover{transform:translateY(-1px)}.rm-room-card-actions .rm-action-edit{color:#0369a1;border-color:#0ea5e938}.rm-room-card-actions .rm-action-edit:hover{background:#c9faff47;border-color:#0ea5e95c}.rm-room-card-actions .rm-action-delete{color:#dc2626;border-color:#dc26262e}.rm-room-card-actions .rm-action-delete:hover{background:#fee2e24d;border-color:#dc262657}.rm-drawer-overlay{align-items:flex-start;justify-content:flex-start;padding:0;background:#0f172a2e;animation:none;overflow:hidden;perspective:1200px}.rm-drawer{position:fixed;left:24px;top:24px;width:min(680px,calc(100vw - 32px));height:min(560px,calc(100vh - 32px));max-height:calc(100vh - 32px);max-width:none;display:grid;grid-template-rows:auto minmax(0,1fr);border-radius:18px;box-shadow:0 24px 64px #0f172a38;animation:none!important;overflow:hidden;will-change:transform,opacity;backface-visibility:hidden}.rm-bulk-drawer{width:min(860px,calc(100vw - 32px))}.rm-bulk-drawer .bulk-form{min-height:0;overflow-y:auto;overflow-x:hidden;padding:20px 0 24px}.rm-bulk-csv-actions{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 4px}.rm-bulk-csv-btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;border:1.5px solid rgba(14,165,233,.28);border-radius:11px;background:#ffffff8a;color:#0369a1;cursor:pointer;font:inherit;font-size:13px;font-weight:850;padding:9px 13px;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.rm-bulk-csv-btn:hover{background:#ffffffd1;box-shadow:0 8px 18px #0ea5e924;transform:translateY(-1px)}.rm-bulk-csv-btn input{display:none}.rm-bulk-drawer .bulk-rows{display:grid;gap:12px;padding:0 16px}@keyframes rmOverlayFade{0%{opacity:0}to{opacity:1}}@keyframes rmPopoutIn{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.rm-modal{display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid rgba(199,210,254,.95)}.rm-glass-form{background:#ffffff14;border-color:#ffffff52;box-shadow:0 24px 70px #2650803d;backdrop-filter:blur(26px) saturate(1.18);-webkit-backdrop-filter:blur(26px) saturate(1.18);contain:layout paint}.rm-modal .modal-header{padding:20px 24px;background:linear-gradient(135deg,#4f46e5f5,#0ea5e9eb),#4f46e5;border-bottom:0}.rm-modal .modal-header h3{color:#fff;font-size:18px;line-height:1.25}.rm-modal .modal-header p{color:#ffffffc7;margin:4px 0 0}.rm-modal .close-btn{color:#ffffffe0}.rm-modal .close-btn:hover{background:#ffffff2e;color:#fff}.rm-modal .modal-form{min-height:0;height:100%;overflow-y:auto;overflow-x:hidden;padding:20px;gap:14px;background:#ffffff14}.rm-modal .form-row-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.rm-modal .input-group{gap:7px;min-width:0;background:#ffffff4d;border:1px solid rgba(226,232,240,.42);border-left:4px solid #818cf8;border-radius:14px;padding:12px;box-shadow:0 8px 22px #0f172a0a}.rm-modal .form-row-2:nth-of-type(2) .input-group:first-child{border-left-color:#0ea5e9}.rm-modal .form-row-2:nth-of-type(2) .input-group:last-child{border-left-color:#22c55e}.rm-modal .form-row-2:nth-of-type(3) .input-group:first-child{border-left-color:#f59e0b}.rm-modal .form-row-2:nth-of-type(3) .input-group:last-child{border-left-color:#ec4899}.rm-modal .input-group label{font-size:13px;font-weight:800;color:var(--text-body)}.rm-modal .input-group input,.rm-modal .input-group select,.rm-modal .input-group textarea{width:100%;min-height:44px;border:1.5px solid #dbe4f0;border-radius:10px;background:#ffffff94;color:var(--text-heading);font:inherit;font-size:14px;outline:none;padding:11px 13px;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.rm-modal .input-group textarea{min-height:92px;resize:vertical;line-height:1.5}.rm-modal .input-group input:focus,.rm-modal .input-group select:focus,.rm-modal .input-group textarea:focus{background:#ffffffdb;border-color:var(--primary);box-shadow:0 0 0 4px #4f46e51a}.rm-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.rm-choice{min-height:44px;border:1.5px solid #dbe4f0;border-radius:12px;background:#ffffff94;color:var(--text-body);cursor:pointer;font:inherit;font-size:13px;font-weight:800;padding:10px 12px;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}.rm-choice:hover{transform:translateY(-1px);border-color:#a5b4fc;box-shadow:0 8px 18px #4f46e514}.rm-choice.is-selected{border-color:transparent;color:#fff;box-shadow:0 10px 20px #4f46e52e}.rm-choice--building.is-selected{background:linear-gradient(135deg,#4f46e5,#0ea5e9)}.rm-choice--active.is-selected{background:linear-gradient(135deg,#059669,#22c55e)}.rm-choice--maintenance.is-selected{background:linear-gradient(135deg,#f59e0b,#ec4899)}.rm-modal .modal-actions{position:sticky;bottom:-24px;margin:0;padding:16px 0 0;background:linear-gradient(180deg,#fff0,#ffffff6b 36%)}.rm-modal .modal-actions button{min-width:120px;min-height:42px}.rm-form-error{background:#fff1f2;border:1px solid #fecdd3;border-radius:10px;color:#9f1239;font-size:13px;font-weight:700;line-height:1.45;padding:11px 13px}.rm-bulk-grid-head{display:none;grid-template-columns:1fr 1.4fr .9fr 1.25fr 1fr 1.15fr 40px;gap:12px;padding:0 16px 8px;font-size:12px;font-weight:700;color:var(--text-muted);border-bottom:1px solid var(--border-color)}.rm-bulk-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) 40px;gap:10px;align-items:end;padding:14px;border:1px solid #e2e8f0;border-left:4px solid #0ea5e9;border-radius:14px;background:#ffffff4d;box-shadow:0 8px 22px #0f172a0a}.rm-bulk-row:hover{background:#ffffff6b}.rm-glass-form .bulk-form{background:#ffffff14}.rm-glass-form .rm-bulk-row>input,.rm-glass-form .rm-bulk-row>select{background:#ffffff94;border-color:#94a3b847;color:var(--text-heading)}.rm-glass-form .rm-bulk-row>input:focus,.rm-glass-form .rm-bulk-row>select:focus{background:#ffffffdb}.rm-bulk-row>input,.rm-bulk-row>select{min-width:0}.rm-bulk-row .bulk-remove-btn{grid-column:3;grid-row:1;align-self:start}.rm-bulk-row>input:nth-child(1),.rm-bulk-row>input:nth-child(2){grid-column:span 1}.rm-bulk-row>input:nth-child(3),.rm-bulk-row>select:nth-child(4),.rm-bulk-row>input:nth-child(5),.rm-bulk-row>select:nth-child(6){grid-column:span 1}@media(max-width:1024px){.rm-room-grid{grid-template-columns:repeat(3,minmax(180px,1fr))}.rm-drawer{border-radius:16px}.rm-modal .modal-header{padding:18px 20px}.rm-modal .modal-form{padding:18px}.rm-modal .form-row-2{gap:12px}.rm-bulk-grid-head,.rm-bulk-row{grid-template-columns:repeat(2,minmax(0,1fr)) 36px;gap:8px}}@media(max-width:768px){.rm-page{gap:16px}.rm-page-header{flex-direction:column;align-items:flex-start}.rm-page-header>div:last-child{width:100%;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))}.rm-add-btn{justify-content:center;width:100%}.rm-building-grid{grid-template-columns:repeat(2,1fr);gap:10px}.rm-building-tile{padding:16px;border-radius:14px}.rm-toolbar{flex-direction:column;align-items:stretch;padding:14px}.rm-filter-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.rm-filter-pill{justify-content:center;padding:8px 9px}.rm-table{min-width:860px}.rm-room-card-wrap{padding:14px}.rm-room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rm-room-card-main{min-height:150px}.rm-drawer,.rm-modal{border-radius:16px}.rm-bulk-row{grid-template-columns:1fr 36px}.rm-bulk-row>input,.rm-bulk-row>select{grid-column:1 / -1!important}.rm-bulk-row>input:first-child{grid-column:1!important}.rm-bulk-row .bulk-remove-btn{grid-column:2;grid-row:1}.rm-modal .modal-header,.rm-modal .modal-form{padding-left:16px;padding-right:16px}.rm-modal .form-row-2{grid-template-columns:1fr;gap:12px}.rm-choice-grid{grid-template-columns:1fr}.rm-modal .modal-actions{align-items:stretch;display:grid;grid-template-columns:1fr}}@media(max-width:520px){.rm-page-header h2{font-size:20px}.rm-page-header p{font-size:13px}.rm-building-grid,.rm-filter-row{grid-template-columns:1fr}.rm-search-box{min-width:0}.rm-room-card-wrap{padding:10px}.rm-room-grid{grid-template-columns:1fr}.rm-room-card-main{padding:12px}.rm-room-topline>strong{font-size:20px}.rm-room-stats{grid-template-columns:1fr}.rm-drawer,.rm-modal{border-radius:0}.rm-modal .modal-header{padding:16px}.rm-modal .modal-header h3{font-size:16px}.rm-modal .modal-form{padding:14px;gap:12px}.rm-modal .input-group{padding:10px;border-radius:12px}.rm-modal .input-group input,.rm-modal .input-group select,.rm-choice{min-height:42px;font-size:13px}.rm-bulk-drawer .bulk-form{padding-top:14px}.rm-bulk-drawer .bulk-rows{padding:0 12px}.rm-bulk-row{padding:12px}}.rm-del-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000085;display:flex;align-items:center;justify-content:center;z-index:10000;padding:24px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.rm-del-dialog{background:var(--bg-card);border:1px solid var(--border-color);border-radius:20px;box-shadow:var(--shadow-lg);padding:36px 32px 28px;width:100%;max-width:420px;text-align:center}.rm-del-icon{font-size:40px;line-height:1;margin-bottom:16px;filter:grayscale(.2)}.rm-del-title{margin:0 0 6px;font-size:20px;font-weight:800;color:var(--text-heading)}.rm-del-room-id{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-family:ui-monospace,monospace}.rm-del-desc{margin:0 0 16px;font-size:14px;font-weight:600;color:var(--text-heading)}.rm-del-warn{margin:0 0 28px;font-size:13px;color:var(--text-muted);line-height:1.55;padding:12px 16px;background:#ef44440f;border:1px solid rgba(239,68,68,.18);border-radius:10px}.rm-del-actions{display:flex;gap:10px}.rm-del-btn{flex:1;padding:11px 16px;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;border:none;transition:background .15s,transform .1s,box-shadow .15s}.rm-del-btn:active{transform:scale(.97)}.rm-del-btn--cancel{background:var(--bg-main);color:var(--text-body);border:1.5px solid var(--border-color)}.rm-del-btn--cancel:hover{background:var(--border-color)}.rm-del-btn--confirm{background:#ef4444;color:#fff;box-shadow:0 4px 12px #ef44444d}.rm-del-btn--confirm:hover{background:#dc2626;box-shadow:0 4px 16px #ef444473}body.dark-mode .rm-del-warn{background:#ef44441a;border-color:#ef444440}body.dark-mode .rm-del-btn--cancel{background:#1e293b;border-color:#334155;color:var(--text-body)}body.dark-mode .rm-del-btn--cancel:hover{background:#263347}.rm-delete-toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%);z-index:10001;display:flex;align-items:center;gap:8px;padding:13px 22px;border-radius:12px;background:#fef3c7;border:1.5px solid #fbbf24;color:#78350f;font-size:14px;font-weight:600;box-shadow:0 8px 24px #00000024;white-space:nowrap;pointer-events:none}.rm-delete-toast strong{font-weight:800;color:#451a03}body.dark-mode .rm-delete-toast{background:#1c1200;border-color:#d97706;color:#fde68a}body.dark-mode .rm-delete-toast strong{color:#fef3c7}.rm-trash-panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;overflow:hidden}.rm-trash-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:none;border:none;cursor:pointer;color:var(--text-body);font-size:14px;font-weight:600;transition:background .15s}.rm-trash-header:hover{background:var(--bg-main)}.rm-trash-header-left{display:flex;align-items:center;gap:8px}.rm-trash-icon-label{font-size:16px}.rm-trash-title{font-size:14px;font-weight:600;color:var(--text-heading)}.rm-trash-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#ef44441f;color:#dc2626;font-size:11px;font-weight:800}body.dark-mode .rm-trash-count{background:#ef444433;color:#f87171}.rm-trash-chevron{font-size:11px;color:var(--text-muted);transition:transform .2s}.rm-trash-chevron.is-open{transform:rotate(180deg)}.rm-trash-body{border-top:1px solid var(--border-color);padding:8px 0}.rm-trash-empty{margin:0;padding:20px;font-size:13.5px;color:var(--text-muted);text-align:center}.rm-trash-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;border-bottom:1px solid var(--border-color);transition:background .12s}.rm-trash-row:last-child{border-bottom:none}.rm-trash-row:hover{background:var(--bg-main)}.rm-trash-room-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.rm-trash-room-id{font-size:12.5px;font-weight:700;color:var(--text-heading);font-family:ui-monospace,Cascadia Code,monospace;flex-shrink:0}.rm-trash-room-name{font-size:13.5px;color:var(--text-body)}.rm-trash-room-bldg{font-size:11.5px;color:var(--text-muted);background:var(--bg-main);border:1px solid var(--border-color);border-radius:5px;padding:2px 7px}.rm-trash-row-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.rm-trash-btn{padding:6px 13px;border-radius:7px;font-size:12.5px;font-weight:600;border:none;cursor:pointer;transition:background .14s,color .14s;white-space:nowrap}.rm-trash-btn--restore{background:var(--primary-light);color:var(--primary)}.rm-trash-btn--restore:hover{background:var(--primary);color:#fff}.rm-trash-btn--del{background:#ef444417;color:#dc2626}.rm-trash-btn--del:hover{background:#ef4444;color:#fff}body.dark-mode .rm-trash-btn--del{background:#ef444426;color:#f87171}body.dark-mode .rm-trash-btn--del:hover{background:#ef4444;color:#fff}.gp-root{display:flex;flex-direction:column;gap:20px}.gp-header{display:flex;align-items:center;justify-content:space-between;padding:22px 28px;border-radius:20px;background:linear-gradient(135deg,#3730a3,#6d28d9,#0284c7);box-shadow:0 8px 32px #4f46e552;position:relative;overflow:hidden}.gp-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 20% 50%,rgba(255,255,255,.07) 0%,transparent 60%);pointer-events:none}.gp-header-left{position:relative;z-index:1}.gp-header-title{display:flex;align-items:center;gap:8px;font-size:1.45rem;font-weight:800;color:#fff;margin:0}.gp-header-sub{color:#ffffffb8;font-size:.86rem;margin:4px 0 0}.gp-header-actions{display:flex;gap:10px;position:relative;z-index:1}.gp-btn{display:inline-flex;align-items:center;gap:6px;padding:.62rem 1.2rem;border-radius:11px;font-size:.85rem;font-weight:700;cursor:pointer;border:none;transition:all .22s ease;font-family:inherit;white-space:nowrap}.gp-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.gp-btn--primary{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;box-shadow:0 4px 14px #4f46e559}.gp-btn--primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #4f46e566}.gp-btn--outline{background:#ffffff26;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;border:1.5px solid rgba(255,255,255,.3)}.gp-btn--outline:hover{background:#ffffff47;transform:translateY(-2px)}.gp-btn--ghost{background:var(--bg-hover, #f1f5f9);color:var(--text-body, #334155);border:1.5px solid var(--border-color, #e2e8f0)}.gp-btn--ghost:hover{border-color:#94a3b8;background:var(--border-color, #e2e8f0)}.gp-btn-xs{padding:.3rem .7rem;border-radius:8px;font-size:.73rem;font-weight:700;cursor:pointer;border:none;transition:all .18s ease;font-family:inherit}.gp-btn-xs--indigo{background:#e0e7ff;color:#4f46e5}.gp-btn-xs--indigo:hover{background:#4f46e5;color:#fff}.gp-btn-xs--blue{background:#dbeafe;color:#1d4ed8}.gp-btn-xs--blue:hover{background:#1d4ed8;color:#fff}.gp-btn-xs--gray{background:#f1f5f9;color:#64748b}.gp-btn-xs--gray:hover{background:#64748b;color:#fff}.gp-btn-xs--red{background:#fee2e2;color:#dc2626}.gp-btn-xs--red:hover{background:#dc2626;color:#fff}.gp-link-btn{background:none;border:none;color:var(--primary, #4f46e5);font-weight:700;cursor:pointer;font-size:inherit;padding:0}.gp-link-btn:hover{text-decoration:underline}.gp-clear-btn{padding:.5rem .9rem}.gp-stats-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.gp-stat-tile{display:flex;align-items:center;justify-content:space-between;background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:16px;padding:18px 20px;box-shadow:var(--shadow-sm, 0 1px 4px rgba(0,0,0,.06));position:relative;overflow:hidden;transition:box-shadow .22s,transform .22s}.gp-stat-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-md, 0 4px 16px rgba(0,0,0,.1))}.gp-stat-tile:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:16px 16px 0 0}.gp-stat-tile--indigo:before{background:linear-gradient(135deg,#4f46e5,#7c3aed)}.gp-stat-tile--violet:before{background:linear-gradient(135deg,#7c3aed,#a855f7)}.gp-stat-tile--emerald:before{background:linear-gradient(135deg,#059669,#10b981)}.gp-stat-tile--amber:before{background:linear-gradient(135deg,#d97706,#f59e0b)}.gp-stat-body{display:flex;flex-direction:column;gap:4px}.gp-stat-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.7px;color:var(--text-muted, #64748b)}.gp-stat-value{font-size:28px;font-weight:900;color:var(--text-heading, #0f172a);line-height:1.1}.gp-stat-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;color:#fff;flex-shrink:0}.gp-stat-icon--indigo{background:linear-gradient(135deg,#4f46e5,#7c3aed)}.gp-stat-icon--violet{background:linear-gradient(135deg,#7c3aed,#a855f7)}.gp-stat-icon--emerald{background:linear-gradient(135deg,#059669,#10b981)}.gp-stat-icon--amber{background:linear-gradient(135deg,#d97706,#f59e0b)}.gp-tabs{display:flex;gap:4px;background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:13px;padding:5px;width:fit-content;box-shadow:var(--shadow-sm, 0 1px 4px rgba(0,0,0,.06))}.gp-tab{display:flex;align-items:center;gap:6px;padding:.52rem 1.2rem;border:none;background:transparent;font-size:.84rem;font-weight:700;color:var(--text-muted, #64748b);border-radius:9px;cursor:pointer;transition:all .22s ease;font-family:inherit}.gp-tab.active{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;box-shadow:0 4px 12px #4f46e54d}.gp-tab:hover:not(.active){background:var(--bg-hover, #f1f5f9);color:var(--text-body, #334155)}.gp-filter-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.gp-search-wrap{position:relative;flex:1;min-width:200px}.gp-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted, #64748b);pointer-events:none}.gp-search-input{width:100%;padding:.65rem 1rem .65rem 2.4rem;border:1.5px solid var(--border-color, #e2e8f0);border-radius:11px;font-size:.86rem;background:var(--bg-card, #fff);color:var(--text-body, #334155);outline:none;transition:border-color .2s,box-shadow .2s;font-family:inherit}.gp-search-input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.gp-filter-select{padding:.65rem 1rem;border:1.5px solid var(--border-color, #e2e8f0);border-radius:11px;font-size:.86rem;background:var(--bg-card, #fff);color:var(--text-body, #334155);outline:none;cursor:pointer;transition:border-color .2s,box-shadow .2s;font-family:inherit}.gp-filter-select:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.gp-card{background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:18px;box-shadow:var(--shadow-sm, 0 1px 4px rgba(0,0,0,.06));overflow:hidden}.gp-card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--border-color, #e2e8f0)}.gp-card-title{display:flex;align-items:center;gap:8px;font-size:.95rem;font-weight:800;color:var(--text-heading, #0f172a)}.gp-badge{background:#ede9fe;color:#6d28d9;font-size:.7rem;font-weight:800;padding:.18rem .6rem;border-radius:20px}.gp-table-wrap{overflow-x:auto;padding:0 0 8px}.gp-table{width:100%;border-collapse:collapse}.gp-table thead th{padding:.7rem 1rem;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted, #64748b);background:var(--bg-hover, #f8fafc);border-bottom:1px solid var(--border-color, #e2e8f0);text-align:left;white-space:nowrap}.gp-table thead th:first-child{padding-left:20px}.gp-table tbody td{padding:.8rem 1rem;font-size:.85rem;color:var(--text-body, #334155);border-bottom:1px solid var(--border-color, #e2e8f0);vertical-align:middle}.gp-table tbody tr:last-child td{border-bottom:none}.gp-table tbody tr{transition:background .15s}.gp-table tbody tr:hover td{background:var(--bg-hover, #f8fafc)}.gp-row-divider td{border-top:2px solid var(--border-color, #e2e8f0)!important}.gp-score-wrap{display:flex;align-items:center;gap:8px}.gp-score-bg{flex:1;max-width:72px;height:6px;background:var(--border-color, #e2e8f0);border-radius:99px;overflow:hidden}.gp-score-fill{height:100%;border-radius:99px;transition:width .6s ease}.gp-score-pct{font-size:.79rem;font-weight:700;min-width:40px}.gp-grade-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:20px;color:#fff;font-weight:800;letter-spacing:.4px}.gp-grade-pill--xs{padding:.12rem .45rem;font-size:.68rem}.gp-grade-pill--sm{padding:.2rem .65rem;font-size:.72rem}.gp-grade-pill--md{padding:.3rem .9rem;font-size:.82rem}.gp-status-pill{display:inline-block;padding:.2rem .65rem;border-radius:20px;font-size:.7rem;font-weight:800}.gp-status-pill--green{background:#d1fae5;color:#059669}.gp-status-pill--gray{background:#f1f5f9;color:#64748b}.gp-tag{background:var(--bg-hover, #f1f5f9);color:var(--text-body, #334155);padding:.2rem .65rem;border-radius:7px;font-size:.76rem;font-weight:600;white-space:nowrap}.gp-action-group{display:flex;gap:4px;flex-wrap:nowrap}.gp-avatar{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;border-radius:50%;flex-shrink:0}.gp-avatar{width:34px;height:34px;font-size:.78rem}.gp-avatar--sm{width:30px;height:30px;font-size:.72rem}.gp-avatar--lg{width:44px;height:44px;font-size:.92rem}.gp-student-cell{display:flex;align-items:center;gap:10px}.gp-student-name{font-weight:700;font-size:.87rem;color:var(--text-heading, #0f172a)}.gp-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.gp-summary-card{display:flex;align-items:center;gap:12px;background:var(--bg-card, #fff);border:1.5px solid var(--border-color, #e2e8f0);border-radius:16px;padding:16px 18px;cursor:pointer;transition:all .22s ease;position:relative;overflow:hidden}.gp-summary-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#4f46e5,#7c3aed);transform:scaleY(0);transform-origin:bottom;transition:transform .22s ease}.gp-summary-card:hover{border-color:#4f46e5;transform:translateY(-3px);box-shadow:var(--shadow-md, 0 4px 16px rgba(0,0,0,.1))}.gp-summary-card:hover:before{transform:scaleY(1)}.gp-summary-body{flex:1;min-width:0}.gp-summary-grade{text-align:center;flex-shrink:0}.gp-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:56px 24px;color:var(--text-muted, #64748b);font-size:.9rem;text-align:center}.gp-empty-icon{color:var(--text-muted, #94a3b8)}.gp-spinner{width:32px;height:32px;border:3px solid var(--border-color, #e2e8f0);border-top-color:#4f46e5;border-radius:50%;animation:gp-spin .7s linear infinite}@keyframes gp-spin{to{transform:rotate(360deg)}}.gp-muted{color:var(--text-muted, #64748b)}.gp-nowrap{white-space:nowrap}.gp-good{color:#059669}.gp-warn{color:#ef4444}.gp-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a85;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;animation:gp-fade-in .18s ease}@keyframes gp-fade-in{0%{opacity:0}to{opacity:1}}.gp-modal{background:var(--bg-card, #fff);border-radius:22px;padding:28px 32px;width:min(640px,95vw);max-height:90vh;overflow-y:auto;box-shadow:0 24px 60px #00000038;position:relative;animation:gp-scale-in .25s cubic-bezier(.175,.885,.32,1.275);border:1px solid var(--border-color, #e2e8f0)}.gp-modal--wide{width:min(780px,95vw)}@keyframes gp-scale-in{0%{opacity:0;transform:scale(.93) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.gp-modal-close{position:absolute;top:16px;right:16px;background:var(--bg-hover, #f1f5f9);border:none;width:28px;height:28px;border-radius:50%;cursor:pointer;color:var(--text-muted, #64748b);display:flex;align-items:center;justify-content:center;transition:all .18s;font-family:inherit}.gp-modal-close:hover{background:var(--border-color, #e2e8f0);color:var(--text-heading, #0f172a)}.gp-modal-title{display:flex;align-items:center;gap:8px;font-size:1.1rem;font-weight:800;color:var(--text-heading, #0f172a);margin:0 0 4px}.gp-modal-sub{font-size:.82rem;color:var(--text-muted, #64748b);margin:0 0 20px;line-height:1.55}.gp-wizard-steps{display:flex;align-items:center;gap:6px;margin-bottom:20px}.gp-wstep{display:flex;align-items:center;gap:6px;font-size:.8rem;font-weight:800;width:28px;height:28px;border-radius:50%;background:var(--border-color, #e2e8f0);color:var(--text-muted, #64748b);justify-content:center;flex-shrink:0;transition:all .22s}.gp-wstep span{display:none}.gp-wstep.active{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;box-shadow:0 3px 10px #4f46e54d}.gp-wstep-line{flex:1;height:2px;background:var(--border-color, #e2e8f0);border-radius:2px}.gp-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.gp-form-group{display:flex;flex-direction:column;gap:5px}.gp-full{grid-column:1 / -1}.gp-form-group label{font-size:.71rem;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted, #64748b)}.gp-form-group input,.gp-form-group select{padding:.65rem 1rem;border:1.5px solid var(--border-color, #e2e8f0);border-radius:11px;font-size:.89rem;outline:none;font-family:inherit;background:var(--bg-card, #fff);color:var(--text-body, #334155);transition:border-color .2s,box-shadow .2s}.gp-form-group input:focus,.gp-form-group select:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.gp-grade-preview{background:linear-gradient(135deg,#f5f3ff,#ede9fe);border:1.5px dashed #c4b5fd;border-radius:12px;padding:12px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:60px;justify-content:center}.gp-grade-big{font-size:2rem;font-weight:900;line-height:1}.gp-grade-pct{font-size:.8rem;font-weight:700;color:var(--text-muted, #64748b)}.gp-scale-strip{display:flex;gap:6px;flex-wrap:wrap;padding:10px 14px;background:var(--bg-hover, #f8fafc);border-radius:10px;border:1px solid var(--border-color, #e2e8f0)}.gp-scale-item{display:flex;align-items:center;gap:4px;font-size:.7rem;font-weight:700;color:var(--text-muted, #64748b)}.gp-scale-pill{padding:.12rem .4rem;border-radius:6px;color:#fff;font-size:.68rem;font-weight:800}.gp-modal-error{background:#ef44441f;border:1px solid rgba(239,68,68,.35);color:#ef4444;border-radius:8px;padding:8px 12px;font-size:13px}.gp-modal-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:18px;border-top:1px solid var(--border-color, #e2e8f0);margin-top:4px}.gp-bulk-config{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}.gp-bulk-config .gp-form-group{display:flex;flex-direction:column;gap:5px}.gp-bulk-config label{font-size:.71rem;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted, #64748b)}.gp-bulk-config input,.gp-bulk-config select{padding:.6rem .9rem;border:1.5px solid var(--border-color, #e2e8f0);border-radius:10px;font-size:.87rem;outline:none;font-family:inherit;background:var(--bg-card, #fff);color:var(--text-body, #334155);transition:border-color .2s,box-shadow .2s}.gp-bulk-config input:focus,.gp-bulk-config select:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.gp-bulk-summary{display:flex;gap:20px;padding:10px 16px;background:var(--bg-hover, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:12px;margin-bottom:12px;flex-wrap:wrap}.gp-bulk-summary>div{display:flex;flex-direction:column;gap:2px}.gp-bulk-summary span{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted, #64748b)}.gp-bulk-summary strong{font-size:.95rem;font-weight:800;color:var(--text-heading, #0f172a)}.gp-bulk-table-wrap{border:1px solid var(--border-color, #e2e8f0);border-radius:12px;overflow:hidden;max-height:42vh;overflow-y:auto;margin-bottom:12px}.gp-bulk-score-input{width:80px;padding:.38rem .55rem;border:1.5px solid var(--border-color, #e2e8f0);border-radius:9px;font-size:.87rem;font-weight:700;text-align:center;outline:none;font-family:inherit;background:var(--bg-card, #fff);color:var(--text-body, #334155);transition:border-color .2s,box-shadow .2s}.gp-bulk-score-input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.gp-bulk-score-input.sc-a{border-color:#059669!important;background:#f0fdf4}.gp-bulk-score-input.sc-b{border-color:#0ea5e9!important;background:#f0f9ff}.gp-bulk-score-input.sc-c{border-color:#f59e0b!important;background:#fffbeb}.gp-bulk-score-input.sc-f{border-color:#ef4444!important;background:#fef2f2}.gp-toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.gp-toast{display:flex;align-items:center;gap:10px;background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:13px;padding:12px 18px;box-shadow:0 8px 24px #0f172a1f;font-size:.85rem;font-weight:600;color:var(--text-body, #334155);animation:gp-toast-in .35s cubic-bezier(.175,.885,.32,1.275) both;min-width:240px}@keyframes gp-toast-in{0%{opacity:0;transform:translate(40px)}}.gp-toast-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:#4f46e5}.gp-toast--success .gp-toast-dot{background:#059669}.gp-toast--error .gp-toast-dot{background:#ef4444}@media(max-width:900px){.gp-stats-row{grid-template-columns:repeat(2,1fr)}.gp-bulk-config{grid-template-columns:1fr 1fr}}@media(max-width:600px){.gp-header{flex-direction:column;align-items:flex-start;gap:14px}.gp-stats-row{grid-template-columns:1fr 1fr}.gp-form-grid,.gp-bulk-config{grid-template-columns:1fr}.gp-filter-bar{flex-direction:column;align-items:stretch}}body.dark-mode .gp-stat-tile,body.dark-mode .gp-card,body.dark-mode .gp-summary-card,body.dark-mode .gp-modal,body.dark-mode .gp-toast{background:var(--bg-card);border-color:var(--border-color)}.ap-root{display:flex;flex-direction:column;gap:20px;font-family:inherit;position:relative}.ap-warning-banner{display:flex;align-items:center;gap:10px;padding:14px 18px;background:#fff7ed;border:1.5px solid #fed7aa;border-radius:12px;color:#c2410c;font-size:13px;font-weight:600}.ap-warning-banner strong{font-weight:800}.ap-header{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,#4f46e5,#7c3aed 55%,#a855f7);border-radius:16px;padding:24px 28px;color:#fff}.ap-header-icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:#ffffff2e;border-radius:14px;flex-shrink:0}.ap-header-title{margin:0;font-size:22px;font-weight:800;color:#fff;letter-spacing:-.3px}.ap-header-sub{margin:5px 0 0;font-size:13px;opacity:.82}.ap-stats-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}.ap-stat-tile{display:flex;align-items:flex-start;gap:14px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;padding:18px;position:relative;overflow:hidden;transition:var(--transition, box-shadow .2s)}.ap-stat-tile:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:14px 14px 0 0}.ap-stat-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;color:#fff;flex-shrink:0}.ap-stat-body{display:flex;flex-direction:column;gap:2px}.ap-stat-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted)}.ap-stat-value{font-size:26px;font-weight:900;color:var(--text-heading);line-height:1.1}.ap-stat-sub{font-size:11px;color:var(--text-muted)}.ap-stat-tile--indigo:before{background:linear-gradient(90deg,#4f46e5,#818cf8)}.ap-stat-tile--indigo .ap-stat-icon{background:linear-gradient(135deg,#4f46e5,#818cf8)}.ap-stat-tile--violet:before{background:linear-gradient(90deg,#7c3aed,#a78bfa)}.ap-stat-tile--violet .ap-stat-icon{background:linear-gradient(135deg,#7c3aed,#a78bfa)}.ap-stat-tile--emerald:before{background:linear-gradient(90deg,#059669,#34d399)}.ap-stat-tile--emerald .ap-stat-icon{background:linear-gradient(135deg,#059669,#34d399)}.ap-stat-tile--amber:before{background:linear-gradient(90deg,#d97706,#fbbf24)}.ap-stat-tile--amber .ap-stat-icon{background:linear-gradient(135deg,#d97706,#fbbf24)}.ap-stat-tile--rose:before{background:linear-gradient(90deg,#e11d48,#fb7185)}.ap-stat-tile--rose .ap-stat-icon{background:linear-gradient(135deg,#e11d48,#fb7185)}.ap-quick-dates{display:flex;align-items:center;gap:6px;padding:12px 20px;border-bottom:1px solid var(--border-color);flex-wrap:wrap}.ap-quick-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-right:2px}.ap-quick-btn{padding:4px 12px;border:1.5px solid var(--border-color);border-radius:99px;background:transparent;font-size:12px;font-weight:700;color:var(--text-muted);cursor:pointer;transition:all .15s;font-family:inherit}.ap-quick-btn:hover{border-color:var(--primary);color:var(--primary)}.ap-quick-btn--active{background:var(--primary);border-color:var(--primary);color:#fff}.ap-tab-bar{display:flex;gap:4px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:5px}.ap-tab{flex:1;padding:9px 16px;border:none;background:transparent;border-radius:9px;font-size:13px;font-weight:700;color:var(--text-muted);cursor:pointer;transition:all .18s ease;white-space:nowrap}.ap-tab--active{background:var(--primary);color:#fff}.ap-tab--alert{position:relative}.ap-tab--alert:not(.ap-tab--active){color:#e11d48}.ap-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;overflow:hidden}.ap-filter-bar{display:flex;gap:10px;padding:16px 20px;border-bottom:1px solid var(--border-color);flex-wrap:wrap;align-items:center}.ap-select{height:36px;padding:0 10px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-main);color:var(--text-body);font-size:13px;cursor:pointer;outline:none}.ap-select--full{width:100%;box-sizing:border-box}.ap-input{height:36px;padding:0 10px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-main);color:var(--text-body);font-size:13px;outline:none;transition:border-color .15s}.ap-input:focus{border-color:var(--primary)}.ap-input--full{width:100%;box-sizing:border-box}.ap-input--search{min-width:150px}.ap-input--remarks{width:100%;max-width:200px;box-sizing:border-box}.ap-table-scroll{overflow-x:auto}.ap-table{width:100%;border-collapse:collapse;font-size:13px}.ap-table th{padding:10px 14px;text-align:left;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg-main);border-bottom:1px solid var(--border-color);white-space:nowrap}.ap-row{border-bottom:1px solid var(--border-color);transition:background .1s}.ap-row:hover{background:var(--bg-hover, rgba(0,0,0,.025))}.ap-row:last-child{border-bottom:none}.ap-table td{padding:10px 14px;vertical-align:middle}.ap-cell-date{font-size:12px;font-weight:700;color:var(--text-muted);white-space:nowrap}.ap-cell-name{font-weight:700;color:var(--text-heading)}.ap-cell-subject{color:var(--text-body)}.ap-cell-code{font-size:12px;font-weight:700;color:var(--text-muted);font-family:Courier New,monospace}.ap-cell-remarks{font-size:12px;color:var(--text-muted);max-width:200px}.ap-cell-center{text-align:center}.ap-cell-num{width:40px;text-align:center;color:var(--text-muted);font-size:12px}.ap-muted{color:var(--text-muted)}.ap-count-present{color:#059669;font-weight:700}.ap-count-absent{color:#e11d48;font-weight:700}.ap-count-late{color:#d97706;font-weight:700}.ap-count-excused{color:#2563eb;font-weight:700}.ap-empty{padding:48px 20px;text-align:center;color:var(--text-muted);font-size:14px}.ap-count{padding:0;font-size:12px;color:var(--text-muted);margin:0}.ap-table-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;border-top:1px solid var(--border-color);flex-wrap:wrap}.ap-pagination{display:flex;align-items:center;gap:6px}.ap-page-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-color);border-radius:7px;background:transparent;cursor:pointer;color:var(--text-muted);transition:all .15s}.ap-page-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.ap-page-btn:disabled{opacity:.35;cursor:not-allowed}.ap-page-info{font-size:12px;font-weight:700;color:var(--text-muted);white-space:nowrap}.ap-row-actions{display:flex;gap:6px}.ap-row-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-color);border-radius:7px;background:transparent;cursor:pointer;transition:all .15s}.ap-row-btn--edit{color:var(--primary)}.ap-row-btn--edit:hover{background:#eff6ff;border-color:var(--primary)}.ap-row-btn--del{color:#e11d48}.ap-row-btn--del:hover{background:#fff1f2;border-color:#e11d48}.ap-status-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:700;white-space:nowrap}.ap-status-dot{width:6px;height:6px;border-radius:50%}.ap-rate-badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:800}.ap-btn{height:36px;padding:0 16px;border:1px solid var(--border-color);border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;transition:all .15s;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;font-family:inherit}.ap-btn--primary{background:var(--primary);color:#fff;border-color:var(--primary)}.ap-btn--primary:hover:not(:disabled){opacity:.88}.ap-btn--primary:disabled{opacity:.5;cursor:not-allowed}.ap-btn--ghost{background:transparent;color:var(--text-muted)}.ap-btn--ghost:hover{background:var(--bg-hover, rgba(0,0,0,.04))}.ap-btn--danger{background:#fff1f2;color:#e11d48;border-color:#fecdd3}.ap-btn--danger:hover{background:#ffe4e6;border-color:#e11d48}.ap-btn--lg{height:42px;padding:0 20px;font-size:14px}.ap-mark-config{padding:20px 20px 18px;border-bottom:1px solid var(--border-color)}.ap-mark-config-title{margin:0 0 14px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted)}.ap-mark-config-row{display:grid;grid-template-columns:1fr 160px 160px auto;gap:12px;align-items:end}.ap-field{display:flex;flex-direction:column;gap:6px}.ap-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.ap-mark-overwrite-warn{display:flex;align-items:center;gap:10px;padding:12px 20px;background:#fffbeb;border-bottom:1px solid #fde68a;color:#92400e;font-size:13px}.ap-mark-session-actions{display:flex;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}.ap-mark-session-hint{font-size:12px;color:var(--text-muted)}.ap-mark-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border-color);gap:12px;flex-wrap:wrap;background:var(--bg-main)}.ap-mark-toolbar-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ap-mark-search-wrap{position:relative;display:flex;align-items:center}.ap-mark-search-icon{position:absolute;left:9px;color:var(--text-muted);pointer-events:none}.ap-mark-search{padding-left:28px!important;width:180px}.ap-mark-all-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.ap-mark-count{font-size:13px;font-weight:700;color:var(--text-muted)}.ap-mark-all-btns{display:flex;gap:6px;flex-wrap:wrap}.ap-mark-all-btn{padding:5px 13px;border:1.5px solid;border-radius:8px;background:transparent;font-size:12px;font-weight:700;cursor:pointer;transition:opacity .15s;font-family:inherit}.ap-mark-all-btn:hover{opacity:.72}.ap-status-radios{display:flex;gap:5px}.ap-status-radio{min-width:40px;height:32px;padding:0 7px;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--border-color);border-radius:8px;font-size:11px;font-weight:700;cursor:pointer;transition:all .12s;color:var(--text-muted);-webkit-user-select:none;user-select:none;white-space:nowrap}.ap-status-radio--active{font-weight:900}.ap-already-marked{margin-left:8px;font-size:11px;font-weight:700;color:#059669;background:#ecfdf5;padding:1px 6px;border-radius:5px}.ap-mark-submit-row{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-top:1px solid var(--border-color);gap:12px;flex-wrap:wrap}.ap-mark-summary{display:flex;gap:18px;flex-wrap:wrap}.ap-mark-summary-item{font-size:13px;font-weight:800}.ap-table--mark .ap-row td{padding:8px 14px}.ap-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000075;z-index:9000;display:flex;align-items:center;justify-content:center;padding:20px}.ap-modal{background:var(--bg-card);border-radius:18px;padding:28px;width:420px;max-width:100%;box-shadow:0 24px 80px #00000040}.ap-modal-title{margin:0 0 6px;font-size:18px;font-weight:800;color:var(--text-heading)}.ap-modal-sub{margin:0 0 24px;font-size:13px;color:var(--text-muted)}.ap-modal-field{margin-bottom:18px}.ap-modal-statuses{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.ap-modal-status-btn{padding:8px 16px;border:1.5px solid var(--border-color);border-radius:10px;background:transparent;font-size:13px;font-weight:700;color:var(--text-muted);cursor:pointer;transition:all .15s;font-family:inherit}.ap-modal-status-btn--active{font-weight:800}.ap-modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.ap-toast{position:fixed;bottom:28px;right:28px;padding:12px 22px;border-radius:12px;font-size:14px;font-weight:700;z-index:9999;box-shadow:0 8px 24px #00000026;animation:apToastIn .22s ease;pointer-events:none}.ap-toast--success{background:#059669;color:#fff}.ap-toast--error{background:#e11d48;color:#fff}@keyframes apToastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.ap-mark-config-row{grid-template-columns:1fr 1fr}.ap-mark-search{width:140px}}@media(max-width:600px){.ap-filter-bar{flex-direction:column;align-items:stretch}.ap-mark-config-row{grid-template-columns:1fr}.ap-tab{padding:8px 10px;font-size:12px}.ap-mark-search{width:120px}.ap-atrisk-hint{display:none}}.ap-subject-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:20px}.ap-subject-card{background:var(--bg-main);border:1px solid var(--border-color);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .15s}.ap-subject-card--warn{border-color:#fed7aa;background:#fffaf5}.ap-subject-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.ap-subject-card-name{display:block;font-size:14px;font-weight:800;color:var(--text-heading);line-height:1.3}.ap-subject-card-code{display:inline-block;margin-top:4px;font-size:11px;font-weight:700;color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border-color);border-radius:5px;padding:1px 7px;font-family:Courier New,monospace}.ap-rate-bar-wrap{position:relative}.ap-rate-bar{position:relative;height:8px;background:var(--border-color);border-radius:99px;overflow:hidden}.ap-rate-bar-fill{height:100%;border-radius:99px;transition:width .4s ease}.ap-rate-bar-threshold{position:absolute;top:-2px;bottom:-2px;left:75%;width:2px;background:#f97316;border-radius:2px}.ap-subject-card-counts{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;font-weight:700}.ap-subject-card-warn-msg{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#c2410c;background:#fff7ed;border-radius:8px;padding:7px 10px}.ap-row--atrisk{background:#fff8f8}.ap-row--atrisk:hover{background:#fff1f2}.ap-atrisk-badge{display:inline-block;margin-left:8px;padding:1px 6px;border-radius:5px;font-size:10px;font-weight:800;background:#fff1f2;color:#e11d48;vertical-align:middle}.ap-atrisk-load{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:60px 20px;text-align:center}.ap-atrisk-icon{color:var(--text-muted)}.ap-atrisk-load p{max-width:380px;font-size:14px;color:var(--text-muted);line-height:1.55;margin:0}.ap-atrisk-all-ok{display:flex;flex-direction:column;align-items:center;gap:10px;padding:60px 20px;text-align:center}.ap-atrisk-all-ok strong{font-size:16px;font-weight:800;color:var(--text-heading)}.ap-atrisk-all-ok span{font-size:13px;color:var(--text-muted)}.ap-atrisk-summary-bar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--border-color);background:#fff8f8;font-size:13px}.ap-atrisk-summary-bar strong{color:#e11d48}.ap-atrisk-hint{font-size:12px;color:var(--text-muted);margin-left:auto}body.dark-mode .ap-warning-banner{background:#c2410c26;border-color:#fed7aa40;color:#fdba74}body.dark-mode .ap-mark-overwrite-warn{background:#92400e26;border-color:#fde68a33;color:#fcd34d}body.dark-mode .ap-atrisk-summary-bar{background:#e11d481f}body.dark-mode .ap-row--atrisk{background:#e11d4814}body.dark-mode .ap-row--atrisk:hover{background:#e11d4824}body.dark-mode .ap-subject-card--warn{background:#c2410c1a;border-color:#fed7aa33}body.dark-mode .ap-already-marked{background:#05966933;color:#6ee7b7}body.dark-mode .ap-row-btn--edit:hover{background:#4f46e526}body.dark-mode .ap-row-btn--del:hover{background:#e11d4826}.at-panel{display:flex;flex-direction:column;gap:20px}.at-header{background:linear-gradient(135deg,#0f766e,#0891b2 60%,#0284c7);border-radius:16px;padding:24px 28px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.at-header-left h2{font-size:1.35rem;font-weight:800;margin-bottom:2px}.at-header-left p{opacity:.8;font-size:.85rem;margin:0}.at-header-stats{display:flex;gap:24px;flex-wrap:wrap}.at-hstat{text-align:center}.at-hstat-val{display:block;font-size:1.6rem;font-weight:800;line-height:1}.at-hstat-label{display:block;font-size:.72rem;opacity:.75;margin-top:2px;text-transform:uppercase;letter-spacing:.5px}.at-tab-bar{display:flex;gap:4px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:4px;width:fit-content}.at-tab{padding:8px 18px;border:none;border-radius:8px;background:transparent;color:var(--text-muted);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:inherit;white-space:nowrap;display:flex;align-items:center;gap:6px}.at-tab:hover{background:var(--bg-main);color:var(--text-heading)}.at-tab.active{background:#0f766e;color:#fff}.at-tab-badge{background:#ffffff40;color:inherit;font-size:.7rem;font-weight:700;padding:1px 6px;border-radius:99px;min-width:18px;text-align:center}.at-tab:not(.active) .at-tab-badge{background:var(--border-color);color:var(--text-muted)}.at-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;overflow:hidden}.at-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-color);flex-wrap:wrap}.at-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.at-toolbar-right{display:flex;align-items:center;gap:8px}.at-search{padding:8px 12px;border:1.5px solid var(--border-color);border-radius:9px;font-size:.85rem;background:var(--bg-main);color:var(--text-heading);font-family:inherit;width:220px;outline:none;transition:border-color .2s}.at-search:focus{border-color:#0891b2}.at-select{padding:8px 12px;border:1.5px solid var(--border-color);border-radius:9px;font-size:.85rem;background:var(--bg-main);color:var(--text-heading);font-family:inherit;cursor:pointer;outline:none;min-width:180px}.at-select:focus{border-color:#0891b2}.at-btn-primary{display:flex;align-items:center;gap:6px;padding:8px 16px;background:linear-gradient(135deg,#0f766e,#0891b2);color:#fff;border:none;border-radius:9px;font-size:.85rem;font-weight:600;cursor:pointer;font-family:inherit;transition:opacity .2s,transform .15s;white-space:nowrap}.at-btn-primary:hover{opacity:.9;transform:translateY(-1px)}.at-btn-ghost{display:flex;align-items:center;gap:5px;padding:6px 12px;background:transparent;border:1.5px solid var(--border-color);border-radius:8px;color:var(--text-muted);font-size:.82rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s}.at-btn-ghost:hover{border-color:#0891b2;color:#0891b2}.at-btn-danger{display:flex;align-items:center;gap:5px;padding:6px 12px;background:#fee2e2;color:#b91c1c;border:none;border-radius:8px;font-size:.82rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s}.at-btn-danger:hover{background:#b91c1c;color:#fff}.at-terms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:20px}.at-term-card{background:var(--bg-main);border:1.5px solid var(--border-color);border-radius:12px;padding:20px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}.at-term-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#0f766e,#0891b2);opacity:0;transition:opacity .2s}.at-term-card:hover{border-color:#0891b2;box-shadow:0 4px 16px #0891b21f}.at-term-card:hover:before{opacity:1}.at-term-card.at-term-selected{border-color:#0891b2;box-shadow:0 4px 20px #0891b22e}.at-term-card.at-term-selected:before{opacity:1}.at-term-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:14px}.at-term-card-title{font-size:1.05rem;font-weight:700;color:var(--text-heading);line-height:1.2}.at-term-card-year{font-size:.82rem;color:var(--text-muted);margin-top:2px}.at-term-status{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:99px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;flex-shrink:0}.at-term-status.active{background:#d1fae5;color:#065f46}.at-term-status.completed{background:#e0e7ff;color:#3730a3}.at-term-card-stats{display:flex;gap:16px;margin-bottom:16px}.at-tcs{text-align:center}.at-tcs-val{display:block;font-size:1.3rem;font-weight:800;color:var(--text-heading)}.at-tcs-label{display:block;font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.at-term-card-actions{display:flex;gap:6px;flex-wrap:wrap}.at-tca{flex:1;padding:6px 10px;border:1.5px solid var(--border-color);border-radius:8px;background:transparent;color:var(--text-muted);font-size:.78rem;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s;text-align:center;white-space:nowrap}.at-tca:hover{border-color:#0891b2;color:#0891b2}.at-tca.complete:hover{border-color:#7c3aed;color:#7c3aed}.at-tca.reactivate:hover{border-color:#059669;color:#059669}.at-tca.delete:hover{border-color:#dc2626;color:#dc2626}.at-empty{padding:60px 20px;text-align:center;color:var(--text-muted)}.at-empty-icon{margin-bottom:12px;opacity:.35}.at-empty h3{font-size:1rem;font-weight:700;color:var(--text-heading);margin-bottom:6px}.at-empty p{font-size:.85rem}.at-table-wrap{overflow-x:auto}.at-table{width:100%;border-collapse:collapse;font-size:.855rem}.at-table th{padding:10px 16px;text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg-main);border-bottom:1px solid var(--border-color);white-space:nowrap}.at-table td{padding:12px 16px;border-bottom:1px solid var(--border-color);vertical-align:middle;color:var(--text-heading)}.at-table tr:last-child td{border-bottom:none}.at-table tr:hover td{background:var(--bg-main)}.at-course-name{font-weight:600;color:var(--text-heading)}.at-course-code{display:inline-block;background:#eff6ff;color:#1d4ed8;padding:1px 7px;border-radius:5px;font-size:.72rem;font-weight:700;margin-top:2px}.at-prof-name{font-weight:600}.at-prof-pos{font-size:.78rem;color:var(--text-muted)}.at-assign-status{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:99px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px}.at-assign-status.active{background:#d1fae5;color:#065f46}.at-assign-status.completed{background:#e0e7ff;color:#3730a3}.at-assign-status.dropped{background:#fee2e2;color:#b91c1c}.at-actions{display:flex;align-items:center;gap:6px}.at-act-btn{width:30px;height:30px;border:none;border-radius:7px;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;transition:all .15s}.at-act-btn.complete{background:#ede9fe;color:#6d28d9}.at-act-btn.complete:hover{background:#6d28d9;color:#fff}.at-act-btn.drop{background:#fff7ed;color:#c2410c}.at-act-btn.drop:hover{background:#c2410c;color:#fff}.at-act-btn.remove{background:#fee2e2;color:#b91c1c}.at-act-btn.remove:hover{background:#b91c1c;color:#fff}.at-act-btn.reactivate{background:#d1fae5;color:#065f46}.at-act-btn.reactivate:hover{background:#065f46;color:#fff}.at-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.at-modal{background:var(--bg-card);border-radius:16px;padding:28px;width:100%;max-width:440px;box-shadow:0 20px 60px #00000040}.at-modal h3{font-size:1.1rem;font-weight:800;color:var(--text-heading);margin-bottom:20px}.at-field{margin-bottom:16px}.at-field label{display:block;font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px}.at-field input,.at-field select{width:100%;padding:9px 12px;border:1.5px solid var(--border-color);border-radius:9px;font-size:.9rem;font-family:inherit;background:var(--bg-main);color:var(--text-heading);outline:none;transition:border-color .2s;box-sizing:border-box}.at-field input:focus,.at-field select:focus{border-color:#0891b2}.at-modal-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.at-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.at-modal-cancel{padding:9px 18px;border:1.5px solid var(--border-color);border-radius:9px;background:transparent;color:var(--text-muted);font-size:.875rem;font-weight:600;cursor:pointer;font-family:inherit}.at-modal-cancel:hover{border-color:var(--text-muted);color:var(--text-heading)}.at-modal-submit{padding:9px 20px;background:linear-gradient(135deg,#0f766e,#0891b2);color:#fff;border:none;border-radius:9px;font-size:.875rem;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .2s}.at-modal-submit:hover{opacity:.88}.at-modal-submit:disabled{opacity:.5;cursor:not-allowed}.at-err{color:#dc2626;font-size:.82rem;margin-top:12px;font-weight:500}.at-toast{position:fixed;bottom:24px;right:24px;background:#1e293b;color:#f1f5f9;padding:12px 18px;border-radius:10px;font-size:.875rem;font-weight:500;box-shadow:0 8px 24px #00000040;z-index:2000;animation:at-toast-in .25s ease}.at-toast.success{background:#065f46}.at-toast.error{background:#991b1b}@keyframes at-toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.at-skeleton{background:linear-gradient(90deg,var(--bg-main) 25%,var(--border-color) 50%,var(--bg-main) 75%);background-size:200% 100%;animation:at-shimmer 1.4s infinite;border-radius:6px;height:16px}@keyframes at-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.at-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:at-spin .6s linear infinite;display:inline-block}@keyframes at-spin{to{transform:rotate(360deg)}}.at-profile-error{display:flex;align-items:flex-start;gap:14px;padding:16px 20px;margin-bottom:20px;background:#ef444414;border:1.5px solid rgba(239,68,68,.3);border-radius:12px;color:var(--text-heading)}.at-profile-error-icon{font-size:20px;line-height:1;color:#ef4444;flex-shrink:0;margin-top:1px}.at-profile-error strong{display:block;font-size:14px;font-weight:700;color:#b91c1c;margin-bottom:4px}.at-profile-error p{margin:0;font-size:13px;color:var(--text-body);line-height:1.5}body.dark-mode .at-profile-error{background:#ef44441f;border-color:#ef444459}body.dark-mode .at-profile-error strong{color:#fca5a5}.at-term-card-headline{display:flex;align-items:flex-start;gap:8px;min-width:0}.at-term-grip{display:inline-flex;align-items:center;justify-content:center;margin:-2px -2px 0 -4px;color:var(--text-muted);opacity:.55;cursor:grab;border-radius:6px;flex-shrink:0;transition:opacity .15s,color .15s,background .15s}.at-term-grip:hover{opacity:1;color:#0891b2;background:var(--bg-card)}.at-term-grip:active{cursor:grabbing}.at-term-card.at-term-dragging{border-color:#0891b2;box-shadow:0 12px 32px #0891b247;cursor:grabbing}.at-term-card.at-term-dragging:before{opacity:1}.at-reorder-hint{display:inline-flex;align-items:center;gap:3px;margin-right:10px;padding-right:10px;border-right:1px solid var(--border-color);opacity:.8}.cr-root{display:flex;flex-direction:column;gap:18px}.cr-header{display:flex;justify-content:space-between;gap:20px;padding:24px 28px;border-radius:8px;color:#fff;background:linear-gradient(135deg,#0f766e,#2563eb 58%,#7c3aed);box-shadow:0 14px 32px #2563eb38}.cr-header span{display:block;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;opacity:.82}.cr-header h2{margin:4px 0 5px;font-size:28px;letter-spacing:0}.cr-header p{margin:0;max-width:680px;color:#ffffffd1}.cr-header-icon{width:58px;height:58px;border-radius:8px;display:grid;place-items:center;background:#ffffff29;border:1px solid rgba(255,255,255,.25);flex:0 0 auto}.cr-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.cr-stats>div,.cr-selector,.cr-assignment-flow,.cr-current,.cr-toolbar,.cr-empty{background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;box-shadow:var(--shadow-sm, 0 1px 4px rgba(0,0,0,.06))}.cr-stats>div{padding:16px 18px}.cr-stats span{display:block;color:var(--text-muted, #64748b);font-size:12px;font-weight:800;text-transform:uppercase}.cr-stats strong{display:block;margin-top:6px;color:var(--text-heading, #0f172a);font-size:28px}.cr-stat-text{overflow:hidden;font-size:20px!important;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.cr-selector{padding:14px}.cr-selector label,.cr-assignment-flow label{display:grid;gap:7px}.cr-selector span,.cr-assignment-flow span{color:var(--text-muted, #64748b);font-size:12px;font-weight:800;text-transform:uppercase}.cr-selector select,.cr-assignment-flow select,.cr-assignment-flow input{width:100%;min-height:42px;padding:0 12px;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;background:var(--bg-input, #fff);color:var(--text-body, #334155);font:inherit}.cr-assignment-flow{display:grid;grid-template-columns:minmax(180px,1fr) minmax(260px,1.5fr) minmax(150px,.8fr) auto;gap:12px;align-items:end;padding:14px}.cr-assignment-flow input:disabled{color:var(--text-muted, #64748b);background:var(--bg-hover, #f1f5f9)}.cr-assign-main{min-height:42px;white-space:nowrap}.cr-alert{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:8px;font-weight:700}.cr-alert--success{background:#dcfce7;color:#166534}.cr-alert--error{background:#fee2e2;color:#991b1b}.cr-toolbar{display:flex;gap:12px;padding:12px;align-items:center}.cr-search{flex:1;min-width:0;display:flex;align-items:center;gap:9px;padding:0 12px;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;background:var(--bg-input, #fff);color:var(--text-muted, #64748b)}.cr-search input{width:100%;border:0;outline:0;padding:11px 0;background:transparent;color:var(--text-body, #334155);font:inherit}.cr-current{padding:16px}.cr-current h3{margin:0 0 10px;color:var(--text-heading, #0f172a);font-size:16px}.cr-current-list{display:flex;flex-wrap:wrap;gap:8px}.cr-current-list span{padding:7px 10px;border-radius:999px;color:#075985;background:#e0f2fe;font-size:13px;font-weight:700}.cr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}.cr-card{display:flex;flex-direction:column;min-height:276px;padding:18px;border-radius:8px;background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);box-shadow:var(--shadow-sm, 0 1px 4px rgba(0,0,0,.06))}.cr-card--registered{border-color:#22c55e;box-shadow:0 10px 26px #22c55e24}.cr-card-top,.cr-meta,.cr-card-actions{display:flex;align-items:center}.cr-card-top{justify-content:space-between;gap:10px}.cr-code{padding:6px 9px;border-radius:8px;color:#1d4ed8;background:#dbeafe;font-size:12px;font-weight:900}.cr-status{padding:5px 8px;border-radius:999px;font-size:11px;font-weight:900;text-transform:uppercase}.cr-status--registered{background:#dcfce7;color:#166534}.cr-status--open{background:#ecfeff;color:#0e7490}.cr-status--full{background:#fee2e2;color:#991b1b}.cr-card h3{margin:14px 0 6px;color:var(--text-heading, #0f172a);font-size:18px;line-height:1.25}.cr-card p{margin:0;color:var(--text-muted, #64748b);font-size:14px}.cr-meta{flex-wrap:wrap;gap:8px;margin-top:14px}.cr-meta span{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border-radius:8px;background:var(--bg-hover, #f1f5f9);color:var(--text-body, #334155);font-size:12px;font-weight:700}.cr-submeta{margin-top:10px;color:var(--text-muted, #64748b);font-size:13px}.cr-capacity{margin-top:auto;padding-top:16px}.cr-capacity div{height:8px;overflow:hidden;border-radius:999px;background:#e2e8f0}.cr-capacity div span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0f766e,#2563eb)}.cr-capacity small{display:block;margin-top:6px;color:var(--text-muted, #64748b);font-size:12px;font-weight:700}.cr-card-actions{justify-content:flex-end;margin-top:14px}.cr-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 14px;border-radius:8px;border:0;cursor:pointer;font:inherit;font-size:13px;font-weight:800}.cr-btn:disabled{cursor:not-allowed;opacity:.55}.cr-btn--primary{color:#fff;background:#2563eb}.cr-btn--drop{color:#991b1b;background:#fee2e2}.cr-btn--ghost{color:var(--text-body, #334155);background:var(--bg-hover, #f1f5f9);border:1px solid var(--border-color, #e2e8f0)}.cr-readonly-note{padding:8px 10px;border-radius:8px;color:var(--text-muted, #64748b);background:var(--bg-hover, #f1f5f9);font-size:12px;font-weight:800}.cr-empty{padding:36px;text-align:center;color:var(--text-muted, #64748b);font-weight:700}.cr-change-password{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.cr-pw-header{display:flex;align-items:flex-start;gap:14px;padding:22px 24px 18px;border-bottom:1px solid var(--border-color)}.cr-pw-header-icon{flex-shrink:0;width:40px;height:40px;border-radius:10px;background:var(--primary-light, #e0e7ff);color:var(--primary, #2563eb);display:flex;align-items:center;justify-content:center}.cr-pw-header h3{margin:0 0 4px;font-size:16px;font-weight:700;color:var(--text-heading)}.cr-pw-header p{margin:0;font-size:13px;color:var(--text-muted, #64748b);line-height:1.5}.cr-pw-form{display:flex;flex-direction:column;gap:16px;padding:22px 24px 24px}.cr-pw-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.cr-pw-field{display:flex;flex-direction:column;gap:6px}.cr-pw-field label{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted, #64748b)}.cr-pw-input-wrap{position:relative;display:flex;align-items:center}.cr-pw-input-wrap input{width:100%;padding:10px 40px 10px 12px;border:1px solid var(--border-color);border-radius:8px;font-size:13.5px;background:var(--bg-card);color:var(--text-heading);outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.cr-pw-input-wrap input:focus{border-color:var(--primary, #2563eb);box-shadow:0 0 0 3px var(--primary-light, #e0e7ff)}.cr-pw-eye{position:absolute;right:10px;background:none;border:none;cursor:pointer;font-size:14px;line-height:1;padding:2px;color:var(--text-muted);display:flex;align-items:center;opacity:.7}.cr-pw-eye:hover{opacity:1}.cr-pw-message{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:8px;font-size:13.5px;font-weight:600}.cr-pw-message--success{background:#0596691a;color:#065f46;border:1px solid rgba(5,150,105,.2)}.cr-pw-message--error{background:#ef444414;color:#991b1b;border:1px solid rgba(239,68,68,.18)}body.dark-mode .cr-pw-message--success{color:#6ee7b7;background:#0596692e}body.dark-mode .cr-pw-message--error{color:#fca5a5;background:#ef444426}.cr-pw-actions{display:flex;justify-content:flex-end}.cr-pw-submit{min-width:160px}.cr-pw-logout{background:#059669;min-width:200px}.cr-pw-logout:hover{background:#047857}@media(max-width:760px){.cr-pw-row{grid-template-columns:1fr}.cr-header,.cr-toolbar,.cr-assignment-flow{flex-direction:column;align-items:stretch}.cr-assignment-flow{display:flex}.cr-stats{grid-template-columns:1fr}}.cop-root{display:flex;flex-direction:column;gap:20px;padding:24px;max-width:1100px}.cop-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.cop-eyebrow{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted, #6b7280)}.cop-header h2{margin:4px 0 6px;font-size:22px;font-weight:700;color:var(--text-primary, #111)}.cop-header p{font-size:13px;color:var(--text-secondary, #555);max-width:560px}.cop-header-icon{color:var(--accent, #2563eb);opacity:.7;flex-shrink:0;padding-top:4px}.cop-terms{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.cop-term-tab{padding:6px 14px;border-radius:20px;border:1px solid var(--border, #d1d5db);background:var(--bg-secondary, #f3f4f6);font-size:13px;font-weight:500;color:var(--text-secondary, #555);cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .15s}.cop-term-tab:hover{border-color:var(--accent, #2563eb);color:var(--accent, #2563eb)}.cop-term-tab--active{background:var(--accent, #2563eb);border-color:var(--accent, #2563eb);color:#fff}.cop-term-badge{font-size:10px;font-weight:700;background:#ffffff40;border-radius:8px;padding:1px 6px;letter-spacing:.04em}.cop-term-tab--active .cop-term-badge{background:#ffffff4d;color:#fff}.cop-toolbar{display:flex;align-items:center;justify-content:space-between}.cop-count{font-size:13px;color:var(--text-muted, #6b7280);font-weight:500}.cop-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:7px;font-size:13px;font-weight:600;border:none;cursor:pointer;transition:all .15s}.cop-btn--primary{background:var(--accent, #2563eb);color:#fff}.cop-btn--primary:hover:not(:disabled){opacity:.88}.cop-btn--primary:disabled{opacity:.5;cursor:not-allowed}.cop-btn--ghost{background:transparent;color:var(--text-secondary, #555);border:1px solid var(--border, #d1d5db)}.cop-btn--ghost:hover{background:var(--bg-secondary, #f3f4f6)}.cop-alert{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:8px;font-size:13px;font-weight:500}.cop-alert--success{background:#f0fdf4;color:#166534}.cop-alert--error{background:#fef2f2;color:#991b1b}.cop-form{background:var(--bg-secondary, #f9fafb);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:20px 24px;display:flex;flex-direction:column;gap:16px}.cop-form-title{font-weight:700;font-size:15px;color:var(--text-primary, #111)}.cop-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.cop-form-field{display:flex;flex-direction:column;gap:5px}.cop-form-field span{font-size:12px;font-weight:600;color:var(--text-secondary, #555)}.cop-form-field select,.cop-form-field input{padding:7px 10px;border-radius:6px;border:1px solid var(--border, #d1d5db);background:var(--bg-primary, #fff);font-size:13px;color:var(--text-primary, #111)}.cop-form-field select:focus,.cop-form-field input:focus{outline:none;border-color:var(--accent, #2563eb);box-shadow:0 0 0 2px #2563eb1f}.cop-form-note{font-size:12px;color:var(--text-muted, #6b7280);font-style:italic}.cop-form-actions{display:flex;gap:10px}.cop-table-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--border, #e5e7eb)}.cop-table{width:100%;border-collapse:collapse;font-size:13px}.cop-table th{background:var(--bg-secondary, #f3f4f6);padding:10px 14px;text-align:left;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted, #6b7280);border-bottom:1px solid var(--border, #e5e7eb);white-space:nowrap}.cop-table td{padding:12px 14px;border-bottom:1px solid var(--border, #f3f4f6);vertical-align:middle;color:var(--text-primary, #111)}.cop-table tr:last-child td{border-bottom:none}.cop-table tbody tr:hover td{background:var(--bg-secondary, #f9fafb)}.cop-course-name{font-weight:600}.cop-muted{font-size:12px;color:var(--text-muted, #9ca3af);margin-top:2px}.cop-icon{display:inline;vertical-align:middle;margin-right:3px;opacity:.6}.cop-enrolled{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--text-secondary, #374151)}.cop-status-cell{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;text-transform:capitalize}.cop-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.cop-dot--active{background:#10b981}.cop-dot--cancelled{background:#ef4444}.cop-dot--completed{background:#6b7280}.cop-row-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}.cop-icon-btn{background:none;border:1px solid var(--border, #e5e7eb);border-radius:6px;padding:5px;cursor:pointer;color:var(--text-secondary, #555);display:flex;align-items:center;transition:all .15s}.cop-icon-btn:hover{background:var(--bg-secondary, #f3f4f6);border-color:var(--accent, #2563eb);color:var(--accent, #2563eb)}.cop-icon-btn--danger:hover{border-color:#ef4444;color:#ef4444;background:#fef2f2}.cop-confirm-del{font-size:12px;color:var(--text-secondary, #555);display:flex;align-items:center}.cop-link{background:none;border:none;cursor:pointer;font-size:12px;color:var(--accent, #2563eb);font-weight:600;padding:0}.cop-link--danger{color:#ef4444}.cop-summary{display:flex;gap:12px;flex-wrap:wrap}.cop-summary-card{display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:10px;border:1px solid var(--border, #e5e7eb);background:var(--bg-secondary, #f9fafb);color:var(--accent, #2563eb);min-width:140px}.cop-summary-card>div{display:flex;flex-direction:column}.cop-summary-card strong{font-size:20px;font-weight:700;color:var(--text-primary, #111);line-height:1}.cop-summary-card span{font-size:11px;color:var(--text-muted, #6b7280);margin-top:2px}.cop-empty{text-align:center;padding:48px 24px;color:var(--text-muted, #9ca3af);font-size:14px}.rp-root{display:flex;flex-direction:column;gap:18px}.rp-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px 28px;border-radius:8px;color:#fff;background:linear-gradient(135deg,#1d4ed8,#0f766e 55%,#7c3aed);box-shadow:0 14px 32px #2563eb38}.rp-header span{display:block;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;opacity:.82}.rp-header h2{margin:4px 0 5px;font-size:28px;letter-spacing:0}.rp-header p{margin:0;color:#ffffffd1}.rp-header-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.rp-btn{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 16px;border:1px solid rgba(255,255,255,.3);border-radius:8px;color:#fff;background:#ffffff26;cursor:pointer;font:inherit;font-size:13px;font-weight:700;transition:background .15s;white-space:nowrap}.rp-btn:hover:not(:disabled){background:#ffffff47}.rp-btn:disabled{opacity:.55;cursor:not-allowed}.rp-btn--print{background:#ffffff38;border-color:#ffffff8c}.rp-alert{padding:12px 14px;border-radius:8px;background:#fee2e2;color:#991b1b;font-weight:700}.rp-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.rp-metric,.rp-card{background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;box-shadow:var(--shadow-sm, 0 1px 4px rgba(0,0,0,.06))}.rp-metric{display:flex;align-items:center;justify-content:space-between;min-height:92px;padding:16px;color:var(--text-heading, #0f172a);border-top:4px solid #2563eb}.rp-metric--green{border-top-color:#059669}.rp-metric--violet{border-top-color:#7c3aed}.rp-metric--amber{border-top-color:#d97706}.rp-metric--rose{border-top-color:#e11d48}.rp-metric--teal{border-top-color:#0f766e}.rp-metric span{display:block;color:var(--text-muted, #64748b);font-size:11px;font-weight:900;text-transform:uppercase}.rp-metric strong{display:block;margin-top:7px;font-size:24px;line-height:1.1}.rp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.rp-card{min-width:0;padding:16px}.rp-card h3{margin:0 0 12px;color:var(--text-heading, #0f172a);font-size:16px}.rp-table-wrap{overflow-x:auto}.rp-table{width:100%;border-collapse:collapse;font-size:13px}.rp-table th{padding:10px 8px;color:var(--text-muted, #64748b);text-align:left;border-bottom:1px solid var(--border-color, #e2e8f0);font-size:11px;text-transform:uppercase}.rp-table td{padding:10px 8px;color:var(--text-body, #334155);border-bottom:1px solid var(--border-color, #e2e8f0);vertical-align:top}.rp-empty,.rp-loading,.rp-generated{color:var(--text-muted, #64748b);font-weight:700}.rp-loading{padding:36px;text-align:center}.rp-generated{margin:0;text-align:right;font-size:12px}@media(max-width:1180px){.rp-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:820px){.rp-grid{grid-template-columns:1fr}.rp-header{flex-direction:column;align-items:stretch}.rp-metrics{grid-template-columns:1fr}}.rp-overdue{display:inline-block;padding:1px 6px;border-radius:4px;background:#fee2e2;color:#b91c1c;font-size:11px;font-weight:700}.rp-outstanding-clear{padding:24px 0;text-align:center;color:#059669;font-size:15px}.rp-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border-color, #e2e8f0);overflow-x:auto;scrollbar-width:none}.rp-tabs::-webkit-scrollbar{display:none}.rp-tab{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--text-muted, #64748b);font:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s;margin-bottom:-1px}.rp-tab:hover{color:var(--text-heading, #0f172a)}.rp-tab--active{color:var(--primary, #4f46e5);border-bottom-color:var(--primary, #4f46e5)}.rp-tab--outstanding{color:#b45309}.rp-tab--outstanding.rp-tab--active{color:#d97706;border-bottom-color:#d97706}.rp-print-header{display:none;padding:0 0 16px;border-bottom:2px solid #1d4ed8;margin-bottom:16px}.rp-print-header strong{display:block;font-size:18px;color:#0f172a}.rp-print-header-sub{display:flex;justify-content:space-between;align-items:baseline;margin-top:4px}.rp-print-header-sub span{font-size:14px;font-weight:700;color:#334155}.rp-print-header-sub small{color:#64748b;font-size:11px}@media print{.sidebar,.topbar{display:none!important}.app-shell{display:block!important;height:auto!important}.main-content{height:auto!important;overflow:visible!important;padding:16px 24px!important}.no-print{display:none!important}.rp-print-header{display:block!important}.rp-metric,.rp-card{box-shadow:none!important;border:1px solid #cbd5e1!important;break-inside:avoid}.rp-table{font-size:11px}.rp-table th,.rp-table td{padding:6px}.rp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rp-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}.ap-root{display:flex;flex-direction:column;gap:18px}.ap-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px 28px;border-radius:8px;color:#fff;background:linear-gradient(135deg,#0f766e,#1d4ed8 58%,#7c3aed);box-shadow:0 14px 32px #2563eb38}.ap-header span{display:block;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;opacity:.82}.ap-header h2{margin:4px 0 5px;font-size:28px;letter-spacing:0}.ap-header p{margin:0;color:#ffffffd1}.ap-actions{display:flex;gap:10px}.ap-actions button,.ap-form button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 14px;border-radius:8px;border:0;cursor:pointer;font:inherit;font-weight:800}.ap-actions button{color:#fff;background:#ffffff29;border:1px solid rgba(255,255,255,.28)}.ap-form button{color:#fff;background:#2563eb}.ap-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ap-summary>div,.ap-form,.ap-card,.ap-empty,.ap-message{background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;box-shadow:var(--shadow-sm, 0 1px 4px rgba(0,0,0,.06))}.ap-summary>div{padding:16px}.ap-summary span{display:block;color:var(--text-muted, #64748b);font-size:11px;font-weight:900;text-transform:uppercase}.ap-summary strong{display:block;margin-top:6px;color:var(--text-heading, #0f172a);font-size:24px}.ap-message{padding:12px 14px;color:#075985;background:#e0f2fe;font-weight:700}.ap-form{display:grid;gap:12px;padding:16px}.ap-form-grid{display:grid;grid-template-columns:minmax(220px,2fr) repeat(4,minmax(130px,1fr));gap:12px}.ap-form label{display:grid;gap:6px}.ap-form span{color:var(--text-muted, #64748b);font-size:11px;font-weight:900;text-transform:uppercase}.ap-form input,.ap-form select,.ap-form textarea{width:100%;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;padding:10px 12px;background:var(--bg-input, #fff);color:var(--text-body, #334155);font:inherit}.ap-form textarea{resize:vertical}.ap-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.ap-card{padding:16px;border-top:4px solid #2563eb}.ap-card--important{border-top-color:#d97706}.ap-card--urgent{border-top-color:#dc2626}.ap-card-head,.ap-card-foot{display:flex;align-items:center;gap:8px;justify-content:space-between}.ap-priority,.ap-audience{padding:5px 8px;border-radius:999px;font-size:11px;font-weight:900;text-transform:uppercase}.ap-priority{background:#dbeafe;color:#1d4ed8}.ap-priority--important{background:#fef3c7;color:#92400e}.ap-priority--urgent{background:#fee2e2;color:#991b1b}.ap-audience{background:#f1f5f9;color:#475569}.ap-card h3{margin:14px 0 8px;color:var(--text-heading, #0f172a);font-size:18px}.ap-card p{margin:0;color:var(--text-body, #334155);line-height:1.55;white-space:pre-wrap}.ap-card-foot{margin-top:16px;color:var(--text-muted, #64748b);font-size:12px;font-weight:700}.ap-card-foot button{border:0;background:#fee2e2;color:#991b1b;border-radius:8px;height:30px;width:30px;cursor:pointer}.ap-author{font-style:italic}.ap-empty{padding:36px;text-align:center;color:var(--text-muted, #64748b);font-weight:700}@media(max-width:980px){.ap-header,.ap-actions{flex-direction:column;align-items:stretch}.ap-summary,.ap-form-grid{grid-template-columns:1fr}}.tp-root{display:flex;flex-direction:column;gap:18px}.tp-header{display:flex;justify-content:space-between;gap:18px;padding:24px 28px;border-radius:8px;color:#fff;background:linear-gradient(135deg,#334155,#1d4ed8 58%,#0f766e);box-shadow:0 14px 32px #2563eb38}.tp-header span{display:block;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;opacity:.82}.tp-header h2{margin:4px 0 5px;font-size:28px;letter-spacing:0}.tp-header p{margin:0;color:#ffffffd1}.tp-actions{display:flex;gap:10px;align-items:center}.tp-actions button{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 14px;border-radius:8px;border:1px solid rgba(255,255,255,.28);color:#fff;background:#ffffff29;cursor:pointer;font:inherit;font-weight:800}.tp-actions button:disabled{opacity:.55;cursor:not-allowed}.tp-selector,.tp-card,.tp-summary>div,.tp-alert,.tp-message,.tp-customizer{background:var(--bg-card,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:8px;box-shadow:var(--shadow-sm,0 1px 4px rgba(0,0,0,.06))}.tp-selector{padding:14px}.tp-selector label{display:grid;gap:7px}.tp-selector span,.tp-summary span{color:var(--text-muted,#64748b);font-size:11px;font-weight:900;text-transform:uppercase}.tp-selector select{min-height:42px;border:1px solid var(--border-color,#e2e8f0);border-radius:8px;padding:0 12px;background:var(--bg-input,#fff);color:var(--text-body,#334155);font:inherit}.tp-alert{padding:12px 14px;color:#991b1b;background:#fee2e2;font-weight:700}.tp-message{padding:12px 14px;color:#166534;background:#dcfce7;font-weight:700}.tp-customizer{display:grid;gap:12px;padding:16px}.tp-custom-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tp-customizer label{display:grid;gap:6px}.tp-customizer span{color:var(--text-muted,#64748b);font-size:11px;font-weight:900;text-transform:uppercase}.tp-customizer input:not([type=checkbox]),.tp-customizer textarea{width:100%;border:1px solid var(--border-color,#e2e8f0);border-radius:8px;padding:10px 12px;background:var(--bg-input,#fff);color:var(--text-body,#334155);font:inherit}.tp-customizer input[type=color]{height:42px;padding:4px}.tp-customizer textarea{resize:vertical}.tp-checks{display:flex;gap:16px;flex-wrap:wrap}.tp-checks label{display:flex;align-items:center;gap:8px;color:var(--text-body,#334155);font-weight:700}.tp-save{justify-self:start;display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 14px;border:0;border-radius:8px;color:#fff;background:#2563eb;cursor:pointer;font:inherit;font-weight:800}.tp-save:disabled{opacity:.58;cursor:not-allowed}.tp-form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tp-preview-note{color:var(--text-muted,#64748b);font-size:12px;font-weight:800}.tp-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tp-summary>div{padding:16px}.tp-summary strong{display:block;margin-top:6px;color:var(--text-heading,#0f172a);font-size:24px}.tp-card{padding:16px;overflow-x:auto}.tp-card-title{display:flex;align-items:center;gap:8px;color:var(--text-heading,#0f172a);font-weight:900;margin-bottom:14px}.tp-preview-frame{display:block;width:794px;height:1123px;max-width:none;margin:0 auto;border:1px solid var(--border-color,#e2e8f0);border-radius:0;background:#fff;box-shadow:0 12px 34px #0f172a24}.tp-student{display:grid;gap:4px;padding:14px;border-radius:8px;background:var(--bg-hover,#f1f5f9);margin-bottom:14px}.tp-student strong{color:var(--text-heading,#0f172a);font-size:18px}.tp-student span{color:var(--text-muted,#64748b);font-size:13px}.tp-table{width:100%;border-collapse:collapse;font-size:13px}.tp-table th,.tp-table td{padding:10px 8px;text-align:left;border-bottom:1px solid var(--border-color,#e2e8f0)}.tp-table th{color:var(--text-muted,#64748b);font-size:11px;text-transform:uppercase}.tp-empty{padding:32px;text-align:center;color:var(--text-muted,#64748b);font-weight:700}@media(max-width:1100px){.tp-custom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.tp-header,.tp-actions{flex-direction:column;align-items:stretch}.tp-summary,.tp-custom-grid{grid-template-columns:1fr}}.sp-root{display:flex;flex-direction:column;gap:18px}.sp-head h2{margin:0;font-size:1.35rem;color:var(--text-heading, #0f172a)}.sp-head p{margin:4px 0 0;color:var(--text-muted, #64748b);font-size:.9rem}.sp-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:14px;padding:16px}.sp-controls-spacer{flex:1}.sp-field{display:flex;flex-direction:column;gap:5px;font-size:.78rem;font-weight:700;color:var(--text-muted, #64748b)}.sp-field input,.sp-field select{min-width:150px;padding:9px 11px;border:1px solid var(--border-color, #d1d5db);border-radius:9px;font-size:.9rem;font-weight:500;background:var(--bg-card, #fff);color:var(--text-heading, #111827)}.sp-field input:focus,.sp-field select:focus{outline:none;border-color:var(--primary, #4f46e5)}.sp-btn{border:1px solid var(--border-color, #d1d5db);background:var(--bg-card, #fff);color:var(--text-body, #334155);border-radius:9px;padding:10px 16px;font-weight:700;font-size:.9rem;cursor:pointer;transition:all .15s ease}.sp-btn:hover:not(:disabled){border-color:var(--primary, #4f46e5);color:var(--primary, #4f46e5)}.sp-btn:disabled{opacity:.5;cursor:not-allowed}.sp-btn--primary{background:var(--primary, #4f46e5);border-color:var(--primary, #4f46e5);color:#fff}.sp-btn--primary:hover:not(:disabled){filter:brightness(1.08);color:#fff}.sp-table-wrap{background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:14px;overflow:auto}.sp-table{width:100%;border-collapse:collapse;font-size:.9rem}.sp-table th{text-align:left;padding:12px 14px;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, #64748b);border-bottom:1px solid var(--border-color, #e2e8f0);background:var(--bg-subtle, #f8fafc);white-space:nowrap}.sp-table td{padding:11px 14px;border-bottom:1px solid var(--border-color, #f1f5f9);color:var(--text-body, #334155);vertical-align:middle}.sp-table tr:last-child td{border-bottom:none}.sp-row--on{background:#eef2ff}.sp-table select{padding:6px 8px;border:1px solid var(--border-color, #d1d5db);border-radius:7px;font-size:.85rem;background:var(--bg-card, #fff);color:var(--text-heading, #111827)}.sp-table select:disabled{opacity:.45}.sp-name{font-weight:700;color:var(--text-heading, #0f172a)}.sp-sub{font-size:.76rem;color:var(--text-muted, #94a3b8)}.sp-gpa{font-weight:700}.sp-gpa--low{color:#dc2626}.sp-tag{font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:99px;text-transform:capitalize}.sp-tag--promoted{background:#dcfce7;color:#15803d}.sp-tag--retained{background:#fef9c3;color:#a16207}.sp-tag--graduated{background:#dbeafe;color:#1d4ed8}.sp-tag--withdrawn{background:#fee2e2;color:#b91c1c}.sp-table--compact td,.sp-table--compact th{padding:9px 12px}.sp-history h3{margin:8px 0 10px;font-size:1.05rem;color:var(--text-heading, #0f172a)}.sp-empty{padding:40px;text-align:center;color:var(--text-muted, #64748b);background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:14px}.sp-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1800;padding:16px}.sp-modal{background:var(--bg-card, #fff);border-radius:14px;padding:24px;width:100%;max-width:440px;box-shadow:0 24px 60px #00000040}.sp-modal h3{margin:0 0 10px;color:var(--text-heading, #111827)}.sp-modal p{margin:0 0 12px;color:var(--text-body, #475569);font-size:.9rem;line-height:1.5}.sp-summary{margin:0 0 18px;padding-left:18px;color:var(--text-body, #475569);font-size:.88rem}.sp-summary li{margin:3px 0}.sp-modal-actions{display:flex;justify-content:flex-end;gap:10px}.fp-root{display:flex;flex-direction:column;gap:18px}.fp-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 28px;border-radius:14px;background:linear-gradient(135deg,#1d4ed8,#7c3aed 60%,#0f766e);box-shadow:0 12px 32px #1d4ed838;color:#fff}.fp-header-eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;opacity:.78;text-transform:uppercase}.fp-header-title{margin:6px 0;font-size:26px;font-weight:800;letter-spacing:-.01em}.fp-header-sub{margin:0;font-size:13px;opacity:.82}.fp-header-actions{display:flex;gap:8px;align-items:center;flex-shrink:0;padding-top:4px}.fp-hbtn{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 14px;border:1px solid rgba(255,255,255,.32);border-radius:9px;background:#ffffff21;color:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s;white-space:nowrap}.fp-hbtn:hover:not(:disabled){background:#ffffff3d}.fp-hbtn:disabled{opacity:.5;cursor:not-allowed}.fp-hbtn--print{border-color:#ffffff80}.fp-hbtn--primary{background:#ffffff38;border-color:#fff9;font-weight:800}.fp-alert{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:10px;font-size:13px;font-weight:700}.fp-alert--success{background:#dcfce7;color:#166534}.fp-alert--error{background:#fee2e2;color:#991b1b}.fp-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.fp-metric{display:flex;align-items:center;gap:14px;padding:18px 20px;background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);border-top:4px solid #2563eb;border-radius:12px;box-shadow:var(--shadow-sm, 0 1px 4px rgba(0,0,0,.06))}.fp-metric--green{border-top-color:#059669}.fp-metric--amber{border-top-color:#d97706}.fp-metric--rose{border-top-color:#e11d48}.fp-metric--violet{border-top-color:#7c3aed}.fp-metric-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:10px;background:var(--primary-light, #e0e7ff);color:var(--primary, #4f46e5);flex-shrink:0}.fp-metric--green .fp-metric-icon{background:#dcfce7;color:#059669}.fp-metric--amber .fp-metric-icon{background:#fef3c7;color:#d97706}.fp-metric--rose .fp-metric-icon{background:#ffe4e6;color:#e11d48}.fp-metric--violet .fp-metric-icon{background:#ede9fe;color:#7c3aed}.fp-metric-label{display:block;color:var(--text-muted, #64748b);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.fp-metric-value{display:block;font-size:20px;font-weight:800;color:var(--text-heading, #0f172a);letter-spacing:-.01em;margin-top:3px}.fp-metric-sub{display:block;color:var(--text-muted, #64748b);font-size:11px;margin-top:2px}.fp-currency-toggle{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fp-cur-label{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted, #64748b);margin-right:4px}.fp-cur-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 16px;border-radius:20px;border:1.5px solid var(--border-color, #e2e8f0);background:var(--bg-card, #fff);color:var(--text-muted, #64748b);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.fp-cur-btn:hover{border-color:#93c5fd;color:#1d4ed8;background:#eff6ff}.fp-cur-btn--active{border-color:#3b82f6;background:#eff6ff;color:#1d4ed8;font-weight:700;box-shadow:0 0 0 3px #3b82f61f}.fp-cur-section-label{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:8px;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;margin-bottom:-4px}.fp-cur-section-label--usd{background:#eff6ff;color:#1d4ed8;border-left:3px solid #3b82f6}.fp-cur-section-label--khr{background:#fef3c7;color:#92400e;border-left:3px solid #f59e0b}.fp-metrics--3col{grid-template-columns:repeat(3,minmax(0,1fr))}.fp-metrics--rate-only{grid-template-columns:minmax(0,340px)}@media(max-width:1200px){.fp-metrics--3col{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.fp-metrics--3col,.fp-metrics--rate-only{grid-template-columns:1fr}}.fp-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border-color, #e2e8f0);overflow-x:auto;scrollbar-width:none}.fp-tabs::-webkit-scrollbar{display:none}.fp-tab{padding:9px 18px;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--text-muted, #64748b);font:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;margin-bottom:-1px;transition:color .15s,border-color .15s}.fp-tab:hover{color:var(--text-heading, #0f172a)}.fp-tab--active{color:var(--primary, #4f46e5);border-bottom-color:var(--primary, #4f46e5);font-weight:700}.fp-section{display:flex;flex-direction:column;gap:14px}.fp-section-header{display:flex;align-items:center;justify-content:space-between}.fp-section-header h3{margin:0;font-size:16px;color:var(--text-heading, #0f172a)}.fp-text-link{background:transparent;border:none;color:var(--primary, #4f46e5);font:inherit;font-size:13px;font-weight:700;cursor:pointer;padding:0}.fp-text-link:hover{text-decoration:underline}.fp-filter-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:14px 16px;background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:12px}.fp-search-wrap{position:relative;flex:1;min-width:180px}.fp-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-muted, #64748b);pointer-events:none}.fp-search{width:100%;height:36px;padding:0 32px;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;font:inherit;font-size:13px;color:var(--text-heading, #0f172a);background:var(--bg-main, #f8fafc)}.fp-search:focus{outline:none;border-color:var(--primary, #4f46e5);box-shadow:0 0 0 3px #4f46e51f}.fp-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted, #64748b);cursor:pointer;padding:0;display:flex}.fp-filter-select,.fp-filter-date{height:36px;padding:0 10px;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;font:inherit;font-size:13px;color:var(--text-heading, #0f172a);background:var(--bg-main, #f8fafc);cursor:pointer}.fp-filter-select:focus,.fp-filter-date:focus{outline:none;border-color:var(--primary, #4f46e5)}.fp-clear-btn{display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 12px;border:1px solid #fecdd3;border-radius:8px;background:#fff1f2;color:#e11d48;font:inherit;font-size:13px;font-weight:700;cursor:pointer}.fp-export-btn{display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 14px;border:1px solid var(--border-color, #e2e8f0);border-radius:8px;background:var(--bg-card, #fff);color:var(--text-body, #334155);font:inherit;font-size:13px;font-weight:700;cursor:pointer;margin-left:auto}.fp-export-btn:hover{background:var(--bg-main, #f8fafc)}.fp-result-count{font-size:12px;color:var(--text-muted, #64748b);font-weight:600}.fp-table-wrap{border:1px solid var(--border-color, #e2e8f0);border-radius:12px;overflow-x:auto}.fp-table{width:100%;min-width:720px;border-collapse:collapse;font-size:13px}.fp-table th{padding:11px 14px;background:var(--bg-main, #f8fafc);color:var(--text-muted, #64748b);font-size:11px;font-weight:800;letter-spacing:.04em;text-align:left;text-transform:uppercase;border-bottom:1px solid var(--border-color, #e2e8f0);white-space:nowrap}.fp-th-sort{cursor:pointer;-webkit-user-select:none;user-select:none}.fp-th-sort:hover{color:var(--text-heading, #0f172a)}.fp-sort-icon{vertical-align:middle;margin-left:3px}.fp-sort-icon--idle{opacity:.4}.fp-table td{padding:12px 14px;color:var(--text-body, #334155);border-bottom:1px solid var(--border-color, #e2e8f0);vertical-align:middle}.fp-table tbody tr:last-child td{border-bottom:none}.fp-table tbody tr:hover{background:#f8fafc}.fp-td-date{color:var(--text-muted, #64748b);white-space:nowrap}.fp-td-amount{font-weight:800;color:var(--text-heading, #0f172a);white-space:nowrap}.fp-td-ref,.fp-td-note{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fp-td-nil{color:var(--text-light, #94a3b8)}.fp-student-name{display:block;font-weight:700;color:var(--text-heading, #0f172a)}.fp-student-id{display:block;font-size:11px;color:var(--text-muted, #64748b);margin-top:1px}.fp-td-actions{white-space:nowrap}.fp-action-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid transparent;background:transparent;cursor:pointer;transition:background .12s}.fp-action-btn--edit:hover{background:#e0e7ff;color:#4f46e5;border-color:#c7d2fe}.fp-action-btn--del:hover{background:#fee2e2;color:#e11d48;border-color:#fecdd3}.fp-empty{text-align:center;padding:40px 20px;color:var(--text-muted, #64748b);font-weight:600}.fp-badge{display:inline-flex;align-items:center;border-radius:999px;font-size:11px;font-weight:800;padding:4px 10px;white-space:nowrap}.fp-badge--paid{background:#dcfce7;color:#166534}.fp-badge--pending{background:#fef3c7;color:#92400e}.fp-badge--partial{background:#fef9c3;color:#854d0e}.fp-badge--refunded{background:#e0f2fe;color:#075985}.fp-badge--cancelled{background:#fee2e2;color:#991b1b}.fp-badge--other{background:#f1f5f9;color:#475569}.fp-edit-banner{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#e0e7ff;border:1px solid #c7d2fe;border-radius:10px;font-size:13px;font-weight:700;color:#3730a3}.fp-edit-cancel{margin-left:auto;background:transparent;border:1px solid #c7d2fe;border-radius:6px;color:#3730a3;font:inherit;font-size:12px;font-weight:700;padding:4px 10px;cursor:pointer}.fp-edit-cancel:hover{background:#c7d2fe}.fp-form{display:flex;flex-direction:column;gap:16px}.fp-fieldset{border:1px solid var(--border-color, #e2e8f0);border-radius:12px;padding:16px 20px 20px;background:var(--bg-card, #fff)}.fp-fieldset legend{padding:0 8px;font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted, #64748b)}.fp-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}.fp-label{display:flex;flex-direction:column;gap:6px}.fp-label--wide{grid-column:span 2}.fp-label span{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted, #64748b)}.fp-label input,.fp-label select{height:38px;padding:0 12px;border:1px solid var(--border-color, #e2e8f0);border-radius:9px;font:inherit;font-size:14px;color:var(--text-heading, #0f172a);background:var(--bg-main, #f8fafc);transition:border-color .15s,box-shadow .15s}.fp-label input:focus,.fp-label select:focus{outline:none;border-color:var(--primary, #4f46e5);box-shadow:0 0 0 3px #4f46e51f;background:#fff}.fp-auto-tag{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:4px;background:#e0e7ff;color:#4f46e5;font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;vertical-align:middle}.fp-ref-wrap{position:relative;display:flex;align-items:center}.fp-ref-input{flex:1;font-family:JetBrains Mono,Courier New,monospace!important;letter-spacing:.03em;padding-right:38px!important}.fp-regen-btn{position:absolute;right:6px;display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:6px;background:var(--primary-light, #e0e7ff);color:var(--primary, #4f46e5);cursor:pointer;transition:background .15s;flex-shrink:0}.fp-regen-btn:hover:not(:disabled){background:#c7d2fe}.fp-regen-btn:disabled{opacity:.5;cursor:not-allowed}.fp-form-footer{display:flex;gap:10px;align-items:center;padding-top:4px}.fp-submit-btn{min-height:42px;padding:0 28px;border:none;border-radius:10px;background:var(--primary, #4f46e5);color:#fff;font:inherit;font-size:14px;font-weight:800;cursor:pointer;transition:background .15s}.fp-submit-btn:hover:not(:disabled){background:var(--primary-hover, #4338ca)}.fp-submit-btn:disabled{opacity:.6;cursor:not-allowed}.fp-cancel-btn{min-height:42px;padding:0 20px;border:1px solid var(--border-color, #e2e8f0);border-radius:10px;background:var(--bg-card, #fff);color:var(--text-muted, #64748b);font:inherit;font-size:14px;font-weight:700;cursor:pointer}.fp-cancel-btn:hover{background:var(--bg-main, #f8fafc)}@media(max-width:1200px){.fp-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.fp-header{flex-direction:column;align-items:stretch}.fp-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fp-label--wide{grid-column:span 2}}@media(max-width:640px){.fp-metrics,.fp-form-grid{grid-template-columns:1fr}.fp-label--wide{grid-column:span 1}.fp-filter-bar{flex-direction:column;align-items:stretch}.fp-export-btn{margin-left:0}}.fp-balance-summary{display:flex;gap:12px;flex-wrap:wrap}.fp-balance-stat{display:flex;flex-direction:column;gap:3px;flex:1;min-width:140px;padding:16px 20px;background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);border-top:3px solid var(--primary, #4f46e5);border-radius:12px}.fp-balance-stat strong{font-size:26px;font-weight:800;color:var(--text-heading, #0f172a);line-height:1}.fp-balance-stat span{font-size:11px;font-weight:700;color:var(--text-muted, #64748b);text-transform:uppercase;letter-spacing:.04em}.fp-balance-stat--warn{border-top-color:#d97706}.fp-balance-stat--warn strong{color:#92400e}.fp-balance-stat--ok{border-top-color:#059669}.fp-balance-stat--ok strong{color:#065f46}.fp-amount-owed{color:#dc2626;font-weight:800}.fp-action-btn--text{width:auto;padding:0 10px;font:inherit;font-size:12px;font-weight:700;color:var(--text-body, #334155)}.fp-courses-loading,.fp-courses-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:60px 20px;color:var(--text-muted, #64748b);text-align:center}.fp-courses-empty svg{opacity:.35}.fp-courses-empty p{margin:0;font-weight:600;font-size:15px}.fp-courses-empty small{font-size:13px}.fp-courses-summary{display:flex;gap:24px;font-size:13px;color:var(--text-muted, #64748b);padding-bottom:2px}.fp-courses-summary strong{color:var(--text-heading, #0f172a);font-size:15px}.fp-course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.fp-course-card{background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);border-top:3px solid var(--primary, #4f46e5);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-sm, 0 1px 4px rgba(0,0,0,.06));transition:box-shadow .15s}.fp-course-card:hover{box-shadow:var(--shadow-md, 0 4px 16px rgba(0,0,0,.08))}.fp-course-card-top{display:flex;align-items:center;justify-content:space-between}.fp-course-code{font-size:11px;font-weight:800;letter-spacing:.06em;color:var(--primary, #4f46e5);background:var(--primary-light, #e0e7ff);padding:3px 8px;border-radius:5px;text-transform:uppercase}.fp-course-credits{font-size:12px;font-weight:700;color:var(--text-muted, #64748b)}.fp-course-name{margin:0;font-size:14px;font-weight:700;color:var(--text-heading, #0f172a);line-height:1.3}.fp-course-dept{margin:0;font-size:12px;color:var(--text-muted, #64748b)}.fp-course-meta{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--text-body, #334155);border-top:1px solid var(--border-color, #e2e8f0);padding-top:8px;margin-top:2px}.fp-course-meta span:before{content:"· ";color:var(--text-light, #94a3b8)}.fp-course-status{display:flex;align-items:center;gap:8px;margin-top:4px}.fp-course-enrolled-at{font-size:11px;color:var(--text-muted, #64748b)}.fp-section-sub{font-size:12px;color:#94a3b8;font-weight:500}.fp-term-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:8px}.fp-term-card{display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s,transform .1s}.fp-term-card:hover{border-color:#6366f1;box-shadow:0 4px 16px #6366f121;transform:translateY(-1px)}.fp-term-card--unassigned{border-style:dashed;border-color:#cbd5e1;background:#f8fafc}.fp-term-card--unassigned:hover{border-color:#94a3b8;box-shadow:0 4px 12px #0000000f}.fp-term-card-header{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.fp-term-card-name{font-size:13px;font-weight:700;color:#1e293b;line-height:1.3}.fp-term-card--unassigned .fp-term-card-name{color:#64748b;font-style:italic}.fp-term-card-count{font-size:11px;font-weight:600;color:#94a3b8;white-space:nowrap}.fp-term-card-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px}.fp-term-val{font-size:13px;font-weight:800}.fp-term-val--green{color:#16a34a}.fp-term-val--red{color:#dc2626}.fp-term-val-label{font-size:10px;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em;margin-right:4px}.fp-term-card-cta{font-size:11px;font-weight:700;color:#6366f1;margin-top:2px;opacity:0;transition:opacity .15s}.fp-term-card:hover .fp-term-card-cta{opacity:1}@media print{.fp-header,.fp-tabs,.fp-filter-bar,.fp-result-count,.fp-edit-banner,.fp-form,.fp-header-actions{display:none!important}.fp-metric{box-shadow:none!important;border:1px solid #cbd5e1!important;break-inside:avoid}.fp-table-wrap{border:1px solid #cbd5e1!important;box-shadow:none!important}.fp-table{font-size:11px}.fp-table th,.fp-table td{padding:6px 8px}}.fp-pull-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.fp-pull-btn{background:var(--primary-light, #e0edff);color:var(--primary, #1d4ed8);border:1px solid var(--primary, #1d4ed8);padding:8px 16px;border-radius:8px;font-size:.86rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.fp-pull-btn:hover{background:var(--primary, #1d4ed8);color:#fff}.fp-pull-hint{font-size:.78rem;color:var(--text-muted, #6b7280)}.fp-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000}.fp-modal{background:var(--bg-card, #fff);border-radius:14px;width:100%;max-width:540px;max-height:80vh;display:flex;flex-direction:column;padding:20px;box-shadow:var(--shadow-md, 0 10px 40px rgba(0, 0, 0, .2))}.fp-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.fp-modal-head h3{margin:0;font-size:1.05rem;color:var(--text-heading, #111827)}.fp-modal-close{background:none;border:none;cursor:pointer;color:var(--text-muted, #6b7280);display:flex}.fp-modal-search{width:100%;padding:10px 14px;border:1px solid var(--border-color, #d1d5db);border-radius:8px;font-size:.9rem;background:var(--bg-main, #fff);color:var(--text-body, #111827);outline:none}.fp-modal-search:focus{border-color:var(--primary, #3b82f6)}.fp-modal-hint{font-size:.78rem;color:var(--text-muted, #6b7280);margin:8px 0 12px;line-height:1.5}.fp-receipt-list{overflow-y:auto;display:flex;flex-direction:column;gap:6px}.fp-receipt-empty{text-align:center;color:var(--text-muted, #6b7280);padding:24px;font-size:.88rem}.fp-receipt-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid var(--border-color, #e5e7eb);border-radius:9px;background:var(--bg-main, #fff);cursor:pointer;text-align:left;transition:border .12s,background .12s}.fp-receipt-row:hover{border-color:var(--primary, #3b82f6);background:var(--primary-light, #eff6ff)}.fp-receipt-main{display:flex;flex-direction:column;gap:2px;min-width:0}.fp-receipt-num{font-weight:700;font-size:.86rem;color:var(--text-heading, #111827)}.fp-receipt-name{font-size:.82rem;color:var(--text-body, #374151);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fp-receipt-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.fp-receipt-amt{font-weight:700;font-size:.86rem;color:var(--text-heading, #111827)}.fp-receipt-date{font-size:.76rem;color:var(--text-muted, #6b7280)}.drp-container{padding:24px;max-width:1100px;font-family:inherit}.drp-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;gap:12px;flex-wrap:wrap}.drp-title{font-size:1.5rem;font-weight:700;color:var(--text-primary, #111827);margin:0}.drp-subtitle{font-family:Noto Sans Khmer,sans-serif;font-size:.85rem;color:var(--text-secondary, #6b7280);margin:4px 0 0}.drp-btn-primary{background:#1d4ed8;color:#fff;border:none;padding:8px 18px;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s;white-space:nowrap}.drp-btn-primary:hover{background:#1e40af}.drp-btn-primary:disabled{opacity:.5;cursor:not-allowed}.drp-btn-cancel{background:var(--bg-secondary, #f3f4f6);color:var(--text-primary, #111827);border:1px solid var(--border, #d1d5db);padding:8px 18px;border-radius:8px;font-size:.9rem;cursor:pointer}.drp-btn-cancel:hover{background:var(--bg-hover, #e5e7eb)}.drp-btn-view{background:#e0f2fe;color:#0369a1;border:none;padding:4px 12px;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;margin-right:6px}.drp-btn-view:hover{background:#bae6fd}.drp-btn-edit{background:#fef9c3;color:#854d0e;border:none;padding:4px 12px;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;margin-right:6px}.drp-btn-edit:hover{background:#fef08a}.drp-btn-void{background:#fee2e2;color:#b91c1c;border:none;padding:4px 12px;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer}.drp-btn-void:hover{background:#fecaca}.drp-btn-danger{padding:8px 18px;font-size:.9rem}.drp-btn-delete{background:#fff1f2;color:#9f1239;border:1px solid #fda4af;padding:4px 12px;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;margin-left:6px}.drp-btn-delete:hover{background:#ffe4e6}.drp-btn-delete.drp-btn-danger{padding:8px 18px;font-size:.9rem;margin-left:0}.drp-btn-enroll{background:#dcfce7;color:#166534;border:none;padding:4px 12px;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;margin-left:6px}.drp-btn-enroll:hover{background:#bbf7d0}.drp-name-link{background:none;border:none;padding:0;font:inherit;color:#1d4ed8;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.drp-name-link:hover{text-decoration:underline}.drp-linked-chip{font-size:.85em}.drp-flash{background:#ecfdf5;border:1px solid #6ee7b7;color:#047857;padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:.88rem;font-weight:500}.drp-readonly{background:var(--bg-main, #f3f4f6)!important;color:var(--text-body, #374151);cursor:default}.drp-enroll-hint{background:#f0f9ff;border:1px solid #bae6fd;color:#075985;padding:9px 13px;border-radius:8px;font-size:.84rem;line-height:1.5;margin:0 0 4px}.drp-search-row{margin-bottom:16px}.drp-search{width:100%;max-width:400px;padding:9px 14px;border:1px solid var(--border, #d1d5db);border-radius:8px;font-size:.9rem;background:var(--bg-input, #fff);color:var(--text-primary, #111827);outline:none;transition:border .15s}.drp-search:focus{border-color:#3b82f6}.drp-error{background:#fef2f2;border:1px solid #fca5a5;color:#b91c1c;padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:.88rem}.drp-table-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--border, #e5e7eb);background:var(--bg-card, #fff)}.drp-table{width:100%;border-collapse:collapse;font-size:.88rem}.drp-table th{background:var(--bg-table-head, #f9fafb);padding:10px 14px;text-align:left;font-weight:600;color:var(--text-secondary, #6b7280);border-bottom:1px solid var(--border, #e5e7eb);white-space:nowrap;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.drp-table td{padding:10px 14px;border-bottom:1px solid var(--border, #f3f4f6);color:var(--text-primary, #111827);vertical-align:middle}.drp-table tr:last-child td{border-bottom:none}.drp-table tbody tr:hover{background:var(--bg-hover, #f9fafb)}.drp-row-voided td{opacity:.55}.drp-td-center{text-align:center;color:var(--text-secondary, #9ca3af);padding:32px}.drp-receipt-num{font-family:monospace;font-weight:700;color:#1d4ed8}.drp-amount{font-variant-numeric:tabular-nums;font-weight:600}.drp-badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:.75rem;font-weight:700;letter-spacing:.05em}.drp-badge-valid{background:#dcfce7;color:#166534}.drp-badge-voided{background:#fee2e2;color:#991b1b}.drp-pagination{display:flex;align-items:center;gap:12px;margin-top:16px;font-size:.88rem;color:var(--text-secondary, #6b7280)}.drp-pagination button{padding:5px 12px;border:1px solid var(--border, #d1d5db);border-radius:6px;background:var(--bg-card, #fff);cursor:pointer;color:var(--text-primary, #374151);font-size:.85rem}.drp-pagination button:disabled{opacity:.4;cursor:not-allowed}.drp-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1800;padding:16px}.drp-modal-large{background:var(--bg-card, #fff);border-radius:14px;width:100%;max-width:760px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 60px #00000040;display:flex;flex-direction:column}.drp-modal-small{background:var(--bg-card, #fff);border-radius:14px;width:100%;max-width:440px;padding:28px;box-shadow:0 24px 60px #00000040}.drp-modal-small h3{margin:0 0 8px;font-size:1.1rem;color:var(--text-primary, #111827)}.drp-void-warning{color:#b91c1c;font-size:.88rem;margin-bottom:16px}.drp-modal-small label{display:flex;flex-direction:column;gap:6px;font-size:.88rem;color:var(--text-secondary, #6b7280)}.drp-modal-small textarea{padding:8px 12px;border:1px solid var(--border, #d1d5db);border-radius:8px;font-size:.9rem;resize:vertical}.drp-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border, #e5e7eb)}.drp-modal-header h3{font-family:Noto Sans Khmer,sans-serif;font-size:1.05rem;font-weight:700;margin:0;color:var(--text-primary, #111827)}.drp-modal-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--text-secondary, #6b7280);line-height:1;padding:4px 8px}.drp-modal-close:hover{color:var(--text-primary, #111827)}.drp-form{padding:20px 24px 24px;display:flex;flex-direction:column;gap:14px}.drp-form-section{font-family:Noto Sans Khmer,sans-serif;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#1d4ed8;padding:4px 0 2px;border-bottom:1px solid #e0e7ff;margin-top:6px}.drp-form-row{display:flex;gap:14px;flex-wrap:wrap}.drp-form-row>label{flex:1;min-width:180px;display:flex;flex-direction:column;gap:5px}.drp-form-row>label>span{font-family:Noto Sans Khmer,sans-serif;font-size:.8rem;font-weight:600;color:var(--text-secondary, #6b7280)}.drp-form-row input,.drp-form-row select{padding:8px 12px;border:1px solid var(--border, #d1d5db);border-radius:8px;font-size:.9rem;background:var(--bg-input, #fff);color:var(--text-primary, #111827);outline:none;width:100%;box-sizing:border-box;transition:border .15s}.drp-form-row input:focus,.drp-form-row select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f624}.drp-form-row input[type=date]{min-height:40px;font-variant-numeric:tabular-nums;letter-spacing:.4px;cursor:pointer;color-scheme:light}.drp-form-row input[type=date]::-webkit-datetime-edit-text{color:#9ca3af;padding:0 2px}.drp-form-row input[type=date]::-webkit-datetime-edit-day-field:focus,.drp-form-row input[type=date]::-webkit-datetime-edit-month-field:focus,.drp-form-row input[type=date]::-webkit-datetime-edit-year-field:focus{background:#dbeafe;color:#1d4ed8;border-radius:4px;outline:none}.drp-form-row input[type=date]::-webkit-calendar-picker-indicator{width:16px;height:16px;padding:4px;margin-left:6px;cursor:pointer;border-radius:7px;opacity:.7;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 24 24' stroke='%233b82f6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:16px;transition:opacity .15s ease,background-color .15s ease}.drp-form-row input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1;background-color:#eff6ff}body.dark-mode .drp-form-row input[type=date]{color-scheme:dark}.drp-checkbox-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.drp-check{display:flex;align-items:center;gap:8px;cursor:pointer;font-family:Noto Sans Khmer,sans-serif;font-size:.88rem;color:var(--text-primary, #111827)}.drp-check input[type=checkbox]{width:16px;height:16px;accent-color:#1d4ed8;cursor:pointer}.drp-form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:8px;border-top:1px solid var(--border, #e5e7eb);margin-top:4px}.drp-modal-print-wrap{background:var(--bg-card, #fff);border-radius:14px;max-width:800px;width:100%;max-height:95vh;overflow-y:auto;box-shadow:0 24px 60px #0000004d;padding:20px;display:flex;flex-direction:column;gap:16px}@media screen{.drp-twoUp{zoom:.65;width:calc(100% / .65)}}.drp-preview-hint{font-size:11px;color:#9ca3af;text-align:center;letter-spacing:.04em;margin-top:-8px}.drp-print-controls{display:flex;gap:10px;flex-wrap:wrap}.drp-twoUp{display:flex;flex-direction:column;gap:0}.drp-copy-section{display:flex;flex-direction:column;gap:4px}.drp-copy-label{font-family:Noto Sans Khmer,sans-serif;font-size:11px;font-weight:600;color:#6b7280;text-align:right;letter-spacing:.02em}.drp-cut-line{display:flex;align-items:center;padding:10px 0;color:#9ca3af;font-size:11px;letter-spacing:.08em;gap:8px}.drp-cut-line:before,.drp-cut-line:after{content:"";flex:1;border-top:1.5px dashed #d1d5db}.drp-receipt{font-family:Noto Sans Khmer,Khmer OS Battambang,sans-serif;border:2px solid #1a3a6b;border-radius:4px;padding:16px 20px 10px;position:relative;background:#fff;color:#1a3a6b;font-size:13px;line-height:1.6;min-width:580px}.drp-void-watermark{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:5rem;font-weight:900;color:#b91c1c2e;letter-spacing:.1em;pointer-events:none;z-index:1;transform:rotate(-20deg)}.drp-rec-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #1a3a6b}.drp-rec-logo{display:flex;align-items:center;gap:12px;flex:1}.drp-rec-emblem svg{flex-shrink:0}.drp-rec-emblem-img{height:80px;width:auto;flex-shrink:0;display:block}.drp-rec-titles{flex:1}.drp-rec-kh-title{font-size:13px;font-weight:700;line-height:1.4;color:#1a3a6b}.drp-rec-en-title{font-family:Times New Roman,serif;font-size:11px;font-weight:700;letter-spacing:.02em;color:#1a3a6b;margin-top:2px}.drp-rec-tel{font-size:11px;margin-top:3px;color:#1a3a6b}.drp-rec-number-box{border:1.5px solid #1a3a6b;padding:6px 12px;border-radius:3px;min-width:170px;text-align:center;flex-shrink:0}.drp-rec-number{font-size:15px;font-weight:700;letter-spacing:.05em;font-family:Arial,sans-serif}.drp-rec-num-red{color:#c0392b}.drp-rec-date-line{font-size:12px;margin-top:4px;font-family:Arial,sans-serif}.drp-rec-doc-title{text-align:center;margin:10px 0 8px;position:relative}.drp-rec-doc-kh{font-size:18px;font-weight:700;color:#1a3a6b}.drp-rec-doc-en{font-family:Times New Roman,serif;font-size:16px;font-weight:700;color:#1a3a6b;letter-spacing:.04em}.drp-rec-ornament{font-size:20px;color:#1a3a6b;margin-top:2px}.drp-rec-payment-method{position:absolute;right:0;top:0;display:flex;flex-direction:column;gap:4px;font-size:12px}.drp-rec-check-item{display:inline-flex;align-items:center;gap:4px;font-size:12px;margin-right:8px}.drp-rec-checkbox{display:inline-block;width:12px;height:12px;border:1.5px solid #1a3a6b;border-radius:1px;flex-shrink:0;position:relative}.drp-rec-checkbox.checked:after{content:"✓";position:absolute;top:-3px;left:0;font-size:12px;color:#1a3a6b;font-weight:900;line-height:1}.drp-rec-fields{display:flex;flex-direction:column;gap:5px;margin:8px 0}.drp-rec-field-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 6px;min-height:26px}.drp-rec-label{font-weight:600;white-space:nowrap;font-size:12.5px;color:#1a3a6b}.drp-rec-value{flex:1;border-bottom:1px dotted #1a3a6b;min-width:60px;padding:0 4px;font-size:12.5px;color:#1a3a6b}.drp-rec-short{max-width:70px}.drp-rec-xs{max-width:50px;min-width:40px}.drp-rec-purpose-row{display:flex;align-items:center;flex-wrap:wrap;gap:3px 10px;min-height:26px}.drp-rec-year-gen{justify-content:flex-end;gap:4px 10px}.drp-rec-bottom{margin-top:12px;display:flex;align-items:flex-end;gap:16px}.drp-rec-warning{border:2px solid #1a3a6b;padding:6px 12px;font-weight:700;font-size:12px;border-radius:2px;flex-shrink:0;max-width:220px}.drp-rec-signatures{flex:1;display:flex;justify-content:space-around;gap:8px}.drp-rec-sig{display:flex;flex-direction:column;align-items:center;gap:40px;flex:1}.drp-rec-sig-label{font-weight:700;font-size:13px;text-align:center}.drp-rec-sig-line{width:100%;border-bottom:1px dotted #1a3a6b;min-width:100px}.drp-rec-footer{margin-top:10px;padding-top:8px;border-top:1px solid #1a3a6b;font-size:11px;text-align:center;color:#1a3a6b}.drp-cats-loading{color:var(--text-secondary, #9ca3af);font-size:.85rem;padding:8px 0}.drp-cats{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow-y:auto;border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:4px 0;background:var(--bg-input, #fff)}.drp-cat-block{padding:8px 14px 6px;border-bottom:1px solid var(--border, #f3f4f6)}.drp-cat-block:last-child{border-bottom:none}.drp-cat-name{font-family:Noto Sans Khmer,sans-serif;font-size:.8rem;font-weight:700;color:#1d4ed8;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid #e0e7ff}.drp-cat-services{display:flex;flex-direction:column;gap:4px}.drp-check-service{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:6px;cursor:pointer;transition:background .1s}.drp-check-service:hover{background:var(--bg-hover, #f9fafb)}.drp-svc-name{font-family:Noto Sans Khmer,sans-serif;font-size:.85rem;color:var(--text-primary, #111827);flex:1}.drp-svc-fee{font-size:.78rem;font-weight:600;color:#6b7280;white-space:nowrap;background:#f3f4f6;padding:1px 7px;border-radius:99px}.drp-svc-fee.free{color:#166534;background:#dcfce7}.drp-svc-duration{font-size:.75rem;color:#9ca3af;white-space:nowrap}.drp-form-section .drp-sel-count{font-weight:600;color:#1d4ed8;text-transform:none;letter-spacing:0}.drp-calc-hint{margin-top:6px;padding:6px 12px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;font-size:.85rem;color:#1e40af}.drp-calc-hint strong{font-family:Noto Sans Khmer,sans-serif}.drp-rec-purpose-section{display:flex;align-items:flex-start;gap:6px;min-height:26px;margin:4px 0}.drp-rec-purpose-label{padding-top:2px;flex-shrink:0}.drp-rec-purpose-groups{flex:1;display:flex;flex-direction:column;gap:4px}.drp-rec-purpose-group{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px}.drp-rec-purpose-cat{font-size:11.5px;font-weight:700;color:#1a3a6b;margin-right:4px;white-space:nowrap}.drp-rec-fee{font-size:11px;color:#6b7280}.drp-rec-empty{flex:1;border-bottom:1px dotted #1a3a6b;color:#9ca3af;font-size:12px;padding:0 4px}@media print{@page{size:A4 portrait;margin:10mm}body>*:not(.drp-modal-overlay){display:none!important}.drp-modal-overlay{position:static!important;background:none!important;padding:0!important;display:block!important}.drp-modal-print-wrap{box-shadow:none!important;border-radius:0!important;max-height:none!important;overflow:visible!important;padding:0!important}.no-print{display:none!important}.drp-twoUp{gap:0;page-break-inside:avoid}.drp-copy-label{font-size:8pt!important;margin-bottom:1.5mm}.drp-cut-line{padding:3mm 0!important;font-size:8pt!important;border-top:none}.drp-cut-line:before,.drp-cut-line:after{border-top:1px dashed #aaa!important}.drp-receipt{min-width:unset!important;width:100%!important;border:1.5px solid #1a3a6b!important;font-size:10pt!important;padding:8px 14px 6px!important}.drp-rec-emblem-img{height:60px!important}.drp-rec-kh-title{font-size:11pt!important}.drp-rec-en-title,.drp-rec-tel{font-size:7.5pt!important}}.ap-container{display:flex;flex-direction:column;gap:16px}.ap-header{display:flex;justify-content:space-between;align-items:flex-start}.ap-title{font-size:1.35rem;font-weight:800;color:var(--text-heading, #111827);margin:0}.ap-subtitle{color:var(--text-muted, #6b7280);font-size:.85rem;margin-top:2px;font-family:Noto Sans Khmer,sans-serif}.ap-khmer{font-family:Noto Sans Khmer,sans-serif}.ap-filters{display:flex;gap:10px;flex-wrap:wrap}.ap-search{flex:1;min-width:220px;padding:9px 14px;border:1px solid var(--border-color, #d1d5db);border-radius:8px;font-size:.9rem;background:var(--bg-input, #fff);color:var(--text-body, #111827);outline:none}.ap-filters select{padding:9px 12px;border:1px solid var(--border-color, #d1d5db);border-radius:8px;background:var(--bg-input, #fff);color:var(--text-body, #111827);font-size:.88rem}.ap-search:focus,.ap-filters select:focus{border-color:#3b82f6}.ap-error{background:#fef2f2;border:1px solid #fca5a5;color:#b91c1c;padding:10px 14px;border-radius:8px;font-size:.88rem}.ap-table-wrap{overflow-x:auto;border:1px solid var(--border-color, #e5e7eb);border-radius:10px;background:var(--bg-card, #fff)}.ap-table{width:100%;border-collapse:collapse;font-size:.86rem}.ap-table th{text-align:left;padding:11px 14px;background:var(--bg-main, #f9fafb);color:var(--text-muted, #6b7280);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border-color, #e5e7eb)}.ap-table td{padding:10px 14px;border-bottom:1px solid var(--border-color, #f1f3f5);color:var(--text-body, #374151)}.ap-table tr:last-child td{border-bottom:none}.ap-ref{font-weight:700;color:var(--text-heading, #111827)}.ap-td-center{text-align:center;color:var(--text-muted, #6b7280);padding:28px}.ap-badge,.ap-pay{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.74rem;font-weight:700}.ap-badge--pending{background:#fef3c7;color:#92400e}.ap-badge--approved{background:#dcfce7;color:#166534}.ap-badge--rejected{background:#fee2e2;color:#991b1b}.ap-badge--changes{background:#e0e7ff;color:#3730a3}.ap-badge--draft,.ap-pay--unpaid{background:#f3f4f6;color:#6b7280}.ap-pay--paid{background:#dcfce7;color:#166534}.ap-pay--partial{background:#fef3c7;color:#92400e}.ap-pay--waived{background:#e0e7ff;color:#3730a3}.ap-btn-view{background:#e0f2fe;color:#075985;border:none;padding:5px 14px;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer}.ap-btn-view:hover{background:#bae6fd}.ap-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:flex-start;justify-content:center;padding:30px 16px;z-index:1000;overflow-y:auto}.ap-modal{background:var(--bg-card, #fff);border-radius:14px;width:100%;max-width:720px;padding:22px 24px;box-shadow:0 20px 60px #00000040}.ap-modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.ap-modal-head h3{margin:0 0 6px;font-size:1.1rem;color:var(--text-heading, #111827)}.ap-modal-head>div>span{margin-right:6px}.ap-student-chip{font-size:.78rem;font-weight:700;color:#1d4ed8}.ap-close{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--text-muted, #6b7280)}.ap-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.ap-field{display:flex;flex-direction:column;gap:2px}.ap-field--wide{grid-column:1 / -1}.ap-field-label{font-size:.7rem;color:var(--text-muted, #9ca3af);text-transform:uppercase;letter-spacing:.04em}.ap-field-value{font-size:.9rem;color:var(--text-body, #1f2937);font-weight:500}.ap-section-label{font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#1a3a6b;margin:18px 0 8px;border-bottom:1px solid var(--border-color, #eef0f4);padding-bottom:5px}.ap-muted{color:var(--text-muted, #9ca3af);font-size:.84rem}.ap-creds{background:#ecfdf5;border:1px solid #6ee7b7;color:#065f46;padding:11px 14px;border-radius:9px;font-size:.86rem;line-height:1.5;margin-bottom:14px}.ap-creds strong{font-family:ui-monospace,monospace}.ap-docs{display:flex;flex-wrap:wrap;gap:12px}.ap-doc{display:flex;flex-direction:column;gap:6px}.ap-doc-kind{font-size:.72rem;text-transform:uppercase;color:var(--text-muted, #9ca3af);letter-spacing:.04em}.ap-doc-img{width:120px;height:120px;object-fit:cover;border-radius:8px;border:1px solid var(--border-color, #e5e7eb)}.ap-doc-pdf{display:inline-flex;align-items:center;padding:8px 14px;background:#eff6ff;color:#1d4ed8;border-radius:8px;font-size:.84rem;font-weight:600;text-decoration:none}.ap-doc-pdf:hover{background:#dbeafe}.ap-pay-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ap-pay-btn{padding:6px 14px;border:1px solid var(--border-color, #d1d5db);border-radius:7px;background:var(--bg-card, #fff);color:var(--text-body, #374151);font-size:.82rem;font-weight:600;cursor:pointer}.ap-pay-btn:hover:not(:disabled){border-color:#1a3a6b}.ap-pay-btn.current{background:#1a3a6b;color:#fff;border-color:#1a3a6b}.ap-pay-btn:disabled{cursor:default}.ap-prev-note{font-size:.84rem;color:var(--text-muted, #6b7280);background:var(--bg-main, #f9fafb);padding:8px 12px;border-radius:8px;margin:0 0 8px}.ap-note{width:100%;padding:9px 12px;border:1px solid var(--border-color, #d1d5db);border-radius:8px;font-size:.88rem;background:var(--bg-input, #fff);color:var(--text-body, #111827);outline:none;resize:vertical;box-sizing:border-box}.ap-note:focus{border-color:#3b82f6}.ap-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.ap-act{padding:9px 18px;border:none;border-radius:8px;font-size:.88rem;font-weight:700;cursor:pointer}.ap-act:disabled{opacity:.55;cursor:not-allowed}.ap-approve{background:#16a34a;color:#fff}.ap-approve:hover:not(:disabled){background:#15803d}.ap-changes{background:#e0e7ff;color:#3730a3}.ap-changes:hover:not(:disabled){background:#c7d2fe}.ap-reject{background:#fee2e2;color:#991b1b}.ap-reject:hover:not(:disabled){background:#fecaca}.aw-page{min-height:100vh;background:linear-gradient(160deg,#eef2f9,#dbe6f5);display:flex;justify-content:center;padding:32px 16px;font-family:Inter,system-ui,sans-serif;color:#1f2937}.aw-card{background:#fff;width:100%;max-width:820px;border-radius:18px;box-shadow:0 18px 50px #1a3a6b29;padding:28px 30px 24px;align-self:flex-start}.aw-khmer,input.aw-khmer{font-family:Noto Sans Khmer,Inter,sans-serif}.aw-head{text-align:center;margin-bottom:20px}.aw-head h1{font-size:1.5rem;font-weight:800;color:#1a3a6b;margin:0}.aw-head-kh{font-family:Noto Sans Khmer,sans-serif;color:#6b7280;font-size:.9rem;margin-top:4px}.aw-steps{list-style:none;display:flex;justify-content:space-between;gap:6px;padding:0;margin:0 0 22px}.aw-step{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;position:relative}.aw-step:not(:last-child):after{content:"";position:absolute;top:15px;left:60%;width:80%;height:2px;background:#e5e7eb}.aw-step.done:not(:last-child):after{background:#1a3a6b}.aw-step-num{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e5e7eb;color:#6b7280;font-weight:700;font-size:.85rem;z-index:1}.aw-step.active .aw-step-num{background:#1a3a6b;color:#fff}.aw-step.done .aw-step-num{background:#16a34a;color:#fff}.aw-step-label{font-size:.78rem;color:#6b7280}.aw-step.active .aw-step-label{color:#1a3a6b;font-weight:700}.aw-error{background:#fef2f2;border:1px solid #fca5a5;color:#b91c1c;padding:10px 14px;border-radius:9px;font-size:.88rem;margin-bottom:14px}.aw-fields{display:flex;flex-direction:column;gap:8px}.aw-section{font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#1a3a6b;margin:14px 0 4px;border-bottom:1px solid #eef0f4;padding-bottom:5px}.aw-optional{text-transform:none;letter-spacing:0;font-weight:400;color:#9ca3af}.aw-row{display:flex;flex-wrap:wrap;gap:12px}.aw-row>label{flex:1;min-width:180px;display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:#374151;font-weight:600}.aw-row-4>label{min-width:140px}.aw-row input,.aw-row select{padding:9px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;background:#fff;color:#111827;outline:none;font-weight:400}.aw-row input:focus,.aw-row select:focus{border-color:#1a3a6b}.aw-hint{font-size:.8rem;color:#9ca3af;margin:6px 0 0}.aw-degree-grid{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:6px}.aw-degree{flex:1;min-width:200px;display:flex;flex-direction:column;gap:4px;align-items:flex-start;padding:16px 18px;border:2px solid #e5e7eb;border-radius:12px;background:#fff;cursor:pointer;text-align:left}.aw-degree:hover{border-color:#93b4e0}.aw-degree.selected{border-color:#1a3a6b;background:#eff5ff}.aw-degree strong{font-size:1rem;color:#1a3a6b}.aw-degree span{font-family:Noto Sans Khmer,sans-serif;color:#6b7280;font-size:.85rem}.aw-docs{display:flex;flex-direction:column;gap:12px}.aw-drop{border:1px solid #e5e7eb;border-radius:12px;padding:14px 16px}.aw-drop.drag{border-color:#1a3a6b;background:#eff5ff}.aw-drop.has-file{border-color:#16a34a;background:#f0fdf4}.aw-drop-title{font-weight:700;color:#374151;font-size:.9rem;display:flex;flex-direction:column}.aw-drop-title span{font-family:Noto Sans Khmer,sans-serif;font-weight:400;color:#9ca3af;font-size:.8rem}.aw-drop-zone{margin-top:10px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px;border:2px dashed #cbd5e1;border-radius:10px;cursor:pointer;color:#64748b;font-size:.85rem}.aw-drop-zone:hover{border-color:#1a3a6b;color:#1a3a6b}.aw-drop-zone small{color:#9ca3af;font-size:.75rem}.aw-file-ok{margin-top:10px;display:flex;align-items:center;gap:12px;color:#15803d;font-size:.85rem;font-weight:600}.aw-file-ok button{margin-left:auto;background:none;border:none;color:#b91c1c;cursor:pointer;font-size:.8rem;text-decoration:underline}.aw-review{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;background:#f8fafc;border:1px solid #eef0f4;border-radius:10px;padding:14px;margin-bottom:12px}.aw-review>div{display:flex;flex-direction:column;gap:2px}.aw-review span{font-size:.72rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.04em}.aw-review strong{color:#1f2937;font-size:.9rem}.aw-declare{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;line-height:1.5;color:#374151;padding:12px;border:1px solid #e5e7eb;border-radius:10px}.aw-declare input{margin-top:3px;width:18px;height:18px;flex-shrink:0}.aw-foot{display:flex;justify-content:space-between;margin-top:24px;padding-top:16px;border-top:1px solid #eef0f4}.aw-btn{padding:10px 22px;border-radius:9px;border:1px solid #d1d5db;background:#fff;color:#374151;font-weight:600;font-size:.9rem;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}.aw-btn:hover{background:#f9fafb}.aw-btn-primary{background:#1a3a6b;border-color:#1a3a6b;color:#fff}.aw-btn-primary:hover{background:#15305a}.aw-btn-primary:disabled{opacity:.6;cursor:not-allowed}.aw-done{text-align:center;max-width:540px}.aw-done-check{width:64px;height:64px;border-radius:50%;background:#16a34a;color:#fff;font-size:2rem;display:flex;align-items:center;justify-content:center;margin:4px auto 14px}.aw-done h1{color:#1a3a6b;font-size:1.5rem;margin:0}.aw-done-kh{font-family:Noto Sans Khmer,sans-serif;color:#6b7280;margin-top:4px}.aw-ref-box{background:#eff5ff;border:1px dashed #1a3a6b;border-radius:12px;padding:16px;margin:20px 0}.aw-ref-box span{display:block;font-size:.75rem;color:#6b7280;text-transform:uppercase;letter-spacing:.06em}.aw-ref-box strong{font-size:1.6rem;color:#1a3a6b;letter-spacing:.04em}.aw-done-note{font-size:.9rem;color:#4b5563;line-height:1.6;margin-bottom:20px}.aw-pay-online{width:100%;justify-content:center;margin-bottom:16px;font-size:1rem;padding:13px}.aw-demo-paid{background:#ecfdf5;border:1px solid #6ee7b7;color:#047857;padding:12px 14px;border-radius:10px;font-size:.9rem;line-height:1.5;margin-bottom:16px;text-align:left}.aw-demo-paid small{color:#059669;opacity:.8}@media(max-width:560px){.aw-card{padding:20px 16px}.aw-step-label{display:none}.aw-foot{gap:10px}}.al-root{display:flex;flex-direction:column;gap:16px}.al-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 26px;border-radius:8px;background:linear-gradient(135deg,#0f172a,#1e3a5f,#312e81);color:#fff;box-shadow:0 12px 28px #0f172a47}.al-header span{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;opacity:.72}.al-header h2{display:flex;align-items:center;gap:8px;margin:4px 0 5px;font-size:26px}.al-header p{margin:0;color:#ffffffbf;font-size:13px}.al-btn{display:inline-flex;align-items:center;gap:6px;padding:0 16px;min-height:38px;border:1px solid rgba(255,255,255,.3);border-radius:7px;background:#ffffff24;color:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s;flex-shrink:0}.al-btn:hover:not(:disabled){background:#ffffff42}.al-btn:disabled{opacity:.5;cursor:not-allowed}.al-alert{padding:11px 14px;border-radius:7px;background:#fee2e2;color:#991b1b;font-weight:700;font-size:13px}.al-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.al-metric{display:flex;align-items:center;justify-content:space-between;min-height:88px;padding:16px;border-radius:8px;border:1px solid var(--border-color, #e2e8f0);border-top:4px solid #3b82f6;background:var(--bg-card, #fff);box-shadow:var(--shadow-sm, 0 1px 4px rgba(0,0,0,.06));color:var(--text-heading, #0f172a)}.al-metric--green{border-top-color:#059669}.al-metric--violet{border-top-color:#7c3aed}.al-metric span{display:block;font-size:11px;font-weight:900;text-transform:uppercase;color:var(--text-muted, #64748b)}.al-metric strong{display:block;margin-top:6px;font-size:26px;line-height:1.1}.al-filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.al-search{flex:1 1 260px;min-width:0;padding:8px 12px;border:1px solid var(--border-color, #e2e8f0);border-radius:7px;background:var(--bg-card, #fff);color:var(--text-body, #334155);font:inherit;font-size:13px}.al-search:focus,.al-select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}.al-select{padding:8px 10px;border:1px solid var(--border-color, #e2e8f0);border-radius:7px;background:var(--bg-card, #fff);color:var(--text-body, #334155);font:inherit;font-size:13px;cursor:pointer}.al-btn-outline{padding:8px 14px;border:1px solid var(--border-color, #e2e8f0);border-radius:7px;background:var(--bg-card, #fff);color:var(--text-body, #334155);font:inherit;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:border-color .15s}.al-btn-outline:hover{border-color:#6366f1;color:#6366f1}.al-card{background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;box-shadow:var(--shadow-sm, 0 1px 4px rgba(0,0,0,.06));overflow:hidden}.al-loading{padding:40px;text-align:center;color:var(--text-muted, #64748b);font-weight:700}.al-empty{padding:32px;text-align:center;color:var(--text-muted, #64748b);font-weight:700}.al-table-wrap{overflow-x:auto}.al-table{width:100%;border-collapse:collapse;font-size:13px}.al-table th{padding:10px 12px;color:var(--text-muted, #64748b);text-align:left;border-bottom:1px solid var(--border-color, #e2e8f0);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;background:var(--bg-subtle, #f8fafc)}.al-table td{padding:10px 12px;color:var(--text-body, #334155);border-bottom:1px solid var(--border-color, #e2e8f0);vertical-align:middle}.al-table tbody tr:last-child td{border-bottom:none}.al-table tbody tr:hover{background:var(--bg-subtle, #f8fafc)}.al-num{color:var(--text-muted, #94a3b8);font-size:12px;width:40px}.al-name{font-weight:600;color:var(--text-heading, #0f172a)}.al-email{color:var(--text-muted, #64748b);font-size:12px}.al-ip{font-family:monospace;font-size:12px}.al-datetime{font-size:12px;white-space:nowrap}.al-ago{color:var(--text-muted, #64748b);font-size:12px;white-space:nowrap}.al-badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:11px;font-weight:700;white-space:nowrap}.al-badge--purple{background:#ede9fe;color:#6d28d9}.al-badge--blue{background:#dbeafe;color:#1d4ed8}.al-badge--green{background:#d1fae5;color:#065f46}.al-badge--amber{background:#fef3c7;color:#92400e}.al-badge--teal{background:#ccfbf1;color:#0f766e}.al-badge--rose{background:#ffe4e6;color:#be123c}.al-footer{text-align:right;font-size:12px;color:var(--text-muted, #94a3b8);font-weight:600}.al-print-header{display:none;padding-bottom:14px;border-bottom:2px solid #0f172a;margin-bottom:14px}.al-print-header strong{display:block;font-size:17px;color:#0f172a}.al-print-sub{display:flex;justify-content:space-between;align-items:baseline;margin-top:4px}.al-print-sub span{font-size:13px;font-weight:700;color:#334155}.al-print-sub small{font-size:11px;color:#64748b}@media(max-width:820px){.al-metrics{grid-template-columns:1fr}.al-header{flex-direction:column;align-items:stretch}}@media print{.sidebar,.topbar{display:none!important}.app-shell{display:block!important;height:auto!important}.main-content{height:auto!important;overflow:visible!important;padding:16px 24px!important}.no-print{display:none!important}.al-print-header{display:block!important}.al-card{box-shadow:none!important;border:1px solid #cbd5e1!important}.al-table{font-size:11px}.al-table th,.al-table td{padding:6px 8px}.al-metrics{grid-template-columns:repeat(3,1fr)}}.sm-root{display:flex;flex-direction:column;gap:20px;padding:28px 32px;max-width:1100px;margin:0 auto}.sm-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:28px 32px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px}.sm-header-eyebrow{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}.sm-header h2{margin:6px 0 8px;font-size:22px;font-weight:800;color:var(--text-heading)}.sm-header p{margin:0;font-size:13.5px;color:var(--text-body);line-height:1.5}.sm-header-icon{flex-shrink:0;width:52px;height:52px;border-radius:12px;background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center}.sm-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.sm-stat{display:flex;align-items:center;gap:12px;padding:18px 20px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;color:var(--text-muted)}.sm-stat svg{flex-shrink:0}.sm-stat div{display:flex;flex-direction:column;gap:2px}.sm-stat strong{font-size:24px;font-weight:800;line-height:1;color:var(--text-heading)}.sm-stat span{font-size:12px;font-weight:600;color:var(--text-muted)}.sm-stat--active svg,.sm-stat--active strong{color:#059669}.sm-stat--inactive svg{color:var(--text-muted)}.sm-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sm-search{position:relative;flex:1;min-width:200px}.sm-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.sm-search input{width:100%;padding:9px 12px 9px 36px;border:1px solid var(--border-color);border-radius:8px;font-size:13.5px;background:var(--bg-card);color:var(--text-heading);outline:none;box-sizing:border-box}.sm-search input::placeholder{color:var(--text-muted)}.sm-search input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.sm-filter{padding:9px 12px;border:1px solid var(--border-color);border-radius:8px;font-size:13.5px;background:var(--bg-card);color:var(--text-heading);cursor:pointer;outline:none}.sm-filter:focus{border-color:var(--primary)}.sm-table-wrap{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm)}.sm-table{width:100%;border-collapse:collapse}.sm-table thead{background:var(--bg-main)}.sm-table th{padding:11px 16px;text-align:left;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border-color)}.sm-table td{padding:13px 16px;font-size:13.5px;color:var(--text-body);border-bottom:1px solid var(--border-color);vertical-align:middle}.sm-table tr:last-child td{border-bottom:none}.sm-table tbody tr:hover td{background:var(--bg-main)}.sm-row--inactive td{opacity:.55}.sm-cell-name{font-weight:600;color:var(--text-heading);margin-bottom:3px}.sm-cell-code{font-size:11.5px;font-weight:500;color:var(--text-muted);font-family:ui-monospace,Cascadia Code,monospace}.sm-badge{display:inline-block;padding:3px 9px;border-radius:6px;font-size:11.5px;font-weight:700;letter-spacing:.03em}.sm-badge--fac{background:var(--primary-light);color:var(--primary)}.sm-badge--morning{background:#f59e0b1f;color:#92400e}.sm-badge--evening{background:#8b5cf61f;color:#5b21b6}body.dark-mode .sm-badge--morning{color:#fcd34d}body.dark-mode .sm-badge--evening{color:#c4b5fd}.sm-status{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600}.sm-status:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}.sm-status--active{color:#059669}.sm-status--active:before{background:#059669}.sm-status--inactive{color:var(--text-muted)}.sm-status--inactive:before{background:var(--text-muted)}.sm-row-actions{display:flex;align-items:center;gap:4px;justify-content:flex-end}.sm-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:7px;background:transparent;cursor:pointer;color:var(--text-muted);transition:background .15s,color .15s}.sm-icon-btn:hover{background:var(--bg-main)}.sm-icon-btn--edit:hover{color:var(--primary)}.sm-icon-btn--del:hover{color:#ef4444;background:#ef444414}.sm-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:8px;font-size:13.5px;font-weight:600;border:none;cursor:pointer;transition:opacity .15s,background .15s;white-space:nowrap}.sm-btn:disabled{opacity:.5;cursor:not-allowed}.sm-btn--primary{background:var(--primary);color:#fff}.sm-btn--primary:hover:not(:disabled){background:var(--primary-hover)}.sm-btn--ghost{background:transparent;color:var(--text-body);border:1px solid var(--border-color)}.sm-btn--ghost:hover:not(:disabled){background:var(--bg-main)}.sm-btn--danger{background:#ef4444;color:#fff}.sm-btn--danger:hover:not(:disabled){background:#dc2626}.sm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9000;padding:24px}.sm-modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;box-shadow:var(--shadow-lg);width:100%;max-width:480px;overflow:hidden}.sm-modal--sm{max-width:400px}.sm-modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border-color)}.sm-modal-head h3{margin:0;font-size:16px;font-weight:700;color:var(--text-heading)}.sm-modal-body{display:flex;flex-direction:column;gap:16px;padding:20px 24px 24px}.sm-field{display:flex;flex-direction:column;gap:6px}.sm-field>span{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.sm-field select,.sm-field input{padding:10px 12px;border:1px solid var(--border-color);border-radius:8px;font-size:13.5px;background:var(--bg-card);color:var(--text-heading);outline:none;transition:border-color .15s,box-shadow .15s}.sm-field select:focus,.sm-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.sm-field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sm-derived{margin:0;font-size:12.5px;color:var(--text-muted);background:var(--bg-main);border:1px solid var(--border-color);padding:8px 12px;border-radius:8px}.sm-derived strong{color:var(--text-heading)}.sm-delete-msg{margin:0;font-size:13.5px;color:var(--text-body);line-height:1.6}.sm-delete-msg strong{color:var(--text-heading)}.sm-modal-actions{display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--border-color);margin-top:4px;padding-top:16px}.sm-empty{text-align:center;padding:60px 24px;color:var(--text-muted);font-size:14px;font-weight:500;background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px}.sm-toast{position:fixed;bottom:28px;right:28px;display:flex;align-items:center;gap:8px;padding:12px 18px;border-radius:10px;font-size:13.5px;font-weight:600;box-shadow:var(--shadow-lg);z-index:9999;animation:sm-slide-in .2s ease}.sm-toast--success{background:#059669;color:#fff}.sm-toast--error{background:#ef4444;color:#fff}@keyframes sm-slide-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}body.dark-mode .sm-table thead,body.dark-mode .sm-table tbody tr:hover td,body.dark-mode .sm-icon-btn:hover{background:#0f1a2e}body.dark-mode .sm-btn--ghost:hover:not(:disabled){background:#0f1a2e}body.dark-mode .sm-stat--active strong{color:#34d399}@media(max-width:768px){.sm-root{padding:16px}.sm-header{padding:20px}.sm-stats{grid-template-columns:repeat(2,1fr)}.sm-toolbar{flex-direction:column;align-items:stretch}.sm-field-row{grid-template-columns:1fr}.sm-table th:nth-child(3),.sm-table td:nth-child(3){display:none}}.srp-root{display:flex;flex-direction:column;gap:20px;padding:24px;max-width:1000px}.srp-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.srp-eyebrow{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted, #6b7280)}.srp-header h2{margin:4px 0 6px;font-size:22px;font-weight:700;color:var(--text-primary, #111)}.srp-header p{font-size:13px;color:var(--text-secondary, #555);max-width:520px}.srp-header-icon{color:var(--accent, #2563eb);opacity:.7;flex-shrink:0;padding-top:4px}.srp-terms{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.srp-term-tab{padding:6px 14px;border-radius:20px;border:1px solid var(--border, #d1d5db);background:var(--bg-secondary, #f3f4f6);font-size:13px;font-weight:500;color:var(--text-secondary, #555);cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .15s}.srp-term-tab:hover{border-color:var(--accent, #2563eb);color:var(--accent, #2563eb)}.srp-term-tab--active{background:var(--accent, #2563eb);border-color:var(--accent, #2563eb);color:#fff}.srp-term-badge{font-size:10px;font-weight:700;background:#ffffff40;border-radius:8px;padding:1px 6px;letter-spacing:.04em}.srp-section-row{display:flex;align-items:center;gap:12px}.srp-section-label{font-size:12px;font-weight:600;color:var(--text-secondary, #555);white-space:nowrap}.srp-section-select-wrap{position:relative;display:inline-flex;align-items:center}.srp-section-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:7px 32px 7px 12px;border-radius:7px;border:1px solid var(--border, #d1d5db);background:var(--bg-primary, #fff);font-size:13px;color:var(--text-primary, #111);cursor:pointer;min-width:260px}.srp-section-select:focus{outline:none;border-color:var(--accent, #2563eb);box-shadow:0 0 0 2px #2563eb1f}.srp-select-chevron{position:absolute;right:10px;pointer-events:none;color:var(--text-muted, #9ca3af)}.srp-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.srp-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.srp-count{font-size:13px;color:var(--text-muted, #6b7280);font-weight:500}.srp-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:7px;font-size:13px;font-weight:600;border:none;cursor:pointer;transition:all .15s}.srp-btn--primary{background:var(--accent, #2563eb);color:#fff}.srp-btn--primary:hover:not(:disabled){opacity:.88}.srp-btn--primary:disabled{opacity:.5;cursor:not-allowed}.srp-btn--ghost{background:transparent;color:var(--text-secondary, #555);border:1px solid var(--border, #d1d5db)}.srp-btn--ghost:hover:not(:disabled){background:var(--bg-secondary, #f3f4f6)}.srp-btn--ghost:disabled{opacity:.5;cursor:not-allowed}.srp-alert{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:8px;font-size:13px;font-weight:500}.srp-alert--success{background:#f0fdf4;color:#166534}.srp-alert--error{background:#fef2f2;color:#991b1b}.srp-table-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--border, #e5e7eb)}.srp-table{width:100%;border-collapse:collapse;font-size:13px}.srp-table th{background:var(--bg-secondary, #f3f4f6);padding:10px 14px;text-align:left;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted, #6b7280);border-bottom:1px solid var(--border, #e5e7eb);white-space:nowrap}.srp-table td{padding:11px 14px;border-bottom:1px solid var(--border, #f3f4f6);vertical-align:middle;color:var(--text-primary, #111)}.srp-table tr:last-child td{border-bottom:none}.srp-table tbody tr:hover td{background:var(--bg-secondary, #f9fafb)}.srp-index{color:var(--text-muted, #9ca3af);font-size:12px;width:32px}.srp-student-name{font-weight:600}.srp-muted{font-size:12px;color:var(--text-muted, #9ca3af);margin-top:1px}.srp-status-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:700;text-transform:capitalize;cursor:pointer;border:1px solid transparent}.srp-status-badge--active{background:#dcfce7;color:#166534;border-color:#bbf7d0}.srp-status-badge--dropped{background:#fef2f2;color:#991b1b;border-color:#fecaca}.srp-status-badge--graduated{background:#eff6ff;color:#1e40af;border-color:#bfdbfe}.srp-status-badge:hover{filter:brightness(.96)}.srp-status-select{font-size:12px;padding:3px 6px;border-radius:6px;border:1px solid var(--accent, #2563eb);background:var(--bg-primary, #fff)}.srp-row-actions{display:flex;align-items:center;gap:6px}.srp-icon-btn{background:none;border:1px solid var(--border, #e5e7eb);border-radius:6px;padding:5px;cursor:pointer;color:var(--text-secondary, #555);display:flex;align-items:center;transition:all .15s}.srp-icon-btn--danger:hover{border-color:#ef4444;color:#ef4444;background:#fef2f2}.srp-confirm-del{font-size:12px;color:var(--text-secondary, #555);display:flex;align-items:center}.srp-link{background:none;border:none;cursor:pointer;font-size:12px;color:var(--accent, #2563eb);font-weight:600;padding:0}.srp-link--danger{color:#ef4444}.srp-summary{display:flex;gap:12px;flex-wrap:wrap}.srp-summary-card{display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:10px;border:1px solid var(--border, #e5e7eb);background:var(--bg-secondary, #f9fafb);color:var(--accent, #2563eb);min-width:110px}.srp-summary-card--warn{color:#ef4444}.srp-summary-card>div{display:flex;flex-direction:column}.srp-summary-card strong{font-size:20px;font-weight:700;color:var(--text-primary, #111);line-height:1}.srp-summary-card span{font-size:11px;color:var(--text-muted, #6b7280);margin-top:2px}.srp-empty{text-align:center;padding:48px 24px;color:var(--text-muted, #9ca3af);font-size:14px}.srp-empty-hint{font-size:13px;color:var(--text-muted, #9ca3af);padding:8px 0 4px}.srp-link{color:var(--primary, #4f46e5);text-decoration:none;font-weight:500}.srp-link:hover{text-decoration:underline}.srp-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}.srp-modal{background:var(--bg-primary, #fff);border-radius:14px;box-shadow:0 12px 40px #0000002e;width:100%;max-width:520px;display:flex;flex-direction:column;max-height:80vh;overflow:hidden}.srp-modal--sm{max-width:400px}.srp-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border, #e5e7eb);font-size:14px;color:var(--text-primary, #111)}.srp-modal-close{background:none;border:none;cursor:pointer;color:var(--text-muted, #9ca3af);display:flex}.srp-modal-close:hover{color:var(--text-secondary, #555)}.srp-modal-search{margin:12px 20px 4px;padding:8px 12px;border-radius:7px;border:1px solid var(--border, #d1d5db);font-size:13px;background:var(--bg-secondary, #f9fafb);color:var(--text-primary, #111)}.srp-modal-search:focus{outline:none;border-color:var(--accent, #2563eb)}.srp-modal-list{flex:1;overflow-y:auto;padding:8px 20px}.srp-modal-item{display:flex;align-items:center;gap:10px;padding:8px 6px;border-radius:6px;cursor:pointer;font-size:13px}.srp-modal-item:hover{background:var(--bg-secondary, #f3f4f6)}.srp-modal-item input[type=checkbox]{accent-color:var(--accent, #2563eb)}.srp-modal-name{font-weight:500;color:var(--text-primary, #111);flex:1}.srp-modal-email{font-size:12px;color:var(--text-muted, #9ca3af)}.srp-modal-empty{padding:24px;text-align:center;color:var(--text-muted, #9ca3af);font-size:13px}.srp-modal-footer{display:flex;align-items:center;gap:10px;padding:14px 20px;border-top:1px solid var(--border, #e5e7eb);justify-content:flex-end}.srp-modal-footer .srp-count{margin-right:auto}.srp-modal-desc{font-size:13px;color:var(--text-secondary, #555);padding:14px 20px 0;line-height:1.5}.srp-modal-fields{display:flex;flex-direction:column;gap:12px;padding:16px 20px}.srp-modal-field{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:var(--text-secondary, #555)}.srp-modal-field select{padding:7px 10px;border-radius:6px;border:1px solid var(--border, #d1d5db);background:var(--bg-primary, #fff);font-size:13px;color:var(--text-primary, #111)}.srp-modal-field select:focus{outline:none;border-color:var(--accent, #2563eb)}.cal-root{display:flex;flex-direction:column;gap:20px}.cal-header{background:linear-gradient(135deg,#0f172a,#1e1b4b 45%,#312e81);border-radius:18px;padding:30px 36px;display:flex;align-items:center;justify-content:space-between;gap:32px;color:#fff;position:relative;overflow:hidden}.cal-header:before{content:"";position:absolute;top:-60px;right:-40px;width:260px;height:260px;border-radius:50%;background:#ffffff0a;pointer-events:none}.cal-header:after{content:"";position:absolute;bottom:-80px;right:120px;width:180px;height:180px;border-radius:50%;background:#ffffff08;pointer-events:none}.cal-header-eyebrow{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#ffffff8c;margin:0 0 8px}.cal-header-title{font-size:30px;font-weight:900;margin:0 0 8px;color:#fff;line-height:1.15}.cal-header-desc{font-size:14px;color:#ffffffb3;margin:0;font-weight:500;max-width:380px}.cal-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:16px;flex-shrink:0}.cal-hstat-group{display:flex;align-items:center;gap:0;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:12px;overflow:hidden}.cal-hstat{padding:14px 24px;text-align:center}.cal-hstat strong{display:block;font-size:26px;font-weight:900;color:#fff;line-height:1}.cal-hstat span{font-size:11px;color:#fff9;font-weight:600;white-space:nowrap;display:block;margin-top:3px}.cal-hstat-sep{width:1px;height:40px;background:#ffffff26;flex-shrink:0}.cal-today-btn{background:#ffffff24;border:1.5px solid rgba(255,255,255,.3);border-radius:99px;color:#fff;font-size:13px;font-weight:700;padding:9px 24px;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}.cal-today-btn:hover{background:#ffffff42;border-color:#ffffff80}.cal-body{display:grid;grid-template-columns:1fr 340px;gap:20px;align-items:start}.cal-grid-card{background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:20px}.cal-nav{display:flex;align-items:center;justify-content:space-between}.cal-nav-month{font-size:21px;font-weight:800;color:var(--text-heading, #0f172a);margin:0}.cal-nav-btn{background:var(--bg-soft, #f1f5f9);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;color:var(--text-heading, #0f172a);width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s,border-color .12s,transform .12s}.cal-nav-btn:hover{background:#e2e8f0;border-color:#94a3b8;transform:scale(1.08)}.cal-week-labels{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal-wlabel{text-align:center;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted, #94a3b8);padding:4px 0 8px}.cal-cells{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.cal-cell{position:relative;min-height:76px;background:var(--bg-soft, #f8fafc);border:1.5px solid transparent;border-radius:10px;display:flex;flex-direction:column;align-items:flex-start;padding:8px 8px 6px;cursor:pointer;transition:background .14s,border-color .14s,transform .14s,box-shadow .14s;text-align:left;font:inherit}.cal-cell:hover{border-color:#a5b4fc;background:#eef2ff;transform:translateY(-2px);box-shadow:0 6px 16px #6366f124}.cal-cell--gap{background:transparent;border:none;cursor:default;pointer-events:none}.cal-cell--today{background:#fffbeb;border-color:#fbbf24}.cal-cell--today:hover{background:#fef3c7;border-color:#f59e0b}.cal-cell--sel{background:#ede9fe;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed21}.cal-cell--sel:hover{background:#ddd6fe;border-color:#6d28d9}.cal-cell-num{font-size:14px;font-weight:700;color:var(--text-heading, #1e293b);line-height:1}.cal-cell--today .cal-cell-num{background:#f59e0b;color:#fff;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800}.cal-cell--sel .cal-cell-num{color:#5b21b6}.cal-cell-badge{position:absolute;top:7px;right:7px;background:#7c3aed;color:#fff;font-size:10px;font-weight:800;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:1}.cal-cell--today .cal-cell-badge{background:#f59e0b}.cal-cell--sel .cal-cell-badge{background:#6d28d9}.cal-cell-dots{display:flex;gap:3px;margin-top:auto;padding-top:4px;flex-wrap:wrap}.cal-cell-dots i{width:6px;height:6px;border-radius:50%;display:block;flex-shrink:0}.cal-legend{display:flex;gap:8px;border-top:1px solid var(--border-color, #e2e8f0);padding-top:16px;flex-wrap:wrap}.cal-legend-chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;padding:4px 10px;border-radius:99px;border:1px solid transparent}.cal-legend-chip--today{background:#fffbeb;border-color:#fbbf24;color:#92400e}.cal-legend-chip--sel{background:#ede9fe;border-color:#7c3aed;color:#5b21b6}.cal-legend-chip--ev{background:#f8fafc;border-color:#cbd5e1;color:#475569}.cal-legend-chip--today:before{content:"";width:8px;height:8px;border-radius:50%;background:#f59e0b}.cal-legend-chip--sel:before{content:"";width:8px;height:8px;border-radius:50%;background:#7c3aed}.cal-legend-chip--ev:before{content:"";width:8px;height:8px;border-radius:50%;background:#94a3b8}.cal-sidebar{background:var(--bg-card, #fff);border:1px solid var(--border-color, #e2e8f0);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;position:sticky;top:20px}.cal-sidebar-head{background:linear-gradient(135deg,#1e1b4b,#312e81);padding:20px 20px 16px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.cal-sidebar-sub{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#ffffff8c;margin:0 0 5px}.cal-sidebar-day{font-size:15px;font-weight:800;color:#fff;margin:0;line-height:1.35}.cal-count-badge{background:#fff3;border:1px solid rgba(255,255,255,.3);border-radius:99px;color:#fff;font-size:12px;font-weight:800;padding:5px 12px;white-space:nowrap;flex-shrink:0}.cal-count-badge--zero{background:#ffffff12;border-color:#ffffff1f;color:#ffffff73}.cal-sidebar-stats{display:grid;grid-template-columns:1fr 1fr 1fr;border-bottom:1px solid var(--border-color, #e2e8f0)}.cal-sstat{padding:12px 10px;text-align:center;border-right:1px solid var(--border-color, #e2e8f0)}.cal-sstat:last-child{border-right:none}.cal-sstat strong{display:block;font-size:18px;font-weight:900;color:var(--text-heading, #0f172a);line-height:1}.cal-sstat span{font-size:10px;font-weight:700;color:var(--text-muted, #94a3b8);text-transform:uppercase;letter-spacing:.05em;display:block;margin-top:3px}.cal-event-list{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;max-height:480px}.cal-event-card{background:var(--col-bg, #ede9fe);border:1.5px solid var(--col-border, #7c3aed);border-radius:12px;padding:14px 15px;transition:box-shadow .15s,transform .15s}.cal-event-card:hover{box-shadow:0 6px 20px #0000001a;transform:translateY(-1px)}.cal-ev-time{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:800;color:var(--col-border, #7c3aed);text-transform:uppercase;letter-spacing:.06em;background:#fff9;border-radius:99px;padding:3px 10px;margin-bottom:9px}.cal-ev-subject{font-size:15px;font-weight:800;color:var(--text-heading, #0f172a);margin:0 0 4px;line-height:1.3}.cal-ev-code{font-size:12px;font-weight:600;color:var(--text-muted, #64748b);margin:0 0 10px}.cal-ev-chips{display:flex;flex-wrap:wrap;gap:5px}.cal-ev-chip{display:inline-flex;align-items:center;gap:4px;background:#ffffffb3;border:1px solid rgba(0,0,0,.08);border-radius:99px;padding:3px 9px;font-size:11px;font-weight:600;color:var(--text-body, #334155);white-space:nowrap}.cal-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:44px 24px;gap:10px;color:var(--text-muted, #94a3b8)}.cal-empty strong{font-size:16px;font-weight:800;color:var(--text-heading, #334155)}.cal-empty span{font-size:13px;line-height:1.5}@media(max-width:1100px){.cal-body{grid-template-columns:1fr 300px}}@media(max-width:860px){.cal-body{grid-template-columns:1fr}.cal-sidebar{position:static}.cal-event-list{max-height:360px}.cal-header{flex-direction:column;align-items:flex-start;gap:20px;padding:22px 24px}.cal-header-right{align-items:flex-start}}@media(max-width:600px){.cal-header{padding:18px 20px}.cal-header-title{font-size:22px}.cal-grid-card{padding:14px;gap:14px}.cal-cell{min-height:54px;padding:5px}.cal-cell-badge{width:15px;height:15px;font-size:8px;top:4px;right:4px}.cal-nav-month{font-size:16px}.cal-hstat-group{flex-direction:column;gap:0}.cal-hstat-sep{width:100%;height:1px}}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;min-width:280px;max-width:420px;padding:13px 14px 13px 16px;border-radius:10px;background:#fff;box-shadow:0 8px 24px #00000024,0 2px 6px #00000014;border-left:4px solid #6366f1;pointer-events:all;transition:opacity .3s ease,transform .3s ease;opacity:0;transform:translate(30px)}.toast--in{opacity:1;transform:translate(0)}.toast--out{opacity:0;transform:translate(30px)}.toast--success{border-left-color:#22c55e}.toast--error{border-left-color:#ef4444}.toast--info{border-left-color:#3b82f6}.toast-icon{flex-shrink:0;display:flex;align-items:center}.toast--success .toast-icon{color:#16a34a}.toast--error .toast-icon{color:#dc2626}.toast--info .toast-icon{color:#2563eb}.toast-msg{flex:1;font-size:13px;font-weight:600;color:#1e293b;line-height:1.4}.toast-close{flex-shrink:0;width:22px;height:22px;border:none;background:none;color:#94a3b8;font-size:18px;line-height:1;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:color .15s,background .15s}.toast-close:hover{color:#475569;background:#f1f5f9}:root{--space-bg: #0a0500;--glass-bg: rgba(10, 5, 0, .65);--glass-border: rgba(255, 255, 255, .1);--glass-border-hover: rgba(201, 162, 39, .4);--primary-accent: linear-gradient(135deg, #c9a227 0%, #f5d97a 50%, #b8860b 100%);--secondary-accent: linear-gradient(135deg, #8B0000 0%, #c9a227 100%);--gold: #c9a227;--gold-light: #f5d97a;--maroon: #7a1a1a;--text-primary: #fdf8ee;--text-secondary: #d4c9a8;--text-muted: #8a7d60;--glow-shadow: 0 0 40px rgba(201, 162, 39, .2);--font-display: "Kantumruy Pro", "Outfit", "Plus Jakarta Sans", system-ui, sans-serif;--font-body: "Kantumruy Pro", "Plus Jakarta Sans", system-ui, sans-serif;--font-hero: "Moul", serif}.landing-page{font-family:var(--font-body);color:var(--text-primary);background-color:var(--space-bg);min-height:100vh;overflow-x:hidden;position:relative;animation:pageReveal 1s cubic-bezier(.16,1,.3,1) both}.landing-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:radial-gradient(circle at 10% 20%,rgba(201,162,39,.06) 0%,transparent 40%),radial-gradient(circle at 90% 80%,rgba(122,26,26,.06) 0%,transparent 40%),linear-gradient(rgba(255,255,255,.012) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px);background-size:100% 100%,100% 100%,50px 50px,50px 50px}@keyframes pageReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.container{max-width:1240px;margin:0 auto;padding:0 2rem}.landing-header{position:fixed;top:0;left:0;right:0;z-index:1000;transition:all .4s cubic-bezier(.16,1,.3,1);padding:1.75rem 0}.landing-header.scrolled{background:#030014bf;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border);padding:1rem 0}.header-content{display:flex;justify-content:space-between;align-items:center}.logo{display:flex;align-items:center;gap:.85rem;font-family:var(--font-display);font-weight:800;font-size:1.35rem;color:var(--text-primary);cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1)}.logo:hover{transform:translateY(-1px);filter:drop-shadow(0 0 12px rgba(201,162,39,.55))}.logo-img{height:52px;width:auto;object-fit:contain;transition:transform .3s ease}.logo:hover .logo-img{transform:rotate(5deg) scale(1.05)}.nav-menu{display:flex;align-items:center;gap:2.25rem}.nav-menu a{text-decoration:none;color:var(--text-secondary);font-weight:600;font-size:.95rem;transition:all .25s ease;position:relative}.nav-menu a:after{content:"";position:absolute;width:0%;height:2px;bottom:-4px;left:0;background:linear-gradient(90deg,var(--gold),var(--gold-light));transition:width .25s ease}.nav-menu a:hover{color:var(--text-primary)}.nav-menu a:hover:after{width:100%}.btn-login{background:linear-gradient(135deg,#c9a22726,#b8860b26);color:var(--gold-light);border:1px solid rgba(201,162,39,.4);padding:.65rem 1.4rem;border-radius:12px;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-login:hover{background:var(--primary-accent);color:#1a0e00;border-color:transparent;transform:translateY(-2px);box-shadow:0 8px 20px #c9a22759}.hero{padding:11rem 0 7rem;position:relative;overflow:hidden;background-size:cover;background-position:center 30%;background-attachment:fixed}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:linear-gradient(180deg,#050200b3,#1e0a008c 40%,#050200cc),linear-gradient(90deg,rgba(0,0,0,.55) 0%,transparent 60%)}.hero .hero-grid{position:relative;z-index:1}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:4.5rem;align-items:center;position:relative;z-index:1}.hero-text .badge{display:inline-block;padding:.5rem 1.1rem;background:#c9a22724;color:var(--gold-light);border:1px solid rgba(201,162,39,.35);border-radius:30px;font-weight:700;font-size:.85rem;margin-bottom:1.75rem;text-transform:uppercase;letter-spacing:.5px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:floatSlow 4s infinite ease-in-out}@keyframes floatSlow{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.hero-text h1{font-family:var(--font-hero);font-size:3.2rem;font-weight:400;line-height:1.75;margin-bottom:1.5rem;letter-spacing:0;background:linear-gradient(135deg,#fff 20%,#f5d97a 55%,#c9a227);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.hero-text p{font-size:1.15rem;color:var(--text-secondary);line-height:1.65;margin-bottom:2.75rem;max-width:520px}.hero-buttons{display:flex;gap:1.25rem;margin-bottom:3.5rem}.btn{padding:.95rem 2rem;border-radius:14px;font-weight:700;font-size:1rem;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-primary{background:var(--primary-accent);color:#1a0e00;border:none;box-shadow:0 10px 25px #c9a22759;position:relative;overflow:hidden}.btn-primary:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:all .6s ease}.btn-primary:hover:after{left:100%}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 15px 35px #c9a22780}.btn-secondary{background:#ffffff0a;color:var(--text-primary);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-secondary:hover{border-color:var(--glass-border-hover);background:#ffffff14;transform:translateY(-3px)}.hero-stats{display:flex;gap:3.5rem;border-top:1px solid var(--glass-border);padding-top:2rem;max-width:480px}.hero-stats div{display:flex;flex-direction:column;gap:.25rem}.hero-stats strong{font-family:var(--font-display);background:var(--secondary-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:2.2rem;font-weight:800;line-height:1}.hero-stats span{font-size:.85rem;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.hero-graphic{position:relative;perspective:1000px}.graphic-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:450px;height:450px;background:radial-gradient(circle,rgba(201,162,39,.2) 0%,rgba(122,26,26,.08) 50%,transparent 100%);filter:blur(60px);border-radius:50%;z-index:0;pointer-events:none}.mockup-window{background:#fffdf5;border:1px solid rgba(201,162,39,.3);border-radius:20px;box-shadow:0 30px 60px #643c002e,0 2px #c9a22726;overflow:hidden;z-index:1;position:relative;transform:rotateY(-12deg) rotateX(6deg) translateZ(10px);transform-style:preserve-3d;transition:all .6s cubic-bezier(.16,1,.3,1);max-width:500px;margin:0 auto}.mockup-window:hover{transform:rotateY(-4deg) rotateX(2deg) translateZ(20px);border-color:#c9a22780;box-shadow:0 35px 70px #643c0038,0 2px #c9a22733}.mockup-header{background:#f8f4ea;padding:.85rem 1.25rem;border-bottom:1px solid rgba(201,162,39,.2);display:flex;align-items:center;justify-content:space-between}.mockup-actions{display:flex;gap:6px}.mockup-actions span{width:10px;height:10px;border-radius:50%;display:inline-block}.mockup-actions .close{background:#ef4444}.mockup-actions .minimize{background:#f59e0b}.mockup-actions .maximize{background:#10b981}.mockup-title{font-size:.75rem;color:#7a5c1a;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.mockup-user-indicator{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#10b981;font-weight:700}.mockup-user-indicator:before{content:"";width:6px;height:6px;background:#10b981;border-radius:50%;box-shadow:0 0 8px #10b981;animation:pulseGreen 2s infinite}@keyframes pulseGreen{0%,to{opacity:.5}50%{opacity:1}}.mockup-body{padding:1.5rem;background:#fffdf5;display:flex;flex-direction:column;gap:1.25rem;max-height:380px;overflow-y:auto}.mockup-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem}.mockup-card{background:#fff;border:1px solid #e8d9b0;border-radius:12px;padding:1rem;box-shadow:0 2px 8px #643c000f}.mockup-gpa-container{display:flex;align-items:center;justify-content:space-between}.mockup-gpa-radial{position:relative;width:60px;height:60px;border-radius:50%;background:conic-gradient(#c9a227 90%,#e8d9b0 0);display:flex;align-items:center;justify-content:center}.mockup-gpa-radial:after{content:"3.62";position:absolute;width:48px;height:48px;border-radius:50%;background:#fff;font-size:.85rem;font-weight:800;display:flex;align-items:center;justify-content:center;color:#1a0e00}.mockup-card-title{font-size:.8rem;color:#8a7d60;font-weight:700;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.mockup-stat-num{font-family:var(--font-display);font-size:1.75rem;font-weight:800;margin:.25rem 0;color:#1a0e00}.mockup-trend{font-size:.72rem;font-weight:700;color:#10b981;margin-top:2px}.mockup-bar-row{display:flex;flex-direction:column;gap:.6rem;margin-top:.5rem}.mockup-bar-label{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:#1a0e00;margin-bottom:3px;font-weight:600}.mockup-bar-track{background:#e8d9b0;border-radius:20px;height:6px;overflow:hidden}.mockup-bar-fill{height:100%;border-radius:20px}.mockup-schedule-list{display:flex;flex-direction:column;gap:.75rem}.mockup-schedule-item{display:flex;justify-content:space-between;align-items:center;padding-bottom:.5rem;border-bottom:1px solid #f0e8d0}.mockup-schedule-item:last-child{border-bottom:none;padding-bottom:0}.mockup-class-info h5{font-size:.85rem;font-weight:700;margin:0;color:#1a0e00}.mockup-class-info p{font-size:.75rem;color:#8a7d60;margin:0}.mockup-class-time{font-size:.7rem;font-weight:700;padding:3px 8px;background:#c9a22726;color:#b8860b;border-radius:6px;border:1px solid rgba(201,162,39,.25)}.features{padding:8rem 0;background:linear-gradient(160deg,#1e40af,#1e3a8a 55%,#0f2167);position:relative}.features:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:600px;background:radial-gradient(circle,rgba(255,255,255,.05) 0%,transparent 70%);filter:blur(80px);pointer-events:none}.section-title{text-align:center;margin-bottom:5rem}.section-title span{background:var(--primary-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-weight:800;text-transform:uppercase;letter-spacing:2px;font-size:.9rem;display:block;margin-bottom:.75rem}.section-title h2{font-family:var(--font-display);font-size:2.75rem;font-weight:900;color:#fff;margin:0;letter-spacing:-.5px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem}.feature-card{padding:2.5rem 2rem;background:linear-gradient(135deg,#ffffff24,#ffffff0f);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:20px;border:1px solid rgba(255,255,255,.18);box-shadow:0 8px 32px #00003c40,inset 0 1px #ffffff1f;transition:all .4s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.feature-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at top right,rgba(201,162,39,.12),transparent 55%);opacity:0;transition:opacity .4s ease}.feature-card:hover:before{opacity:1}.feature-card:hover{transform:translateY(-6px);border-color:#ffffff4d;box-shadow:0 24px 52px #00003c59,inset 0 1px #ffffff2e}.feature-icon{width:56px;height:56px;border-radius:14px;background:linear-gradient(135deg,#c9a22740,#b8860b33);border:1px solid rgba(201,162,39,.4);color:#f5d97a;display:flex;align-items:center;justify-content:center;font-size:1.6rem;margin-bottom:1.75rem;transition:transform .3s ease}.feature-card:hover .feature-icon{transform:scale(1.1) rotate(4deg)}.feature-card h3{font-family:var(--font-display);font-size:1.35rem;font-weight:800;margin:0 0 1rem;color:#fff}.feature-card p{color:#ffffffbf;line-height:1.65;margin:0}.contact{padding:9rem 0;background:linear-gradient(180deg,#0f2167,#0a1a50);position:relative}.contact:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(201,162,39,.3),transparent)}.contact-card{background:#fff;border:1px solid rgba(201,162,39,.2);border-radius:28px;box-shadow:0 25px 60px #643c001a;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;max-width:1040px;margin:0 auto}.contact-info{background:linear-gradient(135deg,#1e40af,#1e3a8a 60%,#0f2167);border-right:none;padding:4.5rem;display:flex;flex-direction:column;justify-content:center}.contact-info h2{font-family:var(--font-display);font-size:2.75rem;font-weight:900;margin-bottom:1.25rem;color:#fdf5d0;letter-spacing:-.5px}.contact-info p{color:#fdf5d0bf;line-height:1.7;margin-bottom:3.5rem}.contact-methods{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2.25rem}.contact-methods li{display:flex;align-items:center;gap:1.75rem}.contact-icon{width:52px;height:52px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:all .3s ease;flex-shrink:0}.contact-methods li:hover .contact-icon{background:var(--primary-accent);border-color:transparent;transform:translateY(-2px)}.contact-methods strong{display:block;font-size:1.1rem;font-weight:700;margin-bottom:.25rem;color:#fdf5d0}.contact-methods span{color:#fdf5d0b3;font-size:.95rem}.contact-form{padding:4.5rem;background:#fff;display:flex;flex-direction:column;justify-content:center}.contact-form h3{font-family:var(--font-display);font-size:1.85rem;font-weight:800;margin-bottom:2.25rem;color:#1a0e00}.contact-form .form-group{margin-bottom:1.75rem}.contact-form input,.contact-form textarea{width:100%;padding:1.1rem 1.4rem;border:1.5px solid rgba(100,70,10,.18);border-radius:14px;background:#faf7f0;font-family:inherit;font-size:.95rem;color:#1a0e00;transition:all .3s ease;box-sizing:border-box}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#8a7d60}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:#c9a2278c;background:#fffef8;box-shadow:0 0 0 3px #c9a2271f}.btn-submit{background:var(--primary-accent);color:#1a0e00;border:none;padding:1.1rem;border-radius:14px;font-weight:700;font-size:1rem;cursor:pointer;transition:all .3s ease;box-shadow:0 8px 20px #c9a2274d}.btn-submit:hover{transform:translateY(-2px);box-shadow:0 12px 28px #c9a22773}.landing-footer{background:#1a0a02;border-top:1px solid rgba(201,162,39,.2);padding:3.5rem 0;color:var(--text-secondary)}.footer-content{display:flex;justify-content:space-between;align-items:center}.footer-brand{display:flex;align-items:center;gap:.85rem;color:#f5d97a;font-family:var(--font-display);font-weight:800;font-size:1.15rem;transition:all .3s ease}.footer-brand:hover{filter:drop-shadow(0 0 10px rgba(201,162,39,.55))}.footer-content p{font-size:.9rem;color:#8a7d60;margin:0}@media(max-width:992px){.hero{padding:9rem 0 5rem}.hero-grid{grid-template-columns:1fr;text-align:center;gap:3.5rem}.hero-text h1{font-size:3rem}.hero-text p{margin-left:auto;margin-right:auto}.hero-buttons{justify-content:center}.hero-stats{justify-content:center;margin:0 auto}.mockup-window{transform:none!important;max-width:460px}.feature-grid{grid-template-columns:1fr;max-width:560px;margin:0 auto}.contact-card{grid-template-columns:1fr;max-width:580px}.contact-info{border-right:none;border-bottom:1px solid var(--glass-border);padding:3.5rem}.contact-form{padding:3.5rem}.footer-content{flex-direction:column;gap:1.5rem;text-align:center}}/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-sky-500:oklch(68.5% .169 237.323);--color-slate-400:oklch(70.4% .04 256.788);--color-white:#fff;--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.resize{resize:both}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-3{gap:calc(var(--spacing) * 3)}.border{border-style:var(--tw-border-style);border-width:1px}.bg-sky-500{background-color:var(--color-sky-500)}.py-4{padding-block:calc(var(--spacing) * 4)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-slate-400{color:var(--color-slate-400)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--ui-font-size:14px;--ui-font-weight:400;--primary:#4f46e5;--primary-hover:#4338ca;--primary-light:#e0e7ff;--secondary:#7c3aed;--accent:#0ea5e9;--emerald:#059669;--warning:#f59e0b;--danger:#ef4444;--bg-main:#f8fafc;--bg-card:#fff;--bg-sidebar:#fffffff0;--text-heading:#0f172a;--text-body:#334155;--text-normal:#1f2937;--text-muted:#64748b;--text-light:#94a3b8;--border-color:#e2e8f0;--text-primary:#1f2937;--text-secondary:#6b7280;--bg-page:#f8fafc;--bg-primary:#fff;--bg-secondary:#f3f4f6;--bg-hover:#0000000a;--border:#e2e8f0;--gradient-brand:linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);--gradient-hero:linear-gradient(135deg, #312e81 0%, #4f46e5 48%, #7c3aed 100%);--shadow-sm:0 1px 3px #0f172a0f, 0 2px 8px #0f172a0a;--shadow-md:0 4px 16px #0f172a14, 0 8px 24px #0f172a0f;--shadow-lg:0 8px 32px #0f172a1a, 0 20px 48px #0f172a14;--transition:all .28s cubic-bezier(.4, 0, .2, 1);--font-english:"Plus Jakarta Sans", sans-serif;--font-khmer:"Kantumruy Pro", sans-serif;color:var(--text-body);background:var(--bg-main);font-family:var(--font-english),var(--font-khmer),system-ui,-apple-system,sans-serif;font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;font-size:var(--ui-font-size,14px);font-weight:var(--ui-font-weight,400);color:var(--text-body);background:radial-gradient(ellipse at 85% 10%,#4f46e51a,transparent 34%),radial-gradient(ellipse at 10% 90%,#0ea5e914,transparent 36%),var(--bg-main);margin:0;transition:filter .3s}button,input{font:inherit}.app-shell{opacity:1;filter:blur();grid-template-columns:280px minmax(0,1fr);height:100dvh;transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1),filter .8s cubic-bezier(.4,0,.2,1);display:grid;overflow:hidden;transform:scale(1)}.app-shell--exiting{opacity:0;filter:blur(8px);pointer-events:none;transform:scale(.97)}.nav-toggle{border:1px solid var(--border-color);width:44px;height:44px;color:inherit;cursor:pointer;transition:var(--transition);background:#ffffff1f;border-radius:12px;flex:none;justify-content:center;align-items:center;display:none}.nav-toggle:hover{background:#ffffff38}.sidebar-backdrop{display:none}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border-color);box-shadow:var(--shadow-sm);color:var(--text-heading);flex-direction:column;gap:30px;height:100dvh;padding:24px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:12px;display:flex}.logo-img{object-fit:contain;width:auto;height:46px}.brand strong,.brand span{display:block}.brand strong{color:var(--text-heading);font-size:18px;font-weight:800}.brand span{color:var(--text-muted);margin-top:2px;font-size:13px}.sidebar{color:#fff;background:linear-gradient(#3a3a3d,#2a2a2d,#1c1c1f);border-right:none;box-shadow:4px 0 28px -10px #0009}.sidebar .brand strong,body.dark-mode .sidebar .brand strong{color:#fff}.sidebar .brand span{color:#ffffff8c}.sidebar button.brand--link:hover{background:#ffffff12;border-color:#ffffff1a}.sidebar .sidebar-section-label{color:#ffffff73;letter-spacing:.05em;text-shadow:none;font-size:11px;font-weight:700}.sidebar .sidebar-section-toggle .nav-section-chevron{color:#fff6}.sidebar .sidebar-section-toggle:hover{background:#ffffff0d}.sidebar .sidebar-section-toggle:hover .sidebar-section-label,.sidebar .sidebar-section-toggle:hover .nav-section-chevron{color:#ffffffe6}.sidebar .sidebar-nav a,.sidebar .nav-parent,body.dark-mode .sidebar .sidebar-nav a:not(.active){color:#d4d4d8;letter-spacing:.01em;text-shadow:none;font-weight:600}.sidebar .sidebar-nav a:hover,.sidebar .nav-parent:hover,body.dark-mode .sidebar .sidebar-nav a:not(.active):hover{color:#fff;background:#ffffff12;border-color:#0000}.sidebar .sidebar-nav a.active,.sidebar .nav-parent.active,body.dark-mode .sidebar .sidebar-nav a.active{color:#fff;background:#ffffff1a;border-color:#0000;font-weight:700}.sidebar .nav-group>a.active,.sidebar .nav-parent.active,body.dark-mode .sidebar .nav-group>a.active,body.dark-mode .sidebar .nav-parent.active{box-shadow:inset 3px 0 #f5a623,0 6px 16px -8px #00000080}.sidebar .sidebar-subnav{border-left-color:#ffffff2e}.sidebar .sidebar-subnav a{color:#bcbcc2;text-shadow:none;font-weight:600}.sidebar .sidebar-subnav a.active{color:#fff;border-left-color:#f5a623}.sidebar .nav-icon{opacity:.92}.sidebar .nav-section+.nav-section{border-top-color:#ffffff12;margin-top:10px;padding-top:14px}.sidebar .sidebar-section-label{margin:2px 0 6px;padding:0 14px;display:block}.sidebar-nav{flex-direction:column;gap:0;display:flex}.nav-section{flex-direction:column;gap:2px;padding-top:8px;display:flex}.nav-section+.nav-section{border-top:1px solid var(--border-color);margin-top:8px;padding-top:16px}.sidebar-section-label{color:var(--text-light);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;padding:0 12px;font-size:10px;font-weight:700}.sidebar-section-toggle{cursor:pointer;transition:var(--transition);background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;width:100%;margin-bottom:2px;padding:6px 12px;font-family:inherit;display:flex}.sidebar-section-toggle .sidebar-section-label{margin:0;padding:0}.sidebar-section-toggle:hover{background:#eef2ff;transform:translate(3px)}.sidebar-section-toggle:hover .sidebar-section-label,.sidebar-section-toggle:hover .nav-section-chevron{color:var(--primary)}.sidebar-section-toggle .nav-section-chevron{color:var(--text-light);opacity:.7;flex-shrink:0;transition:transform .22s}.nav-section--open .sidebar-section-toggle .nav-section-chevron{transform:rotate(180deg)}.sidebar-section-items{flex-direction:column;gap:2px;animation:.24s cubic-bezier(.22,1,.36,1) both nav-section-reveal;display:flex}@keyframes nav-section-reveal{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.sidebar-nav a,.nav-parent,.sidebar-section-toggle,.sidebar-section-items,.sidebar-section-items .nav-group,.nav-icon,.nav-section-chevron{transition:background .2s,color .2s,border-color .2s!important;animation:none!important}.sidebar-nav a:hover,.nav-parent:hover,.sidebar-section-toggle:hover{transform:none}}.sidebar-nav a,.nav-parent{color:var(--text-body);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:12px 14px;font-weight:700;text-decoration:none;transition:background .25s,border-color .25s,color .25s,transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .3s;display:flex}.sidebar-nav a:hover,.sidebar-nav a.active,.nav-parent:hover,.nav-parent.active{color:var(--primary);background:#eef2ff;border-color:#c7d2fe;transform:translate(6px)}.sidebar-nav a.active,.nav-parent.active{box-shadow:0 5px 16px -6px #4f46e580}.sidebar-nav a:active,.nav-parent:active{transition:transform 90ms;transform:translate(6px)scale(.96)}.nav-parent .nav-chevron{flex-shrink:0;transition:transform .22s}.nav-group--open .nav-parent .nav-chevron{transform:rotate(180deg)}.nav-item-label{align-items:center;gap:10px;min-width:0;display:inline-flex}.nav-icon{opacity:.75;transition:var(--transition);flex-shrink:0}.sidebar-nav a:hover .nav-icon,.sidebar-nav a.active .nav-icon,.nav-parent:hover .nav-icon,.nav-parent.active .nav-icon{opacity:1;transform:scale(1.1)}.sidebar-nav a:hover .nav-icon,.nav-parent:hover .nav-icon{animation:.45s cubic-bezier(.34,1.56,.64,1) nav-icon-pop}@keyframes nav-icon-pop{0%{transform:scale(1)rotate(0)}40%{transform:scale(1.28)rotate(-9deg)}65%{transform:scale(1.04)rotate(5deg)}to{transform:scale(1.1)rotate(0)}}.nav-group{gap:4px;display:grid}.sidebar-subnav{border-left:2px solid var(--border-color);opacity:0;gap:2px;max-height:0;margin-left:16px;padding:4px 0 4px 10px;transition:max-height .28s,opacity .2s,transform .24s;display:grid;overflow:hidden;transform:translateY(-4px)}.nav-group--has-children:hover .sidebar-subnav,.nav-group--has-children:focus-within .sidebar-subnav,.nav-group--open .sidebar-subnav{opacity:1;max-height:120px;transform:translateY(0)}.sidebar-subnav a{justify-content:flex-start;padding:9px 12px;font-size:13.5px;font-weight:600}.sidebar-subnav a.active{border-color:#0000;border-left:3px solid var(--primary);border-radius:10px;padding-left:10px;transform:none}.main-content{flex-direction:column;gap:16px;min-width:0;height:100%;padding:22px 28px 0;display:flex;overflow:hidden}.main-scroll-body{scrollbar-width:thin;scrollbar-color:var(--border-color) transparent;flex:1;min-width:0;min-height:0;padding-bottom:28px;overflow-y:auto}.topbar{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);z-index:1500;isolation:isolate;border-radius:18px;flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 20px;display:flex;container:topbar/inline-size;overflow:visible!important}.topbar>div:first-child{z-index:2;position:relative}.topbar p,.topbar h1{margin:0}.topbar p{color:var(--primary);font-size:calc(var(--header-text-scale,1) * clamp(10px,1.2cqw,12px));letter-spacing:1.4px;text-transform:uppercase;font-weight:800;transition:font-size .15s,color .28s}.topbar h1{color:var(--text-heading);font-size:calc(var(--header-text-scale,1) * clamp(18px,2.5cqw,28px));margin-top:4px;font-weight:800;line-height:1.2;transition:font-size .15s,color .28s}.sidebar-footer{flex-direction:column;gap:12px;margin-top:auto;display:flex}.logout-button{color:#e11d48;cursor:pointer;background:#fff0f2;border:1px solid #fecdd3;border-radius:12px;align-items:center;gap:6px;padding:10px 16px;font-size:13px;font-weight:700;transition:all .25s;display:flex}.logout-button:hover{color:#be123c;background:#ffe4e6;border-color:#fda4af;transform:translateY(-1px);box-shadow:0 4px 12px #e11d4826}.logout-button:active{transform:translateY(0)}.profile-chip{border:1px solid var(--border-color);background:#f8fafc;border-radius:14px;align-items:center;gap:10px;padding:9px 11px;display:flex}.profile-chip:hover{box-shadow:var(--shadow-sm);background:#f1f5f9;border-color:#cbd5e1}.profile-chip>span{background:var(--gradient-brand);color:#fff;border-radius:11px;justify-content:center;align-items:center;width:38px;height:38px;font-size:13px;font-weight:900;display:flex}.profile-chip strong,.profile-chip small{display:block}.profile-chip strong{color:var(--text-heading)}.profile-chip small{color:var(--text-muted);margin-top:2px}.metrics-row,.payment-summary{flex-shrink:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.payment-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-panel{gap:18px;display:grid}.finance-alert{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:12px 14px;font-weight:800}.finance-alert--error{color:#be123c;background:#fff1f2;border-color:#fecdd3}.finance-form{background:var(--bg-soft);border:1px solid var(--border-color);border-radius:14px;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:16px;display:grid}.finance-form label{gap:7px;display:grid}.finance-form span{color:var(--text-muted);font-size:12px;font-weight:900}.finance-form input,.finance-form select{border:1px solid var(--border-color);color:var(--text-heading);font:inherit;border-radius:10px;min-height:42px;padding:0 12px;font-weight:750}.finance-form-wide{grid-column:span 2}.finance-table-wrap{border:1px solid var(--border-color);border-radius:14px;overflow-x:auto}.finance-table{border-collapse:collapse;width:100%;min-width:860px}.finance-table th,.finance-table td{border-bottom:1px solid var(--border-color);text-align:left;padding:13px 14px}.finance-table th{background:var(--bg-soft);color:var(--text-muted);text-transform:uppercase;font-size:12px;font-weight:950}.finance-table td{color:var(--text-heading);font-size:14px;font-weight:750}.finance-table td span{color:var(--text-muted);margin-top:3px;font-size:12px;display:block}.finance-empty{color:var(--text-muted)!important;text-align:center!important}.finance-status{border-radius:999px;padding:6px 10px;font-weight:950;font-size:12px!important;display:inline-flex!important}.finance-status--paid{background:#dcfce7;color:#166534!important}.finance-status--pending,.finance-status--partial{background:#fef3c7;color:#92400e!important}.finance-status--refunded{background:#e0f2fe;color:#075985!important}.finance-status--cancelled{background:#fee2e2;color:#991b1b!important}.finance-delete{color:#be123c;cursor:pointer;background:#fff1f2;border:1px solid #fecdd3;border-radius:9px;padding:8px 11px;font-weight:900}.metric-card{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);transition:var(--transition);border-radius:16px;align-items:flex-start;gap:16px;padding:20px;display:flex;position:relative;overflow:hidden}.metric-card:before{content:"";background:var(--gradient-brand);border-radius:16px 16px 0 0;height:4px;position:absolute;top:0;left:0;right:0}.metric-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.metric-card-icon{color:#fff;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;display:flex}.metric-card-body{flex-direction:column;gap:2px;min-width:0;display:flex}.metric-card-label{letter-spacing:.7px;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:800;display:block}.metric-card-value{color:var(--text-heading);margin-top:4px;font-size:30px;font-weight:900;line-height:1.15;display:block}.metric-card-detail{color:var(--text-muted);margin-top:2px;font-size:12px;font-weight:600;display:block}.metric-card--blue:before,.metric-card--blue .metric-card-icon{background:linear-gradient(135deg,#3b82f6,#6366f1)}.metric-card--green:before,.metric-card--green .metric-card-icon{background:linear-gradient(135deg,#059669,#10b981)}.metric-card--amber:before,.metric-card--amber .metric-card-icon{background:linear-gradient(135deg,#d97706,#f59e0b)}.metric-card--rose:before,.metric-card--rose .metric-card-icon{background:linear-gradient(135deg,#e11d48,#f43f5e)}.dashboard-grid{grid-template-columns:1.7fr 1fr;gap:20px;display:grid}.panel{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:18px;padding:20px}.section-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.section-header span{color:var(--primary);letter-spacing:2px;text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:800;display:block}.section-header h2{color:var(--text-heading);margin:0;font-size:20px;font-weight:800;line-height:1.2}.section-header button,.toolbar button,.row-actions button{background:var(--gradient-brand);color:#fff;cursor:pointer;transition:var(--transition);border:0;border-radius:11px;padding:10px 14px;font-size:13px;font-weight:800;box-shadow:0 4px 16px #4f46e547}.section-header button:hover,.toolbar button:hover,.row-actions button:hover{transform:translateY(-2px);box-shadow:0 10px 25px #4f46e559}.timeline,.status-list{gap:12px;display:grid}.timeline-item{border:1px solid var(--border-color);background:#f8fafc;border-radius:14px;grid-template-columns:120px minmax(0,1fr);align-items:start;gap:14px;padding:14px;display:grid}.timeline-item time{color:var(--primary);font-weight:900}.timeline-item strong,.timeline-item span{display:block}.timeline-item span{color:var(--text-muted);margin-top:4px}.status-list div{border:1px solid var(--border-color);background:#f8fafc;border-radius:14px;justify-content:space-between;align-items:center;padding:14px;display:flex}.status-list span{color:var(--text-muted)}.status-list strong{color:var(--text-heading);font-size:22px}.toolbar{gap:12px;margin-bottom:16px;display:flex}.toolbar input{border:1.5px solid var(--border-color);color:var(--text-heading);min-width:0;transition:var(--transition);background:#f8fafc;border-radius:12px;outline:none;flex:1;padding:12px 14px}.toolbar input:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 4px #4f46e51f}.admin-table-wrap{border:1px solid var(--border-color);border-radius:16px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;min-width:860px}.admin-table th{border-bottom:1px solid var(--border-color);color:var(--text-muted);letter-spacing:.4px;text-align:left;text-transform:uppercase;background:#f8fafc;padding:14px;font-size:12px;font-weight:800}.admin-table td{color:var(--text-body);border-bottom:1px solid #eef2f7;padding:14px;font-size:14px}.admin-table tbody tr:hover td{background:#fafafe}.pill{text-transform:capitalize;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;display:inline-flex}.pill--active{color:#065f46;background:#d1fae5}.pill--review{color:#92400e;background:#fef3c7}.pill--changed{color:#075985;background:#e0f2fe}.row-actions{gap:8px;display:flex}.row-actions button:last-child{box-shadow:none;color:var(--primary);background:#eef2ff}.faculty-link{color:var(--primary);transition:var(--transition);border-bottom:1.5px solid #0000;font-weight:700;text-decoration:none}.faculty-link:hover,.faculty-link:focus-visible{border-bottom-color:currentColor}.status-filter{border:1px solid var(--border-color);background:#f1f5f9;border-radius:12px;flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.status-filter button{box-shadow:none;color:var(--text-muted);text-transform:capitalize;background:0 0;border-radius:9px;padding:8px 12px;font-weight:700}.status-filter button:hover{box-shadow:none;color:var(--text-heading);background:#fff;transform:none}.status-filter button.active{color:var(--primary);background:#fff;box-shadow:0 1px 4px #0f172a1f}.table-meta{color:var(--text-muted);margin:0 0 12px;font-size:13px}.dept-count-badge{background:var(--primary-light);color:var(--primary);border-radius:999px;justify-content:center;min-width:28px;padding:4px 10px;font-size:12px;font-weight:800;display:inline-flex}.modal-hint{border:1px solid var(--border-color);color:var(--text-muted);background:#f8fafc;border-radius:10px;margin:0;padding:10px 14px;font-size:13px}.btn-danger{color:#b91c1c;background:#fee2e2;border:1px solid #fecaca}.btn-danger:hover:not(:disabled){background:#fecaca}.btn-danger:disabled{cursor:not-allowed;opacity:.55}.empty-cell{color:var(--text-muted);text-align:center;padding:32px 14px}.schedule-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.schedule-day{border:1px solid var(--border-color);background:#f8fafc;border-radius:16px;padding:14px}.schedule-day h3{color:var(--text-heading);margin:0 0 12px}.schedule-class{border:1px solid var(--border-color);background:#fff;border-radius:14px;gap:5px;margin-top:10px;padding:12px;display:grid}.schedule-class span,.schedule-class small{color:var(--text-muted)}[class*=table-wrap],[class*=table-scroll]{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}@media(max-width:980px){.app-shell{grid-template-columns:1fr;height:auto;min-height:100dvh;overflow:visible}.main-content{height:auto;overflow:visible}.main-scroll-body{flex:none;min-height:0;overflow:visible}.topbar{z-index:1500;position:sticky;top:0}.sidebar{z-index:1600;width:280px;max-width:84vw;height:100dvh;transition:transform .3s cubic-bezier(.4,0,.2,1);position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.sidebar--open{transform:translate(0);box-shadow:0 0 48px #0006}.sidebar-backdrop{z-index:1550;opacity:0;visibility:hidden;background:#00000073;transition:opacity .3s,visibility .3s;display:block;position:fixed;top:0;right:0;bottom:0;left:0}.app-shell--nav-open .sidebar-backdrop{opacity:1;visibility:visible}.nav-toggle{display:inline-flex}.metrics-row{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.schedule-board,.payment-summary{grid-template-columns:1fr}}@media(max-width:640px){.main-content{gap:12px;padding:12px 16px 0}.topbar{flex-wrap:wrap;gap:10px;padding:14px 16px}.topbar h1{font-size:calc(var(--header-text-scale,1) * clamp(15px,5vw,20px))}.topbar p{font-size:calc(var(--header-text-scale,1) * 10px)}.toolbar{align-items:stretch;gap:14px;display:grid}.timeline-item{grid-template-columns:1fr}[class*=modal],[class*=-dialog],[class*=drawer-panel]{max-width:100%!important}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{min-height:44px;font-size:16px}}.login-page{isolation:isolate;opacity:1;filter:blur();background:radial-gradient(circle at 52% 52%,#154a7070,#0000 44%),linear-gradient(135deg,#12124ee6,#0e2c53db 48%,#120d43eb),url(./university-bg-kE-3Upy8.jpg) 50%/cover no-repeat;justify-content:center;align-items:center;min-height:100dvh;padding:1.5rem;transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1),filter .8s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;transform:scale(1)}.login-page:before{content:"";-webkit-backdrop-filter:saturate(.72)brightness(.7);backdrop-filter:saturate(.72)brightness(.7);z-index:0;background:linear-gradient(135deg,#0b11365c,#1339622e 46%,#0d093a61),radial-gradient(circle at 50% 52%,#215b8257,#0000 42%);position:absolute;top:0;right:0;bottom:0;left:0}.login-page:after{content:"";pointer-events:none;opacity:0;z-index:0;background:#05081a52;animation:1.15s cubic-bezier(.16,1,.3,1) both loginBackgroundReveal;position:absolute;top:0;right:0;bottom:0;left:0;transform:scale(1.08)}@keyframes loginBackgroundReveal{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:scale(1.08)}55%{opacity:1;clip-path:inset(0)}to{opacity:1;clip-path:inset(0);transform:scale(1)}}.login-page--exiting{opacity:0;filter:blur(8px);pointer-events:none;transform:scale(.97)}.login-card{z-index:2;-webkit-backdrop-filter:blur(18px);background:#ffffffe6;border:1px solid #ffffffb8;border-radius:28px;flex-direction:column;width:100%;max-width:440px;padding:3rem 2.5rem;animation:.6s cubic-bezier(.16,1,.3,1) forwards slideUpFade;display:flex;position:relative;box-shadow:0 24px 70px #0f172a47,0 1px 3px #0f172a1a}body.dark-mode .login-card{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#141d32bf;border-color:#ffffff0f;box-shadow:0 20px 50px #0000004d}.login-icon-container{justify-content:center;margin-bottom:1.65rem;display:flex}.login-logo-orb{isolation:isolate;background:radial-gradient(circle at 50% 42%,#fffffff5,#fff1f2d1 62%,#fee2e280);border:1px solid #f8717147;border-radius:50%;justify-content:center;align-items:center;width:112px;height:112px;animation:4.8s ease-in-out infinite loginLogoFloat;display:flex;position:relative;box-shadow:0 18px 36px #b91c1c2e,0 0 0 10px #ffffff59,inset 0 1px 10px #ffffffe6}.login-logo-orb:before,.login-logo-orb:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px}.login-logo-orb:before{border:1px solid #ef444447;animation:2.8s ease-out infinite loginLogoPulse}.login-logo-orb:after{opacity:0;z-index:2;background:linear-gradient(120deg,#0000 18%,#ffffffb8 46%,#0000 66%);border-radius:34px;animation:4.2s ease-in-out infinite loginLogoSheen;top:8px;right:8px;bottom:8px;left:8px;transform:translate(-42%)rotate(12deg)}.login-logo-img{z-index:1;object-fit:contain;filter:drop-shadow(0 7px 12px #b91c1c3d);width:74px;height:88px;display:block;position:relative}body.dark-mode .login-logo-orb{background:radial-gradient(circle at 50% 42%,#1e293bf2,#7f1d1d7a 70%,#0f172adb);border-color:#f871714d;box-shadow:0 18px 42px #0000005c,0 0 0 10px #f8717114,inset 0 1px 10px #ffffff14}@keyframes loginLogoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes loginLogoPulse{0%{opacity:.75;transform:scale(.94)}70%,to{opacity:0;transform:scale(1.18)}}@keyframes loginLogoSheen{0%,48%{opacity:0;transform:translate(-42%)rotate(12deg)}58%{opacity:.75}76%,to{opacity:0;transform:translate(42%)rotate(12deg)}}.form-head{text-align:center;margin-bottom:1.5rem}.form-head h2{color:var(--text-heading);letter-spacing:-.02em;margin:0 0 8px;font-size:1.625rem;font-weight:800}.form-head p{color:var(--text-muted);margin:0;font-size:.875rem;line-height:1.45}.form-separator{border-top:1.5px dashed var(--border-color);opacity:.7;margin:0 0 1.75rem}body.dark-mode .form-separator{border-top-color:#ffffff14}.login-card .input-group label{font-weight:900}.input-with-icon{width:100%;position:relative}.input-with-icon .input-icon{color:var(--text-light);pointer-events:none;transition:color .2s;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.input-with-icon input{width:100%;border:1.5px solid var(--border-color)!important;background:var(--bg-card)!important;color:var(--text-heading)!important;border-radius:12px!important;outline:none!important;padding:12px 16px 12px 42px!important;font-size:.95rem!important;font-weight:500!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important}body.dark-mode .input-with-icon input{background:#0f172a66!important;border-color:#ffffff14!important}.input-with-icon input:focus{border-color:var(--primary)!important;background:var(--bg-card)!important;box-shadow:0 0 0 4px #4f46e51f!important}body.dark-mode .input-with-icon input:focus{background:#0f172a99!important}.input-with-icon input:focus+.input-icon{color:var(--primary)}.btn-login-submit{background:var(--gradient-brand);color:#fff;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;width:100%;height:48px;margin-top:1rem;font-size:.95rem;font-weight:700;transition:all .28s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 12px #4f46e533}.btn-login-submit:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 6px 16px #4f46e54d}.btn-login-submit:active:not(:disabled){transform:translateY(0)}.btn-login-submit:disabled{opacity:.6;cursor:not-allowed}body.dark-mode .btn-login-submit{background:var(--gradient-brand);color:#fff;box-shadow:0 4px 12px #4f46e526}body.dark-mode .btn-login-submit:hover:not(:disabled){filter:brightness(1.15);box-shadow:0 6px 16px #4f46e540}.login-divider{text-align:center;color:var(--text-muted);align-items:center;gap:12px;margin:1.4rem 0 1.1rem;font-size:.8rem;font-weight:700;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border-color);flex:1;height:1px}.google-signin{justify-content:center;min-height:44px;display:flex}.form-footer{text-align:center;color:var(--text-muted);margin:1.75rem 0 0;font-size:.85rem;font-weight:800;line-height:1.6}.contact-admin{font-size:inherit;color:var(--text-heading);cursor:pointer;background:0 0;border:none;margin-top:4px;padding:0;font-family:inherit;font-weight:700;text-decoration:none}.contact-admin:hover{text-decoration:underline}.login-alert{text-align:center;border-radius:10px;margin-bottom:1.5rem;padding:12px 16px;font-size:.9rem;font-weight:600}.login-alert--error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}body.dark-mode .login-alert--error{color:#fca5a5;background:#dc262626;border-color:#dc262640}@media(max-width:480px){.login-card{padding:2.25rem 1.5rem}}.modal-overlay{-webkit-backdrop-filter:blur(10px);z-index:2000;background:#ffffff59;justify-content:center;align-items:center;padding:1rem;animation:.2s ease-out fadeIn;display:flex;position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-card);width:100%;max-width:500px;max-height:calc(100dvh - 2rem);box-shadow:var(--shadow-lg);border-radius:20px;animation:.3s cubic-bezier(.34,1.56,.64,1) scaleIn;overflow:hidden auto}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{border-bottom:1px solid var(--border-color);background:#f8fafc;justify-content:space-between;align-items:center;padding:1.5rem 2rem;display:flex}.modal-header h3{color:var(--text-heading);margin:0;font-size:1.25rem;font-weight:800}.close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.5rem;transition:all .2s;display:flex}.close-btn:hover{color:var(--text-heading);background:#e2e8f0}.modal-form{flex-direction:column;gap:1.4rem;padding:2rem;display:flex}.modal-form .input-group{flex-direction:column;gap:7px;display:flex}.modal-form .input-group label{color:var(--text-heading);letter-spacing:.01em;font-size:.8rem;font-weight:700}.modal-form .input-group input,.modal-form .input-group select{border:1px solid var(--border-color);width:100%;font:inherit;color:var(--text-heading);background-color:var(--bg-subtle,#f8fafc);border-radius:11px;padding:11px 14px;font-size:.95rem;transition:border-color .18s,box-shadow .18s,background-color .18s}.modal-form .input-group input::placeholder{color:var(--text-light,#94a3b8)}.modal-form .input-group input:hover,.modal-form .input-group select:hover{border-color:#c7d2fe}.modal-form .input-group input:focus,.modal-form .input-group select:focus{border-color:var(--primary);background-color:var(--bg-card,#fff);outline:none;box-shadow:0 0 0 3px #4f46e521}.modal-form .input-group select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-position:right 13px center;background-repeat:no-repeat;padding-right:38px}.form-row-2{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}.modal-actions{border-top:1px solid var(--border-color);justify-content:flex-end;gap:1rem;margin-top:1rem;padding-top:1.5rem;display:flex}.modal-actions button{cursor:pointer;border-radius:10px;padding:.6rem 1.25rem;font-size:.95rem;font-weight:700;transition:all .2s}.btn-secondary{color:var(--text-body);background:#f1f5f9;border:1px solid #cbd5e1}.btn-secondary:hover{background:#e2e8f0}.btn-primary{background:var(--gradient-brand);color:#fff;border:none;box-shadow:0 4px 12px #4f46e533}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 16px #4f46e54d}.stagger-fade-in{animation:.6s cubic-bezier(.16,1,.3,1) forwards slideUpFade}@keyframes slideUpFade{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.stagger-fade-in>.input-group:first-child{opacity:0;animation:.6s cubic-bezier(.16,1,.3,1) .1s forwards slideUpFade}.stagger-fade-in>.input-group:nth-child(2){opacity:0;animation:.6s cubic-bezier(.16,1,.3,1) .2s forwards slideUpFade}.stagger-fade-in>.input-group:nth-child(3){opacity:0;animation:.6s cubic-bezier(.16,1,.3,1) .3s forwards slideUpFade}.stagger-fade-in>.cool-submit{opacity:0;animation:.6s cubic-bezier(.16,1,.3,1) .4s forwards slideUpFade}.cool-input{width:100%;font-weight:500;box-shadow:inset 0 2px 4px #00000005;color:var(--text-heading)!important;background:#f1f5f9!important;border:2px solid #0000!important;border-radius:14px!important;padding:14px 18px!important;font-size:1rem!important;transition:all .3s cubic-bezier(.4,0,.2,1)!important}.cool-input:hover{background:#e2e8f0!important}.cool-input:focus{transform:translateY(-1px);border-color:var(--primary)!important;background:#fff!important;box-shadow:0 0 0 4px #4f46e526,inset 0 2px 4px #00000003!important}.cool-submit{z-index:1;width:100%;margin-top:10px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;background:linear-gradient(135deg,#1e1b4b,#312e81)!important;border-radius:14px!important;margin-top:1.5rem!important;padding:16px!important;font-size:1.1rem!important}.cool-submit:before{content:"";z-index:-1;background:linear-gradient(90deg,#0000,#fff3,#0000);width:100%;height:100%;transition:all .5s;position:absolute;top:0;left:-100%}.cool-submit:hover:before{left:100%}.users-card{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:16px;padding:0;overflow:hidden}.users-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:24px 32px 16px;display:flex}.header-title{align-items:center;gap:16px;display:flex}.header-title h2{color:var(--text-heading);margin:0;font-size:20px;font-weight:800}.badge-count{color:var(--primary);background:#eef2ff;border-radius:20px;padding:4px 10px;font-size:13px;font-weight:700}.users-tabs{border-bottom:1px solid var(--border-color);gap:32px;padding:0 32px;display:flex}.tab-item{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;align-items:center;gap:8px;padding:16px 0;font-size:14px;font-weight:700;transition:all .2s;display:flex}.tab-item:hover{color:var(--text-heading)}.tab-item.active{color:var(--primary);border-bottom-color:var(--primary)}.tab-badge{color:var(--text-muted);background:#f1f5f9;border-radius:12px;padding:2px 8px;font-size:12px}.tab-item.active .tab-badge{color:var(--primary);background:#eef2ff}.users-table{border-collapse:collapse;width:100%}.users-table th{text-align:left;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;background:#f8fafc;padding:16px 32px;font-size:11px;font-weight:800}.users-table td{border-bottom:1px solid var(--border-color);vertical-align:middle;padding:20px 32px}.users-table tr:last-child td{border-bottom:none}.user-cell{align-items:center;gap:16px;display:flex}.user-avatar{width:40px;height:40px;color:var(--primary);background:#eef2ff;border-radius:50%;justify-content:center;align-items:center;font-size:16px;font-weight:800;display:flex}.user-cell strong{color:var(--text-heading);font-size:14px;display:block}.user-cell small{color:var(--text-muted);margin-top:2px;font-size:13px;display:block}.role-badge{border-radius:20px;align-items:center;padding:6px 12px;font-size:12px;font-weight:700;display:inline-flex}.role-super_admin{color:#be123c;background:#fff1f2}.role-admin{color:#7c3aed;background:#f5f3ff}.role-finance{color:#0f766e;background:#ccfbf1}.role-staff{color:#ea580c;background:#fff7ed}.role-professor{color:#16a34a;background:#f0fdf4}.role-student{color:#0284c7;background:#f0f9ff}.password-cell{color:#94a3b8;align-items:center;gap:8px;display:flex}.password-cell .dots{letter-spacing:2px;font-size:14px}.date-cell{color:var(--text-muted);font-size:14px}.action-buttons{justify-content:flex-end;align-items:center;gap:8px;display:flex}.btn-icon{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.btn-perms{color:#059669;background:#f0fdf4}.btn-perms:hover{color:#fff;background:#059669}.btn-reset{color:var(--primary);background:#eef2ff}.btn-reset:hover{background:var(--primary);color:#fff}.btn-delete{color:#e11d48;background:#fff1f2}.btn-delete:hover{color:#fff;background:#e11d48}.btn-suspend{color:#d97706;background:#fffbeb}.btn-suspend:hover{color:#fff;background:#d97706}.btn-activate{color:#059669;background:#f0fdf4}.btn-activate:hover{color:#fff;background:#059669}.um-page{flex-direction:column;gap:20px;animation:.4s cubic-bezier(.16,1,.3,1) forwards slideUpFade;display:flex}.um-page-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.um-page-header h2{color:var(--text-heading);margin:0 0 4px;font-size:22px;font-weight:800}.um-page-header p{color:var(--text-muted);margin:0;font-size:14px}.um-add-btn{white-space:nowrap;cursor:pointer;border:none;border-radius:12px;flex-shrink:0;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:700;display:flex}.um-role-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}.um-role-tile{background:var(--bg-card);border:1.5px solid var(--border-color);text-align:left;cursor:pointer;transition:var(--transition);border-radius:16px;flex-direction:column;gap:5px;padding:20px 22px;display:flex;position:relative;overflow:hidden}.um-role-tile:hover{border-color:var(--rc);box-shadow:var(--shadow-md);transform:translateY(-2px)}.um-role-tile--on{background:var(--rb);border-color:var(--rc)}.um-role-dot{background:var(--rc);border-radius:50%;width:8px;height:8px;position:absolute;top:14px;right:14px}.um-role-count{color:var(--text-heading);font-size:30px;font-weight:800;line-height:1}.um-role-tile--on .um-role-count{color:var(--rc)}.um-role-label{color:var(--text-muted);font-size:13px;font-weight:600}.um-role-tile--on .um-role-label{color:var(--rc);font-weight:700}.um-card{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:18px;overflow:hidden}.um-toolbar{border-bottom:1px solid var(--border-color);flex-wrap:wrap;align-items:center;gap:14px;padding:18px 22px;display:flex}.um-search-box{border:1.5px solid var(--border-color);min-width:200px;color:var(--text-muted);transition:var(--transition);background:#f8fafc;border-radius:12px;flex:1;align-items:center;gap:10px;padding:10px 14px;display:flex}.um-search-box:focus-within{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px #4f46e51a}.um-search-box input{color:var(--text-heading);background:0 0;border:none;outline:none;width:100%;font-size:14px}.um-search-box input::placeholder{color:var(--text-light)}.um-filter-row{flex-wrap:wrap;gap:6px;display:flex}.um-filter-pill{border:1.5px solid var(--border-color);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:10px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:700;transition:all .2s;display:flex}.um-filter-pill em{color:var(--text-muted);background:#f1f5f9;border-radius:6px;padding:1px 6px;font-size:11px;font-style:normal;font-weight:800}.um-filter-pill:hover{border-color:var(--primary);color:var(--primary)}.um-filter-pill.active{background:var(--primary);border-color:var(--primary);color:#fff}.um-filter-pill.active em{color:#fff;background:#ffffff38}.um-table-wrap{overflow-x:auto}.um-table{border-collapse:collapse;width:100%;min-width:700px}.um-table th{text-align:left;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color);background:#f8fafc;padding:13px 20px;font-size:11px;font-weight:800}.um-table td{vertical-align:middle;border-bottom:1px solid #f0f4f8;padding:15px 20px;font-size:14px}.um-table tbody tr:last-child td{border-bottom:none}.um-table tbody tr:hover td{background:#fafafe}.um-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:15px;font-weight:800;display:flex}.um-empty{text-align:center;color:#94a3b8;font-size:14px;padding:56px 20px!important}.um-table-footer{border-top:1px solid var(--border-color);color:var(--text-muted);background:#f8fafc;padding:13px 22px;font-size:13px;font-weight:600}.um-user-form-grid{grid-template-columns:150px minmax(0,1fr);align-items:start;gap:22px;display:grid}.um-user-form-grid .profile-photo-col{gap:10px}.um-user-form-grid .photo-ratio-box{border-radius:12px;width:120px;height:160px}.um-user-fields{flex-direction:column;gap:1.25rem;min-width:0;display:flex}@media(max-width:640px){.um-user-form-grid{grid-template-columns:1fr}}.pill--inactive{color:#64748b;background:#f1f5f9}button.brand--link{cursor:pointer;font:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:14px;margin:-8px -12px;padding:8px 12px;transition:all .4s cubic-bezier(.4,0,.2,1)}button.brand--link:hover{background:#0f172a0a;border-color:#0f172a0f;transform:translateY(-1px);box-shadow:0 4px 15px #00000005}button.brand--link:active{transform:translateY(1px)}.pf-page{flex-direction:column;gap:20px;animation:.4s cubic-bezier(.16,1,.3,1) forwards slideUpFade;display:flex}.pf-hero{color:#fff;background:linear-gradient(135deg,#0f172a,#1e1b4b 40%,#312e81,#0c2a52);border-radius:24px;min-height:170px;position:relative;overflow:hidden;box-shadow:0 20px 60px #0f172a61,0 4px 16px #4f46e538}.pf-snow-canvas{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;top:0;right:0;bottom:0;left:0}.pf-orb{pointer-events:none;z-index:1;border-radius:50%;position:absolute}.pf-orb--violet{filter:blur(55px);background:radial-gradient(circle,#8b5cf673,#0000 65%);width:340px;height:340px;animation:7s ease-in-out infinite pf-orb-pulse;top:-140px;right:60px}.pf-orb--cyan{filter:blur(45px);background:radial-gradient(circle,#06b6d459,#0000 65%);width:220px;height:220px;animation:9s ease-in-out infinite reverse pf-orb-pulse;bottom:-90px;left:180px}.pf-orb--pink{filter:blur(40px);background:radial-gradient(circle,#ec489947,#0000 65%);width:180px;height:180px;animation:11s ease-in-out infinite pf-orb-drift;top:10px;left:42%}@keyframes pf-orb-pulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.18)}}@keyframes pf-orb-drift{0%,to{opacity:.65;transform:translate(0)}33%{opacity:1;transform:translate(28px,-16px)}66%{opacity:.45;transform:translate(-18px,12px)}}.pf-hero-shimmer{pointer-events:none;z-index:1;background:linear-gradient(108deg,#0000 20%,#ffffff0e 48%,#ffffff06 52%,#0000 78%) 0 0/200% 100%;animation:5s cubic-bezier(.4,0,.6,1) infinite pf-shimmer;position:absolute;top:0;right:0;bottom:0;left:0}@keyframes pf-shimmer{0%{opacity:0;background-position:200%}15%{opacity:1}85%{opacity:1}to{opacity:0;background-position:-200%}}.pf-hero-inner{z-index:2;align-items:center;gap:20px;padding:30px 32px;display:flex;position:relative}.pf-hero-avatar-wrap{flex-shrink:0;position:relative}.pf-avatar-glow{filter:blur(14px);pointer-events:none;background:radial-gradient(circle,#8b5cf68c,#0000 70%);border-radius:28px;animation:3.5s ease-in-out infinite pf-glow-pulse;position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}@keyframes pf-glow-pulse{0%,to{opacity:.45}50%{opacity:.95}}.pf-avatar{letter-spacing:1px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff24;border:1.5px solid #ffffff52;border-radius:20px;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;font-size:24px;font-weight:900;display:inline-flex}.pf-hero-label{letter-spacing:2.5px;text-transform:uppercase;color:#ffffff7a;margin-bottom:5px;font-size:10.5px;font-weight:700;display:block}.pf-hero-text h2{letter-spacing:-.5px;text-shadow:0 2px 12px #00000040;margin:0 0 4px;font-size:26px;font-weight:800}.pf-hero-text p{color:#ffffff9e;margin:0;font-size:13.5px}.pf-role-pill{text-transform:capitalize;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.5px;background:#ffffff1f;border:1px solid #ffffff38;border-radius:999px;flex-shrink:0;margin-left:auto;padding:8px 18px;font-size:12px;font-weight:800}.pf-alert{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;align-items:center;gap:10px;padding:12px 18px;font-size:14px;font-weight:600;animation:.3s slideUpFade;display:flex}.pf-grid{grid-template-columns:1fr 1fr;align-items:start;gap:20px;display:grid}.pf-card{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:18px;overflow:hidden}.pf-card-header{border-bottom:1px solid var(--border-color);background:#fbfcfe;align-items:center;gap:10px;padding:16px 22px;display:flex}.pf-card-header h3{color:var(--text-heading);margin:0;font-size:15px;font-weight:800}.pf-card-icon{background:var(--primary-light);width:30px;height:30px;color:var(--primary);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.pf-form{flex-direction:column;gap:16px;padding:22px;display:flex}.pf-form input:disabled{opacity:.65;cursor:not-allowed;text-transform:capitalize}.pf-form-actions{border-top:1px solid var(--border-color);justify-content:flex-end;padding-top:16px;display:flex}.pf-form-actions .btn-primary{cursor:pointer;border-radius:11px;padding:10px 18px;font-size:13.5px;font-weight:800}.pf-settings{flex-direction:column;gap:20px;padding:22px;display:flex}.pf-setting strong{color:var(--text-heading);font-size:14px;font-weight:800;display:block}.pf-setting p{color:var(--text-muted);margin:3px 0 0;font-size:13px}.pf-setting--row{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:16px;padding-top:18px;display:flex}.pf-swatches{gap:12px;margin-top:12px;display:flex}.pf-swatch{color:#fff;cursor:pointer;width:40px;height:40px;transition:var(--transition);border:2px solid #0000;border-radius:13px;justify-content:center;align-items:center;display:inline-flex}.pf-swatch:hover{transform:translateY(-3px)scale(1.06);box-shadow:0 8px 18px #0f172a38}.pf-swatch--on{box-shadow:0 0 0 2.5px var(--primary),0 8px 18px #0f172a2e;border-color:#fff}.pf-toggle{border:1px solid var(--border-color);cursor:pointer;width:50px;height:28px;transition:var(--transition);background:#e2e8f0;border-radius:999px;flex-shrink:0;position:relative}.pf-toggle span{width:20px;height:20px;transition:var(--transition);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0f172a40}.pf-toggle--on{background:var(--primary);border-color:var(--primary)}.pf-toggle--on span{left:25px}body.ui-compact .main-content{gap:14px;padding:16px}body.ui-compact .topbar{padding:12px 16px}body.ui-compact .topbar h1{font-size:22px}body.ui-compact .metrics-row{gap:10px}body.ui-compact .metric-card{padding:12px}body.ui-compact .metric-card strong{font-size:24px}@media(max-width:900px){.pf-grid{grid-template-columns:1fr}.pf-hero-inner{flex-wrap:wrap;padding:22px 20px}.pf-role-pill{margin-left:0}}.account-menu{z-index:2;flex-shrink:0;position:relative;overflow:visible!important}.account-trigger{border:1px solid var(--border-color);cursor:pointer;transition:var(--transition);background:#f8fafc;border-radius:999px;align-items:center;gap:6px;padding:5px 10px 5px 5px;display:inline-flex}.account-trigger:hover,.account-trigger--open{background:var(--primary-light);border-color:var(--primary)}.account-avatar{background:var(--gradient-brand);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:900;display:inline-flex}.account-chevron{color:var(--text-muted);transition:transform .22s}.account-trigger--open .account-chevron{transform:rotate(180deg)}@keyframes accountPop{0%{opacity:0;transform:scale(.92)translateY(-6px)}60%{opacity:1;transform:scale(1.01)translateY(1px)}to{opacity:1;transform:scale(1)translateY(0)}}.account-dropdown{background:var(--bg-card);border:1px solid var(--border-color);width:320px;box-shadow:var(--shadow-lg);transform-origin:100% 0;border-radius:18px;flex-direction:column;gap:4px;padding:14px;animation:.26s cubic-bezier(.34,1.56,.64,1) accountPop;display:flex;position:absolute;top:calc(100% + 10px);right:0;z-index:9999!important}.account-section-label{color:var(--text-muted);padding:4px 8px;font-size:12px;font-weight:600}.account-card{background:var(--bg-card);border:2px solid var(--primary);cursor:pointer;text-align:left;transition:var(--transition);border-radius:14px;align-items:center;gap:12px;width:100%;padding:12px;display:flex}.account-card:hover{box-shadow:var(--shadow-sm);background:#f8fafc}.account-card-avatar{background:var(--primary-light);width:56px;height:56px;color:var(--text-heading);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:22px;font-weight:800;display:inline-flex}.account-card-info{flex:1;gap:1px;min-width:0;display:grid}.account-card-info strong{color:var(--text-heading);font-size:15px;font-weight:800}.account-card-info small{color:var(--text-muted);text-transform:capitalize;font-size:12.5px}.account-card-info .account-email{text-overflow:ellipsis;white-space:nowrap;text-transform:none;overflow:hidden}.account-check{color:var(--text-heading);flex-shrink:0}.account-item{color:var(--text-heading);cursor:pointer;text-align:left;transition:var(--transition);background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;width:100%;padding:10px 8px;font-size:14.5px;font-weight:700;display:flex}.account-item:hover{background:#f1f5f9}.account-item svg{color:var(--text-muted);flex-shrink:0}.account-item--danger:hover{color:#e11d48;background:#fff0f2}.account-item--danger:hover svg{color:#e11d48}@media(max-width:640px){.account-dropdown{width:min(320px,100vw - 48px)}}.pf-tabs{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:14px;flex-wrap:wrap;gap:8px;padding:8px;display:flex}.pf-tab-btn{color:var(--text-muted);cursor:pointer;transition:var(--transition);background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:8px;padding:9px 16px;font-size:13.5px;font-weight:700;display:inline-flex}.pf-tab-btn:hover{color:var(--text-heading);background:#f1f5f9}.pf-tab-btn.active{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.pf-alert--error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.pf-action-btn{background:var(--primary-light);border:1px solid var(--primary);color:var(--primary);cursor:pointer;transition:var(--transition);border-radius:11px;flex-shrink:0;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:800;display:inline-flex}.pf-action-btn:hover{background:var(--primary);color:#fff;box-shadow:var(--shadow-md);transform:translateY(-2px)}.pf-danger-box{background:#fff7f7;border-top:1px solid #fee2e2;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;display:flex}.pf-danger-box strong{color:var(--text-heading);font-size:14px;font-weight:800;display:block}.pf-danger-box p{color:var(--text-muted);margin:3px 0 0;font-size:13px}.pf-danger-btn{color:#b91c1c;cursor:pointer;transition:var(--transition);background:#fee2e2;border:1px solid #fecaca;border-radius:11px;flex-shrink:0;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:800;display:inline-flex}.pf-danger-btn:hover{color:#fff;background:#ef4444;border-color:#ef4444;transform:translateY(-2px);box-shadow:0 6px 16px #ef44444d}@media(max-width:640px){.pf-danger-box,.pf-setting--row{flex-direction:column;align-items:stretch}}.pf-avatar-img{object-fit:cover;border:1.5px solid #ffffff61;border-radius:20px;flex-shrink:0;width:72px;height:72px;box-shadow:0 4px 16px #00000040}.account-avatar-img{object-fit:cover;border:1px solid #00000014;border-radius:50%;flex-shrink:0;width:36px;height:36px}.account-card-avatar-img{object-fit:cover;border:1px solid #00000014;border-radius:50%;flex-shrink:0;width:56px;height:56px}.profile-layout-grid{grid-template-columns:200px 1fr;align-items:start;gap:28px;display:grid}.profile-photo-col{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.photo-ratio-box{border:2px dashed var(--border-color);background:var(--bg-main);width:135px;height:180px;box-shadow:var(--shadow-sm);border-radius:14px;justify-content:center;align-items:center;transition:all .3s;display:flex;position:relative;overflow:hidden}.photo-ratio-box:hover{border-color:var(--primary);box-shadow:0 4px 15px #4f46e514}.photo-ratio-box img{object-fit:cover;width:100%;height:100%}.photo-placeholder{color:var(--text-muted);flex-direction:column;align-items:center;gap:6px;display:flex}.photo-placeholder-text{font-size:13px;font-weight:700}.photo-placeholder-hint{opacity:.8;font-size:11px}.photo-upload-btn{cursor:pointer;background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-heading);box-shadow:var(--shadow-xs);border-radius:10px;padding:8px 16px;font-size:13px;font-weight:700;transition:all .25s;display:inline-block}.photo-upload-btn:hover{background:#f1f5f9;border-color:#cbd5e1;transform:translateY(-1px)}.photo-upload-btn:active{transform:translateY(0)}.photo-hint{color:var(--text-muted);margin-top:4px;font-size:11px;line-height:1.4}@media(max-width:600px){.profile-layout-grid{grid-template-columns:1fr;gap:20px}}.photo-remove-btn{cursor:pointer;background:var(--bg-card);color:var(--danger);box-shadow:var(--shadow-xs);border:1px solid #ef444433;border-radius:10px;width:auto;margin-top:4px;padding:8px 16px;font-size:13px;font-weight:700;transition:all .25s;display:inline-block}.photo-remove-btn:hover{background:#fef2f2;border-color:#ef444466;transform:translateY(-1px)}.photo-remove-btn:active{transform:translateY(0)}.um-perm-modal{border-radius:14px;flex-direction:column;width:96%;max-width:1080px;max-height:90vh;padding:0;display:flex;overflow:hidden}.um-perm-header{background:linear-gradient(135deg,var(--role-color,#4f46e5) 0%,var(--role-color,#4f46e5) 100%);align-items:center;gap:14px;padding:20px 22px;display:flex}@supports (color:color-mix(in lab,red,red)){.um-perm-header{background:linear-gradient(135deg,var(--role-color,#4f46e5) 0%,color-mix(in srgb,var(--role-color,#4f46e5) 70%,#000) 100%)}}.um-perm-header{color:#fff;flex-shrink:0}.um-perm-avatar{color:#fff;background:#ffffff38;border:2px solid #fff6;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:20px;font-weight:800;display:flex}.um-perm-user-info{flex:1;min-width:0;overflow:hidden}.um-perm-user-info h3{color:#fff;white-space:nowrap;text-overflow:ellipsis;margin:0 0 4px;font-size:18px;overflow:hidden}.um-perm-user-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.um-perm-user-meta span:not(.role-badge){color:#fffc;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;overflow:hidden}.um-perm-close{color:#fff;cursor:pointer;background:#ffffff2e;border:1px solid #ffffff4d;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;line-height:1;display:flex}.um-perm-close:hover{background:#ffffff4d}.um-perm-header .role-badge{color:#fff;background:#fff3;border:1px solid #ffffff59}.um-perm-statsbar{background:var(--bg-subtle,#f8fafc);border-bottom:1px solid var(--border-color,#e2e8f0);flex-shrink:0;align-items:center;gap:0;padding:0;display:flex}.um-perm-stat{flex-direction:column;flex:1;align-items:center;padding:10px 22px;display:flex}.um-perm-stat strong{color:var(--text-heading,#0f172a);font-size:20px;font-weight:800;line-height:1}.um-perm-stat span{color:var(--text-muted,#64748b);margin-top:2px;font-size:11px;font-weight:600}.um-perm-stat-divider{background:var(--border-color,#e2e8f0);flex-shrink:0;width:1px;height:36px}.um-perm-live-note{color:#0369a1;text-align:center;white-space:normal;word-break:break-word;background:#f0f9ff;border-left:1px solid #bae6fd;flex:2;min-width:0;padding:10px 16px;font-size:11px;font-weight:600}.um-perm-body{flex:1;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));align-content:start;align-items:start;gap:16px;padding:18px 20px;display:grid;overflow-y:auto}.um-perm-group{border:1px solid var(--border-color,#e2e8f0);border-radius:10px;overflow:hidden}.um-perm-group-header{background:var(--bg-subtle,#f8fafc);border-bottom:1px solid var(--border-color,#e2e8f0);align-items:center;gap:8px;padding:9px 14px;display:flex}.um-perm-group-dot{background:var(--gc,#64748b);border-radius:50%;flex-shrink:0;width:8px;height:8px}.um-perm-group-label{text-transform:uppercase;letter-spacing:.07em;color:var(--gc,#64748b);margin:0;font-size:11px;font-weight:800}.um-perm-group-grid{grid-template-columns:1fr 1fr;display:grid}@media(max-width:560px){.um-perm-group-grid{grid-template-columns:1fr}.um-perm-row:nth-child(odd):not(:last-child){border-right:none}}.um-perm-row{cursor:pointer;border-bottom:1px solid var(--border-color,#f1f5f9);justify-content:space-between;align-items:center;gap:8px;min-height:52px;padding:10px 14px;transition:background .12s;display:flex}.um-perm-row:nth-child(odd):not(:last-child){border-right:1px solid var(--border-color,#f1f5f9)}.um-perm-row:last-child:nth-child(odd){border-right:none;grid-column:1/-1}.um-perm-row:last-child,.um-perm-row:nth-last-child(2):nth-child(odd){border-bottom:none}.um-perm-row:hover{background:var(--bg-subtle,#f8fafc)}.um-perm-row--on{background:#f0fdf4}.um-perm-row--on:hover{background:#dcfce7}.um-perm-row-left{flex:1;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.um-perm-indicator{background:#cbd5e1;border-radius:50%;flex-shrink:0;width:8px;height:8px;transition:background .15s}.um-perm-row--on .um-perm-indicator{background:#22c55e}.um-perm-name{color:var(--text-body,#334155);white-space:normal;word-break:break-word;min-width:0;font-size:13px;font-weight:600;line-height:1.35}.um-perm-row-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.um-perm-tag{white-space:nowrap;border-radius:99px;padding:2px 6px;font-size:10px;font-weight:700}.um-perm-tag--default{color:#64748b;background:#f1f5f9}.um-perm-tag--grant{color:#15803d;background:#dcfce7}.um-perm-tag--deny{color:#b91c1c;background:#fee2e2}.um-perm-toggle{cursor:pointer;background:#cbd5e1;border:none;border-radius:99px;flex-shrink:0;width:42px;height:24px;padding:0;transition:background .2s;position:relative}.um-perm-toggle--on{background:#22c55e}.um-perm-thumb{background:#fff;border-radius:50%;width:18px;height:18px;transition:left .18s cubic-bezier(.4,0,.2,1);position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #00000038}.um-perm-toggle--on .um-perm-thumb{left:21px}.um-perm-footer{border-top:1px solid var(--border-color,#e2e8f0);background:var(--bg-card,#fff);border-radius:0 0 14px 14px;flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:14px 20px 18px;display:flex}.um-perm-footer-actions{gap:8px;display:flex}.um-perm-reset-btn{border:1px solid var(--border-color,#e2e8f0);color:var(--text-muted,#64748b);font:inherit;cursor:pointer;background:0 0;border-radius:7px;padding:8px 14px;font-size:13px;font-weight:600;transition:border-color .15s,color .15s}.um-perm-reset-btn:hover:not(:disabled){color:#dc2626;border-color:#ef4444}.um-perm-reset-btn:disabled{opacity:.4;cursor:not-allowed}.btn-style-pill{transition:all .24s cubic-bezier(.4,0,.2,1)}.btn-style-pill:hover{transform:translateY(-1.5px);border-color:var(--primary)!important}.btn-style-pill.active{box-shadow:0 4px 12px #4f46e526;background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important}body.header-style-glass .topbar{-webkit-backdrop-filter:blur(16px);background:#ffffffc2;border:1px solid #e2e8f0b3;box-shadow:0 4px 20px -2px #0f172a08,0 2px 6px -1px #0f172a05}body.header-style-white .topbar{border:1px solid var(--border-color);box-shadow:var(--shadow-sm);background:#fff}body.header-style-accent .topbar{background:var(--gradient-brand);border:none;box-shadow:0 10px 25px -5px #00000014,0 8px 10px -6px #0000000a}body.header-style-accent .topbar p{color:#ffffffe0}body.header-style-accent .topbar h1{color:#fff}body.header-style-accent .topbar .account-trigger{color:#fff;background:#ffffff29;border-color:#ffffff3d}body.header-style-accent .topbar .account-trigger:hover{background:#ffffff47}body.header-style-accent .topbar .account-chevron{color:#fff}body.header-style-slate .topbar{background:#0f172a;border:1px solid #1e293b;box-shadow:0 10px 25px -5px #0f172a26}body.header-style-slate .topbar p{color:var(--primary-light)}body.header-style-slate .topbar h1{color:#fff}body.header-style-slate .topbar .account-trigger{color:#fff;background:#ffffff14;border-color:#ffffff29}body.header-style-slate .topbar .account-trigger:hover{background:#ffffff2e}body.header-style-slate .topbar .account-chevron{color:#fff}body.header-style-wave .topbar{background:linear-gradient(110deg,#0a161d 0%,#0a161d 380px,var(--primary) 380px,var(--primary) 405px,var(--primary-light) 405px,var(--primary-light) 420px,#fff 420px,#fff 100%);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);position:sticky}body.header-style-wave .topbar p{z-index:2;position:relative;color:var(--primary-light)!important}body.header-style-wave .topbar h1{z-index:2;transition:font-size .15s;position:relative;color:#fff!important;font-size:calc(var(--header-text-scale,1) * clamp(16px,2.2cqw,24px))!important}@media(max-width:640px){body.header-style-wave .topbar{border-top:4px solid var(--primary)!important;background:#fff!important}body.header-style-wave .topbar p{color:var(--primary)!important}body.header-style-wave .topbar h1{color:var(--text-heading)!important;font-size:calc(var(--header-text-scale,1) * 20px)!important}}body.header-border-none .topbar{border-top-width:0!important}body.header-border-none .topbar:before{display:none!important}body.header-border-solid .topbar{border-top:4px solid var(--primary)!important}body.header-border-solid .topbar:before{display:none!important}body.header-border-gradient .topbar{position:relative}body.header-border-gradient .topbar:before{content:"";background:var(--gradient-brand);z-index:10;border-top-left-radius:17px;border-top-right-radius:17px;height:4px;position:absolute;top:0;left:0;right:0}.topbar-shapes{pointer-events:none;z-index:1;border-radius:17px;display:none;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}body.header-animated .topbar-shapes{display:block}.topbar-shape{filter:blur(40px);opacity:.15;mix-blend-mode:multiply;border-radius:50%;transition:background .8s;position:absolute}body.header-style-slate .topbar-shape,body.header-style-wave .topbar-shape{mix-blend-mode:screen;opacity:.12}.topbar-shape-1{background:var(--primary);width:150px;height:150px;animation:20s ease-in-out infinite alternate driftShape1;top:-60px;left:10%}.topbar-shape-2{background:var(--secondary,#7c3aed);width:180px;height:180px;animation:25s ease-in-out infinite alternate driftShape2;bottom:-90px;right:25%}.topbar-shape-3{background:var(--accent,#0ea5e9);width:120px;height:120px;animation:18s ease-in-out infinite alternate driftShape3;top:-30px;right:5%}@keyframes driftShape1{0%{transform:translate(0)scale(1)}50%{transform:translate(60px,20px)scale(1.15)}to{transform:translate(-30px,10px)scale(.9)}}@keyframes driftShape2{0%{transform:translate(0)scale(1)}50%{transform:translate(-80px,-30px)scale(.85)}to{transform:translate(40px,10px)scale(1.1)}}@keyframes driftShape3{0%{transform:translate(0)scale(1)}50%{transform:translate(-40px,30px)scale(1.25)}to{transform:translate(50px,-20px)scale(.95)}}.topbar-snow{pointer-events:none;z-index:1;border-radius:17px;display:none;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}body.header-snowy .topbar-snow{display:block}.snowflake{pointer-events:none;background:#fff;border-radius:50%;position:absolute;top:-10px}.snowflake:first-child{width:4px;height:4px;animation-name:snowFall,snowWobble;animation-duration:4s,2s;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:normal,alternate;animation-play-state:running,running;animation-delay:0s;animation-fill-mode:none,none;animation-timeline:auto,auto;left:10%}.snowflake:nth-child(2){width:5px;height:5px;animation-name:snowFall,snowWobble;animation-duration:6s,3s;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:normal,alternate;animation-play-state:running,running;animation-delay:1.2s;animation-fill-mode:none,none;animation-timeline:auto,auto;left:22%}.snowflake:nth-child(3){width:3px;height:3px;animation-name:snowFall,snowWobble;animation-duration:5s,2.5s;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:normal,alternate;animation-play-state:running,running;animation-delay:.5s;animation-fill-mode:none,none;animation-timeline:auto,auto;left:34%}.snowflake:nth-child(4){width:6px;height:6px;animation-name:snowFall,snowWobble;animation-duration:7s,3.5s;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:normal,alternate;animation-play-state:running,running;animation-delay:2s;animation-fill-mode:none,none;animation-timeline:auto,auto;left:47%}.snowflake:nth-child(5){width:4px;height:4px;animation-name:snowFall,snowWobble;animation-duration:4.5s,2.2s;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:normal,alternate;animation-play-state:running,running;animation-delay:1.5s;animation-fill-mode:none,none;animation-timeline:auto,auto;left:59%}.snowflake:nth-child(6){width:5px;height:5px;animation-name:snowFall,snowWobble;animation-duration:5.5s,2.8s;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:normal,alternate;animation-play-state:running,running;animation-delay:.8s;animation-fill-mode:none,none;animation-timeline:auto,auto;left:71%}.snowflake:nth-child(7){width:3px;height:3px;animation-name:snowFall,snowWobble;animation-duration:6.5s,3.2s;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:normal,alternate;animation-play-state:running,running;animation-delay:2.5s;animation-fill-mode:none,none;animation-timeline:auto,auto;left:83%}.snowflake:nth-child(8){width:4px;height:4px;animation-name:snowFall,snowWobble;animation-duration:5.2s,2.4s;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:normal,alternate;animation-play-state:running,running;animation-delay:3.2s;animation-fill-mode:none,none;animation-timeline:auto,auto;left:95%}.snowflake:nth-child(9){width:5px;height:5px;animation-name:snowFall,snowWobble;animation-duration:6.2s,2.9s;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:normal,alternate;animation-play-state:running,running;animation-delay:1.8s;animation-fill-mode:none,none;animation-timeline:auto,auto;left:16%}.snowflake:nth-child(10){width:3px;height:3px;animation-name:snowFall,snowWobble;animation-duration:4.8s,2.6s;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:normal,alternate;animation-play-state:running,running;animation-delay:.9s;animation-fill-mode:none,none;animation-timeline:auto,auto;left:41%}.snowflake:nth-child(11){width:5px;height:5px;animation-name:snowFall,snowWobble;animation-duration:5.8s,2.7s;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:normal,alternate;animation-play-state:running,running;animation-delay:2.1s;animation-fill-mode:none,none;animation-timeline:auto,auto;left:66%}.snowflake:nth-child(12){width:4px;height:4px;animation-name:snowFall,snowWobble;animation-duration:4.2s,2.3s;animation-timing-function:linear,ease-in-out;animation-iteration-count:infinite,infinite;animation-direction:normal,alternate;animation-play-state:running,running;animation-delay:.3s;animation-fill-mode:none,none;animation-timeline:auto,auto;left:88%}@keyframes snowFall{0%{opacity:0;top:-10px}10%{opacity:.7}90%{opacity:.7}to{opacity:0;top:100%}}@keyframes snowWobble{0%{transform:translate(-8px)}to{transform:translate(8px)}}body.dark-mode{--bg-main:#0b1329;--bg-card:#141d32;--text-heading:#f8fafc;--text-body:#d1d5db;--text-normal:#f3f4f6;--text-muted:#94a3b8;--text-light:#64748b;--border-color:#1f2a44;--bg-sidebar:#111827f5;--text-primary:#e2e8f0;--text-secondary:#94a3b8;--bg-page:#0b1329;--bg-primary:#141d32;--bg-secondary:#1e293b;--bg-hover:#ffffff0f;--border:#1f2a44;--primary-light:#4f46e533;--shadow-sm:0 1px 3px #0006, 0 2px 8px #0000004d;--shadow-md:0 4px 16px #00000080, 0 8px 24px #0006;--shadow-lg:0 8px 32px #0009, 0 20px 48px #00000080}body.dark-mode input,body.dark-mode select,body.dark-mode textarea{color:#f8fafc!important;background-color:#1e293b!important;border-color:#334155!important}body.dark-mode input:focus,body.dark-mode select:focus,body.dark-mode textarea:focus{border-color:var(--primary)!important;background-color:#0f172a!important;box-shadow:0 0 0 4px #4f46e540!important}body.dark-mode input::placeholder,body.dark-mode textarea::placeholder{color:#64748b!important}body.dark-mode .sidebar{border-right-color:#1e293b;box-shadow:0 1px 3px #0006}body.dark-mode .sidebar-nav a:not(.active){color:#94a3b8}body.dark-mode .sidebar-nav a:not(.active):hover{color:#f8fafc;background:#1e293b}body.dark-mode .brand strong{color:#fff}body.dark-mode .btn-secondary{color:#d1d5db;background:#1e293b;border-color:#334155}body.dark-mode .btn-secondary:hover{color:#fff;background:#334155}body.dark-mode .cd-modal,body.dark-mode .sd-modal,body.dark-mode .cc-modal,body.dark-mode .pf-photo-modal,body.dark-mode .photo-cropper-wrap{color:#f8fafc!important;background:#141d32!important;border-color:#334155!important}body.dark-mode .cd-modal h2,body.dark-mode .cd-modal h3,body.dark-mode .sd-modal h2,body.dark-mode .cc-modal h2,body.dark-mode .pf-photo-modal h3{color:#fff!important}body.dark-mode .sd-register-modal,body.dark-mode .cd-message-box__header,body.dark-mode .cd-filter-dropdown{color:#f8fafc!important;background:#141d32!important;border-color:#334155!important}body.dark-mode .cd-message-box{background:#270f0f!important;border-color:#581c1c!important}body.dark-mode .cd-message-box__header{border-bottom-color:#581c1c!important}body.dark-mode .admin-table th{color:#94a3b8!important;background:#1e293b!important;border-bottom-color:#334155!important}body.dark-mode .admin-table td{color:#d1d5db!important;border-bottom-color:#1e293b!important}body.dark-mode .admin-table tbody tr:hover td{background:#1e293b!important}body.dark-mode .pf-swatch{border-color:#334155}body.dark-mode .btn-style-pill{border-color:#334155!important}body.dark-mode .btn-style-pill:not(.active){color:#cbd5e1!important;background:#141d32!important}body.dark-mode .btn-style-pill:not(.active):hover{color:#fff!important;background:#1e293b!important}body.dark-mode .status-badge--pending{color:#fef3c7;background:#451a03}body.dark-mode .cd-alert{color:#bbf7d0;background:#062f17;border-color:#064e26}body.dark-mode .pf-avatar-placeholder{color:#94a3b8;background:#1e293b;border-color:#334155}body.dark-mode .pf-avatar-placeholder-img{border-color:#334155}body.dark-mode .pf-avatar-preview{background:#1e293b;border-color:#334155}body.dark-mode .pf-setting p,body.dark-mode .pf-tab-btn:not(.active){color:#94a3b8}body.dark-mode .pf-tab-btn:not(.active):hover{color:#fff;background:#1e293b}body.dark-mode .pf-action-btn,body.dark-mode .pf-danger-btn{background:#1e293b;border-color:#334155}body.dark-mode .pf-danger-btn:hover{background:var(--danger);color:#fff}body.dark-mode .pf-swatch--on{border-color:#fff!important}body.dark-mode .pf-card-header{background:#1a2540}body.dark-mode .pf-toggle{background:#334155;border-color:#475569}body.dark-mode .sidebar-nav a.active{color:#a5b4fc;background:#4f46e533;border-color:#4f46e559}body.dark-mode .users-table th{color:#64748b;background:#1e293b}body.dark-mode .users-table td{color:#d1d5db;border-bottom-color:#1f2a44}body.dark-mode .users-table tbody tr:hover td{background:#1e293b}body.dark-mode .user-avatar,body.dark-mode .badge-count{color:#a5b4fc;background:#4f46e533}body.dark-mode .tab-badge{background:#1e293b}body.dark-mode .tab-item.active .tab-badge{color:#a5b4fc;background:#4f46e533}body.dark-mode .row-actions button:last-child{color:#a5b4fc;background:#4f46e526}body.dark-mode .role-super_admin{color:#fda4af;background:#4c0519}body.dark-mode .role-admin{color:#c4b5fd;background:#2e1065}body.dark-mode .role-finance{color:#5eead4;background:#042f2e}body.dark-mode .role-staff{color:#fdba74;background:#431407}body.dark-mode .role-professor{color:#86efac;background:#052e16}body.dark-mode .role-student{color:#7dd3fc;background:#082f49}body.dark-mode .btn-perms{color:#34d399;background:#05966926}body.dark-mode .btn-reset{color:#a5b4fc;background:#4f46e526}body.dark-mode .btn-delete{color:#fb7185;background:#e11d4826}body.dark-mode .btn-suspend{color:#fcd34d;background:#d9770626}body.dark-mode .btn-perms:hover{color:#fff;background:#059669}body.dark-mode .btn-delete:hover{color:#fff;background:#e11d48}body.dark-mode .btn-suspend:hover{color:#fff;background:#d97706}body.dark-mode .srp-table th,body.dark-mode .admin-table th{color:#64748b;background:#1e293b}body.dark-mode .srp-alert--success{color:#86efac;background:#16653440}body.dark-mode .srp-alert--error{color:#fca5a5;background:#991b1b40}body.dark-mode .srp-status-badge--active{color:#86efac;background:#16653433;border-color:#86efac4d}body.dark-mode .srp-status-badge--dropped{color:#fca5a5;background:#991b1b33;border-color:#fca5a54d}body.dark-mode .srp-status-badge--graduated{color:#93c5fd;background:#1e40af33;border-color:#93c5fd4d}body.dark-mode .srp-icon-btn--danger:hover{color:#fb7185;background:#ef444426;border-color:#ef4444}body.dark-mode .srp-summary-card{background:#1e293b}body.dark-mode .tp-alert{color:#fca5a5;background:#991b1b33}body.dark-mode .tp-message,body.dark-mode .fp-alert--success{color:#86efac;background:#16653433}body.dark-mode .fp-alert--error{color:#fca5a5;background:#991b1b33}body.dark-mode .fp-table tbody tr:hover{background:#1e293b}body.dark-mode .fp-action-btn--edit:hover{color:#a5b4fc;background:#4f46e526;border-color:#4f46e559}body.dark-mode .fp-action-btn--del:hover{color:#fb7185;background:#e11d4826;border-color:#e11d4859}body.dark-mode .fp-badge--paid{color:#86efac;background:#16653433}body.dark-mode .fp-badge--pending{color:#fcd34d;background:#92400e33}body.dark-mode .fp-badge--partial{color:#fef08a;background:#854d0e33}body.dark-mode .fp-badge--refunded{color:#7dd3fc;background:#07598533}body.dark-mode .fp-badge--cancelled{color:#fca5a5;background:#991b1b33}body.dark-mode .fp-badge--other{color:#94a3b8;background:#1e293b}body.dark-mode .fp-metric--green .fp-metric-icon{background:#05966926}body.dark-mode .fp-metric--amber .fp-metric-icon{background:#d9770626}body.dark-mode .fp-metric--rose .fp-metric-icon{background:#e11d4826}body.dark-mode .fp-metric--violet .fp-metric-icon{background:#6d28d926}body.dark-mode .at-term-status.active{color:#6ee7b7;background:#065f4633}body.dark-mode .at-term-status.completed{color:#a5b4fc;background:#3730a333}body.dark-mode .at-assign-status.active{color:#6ee7b7;background:#065f4633}body.dark-mode .at-assign-status.completed{color:#a5b4fc;background:#3730a333}body.dark-mode .at-assign-status.dropped{color:#fca5a5;background:#b91c1c33}body.dark-mode .at-act-btn.complete{color:#c4b5fd;background:#6d28d926}body.dark-mode .at-act-btn.drop{color:#fdba74;background:#c2410c26}body.dark-mode .at-act-btn.remove{color:#fca5a5;background:#b91c1c26}body.dark-mode .at-act-btn.reactivate{color:#6ee7b7;background:#065f4626}body.dark-mode .cop-alert--success{color:#86efac;background:#16653433}body.dark-mode .cop-alert--error{color:#fca5a5;background:#991b1b33}body.dark-mode .cop-icon-btn--danger:hover{color:#fb7185;background:#ef444426;border-color:#ef4444}.pf-brightness-row{border-top:1px solid var(--border-color);padding-top:18px}.pf-brightness-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.pf-brightness-header strong{color:var(--text-heading);font-size:14px;font-weight:800}.pf-brightness-header p{color:var(--text-muted);margin:3px 0 0;font-size:13px}.pf-brightness-value{color:var(--primary);background:var(--primary-light);white-space:nowrap;text-align:center;border-radius:8px;min-width:48px;padding:3px 10px;font-size:13px;font-weight:800}.pf-brightness-track{align-items:center;gap:10px;display:flex}.pf-brightness-track svg{color:var(--text-muted);flex-shrink:0}.pf-brightness-track svg:last-of-type{color:var(--text-heading)}.pf-brightness-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(to right,var(--primary) 0%,var(--primary) calc((var(--pct,50) * 1%)),#e2e8f0 calc((var(--pct,50) * 1%)),#e2e8f0 100%);cursor:pointer;border-radius:999px;outline:none;flex:1;height:6px;transition:height .15s}.pf-brightness-slider:hover{height:8px}.pf-brightness-slider::-webkit-slider-thumb{-webkit-appearance:none;border:2px solid var(--primary);cursor:grab;background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .12s,box-shadow .12s;box-shadow:0 2px 8px #4f46e559}.pf-brightness-slider::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.2);box-shadow:0 3px 14px #4f46e580}.pf-brightness-slider::-moz-range-thumb{border:2px solid var(--primary);cursor:grab;background:#fff;border-radius:50%;width:20px;height:20px;box-shadow:0 2px 8px #4f46e559}.pf-brightness-presets{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.pf-brightness-preset{border:1.5px solid var(--border-color);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;padding:4px 12px;font-family:inherit;font-size:12px;font-weight:700;transition:all .15s}.pf-brightness-preset:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.pf-brightness-preset.active{background:var(--primary);border-color:var(--primary);color:#fff}.ov-live-bar{color:var(--text-muted);align-items:center;gap:8px;margin-bottom:18px;font-size:12px;display:flex}.ov-live-dot{background:#22c55e;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s ease-in-out infinite ov-pulse-dot}@keyframes ov-pulse-dot{0%,to{box-shadow:0 0 #22c55e99}50%{box-shadow:0 0 0 6px #22c55e00}}.ov-live-label{letter-spacing:.06em;color:#22c55e;font-size:11px;font-weight:700}.ov-live-ago{color:var(--text-muted)}.ov-live-refreshing{color:var(--primary);font-style:italic}.ov-live-error{color:#ef4444}@keyframes ov-val-pop{0%{color:var(--primary);transform:scale(1.25)}60%{transform:scale(.95)}to{color:inherit;transform:scale(1)}}.ov-val--pop{animation:.45s cubic-bezier(.34,1.56,.64,1) both ov-val-pop}.ov-inline-val{font-style:normal;font-weight:600}.overview-metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.overview-stat-card{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);transition:var(--transition);border-radius:16px;align-items:flex-start;gap:16px;padding:20px;display:flex;position:relative;overflow:hidden}.overview-stat-card:before{content:"";border-radius:16px 16px 0 0;height:4px;position:absolute;top:0;left:0;right:0}.overview-stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.overview-stat-icon{color:#fff;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;display:flex}.overview-stat-label{letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted);font-size:12px;font-weight:800;display:block}.overview-stat-value{color:var(--text-heading);margin-top:4px;font-size:32px;font-weight:900;line-height:1.15;display:block}.overview-stat-detail{color:var(--text-muted);margin-top:4px;font-size:12px;font-weight:600;display:block}.overview-stat-card--indigo:before,.overview-stat-card--indigo .overview-stat-icon{background:linear-gradient(135deg,#4f46e5,#7c3aed)}.overview-stat-card--sky:before,.overview-stat-card--sky .overview-stat-icon{background:linear-gradient(135deg,#0284c7,#38bdf8)}.overview-stat-card--emerald:before,.overview-stat-card--emerald .overview-stat-icon{background:linear-gradient(135deg,#059669,#10b981)}.overview-stat-card--violet:before,.overview-stat-card--violet .overview-stat-icon{background:linear-gradient(135deg,#7c3aed,#a855f7)}.overview-stat-card--amber:before,.overview-stat-card--amber .overview-stat-icon{background:linear-gradient(135deg,#d97706,#f59e0b)}.overview-stat-card--rose:before,.overview-stat-card--rose .overview-stat-icon{background:linear-gradient(135deg,#e11d48,#f43f5e)}.overview-loading{flex-direction:column;align-items:center;gap:14px;display:flex}.overview-loading p{color:var(--text-muted);margin:0;font-size:14px;font-weight:600}.overview-spinner{border:4px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:980px){.overview-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.overview-metrics-grid{grid-template-columns:1fr}}body.dark-mode .overview-stat-card{background:var(--bg-card);border-color:var(--border-color)}body.dark-mode .overview-stat-value{color:var(--text-heading)}body.dark-mode .overview-spinner{border-color:var(--border-color);border-top-color:var(--primary)}.notif-menu-wrapper{margin-left:auto;margin-right:12px;position:relative}.notif-trigger{cursor:pointer;width:38px;height:38px;color:var(--text-muted);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:50%;outline:none;justify-content:center;align-items:center;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.notif-trigger:hover,.notif-trigger--open{color:var(--text-normal);background:#ffffff1a;border-color:#fff3;transform:scale(1.05)}.notif-trigger-badge{color:#fff;border:2px solid var(--bg-card,#0f172a);background:#ef4444;border-radius:50%;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.65rem;font-weight:800;animation:2s infinite notifPulse;display:flex;position:absolute;top:-2px;right:-2px}@keyframes notifPulse{0%{box-shadow:0 0 #ef4444b3}70%{box-shadow:0 0 0 5px #ef444400}to{box-shadow:0 0 #ef444400}}.notif-dropdown{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:999;background:#0f172ae6;border:1px solid #ffffff1a;border-radius:16px;flex-direction:column;width:320px;animation:.2s cubic-bezier(.16,1,.3,1) dropdownFadeIn;display:flex;position:absolute;top:48px;right:0;overflow:hidden;box-shadow:0 10px 30px #00000059}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(10px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.notif-dropdown-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.notif-dropdown-header strong{color:var(--text-normal);font-size:.95rem;font-weight:700}.notif-dropdown-action{color:var(--primary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:.8rem;font-weight:700;transition:all .15s}.notif-dropdown-action:hover{background:rgba(var(--primary-rgb,99, 102, 241),.1)}.notif-dropdown-list{flex-direction:column;max-height:300px;display:flex;overflow-y:auto}.notif-dropdown-list::-webkit-scrollbar{width:6px}.notif-dropdown-list::-webkit-scrollbar-track{background:0 0}.notif-dropdown-list::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.notif-dropdown-list::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.notif-dropdown-empty{text-align:center;color:var(--text-muted);padding:30px 20px;font-size:.875rem}.notif-dropdown-item{cursor:pointer;border-bottom:1px solid #ffffff0d;flex-direction:column;gap:3px;padding:12px 18px;transition:background .15s;display:flex;position:relative}.notif-dropdown-item:hover{background:#ffffff08}.notif-dropdown-item.unread{background:var(--primary)}@supports (color:color-mix(in lab,red,red)){.notif-dropdown-item.unread{background:color-mix(in srgb,var(--primary) 5%,transparent)}}.notif-dropdown-item.unread:before{content:"";background:var(--primary);width:3px;position:absolute;top:0;bottom:0;left:0}.notif-dropdown-item-title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.notif-dropdown-item-title{color:var(--text-normal);white-space:nowrap;text-overflow:ellipsis;max-width:180px;font-size:.875rem;font-weight:700;overflow:hidden}.notif-dropdown-item-time{color:var(--text-muted);font-size:.75rem}.notif-dropdown-item-desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.8rem;line-height:1.35;display:-webkit-box;overflow:hidden}.notif-dropdown-footer{background:#ffffff03;border-top:1px solid #ffffff14}.notif-dropdown-all-btn{width:100%;color:var(--primary);cursor:pointer;background:0 0;border:none;padding:12px;font-size:.85rem;font-weight:700;transition:background .15s}.notif-dropdown-all-btn:hover{background:#ffffff0a}body.light-mode .notif-dropdown{background:#fffffff2;border-color:#0000001a;box-shadow:0 10px 35px #0000001f}body.light-mode .notif-dropdown-header,body.light-mode .notif-dropdown-footer,body.light-mode .notif-dropdown-item{border-color:#0000000f}body.light-mode .notif-dropdown-item:hover{background:#00000005}body.light-mode .notif-dropdown-item.unread{background:var(--primary)}@supports (color:color-mix(in lab,red,red)){body.light-mode .notif-dropdown-item.unread{background:color-mix(in srgb,var(--primary) 8%,transparent)}}body.light-mode .notif-dropdown-list::-webkit-scrollbar-thumb{background:#0000001f}body.light-mode .notif-dropdown-list::-webkit-scrollbar-thumb:hover{background:#0000003d}body.light-mode .notif-trigger{background:#00000008;border-color:#0000000f}body.light-mode .notif-trigger:hover,body.light-mode .notif-trigger--open{background:#0000000f;border-color:#0000001a}body.dark-mode td,body.dark-mode p,body.dark-mode li,body.dark-mode small,body.dark-mode .nav-item-label,body.dark-mode .sidebar-section-label,body.dark-mode .metric-card-label,body.dark-mode .metric-card-detail{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body.text-weight-medium td,body.text-weight-medium p,body.text-weight-medium li,body.text-weight-medium small,body.text-weight-medium label,body.text-weight-medium input,body.text-weight-medium select,body.text-weight-medium textarea,body.text-weight-medium .metric-card-label,body.text-weight-medium .metric-card-detail,body.text-weight-medium .nav-item-label,body.text-weight-medium .sidebar-section-label,body.text-weight-medium .cr-card p,body.text-weight-medium .cr-submeta,body.text-weight-medium .cr-meta span{font-weight:500}body.text-weight-bold td,body.text-weight-bold p,body.text-weight-bold li,body.text-weight-bold small,body.text-weight-bold label,body.text-weight-bold input,body.text-weight-bold select,body.text-weight-bold textarea,body.text-weight-bold .metric-card-label,body.text-weight-bold .metric-card-detail,body.text-weight-bold .nav-item-label,body.text-weight-bold .sidebar-section-label,body.text-weight-bold .cr-card p,body.text-weight-bold .cr-submeta,body.text-weight-bold .cr-meta span{font-weight:600}body.font-size-sm td,body.font-size-sm p,body.font-size-sm li,body.font-size-sm small,body.font-size-sm label{font-size:12px}body.font-size-lg td,body.font-size-lg p,body.font-size-lg li,body.font-size-lg small,body.font-size-lg label{font-size:15px}body.font-size-xl td,body.font-size-xl p,body.font-size-xl li,body.font-size-xl small,body.font-size-xl label{font-size:16px}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
