
/* Late Pass front-end application */
.lp-app-shell{min-height:70vh;background:#f5f7fb;color:#14213d;border-radius:18px;overflow:hidden;box-shadow:0 12px 40px rgba(15,35,75,.08);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.lp-app-header{background:linear-gradient(120deg,#192e68,#2d66e8);color:#fff;padding:28px 34px;display:flex;align-items:center;justify-content:space-between}
.lp-app-kicker,.lp-eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;opacity:.72}
.lp-app-title{font-size:30px;font-weight:700;margin-top:5px}.lp-app-subtitle{opacity:.82}.lp-app-user{background:rgba(255,255,255,.13);padding:10px 14px;border-radius:999px;font-size:13px}
.lp-app-body{display:flex;min-height:650px}.lp-app-sidebar{width:215px;background:#fff;border-right:1px solid #e6eaf1;padding:18px 12px;display:flex;flex-direction:column;gap:4px}
.lp-app-sidebar a{color:#52617a;text-decoration:none;padding:12px 14px;border-radius:10px;font-size:14px;font-weight:600}.lp-app-sidebar a:hover,.lp-app-sidebar a.active{background:#edf3ff;color:#1e56d8}
.lp-app-sidebar a:last-child{margin-top:auto;color:#7d8797}.lp-app-main{flex:1;padding:34px;min-width:0}.lp-page-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.lp-page-head h1{font-size:30px;margin:6px 0}.lp-page-head p{margin:0;color:#718096}
.lp-app-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.lp-stat-card,.lp-app-card,.lp-history-card,.lp-big-action{background:#fff;border:1px solid #e6eaf1;border-radius:15px;box-shadow:0 4px 16px rgba(20,35,65,.04)}
.lp-stat-card{padding:20px}.lp-stat-card span{display:block;color:#718096;font-size:13px}.lp-stat-card strong{display:block;font-size:30px;margin-top:6px}
.lp-app-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.lp-big-action{padding:22px;text-decoration:none;color:#14213d;display:block;transition:.15s}.lp-big-action:hover{transform:translateY(-2px);border-color:#bfd0fa}.lp-big-action span{display:block;font-size:25px;margin-bottom:10px}.lp-big-action b{display:block;font-size:17px}.lp-big-action small{display:block;color:#718096;margin-top:6px}
.lp-app-card{padding:24px;margin-bottom:18px}.lp-form-top{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:18px}.lp-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.lp-form-grid .full{grid-column:1/-1}
.lp-app-card label{display:block;font-weight:600;font-size:13px;color:#344054}.lp-app-card input,.lp-app-card select,.lp-app-card textarea{display:block;width:100%;margin-top:7px;padding:12px 13px;border:1px solid #d8dee9;border-radius:9px;background:#fff;box-sizing:border-box;font:inherit;color:#14213d}.lp-app-card textarea{min-height:110px;resize:vertical}
.lp-primary{border:0;border-radius:9px;background:#2f5bea;color:#fff;padding:12px 18px;font-weight:700;cursor:pointer}.lp-primary:hover{background:#2449c7}.lp-secondary,.lp-danger{border:1px solid #d8dee9;background:#fff;border-radius:8px;padding:8px 11px;cursor:pointer;color:#344054}.lp-danger{border-color:#f0c7c7;color:#b42318}
.lp-group-title{font-weight:800;font-size:14px;padding:13px 0;border-bottom:1px solid #e8ecf3;margin-top:15px}.lp-student-list{border-bottom:1px solid #e8ecf3}.lp-student-row{display:grid;grid-template-columns:1fr 180px;gap:18px;align-items:center;padding:12px 0}.lp-student-row select{margin:0}
.lp-empty,.lp-ok,.lp-alert{padding:15px;border-radius:10px;background:#f7f9fc;color:#667085}.lp-alert{background:#fff7e6;color:#9a6700}.lp-alert.danger{background:#fff1f0;color:#b42318}.lp-ok{background:#effaf2;color:#18794e}
.lp-table-wrap{overflow:auto}.lp-app-table{width:100%;border-collapse:collapse}.lp-app-table th,.lp-app-table td{text-align:left;padding:13px;border-bottom:1px solid #edf0f5;vertical-align:top}.lp-app-table th{font-size:12px;color:#667085;text-transform:uppercase;letter-spacing:.05em}.lp-inline-form{display:inline-block;margin:0 4px 4px 0}
.lp-pill{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700}.lp-pill.active{background:#eaf8ef;color:#18794e}
.lp-follow-card h2{margin:0 0 3px;font-size:19px}.lp-follow-card>p{color:#718096}.lp-follow-stats{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.lp-follow-stats span{background:#f5f7fb;padding:9px 11px;border-radius:9px;font-size:13px}.lp-follow-stats b{font-size:17px}
.lp-history-card{margin-bottom:10px;padding:0}.lp-history-card summary{cursor:pointer;list-style:none;padding:18px 20px;display:flex;justify-content:space-between}.lp-history-card summary::-webkit-details-marker{display:none}.lp-history-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 20px 20px}.lp-history-grid div{background:#f6f8fb;padding:14px;border-radius:9px}.lp-history-grid b,.lp-history-grid strong{display:block}.lp-history-grid b{font-size:12px;color:#667085}.lp-history-grid strong{font-size:24px;margin-top:4px}
.lp-notification{display:flex;justify-content:space-between;gap:18px;padding:16px 0;border-bottom:1px solid #edf0f5}.lp-notification.unread{background:#f7faff;margin:0 -24px;padding:16px 24px}.lp-notification p{margin:5px 0;color:#475467}.lp-notification small{color:#98a2b3}
.lp-app-login{min-height:70vh;display:grid;place-items:center;background:#f5f7fb;padding:30px}.lp-app-login-card{width:min(430px,100%);background:#fff;padding:34px;border-radius:18px;box-shadow:0 14px 50px rgba(20,35,65,.12)}.lp-app-brand{font-weight:800;letter-spacing:.14em;color:#2857d7;font-size:12px}.lp-app-login-card h1{margin:8px 0 2px}.lp-app-login-card>p{color:#718096;margin-top:0}.lp-app-login-card form p{margin:14px 0}.lp-app-login-card input[type=text],.lp-app-login-card input[type=password]{width:100%;box-sizing:border-box;padding:12px;border:1px solid #d8dee9;border-radius:9px}.lp-app-login-card input[type=submit]{border:0;background:#2f5bea;color:#fff;padding:12px 18px;border-radius:9px;font-weight:700;width:100%;cursor:pointer}.lp-app-login-card small{display:block;margin-top:16px;color:#98a2b3;text-align:center}.lp-app-denied{padding:40px;background:#fff;border-radius:15px}
@media(max-width:900px){.lp-app-body{display:block}.lp-app-sidebar{width:auto;display:grid;grid-template-columns:repeat(2,1fr);border-right:0;border-bottom:1px solid #e6eaf1}.lp-app-sidebar a:last-child{margin-top:0}.lp-app-main{padding:22px}.lp-app-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.lp-app-header{padding:22px;align-items:flex-start}.lp-app-user{display:none}.lp-app-sidebar{grid-template-columns:1fr 1fr}.lp-app-stats,.lp-app-grid-2,.lp-form-grid{grid-template-columns:1fr}.lp-student-row{grid-template-columns:1fr}.lp-form-top{display:block}.lp-form-top label{margin-bottom:14px}.lp-history-card summary{display:block}.lp-history-card summary span{display:block;margin-top:4px;color:#718096}.lp-history-grid{grid-template-columns:1fr 1fr}}

.lp-attendance-summary{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-left:auto;margin-right:auto}.lp-attendance-summary span{padding:7px 9px;border-radius:999px;background:#f5f7fb;color:#52617a;font-size:12px;font-weight:700}.lp-attendance-controls{display:flex;gap:7px;align-items:center;justify-content:flex-end}.lp-attendance-code{width:58px!important;text-align:center;text-transform:uppercase;font-weight:800!important;margin:0!important}.lp-att-btn{width:38px;height:38px;border-radius:9px;border:1px solid #d8dee9;background:#fff;font-weight:800;cursor:pointer}.lp-att-btn.present.selected{background:#eaf8ef;border-color:#a9dfbb;color:#18794e}.lp-att-btn.absent.selected{background:#fff1f0;border-color:#efb1ad;color:#b42318}.lp-att-btn.excused.selected{background:#fff7e6;border-color:#f1cf8a;color:#9a6700}.lp-attendance-row{grid-template-columns:1fr auto}.lp-form-top .lp-attendance-summary{flex:1}.lp-card textarea{max-width:100%;box-sizing:border-box}.lp-table select{max-width:190px}@media(max-width:700px){.lp-attendance-summary{margin:12px 0;justify-content:flex-start}.lp-form-top{display:block}.lp-form-top .lp-primary{margin-top:12px}.lp-attendance-row{grid-template-columns:1fr}.lp-attendance-controls{justify-content:flex-start;margin-top:8px}.lp-attendance-code{width:54px!important}}

.lp-notifications-link{position:relative;display:flex!important;align-items:center;gap:7px}.lp-notification-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#e5484d;color:#fff;font-size:11px;font-weight:800;line-height:20px}.lp-notification-badge[hidden]{display:none!important}
