.erp-portal-wrap{--erp-p-navy:#1b1f3b;--erp-p-indigo:#3b3f8f;--erp-p-amber:#f2a93b;--erp-p-emerald:#1fa983;--erp-p-red:#d6483f;--erp-p-paper:#f6f5fb;--erp-p-surface:#ffffff;--erp-p-border:#e4e2f1;--erp-p-ink:#22223b;--erp-p-ink-soft:#5c5c74;max-width:100%;width:100%;overflow-x:hidden;box-sizing:border-box;margin:0;padding:2.5rem 3rem;font-family:'IBM Plex Sans','IBM Plex Sans Arabic',system-ui,sans-serif;color:var(--erp-p-ink)}.erp-portal-wrap *{box-sizing:border-box}.erp-portal-header{margin-bottom:2rem}.erp-portal-header h1{font-size:1.9rem;font-weight:800;margin:0 0 .25rem}.erp-portal-header p{color:var(--erp-p-ink-soft);margin:0}.erp-portal-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.erp-portal-card{background:var(--erp-p-surface);border:1px solid var(--erp-p-border);border-radius:16px;padding:1.5rem;box-shadow:0 4px 16px -8px rgb(27 31 59 / .12)}.erp-portal-card h2{font-size:1.1rem;font-weight:700;margin:0 0 1rem;display:flex;align-items:center;gap:.5rem}.erp-portal-stat{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--erp-p-border);font-size:.92rem}.erp-portal-stat:last-child{border-bottom:none}.erp-portal-stat strong{font-family:'IBM Plex Mono',monospace}.erp-badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:700}.erp-badge--present,.erp-badge--paid,.erp-badge--graded{background:#d7f3ea;color:#0f6b53}.erp-badge--absent,.erp-badge--unpaid,.erp-badge--not_submitted{background:#fbe1de;color:#8a2a22}.erp-badge--late,.erp-badge--partial{background:#fde6bd;color:#8a5a10}.erp-badge--excused,.erp-badge--submitted{background:#e4e2f1;color:#3b3f8f}.erp-child-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.erp-child-tab{padding:.6rem 1.2rem;border-radius:999px;border:1px solid var(--erp-p-border);background:var(--erp-p-surface);text-decoration:none;color:var(--erp-p-ink);font-weight:600;font-size:.9rem}.erp-child-tab.is-active{background:var(--erp-p-navy);color:#fff;border-color:var(--erp-p-navy)}.erp-portal-empty{color:var(--erp-p-ink-soft);font-style:italic;padding:1rem 0}.erp-portal-notice{background:#fde6bd;border-radius:12px;padding:1rem 1.25rem;margin-bottom:1.5rem;font-size:.95rem;line-height:1.6;color:var(--erp-p-ink)}.erp-portal-notice a{color:var(--erp-p-navy);font-weight:700;text-decoration:underline}.erp-glow-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.erp-glow-card{--erp-glow:#3b3f8f;display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;padding:2.25rem 1rem;border-radius:18px;background:var(--erp-p-surface);border:1px solid var(--erp-p-border);text-decoration:none;color:var(--erp-p-ink);position:relative;transition:transform 0.25s ease,box-shadow 0.25s ease}.erp-glow-card:not(.is-disabled):hover{transform:translateY(-4px);box-shadow:0 0 0 1px var(--erp-glow),0 12px 28px -8px var(--erp-glow)}.erp-glow-icon{font-size:3rem;line-height:1;filter:drop-shadow(0 0 16px var(--erp-glow))}.erp-glow-title{font-weight:700;font-size:1rem}.erp-glow-badge{font-size:.7rem;color:#8a5a10;background:#fde6bd;padding:.15rem .6rem;border-radius:999px}.erp-glow-card.is-disabled{opacity:.55;cursor:not-allowed}.erp-lock-overlay{position:fixed;inset:0;background:rgb(27 31 59 / .55);display:none;align-items:center;justify-content:center;z-index:9999;perspective:1200px}.erp-lock-overlay.is-open{display:flex}.erp-lock-modal{background:#fff;border-radius:20px;padding:2.5rem 2rem;max-width:360px;width:90%;text-align:center;box-shadow:0 30px 60px -12px rgb(27 31 59 / .5);transform:rotateX(25deg) scale(.85);opacity:0;transition:transform 0.35s cubic-bezier(.22,1,.36,1),opacity 0.3s ease}.erp-lock-overlay.is-open .erp-lock-modal{transform:rotateX(0deg) scale(1);opacity:1}.erp-lock-modal .erp-lock-icon{font-size:3rem;margin-bottom:.75rem}.erp-lock-modal h3{margin:0 0 .5rem;font-size:1.15rem;color:#1b1f3b}.erp-lock-modal p{color:#5c5c74;font-size:.9rem;margin:0 0 1.5rem}.erp-lock-modal a.erp-lock-btn{display:inline-block;background:linear-gradient(135deg,#3b3f8f,#1b1f3b);color:#fff;padding:.7rem 1.75rem;border-radius:10px;text-decoration:none;font-weight:700;font-size:.9rem}.erp-lock-modal .erp-lock-close{display:block;margin-top:1rem;background:none;border:none;color:#5c5c74;font-size:.85rem;cursor:pointer}table.erp-portal-table{width:100%;border-collapse:collapse;font-size:.9rem}table.erp-portal-table th,table.erp-portal-table td{text-align:left;padding:.5rem .25rem;border-bottom:1px solid var(--erp-p-border)}