:root{--ilms-primary:#2563eb;--ilms-primary-dark:#1e40af;--ilms-bg:#f8fafc;--ilms-card:#fff;--ilms-text:#0f172a;--ilms-muted:#64748b;--ilms-border:#e2e8f0;--ilms-radius:12px;--ilms-shadow:0 4px 24px rgba(15,23,42,.08)}
*{box-sizing:border-box}
.ilms-auth-wrap{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(135deg,#eff6ff,#f8fafc)}
.ilms-auth-card{background:var(--ilms-card);border-radius:var(--ilms-radius);box-shadow:var(--ilms-shadow);padding:2.5rem;width:100%;max-width:420px}
.ilms-auth-header{text-align:center;margin-bottom:1.75rem}
.ilms-auth-header h1{margin:0 0 .5rem;font-size:1.75rem;color:var(--ilms-text)}
.ilms-auth-header p{margin:0;color:var(--ilms-muted)}
.ilms-form-group{margin-bottom:1.25rem}
.ilms-form-group label{display:block;font-weight:600;margin-bottom:.4rem;font-size:.9rem}
.ilms-form-group input[type=email],.ilms-form-group input[type=password],.ilms-form-group input[type=text]{width:100%;padding:.75rem 1rem;border:1px solid var(--ilms-border);border-radius:8px;font-size:1rem}
.ilms-form-group input:focus{outline:2px solid var(--ilms-primary);border-color:transparent}
.ilms-btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;border:none;cursor:pointer;text-decoration:none;font-size:1rem;transition:background .15s}
.ilms-btn-primary{background:var(--ilms-primary);color:#fff;width:100%}
.ilms-btn-primary:hover{background:var(--ilms-primary-dark)}
.ilms-btn-ghost{background:transparent;color:var(--ilms-muted);border:1px solid var(--ilms-border)}
.ilms-auth-footer{margin-top:1.5rem;text-align:center;font-size:.9rem}
.ilms-auth-footer a{color:var(--ilms-primary)}
.ilms-form-messages{min-height:1.25rem;margin-bottom:.75rem;font-size:.9rem}
.ilms-form-messages .error{color:#dc2626}.ilms-form-messages .success{color:#16a34a}
.ilms-error{color:#dc2626}.ilms-success{color:#16a34a}.ilms-notice{color:var(--ilms-muted)}
.ilms-portal{max-width:1100px;margin:0 auto;padding:1.5rem}
.ilms-portal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid var(--ilms-border);margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}
.ilms-portal-brand{display:flex;align-items:center;gap:.75rem}
.ilms-role-badge{background:#dbeafe;color:#1e40af;font-size:.75rem;padding:.25rem .6rem;border-radius:999px;font-weight:600}
.ilms-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:2rem}
.ilms-stat-card{background:var(--ilms-card);border:1px solid var(--ilms-border);border-radius:var(--ilms-radius);padding:1.25rem;text-align:center}
.ilms-stat-num{display:block;font-size:1.75rem;font-weight:700;color:var(--ilms-primary)}
.ilms-stat-label{font-size:.85rem;color:var(--ilms-muted)}
.ilms-section{margin-bottom:2rem}
.ilms-table{width:100%;border-collapse:collapse;background:var(--ilms-card);border-radius:var(--ilms-radius);overflow:hidden}
.ilms-table th,.ilms-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--ilms-border)}
.ilms-table th{background:#f1f5f9;font-size:.85rem}
.ilms-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
.ilms-card{background:var(--ilms-card);border:1px solid var(--ilms-border);border-radius:var(--ilms-radius);padding:1.25rem}
.ilms-card h3{margin:0 0 .5rem}
.ilms-muted{color:var(--ilms-muted);font-size:.9rem}
.ilms-progress{height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden;margin:.5rem 0}
.ilms-progress-bar{height:100%;background:var(--ilms-primary);border-radius:4px}
.ilms-status{font-size:.8rem;padding:.15rem .5rem;border-radius:4px;background:#f1f5f9}
.ilms-status-active,.ilms-status-published{background:#dcfce7;color:#166534}
.ilms-status-suspended{background:#fee2e2;color:#991b1b}
.ilms-landing .ilms-hero{text-align:center;padding:4rem 1.5rem;background:linear-gradient(135deg,#1e40af,#2563eb);color:#fff;border-radius:0 0 var(--ilms-radius) var(--ilms-radius)}
.ilms-landing .ilms-hero h1{font-size:2.5rem;margin:0 0 1rem}
.ilms-landing .ilms-hero .ilms-btn{width:auto;margin-top:1rem}
.ilms-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;padding:3rem 1.5rem;max-width:1000px;margin:0 auto}
.ilms-feature{background:var(--ilms-card);padding:1.5rem;border-radius:var(--ilms-radius);border:1px solid var(--ilms-border)}
@media(max-width:600px){.ilms-auth-card{padding:1.5rem}.ilms-portal-header{flex-direction:column;align-items:flex-start}}
