@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap");
/* Texas Staff Portal Styles */
#ptaa-tx-staff-portal-app { font-family: Montserrat, -apple-system, BlinkMacSystemFont, sans-serif !important; }
.sp-login-wrap { display:flex; justify-content:center; align-items:center; min-height:60vh; padding:2rem; }
.sp-login-box { background:#fff; border-radius:12px; padding:2.5rem; box-shadow:0 4px 24px rgba(0,0,0,.12); max-width:400px; width:100%; text-align:center; }
.sp-login-box h2 { color:#1a365d; margin-bottom:.5rem; font-size:1.5rem; }
.sp-login-box p { color:#666; margin-bottom:1.5rem; }
.sp-login-box label { display:block; text-align:left; font-weight:600; color:#1a365d; margin-top:1rem; margin-bottom:.3rem; }
.sp-login-box input { width:100%; padding:.7rem; border:1px solid #ddd; border-radius:6px; font-size:1rem; }
.sp-pw-wrap { position:relative; }
.sp-pw-wrap input { padding-right:3rem; }
.sp-eye { position:absolute; right:8px; top:50%; transform:translateY(-50%); background:none; border:none; cursor:pointer; font-size:1.2rem; }
.sp-btn-primary { background:#c6930a; color:#fff; border:none; padding:.75rem 1.5rem; border-radius:6px; font-size:1rem; font-weight:600; cursor:pointer; margin-top:1rem; width:100%; }
.sp-btn-primary:hover { background:#a87a08; }
.sp-btn-secondary { background:#e2e8f0; color:#1a365d; border:none; padding:.75rem 1.5rem; border-radius:6px; font-size:1rem; cursor:pointer; margin-top:1rem; }
.sp-forgot { margin-top:1rem; } .sp-forgot a { color:#c6930a; }
/* Dashboard */
.sp-dashboard { display:flex; min-height:70vh; background:#f7fafc; border-radius:12px; overflow:hidden; box-shadow:0 2px 12px rgba(0,0,0,.08); }
.sp-sidebar { width:260px; background:#1a365d; color:#fff; padding:1.5rem 0; display:flex; flex-direction:column; }
.sp-sidebar-header { padding:0 1.5rem 1rem; border-bottom:1px solid rgba(255,255,255,.15); }
.sp-sidebar-header h3 { margin:0; font-size:1.1rem; } .sp-user-badge { font-size:.8rem; opacity:.7; }
.sp-nav { flex:1; padding:1rem 0; }
.sp-nav-item { display:block; padding:.7rem 1.5rem; color:#ffffff; text-decoration:none; font-size:.95rem; border-left:3px solid transparent; transition:all .2s; }
.sp-nav-item:hover { background:rgba(255,255,255,.1); color:#fff; }
.sp-nav-item.active { background:rgba(255,255,255,.15); color:#fff; border-left-color:#c6930a; font-weight:600; }
.sp-btn-logout { margin:1rem 1.5rem; background:rgba(255,255,255,.1); color:#fff; border:1px solid rgba(255,255,255,.3); padding:.5rem; border-radius:6px; cursor:pointer; }
.sp-powered { text-align:center; font-size:.75rem; opacity:.5; margin-top:auto; padding-top:1rem; }
.sp-content { flex:1; padding:2rem; overflow-y:auto; }
/* Cards */
.sp-card { background:#fff; border:1px solid #e2e8f0; border-radius:8px; padding:1rem 1.2rem; margin-bottom:.75rem; }
.sp-card.cancelled { opacity:.6; border-left:3px solid #e53e3e; }
.sp-card-header { margin-bottom:.5rem; }
.sp-card-links a { display:inline-block; margin-right:.75rem; color:#1a365d; font-size:.9rem; text-decoration:none; }
.sp-card-links a:hover { color:#c6930a; }
.sp-card-actions { margin-top:.5rem; display:flex; gap:.5rem; flex-wrap:wrap; }
.sp-btn-sm { background:#f7fafc; border:1px solid #e2e8f0; padding:.3rem .6rem; border-radius:4px; cursor:pointer; font-size:.85rem; }
.sp-btn-sm:hover { background:#edf2f7; }
.sp-badge-upcoming { background:#38a169; color:#fff; padding:2px 8px; border-radius:4px; font-size:.75rem; font-weight:600; }
.sp-badge-cancel { background:#e53e3e; color:#fff; padding:2px 8px; border-radius:4px; font-size:.75rem; }
/* Campus selector */
.sp-campus-selector { background:#edf2f7; padding:1rem; border-radius:8px; margin-bottom:1.5rem; }
.sp-campus-selector label { font-weight:600; color:#1a365d; margin-right:.5rem; }
.sp-campus-selector select { padding:.5rem 1rem; border-radius:6px; border:1px solid #cbd5e0; font-size:1rem; min-width:200px; }
/* Forms */
.sp-form { max-width:600px; }
.sp-form label { display:block; font-weight:600; color:#1a365d; margin-top:1rem; margin-bottom:.3rem; }
.sp-form input, .sp-form select, .sp-form textarea { width:100%; padding:.6rem; border:1px solid #ddd; border-radius:6px; font-size:.95rem; }
.sp-form textarea { min-height:80px; resize:vertical; }
.sp-form-actions { margin-top:1.5rem; display:flex; gap:1rem; }
.sp-form-actions .sp-btn-primary { width:auto; }
.sp-dept-heading { color:#1a365d; border-bottom:2px solid #c6930a; padding-bottom:.3rem; margin-top:1.5rem; }
.sp-cal-current { background:#f0fff4; border:1px solid #c6f6d5; padding:1rem; border-radius:8px; margin-bottom:1.5rem; }
.sp-error { color:#e53e3e; }
/* Responsive */
@media(max-width:768px) { .sp-dashboard { flex-direction:column; } .sp-sidebar { width:100%; flex-direction:row; flex-wrap:wrap; padding:.5rem; } .sp-nav { display:flex; flex-wrap:wrap; padding:0; } .sp-nav-item { padding:.5rem .8rem; font-size:.85rem; border-left:none; } .sp-sidebar-header { display:none; } .sp-content { padding:1rem; } }

/* FONT FIX - Force Montserrat everywhere in the portal */
#sp-app, #sp-app *, .sp-sidebar, .sp-sidebar *, .sp-content, .sp-content * {
    font-family: Montserrat, -apple-system, BlinkMacSystemFont, sans-serif !important;
    font-style: normal !important;
}
.sp-sidebar a, .sp-sidebar span, .sp-nav-item {
    font-family: Montserrat, sans-serif !important;
    font-weight: 500 !important;
    color: #ffffff !important;
    font-style: normal !important;
}
