/* CM BEP dashboard polish — additive styles; does not replace the host application's main stylesheet. */
:root{--cmbep-ink:#152b3c;--cmbep-muted:#617285;--cmbep-line:#e3eaf0;--cmbep-panel:#ffffff;--cmbep-green:#087443;--cmbep-green-soft:#eaf8f0;--cmbep-blue:#145d8f;--cmbep-shadow:0 12px 32px rgba(15,45,70,.07)}
body{background:linear-gradient(135deg,#f4f8fb 0%,#f7faf8 55%,#eff6f5 100%);color:var(--cmbep-ink)}
.wrap{max-width:1480px}
.app-header{box-shadow:0 8px 26px rgba(13,45,65,.08);border:1px solid rgba(215,227,235,.8);border-radius:18px}
.panel{border:1px solid var(--cmbep-line);border-radius:18px;background:var(--cmbep-panel);box-shadow:var(--cmbep-shadow);padding:clamp(18px,2.4vw,30px);margin-bottom:22px}
.panel h1,.panel h2,.panel h3{color:var(--cmbep-ink);letter-spacing:-.025em}
.panel h1{font-size:clamp(1.55rem,2.4vw,2.15rem);line-height:1.15}
.eyebrow{letter-spacing:.13em;color:var(--cmbep-green);font-weight:800;font-size:.72rem}
.muted,.small-note{color:var(--cmbep-muted)}
.heading-row{gap:18px;align-items:flex-start}
.today-attendance-state{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.today-attendance-state>div{border:1px solid #dce8ee;border-radius:14px;background:linear-gradient(145deg,#fff,#f6fafc);padding:16px;min-width:0}
.today-attendance-state .muted{display:block;font-size:.78rem;font-weight:700;margin-bottom:7px}
.today-attendance-state strong{display:block;font-size:clamp(.95rem,1.6vw,1.2rem);overflow-wrap:anywhere;color:#163c52}
.notice{border-radius:12px}
.notice:not(.error){background:#eef7ff;border:1px solid #d4e7f6;color:#1c4b6d;padding:12px 15px}
.button-row{gap:10px;flex-wrap:wrap}
button,.primary,.primary-link,.secondary-button,.secondary-link,.row-link,.small-action{transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease}
button:hover,.primary:hover,.primary-link:hover,.secondary-button:hover,.secondary-link:hover,.row-link:hover,.small-action:hover{transform:translateY(-1px)}
button,.primary,.primary-link{border-radius:10px;font-weight:750}
input,select,textarea{border-color:#d5e0e8;border-radius:10px;min-height:42px}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(20,93,143,.12);border-color:#4d92bf}
.table-wrap{border:1px solid var(--cmbep-line);border-radius:12px;background:white}
table{border-collapse:separate;border-spacing:0;overflow:hidden}
thead th{background:#edf4f8;color:#29485e;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}
td,th{border-bottom:1px solid #e7edf1;padding:10px 11px}
tbody tr:hover td{background:#f7fbfd}
.pill{border-radius:999px;font-weight:750;letter-spacing:.01em}
.student-face-enrollment-panel{border-left:4px solid #0d9861}
.student-enroll-steps{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.student-enroll-steps span{padding:8px 12px;border:1px solid #d9e7ed;border-radius:999px;background:#f5fafc;font-size:.88rem;font-weight:700;color:#2d5368}
.cmbep-auto-scan-card,.cmbep-scan-info,.cmbep-checkout-card{border-radius:16px}
.cmbep-face-viewport{border-radius:18px;overflow:hidden;background:#10222d}
.password-reset-mini{flex:1 1 100%;background:#f7fafc;border:1px solid #dbe6ed;border-radius:10px;padding:8px 10px;min-width:220px}
.password-reset-mini summary{cursor:pointer;font-weight:750;color:#185b87;padding:4px}
.password-reset-mini .stack-form{margin-top:8px;padding:10px;background:white;border-radius:8px}
.password-reset-mini input{width:100%;box-sizing:border-box}
.password-reset-panel{border-color:#f0d5b8;background:#fffdf9;margin-top:20px}
@media(max-width:700px){.today-attendance-state{grid-template-columns:1fr}.today-attendance-state>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.today-attendance-state .muted{margin-bottom:0}.panel{padding:16px;border-radius:14px}.heading-row{display:block}.password-reset-mini{min-width:0}}
@media print{body{background:#fff}.panel{box-shadow:none;border:1px solid #ddd}.no-print,.top{display:none!important}}

/* Student self-service requests, private document previews and role-scoped review workspace */
.student-service-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-top:1rem}
.student-service-tiles a{display:flex;flex-direction:column;gap:.35rem;padding:1rem;border:1px solid var(--line,#dce6e1);border-radius:14px;text-decoration:none;font-weight:750;background:linear-gradient(145deg,rgba(0,103,56,.055),rgba(255,255,255,.9));transition:transform .18s ease,border-color .18s ease}
.student-service-tiles a:hover{transform:translateY(-2px);border-color:var(--brand,#006738)}
.student-service-tiles a span{font-size:.84rem;font-weight:450;color:var(--muted,#66756f);line-height:1.45}
.request-grid-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.request-full-width{grid-column:1/-1}
.request-grid-form .field,.request-filter-row .field{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.request-grid-form input[type=file]{width:100%;padding:.75rem;border:1px dashed var(--line,#cbd7d1);border-radius:10px;background:rgba(0,103,56,.025)}
.request-filter-row{display:grid;grid-template-columns:1fr 1fr auto;gap:1rem;align-items:end}
.request-filter-button button{min-height:44px}
.student-request-list{display:grid;gap:1rem}
.student-request-card{border:1px solid var(--line,#dce6e1);border-radius:15px;padding:1rem;background:var(--surface,#fff);box-shadow:0 6px 18px rgba(12,42,28,.035)}
.student-request-card h3{margin:.1rem 0 .25rem}
.student-request-card>p{line-height:1.65;overflow-wrap:anywhere}
.request-review-form{display:grid;gap:.65rem;border-top:1px solid var(--line,#e3ebe6);margin-top:.8rem;padding-top:.9rem}
.request-review-note{margin-top:.7rem;padding:.8rem 1rem;border-left:3px solid var(--brand,#006738);background:rgba(0,103,56,.05);border-radius:0 10px 10px 0}
.request-review-note p{margin:.35rem 0 0;line-height:1.6}
.request-status-pending,.request-status-open{background:#fff5d8!important;color:#805800!important}
.request-status-approved,.request-status-resolved{background:#e4f6eb!important;color:#176b3a!important}
.request-status-rejected{background:#fff0ed!important;color:#a33a2b!important}
.student-quick-nav{display:flex;gap:.6rem;flex-wrap:wrap;margin:.75rem 0 1rem}
.student-quick-nav a{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem .85rem;border:1px solid var(--line,#dce6e1);border-radius:999px;text-decoration:none;font-weight:650;background:#fff}
.student-quick-nav a:hover{border-color:var(--brand,#006738);background:rgba(0,103,56,.045)}
@media(max-width:700px){.student-service-tiles{grid-template-columns:1fr}.request-grid-form,.request-filter-row{grid-template-columns:1fr}.request-full-width{grid-column:auto}.student-request-card{padding:.85rem}}


/* Unified green public-service brand palette requested for student and staff tools. */
:root{--cmbep-blue:#087443;--cmbep-green:#087443;--cmbep-green-soft:#eaf8f0}
.notice:not(.error){background:#eef9f2;border:1px solid #cce8d6;color:#245b3b}
.student-quick-nav a,.student-service-tiles a{color:#087443!important}
.student-quick-nav a:hover,.student-service-tiles a:hover{background:#eaf8f0;border-color:#79c49b}
.primary,.primary-link,button.primary,.student-enroll-link{background:#087443;border-color:#087443;color:#fff}
.secondary-link,.row-link{color:#087443}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(8,116,67,.13);border-color:#29965f}

/* Final green-only UI pass: remove default blue/purple link and focus colors. */
a{color:#087443}
a:hover{color:#055a33}
.panel a:not(.danger-button){text-decoration-color:rgba(8,116,67,.28)}
.site-nav a:hover,.nav-menu summary:hover,.nav-submenu a:hover{background:#eaf8f0!important;color:#075c35!important}
.secondary-button,.secondary-link{border-color:#cfe7d8;color:#087443}
.secondary-button:hover{background:#eaf8f0;color:#075c35}
button:focus-visible,a:focus-visible{outline:3px solid rgba(8,116,67,.24);outline-offset:2px}
.request-status-approved,.request-status-resolved{background:#e4f6eb!important;color:#176b3a!important}
.today-attendance-state>div{border-color:#d4e9dc;background:linear-gradient(145deg,#fff,#f2faf5)}
thead th{background:#eaf8f0;color:#20523a}
.table-wrap{border-color:#d7e8dd}
.student-face-enrollment-panel{border-left-color:#087443}
