body{background:#f5f8fd;color:#0b1c4c;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.brand-color{color:#003b85}.btn-primary{background:#06458f;border-color:#06458f}.btn-primary:hover{background:#032f69}.topbar{z-index:1020}.hero-banner{height:clamp(180px,29vw,420px);background-position:center;background-size:cover;position:relative}.hero-caption{position:absolute;bottom:15px;left:25px;color:white;font-size:clamp(14px,2vw,26px);font-weight:800;text-shadow:0 2px 8px #002}.feature-card{background:white;padding:20px;border-radius:14px;box-shadow:0 4px 18px #183e7010;font-size:24px;display:flex;gap:12px;align-items:center;height:100%}.feature-card span{font-size:13px;font-weight:700}.event-card{border:0;border-radius:16px;overflow:hidden;box-shadow:0 5px 25px #0b2b5210}.event-card img{height:185px;object-fit:cover}.detail-banner{width:100%;max-height:450px;object-fit:contain;background:#09234c}.auth-card{max-width:480px;margin:45px auto;background:white;border-radius:20px;padding:36px;box-shadow:0 12px 35px #0b2b5218}.pin-group{display:flex;gap:7px}.pin-box{width:calc((100% - 35px)/6);height:57px;text-align:center;border:1px solid #ccd8eb;border-radius:10px;font-size:26px}.pin-box:focus{outline:2px solid #0d6efd}.app-sidebar{position:fixed;top:0;left:0;bottom:0;width:240px;background:#052f71;padding:24px;flex-direction:column;z-index:1030}.app-main{margin-left:240px}.side-link{padding:13px 14px;color:#e9f1ff;text-decoration:none;border-radius:10px}.side-link:hover{background:#ffffff20;color:white}.brand{font-size:25px;font-weight:800;text-decoration:none}.stat-card{padding:28px;border-radius:16px;background:white;box-shadow:0 8px 24px #1233}.stat-card h1{color:#06458f;font-weight:800}.empty-state{padding:65px 20px;text-align:center;border:2px dashed #d6e0ee;background:white;border-radius:16px}.error-wrap{text-align:center;margin:8vh auto;max-width:550px}.error-number{font-size:110px;font-weight:900;color:#0b54a4}.mobile-bottom{position:fixed;bottom:0;left:0;right:0;display:flex;background:white;box-shadow:0 -4px 20px #102e551a;z-index:1025;justify-content:space-around;padding:8px 4px env(safe-area-inset-bottom)}.mobile-bottom a,.mobile-bottom button{display:flex;flex-direction:column;align-items:center;border:0;background:transparent;color:#15477e;text-decoration:none;font-size:20px}.mobile-bottom small{font-size:10px}.prose{line-height:1.8}@media(max-width:991.98px){.app-main{margin-left:0}.app-main main{padding-bottom:100px!important}}@media(max-width:575px){.auth-card{margin:10px auto;padding:22px}.hero-banner{height:210px}.feature-card{padding:12px;display:block;text-align:center}.feature-card span{display:block;font-size:11px}.event-card img{height:160px}}

/* UCMS v1.4 — portal visual system */
:root { --ucms-blue:#073d86; --ucms-navy:#071b4b; --ucms-cyan:#00a9c3; }
body { background:#f5f8fe; color:var(--ucms-navy); }
.topbar { border-bottom:1px solid #e7edf6; box-shadow:0 2px 12px #17395b08; }
.topbar .container-xl { min-height:62px; }
.portal-brand { display:inline-flex; align-items:center; gap:11px; text-decoration:none; color:var(--ucms-navy); font-size:17px; font-weight:600; white-space:nowrap; }
.portal-brand img { width:43px; height:45px; object-fit:contain; }
.portal-brand strong { color:#0755a0; }
.top-links { align-items:center; gap:27px; }
.top-links a { text-decoration:none; color:#344c71; font-size:13px; font-weight:600; }
.top-links a:hover, .language-link:hover { color:#007eb3; }
.language-link { font-size:12px; font-weight:700; text-decoration:none; color:#074b9d; }
.btn-primary { background:var(--ucms-blue); border-color:var(--ucms-blue); }
.btn-primary:hover { background:#052d65; border-color:#052d65; }
.page-content { padding:0; }
.portal-home { padding-top:26px; padding-bottom:60px; }
.hero-carousel { overflow:hidden; border-radius:18px; background:#062d64; box-shadow:0 15px 36px #12335b1b; }
.hero-image { width:100%; height:auto; aspect-ratio:1136/286; object-fit:cover; display:block; }
.hero-carousel .carousel-control-prev, .hero-carousel .carousel-control-next { width:7%; }
.hero-carousel .carousel-indicators { margin-bottom:8px; }
.feature-card { border:1px solid #edf2f9; border-radius:16px; padding:20px; display:flex; align-items:center; gap:14px; min-height:92px; box-shadow:0 7px 22px #112a4b0a; }
.feature-icon { font-size:29px !important; flex:none; }
.feature-card strong { display:block; font-size:13px; line-height:1.35; }
.feature-card small { display:block; color:#61718e; font-size:11px; margin-top:4px; line-height:1.4; }
.competitions-section { padding-top:12px; }
.section-eyebrow { font-size:11px; font-weight:800; letter-spacing:1.3px; color:#075ebc; }
.section-title { font-size:clamp(25px,3vw,33px); font-weight:800; letter-spacing:-.7px; margin:4px 0; }
.event-card { transition:transform .2s,box-shadow .2s; }
.event-card:hover { transform:translateY(-4px); box-shadow:0 16px 38px #0b2b5220; }
.event-card img { height:200px; object-fit:cover; }
.event-card .card-body { padding:22px; }
.event-card .btn { border-radius:9px; }

/* Auth */
.auth-layout { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); min-height:calc(100vh - 80px); }
.auth-showcase { background:radial-gradient(circle at 95% 5%,#1368b7 0%,transparent 40%),linear-gradient(140deg,#052453,#073f89 65%,#03658e); color:white; padding:clamp(32px,5vw,78px); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.auth-showcase-content { width:100%; max-width:600px; }
.auth-showcase-logo { width:110px; height:100px; object-fit:contain; object-position:left center; filter:drop-shadow(0 4px 12px #0003); }
.eyebrow { color:#8eeaf4; font-size:12px; font-weight:800; letter-spacing:2px; margin-top:28px; }
.auth-showcase h1 { font-size:clamp(36px,4vw,58px); line-height:1.14; letter-spacing:-1.5px; font-weight:800; margin:15px 0; }
.auth-showcase h1 span { color:#ffd845; }
.auth-showcase p { max-width:420px; color:#d7eaff; line-height:1.7; }
.showcase-banner { margin-top:38px; border:5px solid #ffffff24; border-radius:16px; overflow:hidden; box-shadow:0 18px 50px #0003; }
.showcase-banner img { width:100%; display:block; }
.auth-form-panel { display:flex; align-items:center; justify-content:center; padding:40px 26px; }
.auth-card { width:100%; max-width:465px; margin:0; padding:35px; border:1px solid #edf1f7; border-radius:22px; box-shadow:0 15px 50px #112f5710; }
.auth-kicker { font-size:11px; color:#0070ba; font-weight:800; letter-spacing:1.7px; margin-bottom:10px; }
.auth-card h2 { font-size:clamp(25px,3vw,32px); font-weight:800; letter-spacing:-.8px; }
.auth-subtitle { color:#6d7c93; font-size:14px; margin-bottom:26px; }
.auth-card .form-label { font-size:13px; font-weight:700; color:#1b355d; margin-bottom:7px; }
.auth-card .form-control, .auth-card .form-select { height:47px; border-radius:10px; border-color:#dbe4f1; font-size:14px; }
.auth-card .form-control:focus, .auth-card .form-select:focus { border-color:#007fc2; box-shadow:0 0 0 .2rem #007fc21a; }
.auth-card .pin-group { gap:9px; }
.auth-card .pin-box { min-width:0; flex:1; width:0; height:57px; font-size:25px; font-weight:800; border:1.5px solid #cfdbeb; border-radius:11px; background:#fafdff; }
.auth-card .pin-box:focus { outline:0; border-color:#0874bd; box-shadow:0 0 0 3px #007fc21c; }
.auth-card .btn-lg { font-size:15px; font-weight:700; border-radius:11px; height:50px; }
.auth-card .btn-lg span { margin-left:9px; }
.auth-card .form-text { color:#8290a5; font-size:12px; }
.auth-link,.auth-bottom a { color:#065aa6; text-decoration:none; font-weight:700; font-size:13px; }
.auth-bottom { margin:25px 0 0; text-align:center; font-size:13px; color:#72809a; }
.password-fallback[hidden] { display:none!important; }
.password-fallback { background:#f1f7ff; border-radius:12px; padding:15px; margin:15px 0; border:1px solid #dceafa; }
.sidebar-brand { display:flex; gap:10px; align-items:center; color:white; text-decoration:none; font-size:19px; font-weight:800; margin-bottom:35px; }
.sidebar-brand img { width:45px; height:50px; object-fit:contain; }
.sidebar-brand small { display:block; font-size:10px; color:#b6c9e8; font-weight:400; }
.sidebar-label { color:#9bb6d7; font-size:10px; font-weight:800; letter-spacing:1px; margin-bottom:12px; }
.side-link.active { background:#ffffff26; color:white; }
@media(max-width:991.98px) {
 .auth-layout { grid-template-columns:1fr; }
 .auth-showcase { padding:24px 20px; }
 .auth-showcase-content { max-width:700px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
 .auth-showcase-logo { width:70px; height:66px; }
 .auth-showcase .eyebrow { margin:0; }
 .auth-showcase h1 { width:100%; font-size:27px; margin:0; }
 .auth-showcase p,.showcase-banner { display:none; }
 .auth-form-panel { padding:24px 15px 45px; }
 .auth-card { max-width:540px; }
}
@media(max-width:575px) {
 .topbar .container-xl { min-height:55px; gap:6px!important; }
 .portal-brand { font-size:13px; gap:5px; }
 .portal-brand img { width:33px; height:36px; }
 .portal-home { padding-top:12px; }
 .hero-carousel { border-radius:12px; }
 .hero-image { aspect-ratio:16/9; object-fit:cover; }
 .feature-card { padding:12px; min-height:96px; gap:7px; align-items:flex-start; }
 .feature-icon { font-size:22px!important; }
 .feature-card strong { font-size:11px; }
 .feature-card small { font-size:10px; }
 .auth-card { padding:24px 19px; }
 .auth-card .pin-group { gap:6px; }
 .auth-card .pin-box { height:51px; font-size:22px; }
 .auth-showcase { padding:17px 19px; }
 .auth-showcase h1 { font-size:23px; }
}

/* v1.5: desktop layout matches approved UMPSA competition portal mockup */
.portal-brand img { width:106px; height:51px; object-fit:contain; }
.portal-brand { font-size:17px; gap:14px; }
.topbar .container-xl { max-width:1450px; min-height:70px; }
.top-links { gap:26px; }
.top-links a { color:#0a2250; }
.top-links a:first-child { color:inherit; border-bottom:0; padding-bottom:12px; }
.topbar .btn-primary { min-width:100px; border-radius:9px; padding:9px 20px!important; font-weight:600; }
.portal-showcase { background:#fff; }
.portal-showcase .hero-carousel { width:100%; border-radius:0; box-shadow:none; }
.portal-showcase .hero-image { aspect-ratio:1536/312; object-fit:cover; }
.portal-showcase .container-xl { max-width:1450px; }
.feature-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); background:linear-gradient(110deg,#f6f8fc,#edf2f9); border-radius:13px; padding:15px 5px; }
.feature-strip-item { display:flex; align-items:center; gap:17px; padding:7px 24px; border-right:1px solid #dbe3f0; }
.feature-strip-item:last-child { border:0; }
.feature-strip-item i { font-size:32px; color:#0757b6; }
.feature-strip-item strong { display:block; font-size:13px; }
.feature-strip-item small { display:block; color:#647493; font-size:12px; line-height:1.3; }
.competitions-section { padding:12px 0 24px; }
.competitions-section .section-title { font-size:32px; margin:0 0 4px; }
.event-card { border:1px solid #e4eaf3; border-radius:10px; overflow:hidden; box-shadow:0 3px 9px #001a4012; }
.event-card img { height:145px; object-fit:cover; }
.event-card .card-body { padding:14px 16px 15px; }
.event-card h5 { font-size:15px; line-height:1.3; font-weight:800; color:#091e4e; min-height:40px; }
.event-description { font-size:12px; color:#667896; line-height:1.35; min-height:43px; }
.event-meta { display:flex; align-items:flex-start; gap:8px; font-size:11px; color:#19335f; line-height:1.4; margin-bottom:6px; }
.event-meta i { color:#0455a7; font-size:13px; }
.event-card .btn { font-size:12px; font-weight:600; padding:9px 12px; }
.featured-label { position:absolute; top:10px; left:10px; border-radius:8px; }
.stats-bar { background:linear-gradient(110deg,#0b4c9d,#2367b8,#08498f); color:white; margin-top:0; }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:15px; padding:25px 0; }
.stats-grid>div { display:flex; align-items:center; justify-content:center; gap:17px; }
.stats-grid i { font-size:36px; }
.stats-grid strong { font-size:23px; display:block; }
.stats-grid small { font-size:12px; display:block; }
.auth-showcase-logo { width:200px; height:auto; max-height:100px; object-fit:contain; }
.sidebar-brand img { width:60px; height:44px; }
@media(max-width:991.98px) {
 .portal-brand img { width:85px; height:44px; }
 .feature-strip { grid-template-columns:repeat(2,1fr); }
 .feature-strip-item:nth-child(2) { border:0; }
 .feature-strip-item { padding:12px; }
 .stats-grid { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:575px) {
 .portal-brand img { width:63px; height:37px; }
 .portal-brand { font-size:12px; gap:6px; }
 .portal-showcase .hero-image { aspect-ratio:16/9; }
 .feature-strip-item { gap:8px; }
 .feature-strip-item i { font-size:23px; }
 .feature-strip-item strong { font-size:11px; }
 .feature-strip-item small { font-size:10px; }
 .stats-grid i { font-size:25px; }
 .stats-grid strong { font-size:16px; }
 .stats-grid small { font-size:10px; }
}

/* v1.6 — official logo lockup and genuinely centered desktop navigation */
.topbar .header-inner { max-width: 1536px; width: 100%; display: grid!important; grid-template-columns: minmax(215px,1fr) auto minmax(215px,1fr); gap: 20px!important; }
.portal-brand { justify-self:start; width:fit-content; }
.portal-brand img { width:215px!important; height:69px!important; max-width:100%; object-fit:contain; object-position:left center; }
.top-links { justify-self:center; margin:0!important; }
.topbar-actions { justify-self:end; margin:0!important; }
.auth-showcase-logo { width:min(300px,100%); height:auto; max-height:120px; object-fit:contain; object-position:left center; background:white; padding:8px 12px; border-radius:10px; }
.sidebar-brand img { width:100px; height:46px; object-fit:contain; background:white; border-radius:6px; padding:4px; }
@media(max-width:1199.98px) {
 .topbar .header-inner { grid-template-columns:minmax(165px,1fr) auto minmax(165px,1fr); gap:12px!important; }
 .top-links { gap:13px; }
 .top-links a { font-size:12px; }
 .portal-brand img { width:175px!important; height:55px!important; }
}
@media(max-width:991.98px) {
 .topbar .header-inner { display:flex!important; justify-content:space-between; }
 .portal-brand img { width:170px!important; height:53px!important; }
 .topbar-actions { margin-left:auto!important; }
}
@media(max-width:575px) {
 .portal-brand img { width:128px!important; height:44px!important; }
 .topbar .header-inner { gap:6px!important; }
 .topbar-actions { gap:5px!important; }
 .topbar .btn-primary { min-width:auto; padding:7px 10px!important; }
}

/* v1.7: clean logo, proportional slider, softer cards */
.portal-brand img { width:230px!important; height:70px!important; object-fit:contain!important; object-position:left center; }
.auth-showcase-logo { width:min(380px,100%)!important; max-height:210px!important; height:auto!important; background:transparent!important; padding:0!important; border-radius:0!important; filter:drop-shadow(0 5px 12px #0002); }
.portal-showcase .hero-carousel { background:#052a61; }
.portal-showcase .hero-image { width:100%; height:auto!important; aspect-ratio:auto!important; object-fit:contain!important; object-position:center; display:block; }
.portal-showcase .carousel-item { background:#052a61; }
.hero-carousel .carousel-control-prev,.hero-carousel .carousel-control-next { width:6%; }
.hero-carousel .carousel-control-prev-icon,.hero-carousel .carousel-control-next-icon { background-color:#002d61; border-radius:50%; padding:20px; background-size:18px; }
.auth-showcase { position:relative; }
.auth-showcase:before { content:""; position:absolute; width:480px; height:480px; border:1px solid #ffffff18; border-radius:50%; right:-190px; bottom:-220px; pointer-events:none; }
.auth-showcase-content { position:relative; z-index:1; }
.auth-card,.modern-info-card,.event-card { border-radius:22px!important; box-shadow:0 12px 38px #112c4d0b; border:1px solid #eaf0f8!important; }
.auth-card { padding:clamp(24px,3vw,42px); }
.feature-strip { border-radius:22px; }
.modern-page { padding-top:clamp(36px,5vw,75px); padding-bottom:70px; }
.modern-page-heading { max-width:760px; margin-bottom:38px; }
.modern-page-heading h1 { font-size:clamp(30px,4vw,49px); font-weight:800; letter-spacing:-1.6px; margin:12px 0; color:#092652; }
.modern-page-heading p { color:#6b7c95; font-size:17px; line-height:1.75; }
.modern-info-card { background:white; padding:30px; transition:transform .2s ease,box-shadow .2s ease; }
.modern-info-card:hover { transform:translateY(-4px); box-shadow:0 22px 50px #102b4a14; }
.modern-info-icon { display:inline-flex; align-items:center; justify-content:center; width:58px; height:58px; border-radius:18px; background:#eaf5ff; color:#0753a7; font-size:26px; margin-bottom:22px; }
.modern-info-card h2 { font-size:19px; font-weight:800; letter-spacing:-.3px; }
.modern-info-card p { color:#6c7b91; font-size:14px; line-height:1.7; margin:0; }
.modern-cta { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; padding:34px 38px; border-radius:24px; background:linear-gradient(115deg,#073475,#0760a8); color:white; margin-top:34px; }
.modern-cta h2 { font-weight:800; font-size:25px; }
.modern-cta p { margin:0; color:#d4e8fa; }
@media(max-width:1199.98px) { .portal-brand img { width:185px!important; height:59px!important; } }
@media(max-width:991.98px) { .portal-brand img { width:170px!important; height:58px!important; } }
@media(max-width:575px) {
 .portal-brand img { width:137px!important; height:48px!important; }
 .modern-info-card { padding:24px; }
 .modern-cta { padding:25px; }
 .auth-showcase-logo { max-width:250px!important; max-height:130px!important; }
}

/* v1.8: exact user-provided transparent UMPSA logo */
.portal-brand img { width:180px!important; height:80px!important; object-fit:contain!important; }
.auth-showcase-logo { width:240px!important; height:180px!important; max-height:180px!important; object-fit:contain!important; background:transparent!important; }
.sidebar-brand img { width:72px!important; height:62px!important; object-fit:contain!important; background:transparent!important; }
@media(max-width:991.98px) {
 .portal-brand img { width:125px!important; height:62px!important; }
}
@media(max-width:575px) {
 .portal-brand img { width:88px!important; height:52px!important; }
 .auth-showcase-logo { width:130px!important; height:98px!important; }
}

/* v1.9 — single feature strip, active navigation and redesigned FAQ/Contact */
.top-links a { position:relative; padding:12px 0; }
.top-links a::after { content:""; position:absolute; height:2px; background:#0068c6; left:0; right:0; bottom:2px; transform:scaleX(0); transition:transform .2s; transform-origin:left; }
.top-links a.active { color:#0059b5; }
.top-links a.active::after,.top-links a:hover::after { transform:scaleX(1); }
.faq-accordion { display:grid; gap:13px; }
.faq-accordion .accordion-item { border:1px solid #e4ebf6; border-radius:17px!important; overflow:hidden; box-shadow:0 7px 24px #0a2d5309; }
.faq-accordion .accordion-button { font-weight:700; font-size:15px; color:#112d56; padding:22px 24px; background:#fff; box-shadow:none; }
.faq-accordion .accordion-button:not(.collapsed) { background:#f1f7ff; color:#0657a5; box-shadow:none; }
.faq-accordion .accordion-button:focus { box-shadow:0 0 0 3px #006ab41a; }
.faq-accordion .accordion-body { color:#657792; line-height:1.8; padding:8px 24px 25px; background:#fff; }
.faq-help-card,.contact-detail-card,.contact-map-card { background:white; border:1px solid #e9eff7; border-radius:24px; box-shadow:0 12px 36px #0c31530d; }
.faq-help-card { padding:34px; }
.faq-help-card h2 { font-size:23px; font-weight:800; }
.faq-help-card p { color:#6d7c95; line-height:1.7; margin:15px 0 23px; }
.contact-detail-card { padding:clamp(22px,3vw,40px); }
.contact-detail-row { display:flex; align-items:flex-start; gap:17px; padding:22px 0; border-bottom:1px solid #eef2f8; }
.contact-detail-row:first-child { padding-top:0; }
.contact-detail-row:last-of-type { border-bottom:0; }
.contact-detail-row .modern-info-icon { flex:0 0 52px; width:52px; height:52px; margin:0; font-size:22px; }
.contact-detail-row strong { display:block; margin:2px 0 7px; color:#142e55; }
.contact-detail-row a { color:#075aa9; text-decoration:none; overflow-wrap:anywhere; }
.contact-detail-row address { margin:0; line-height:1.75; color:#687c94; font-size:14px; }
.contact-map-card { overflow:hidden; height:100%; }
.contact-map-header { padding:22px 25px; font-size:16px; font-weight:800; color:#15345d; }
.contact-map-card iframe { display:block; width:100%; min-height:385px; height:calc(100% - 125px); border:0; }
.map-note { padding:14px 24px 20px; margin:0; font-size:12px; color:#7889a0; }
@media(max-width:575px) { .faq-accordion .accordion-button { padding:18px; } .faq-help-card { padding:25px; } .contact-map-card iframe { min-height:310px; } }

/* v2.0: mobile public navigation, single active state, searchable directory */
.top-links a.active::after { transform:scaleX(1); }
.mobile-menu-trigger { display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border:1px solid #dce8f6; border-radius:13px; background:#f0f6ff; color:#06498f; font-size:24px; flex-shrink:0; }
.mobile-menu-trigger:focus-visible { outline:3px solid #80baff; outline-offset:2px; }
.mobile-nav-drawer { max-width:min(360px,88vw); border:0; border-radius:0 24px 24px 0; }
.mobile-nav-drawer .offcanvas-header { padding:26px 24px; border-bottom:1px solid #edf2fa; }
.mobile-nav-drawer .offcanvas-body { padding:18px 20px 26px; }
.mobile-nav-link { display:flex; align-items:center; justify-content:space-between; padding:15px 16px; border-radius:14px; color:#15335c; font-weight:600; text-decoration:none; margin-bottom:5px; }
.mobile-nav-link:hover,.mobile-nav-link.active { color:#0753a7; background:#eaf4ff; }
.mobile-nav-link i { font-size:13px; }
.mobile-nav-separator { margin:20px 16px 8px; font-size:11px; letter-spacing:.1em; font-weight:800; color:#8294aa; text-transform:uppercase; }
.competition-search { background:#fff; border:1px solid #e6edf7; padding:24px; border-radius:22px; box-shadow:0 12px 35px #122c4b09; }
.competition-search .input-group-text,.competition-search .form-control { border-color:#d8e3f1; }
.competition-directory .event-card .card-img-top { aspect-ratio:16/9; object-fit:cover; }
@media(max-width:991.98px) { .topbar .header-inner { gap:9px!important; } .portal-brand { margin-right:auto; } }
@media(max-width:575px) { .mobile-menu-trigger { width:36px;height:36px;font-size:21px; } .competition-search { padding:16px; } }

/* v2.1 — remove legacy always-active Home selector; one underline only */
.top-links a:first-child { border-bottom:0!important; color:#0a2250; padding-bottom:12px; }
.top-links a.active { color:#0059b5!important; }
.top-links a:not(.active)::after { transform:scaleX(0); }
.top-links a.active::after { transform:scaleX(1); }

/* v2.2 — UMPSA identity and independent dashboard shell */
:root{--ucms-navy:#092c58;--ucms-teal:#009eaa;--ucms-blue:#155ca1;--ucms-surface:#f3f7fb}
body{background:var(--ucms-surface);color:#173251}
.btn-primary{background:#12579b;border-color:#12579b;border-radius:11px}.btn-primary:hover{background:#0a4078;border-color:#0a4078}
.app-sidebar{width:264px;background:linear-gradient(175deg,#103e71 0%,#092b50 65%,#073e56 100%);padding:25px 17px;box-shadow:8px 0 32px #102e4b0d;gap:5px;overflow-y:auto}
.app-main{margin-left:264px;min-height:100vh}.app-sidebar .sidebar-brand{background:#ffffff12;padding:15px 12px;border:1px solid #ffffff1c;border-radius:17px;margin-bottom:28px;display:flex;gap:12px}.app-sidebar .sidebar-brand img{background:#fff!important;padding:6px!important;border-radius:11px!important;width:65px!important;height:70px!important;object-fit:contain}.sidebar-brand small{font-weight:500}.sidebar-label{padding:0 13px;color:#91d6de;letter-spacing:1.5px;font-size:10px;margin:0 0 12px}.side-link{display:flex;align-items:center;gap:12px;padding:13px 15px;border-radius:12px;color:#dbe9f5;font-size:14px;font-weight:600}.side-link i{font-size:18px;color:#8ed5df}.side-link:hover{background:#ffffff15;color:white}.side-link.active{background:#e6f7fa!important;color:#073b66!important;box-shadow:0 5px 14px #001c3018}.side-link.active i{color:#008e9e}.app-sidebar form.mt-auto{padding-top:28px}.app-main>main{max-width:1550px;margin:0 auto;padding:35px!important}.app-main h1,.app-main h2{letter-spacing:-.6px}
.dashboard-list-card{background:#fff;border:1px solid #e4edf4;border-radius:20px;padding:25px;box-shadow:0 10px 35px #143b5b0b;transition:transform .18s,box-shadow .18s;overflow-wrap:anywhere}.dashboard-list-card:hover{transform:translateY(-2px);box-shadow:0 16px 40px #143b5b15}.dashboard-card-icon{width:52px;height:52px;min-width:52px;display:grid;place-items:center;border-radius:15px;background:#e4f5f7;color:#087c92;font-size:24px}.dashboard-card-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border-top:1px solid #edf1f6;padding-top:15px}.dashboard-card-details span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#788a9b;margin-bottom:5px}.dashboard-card-details strong{display:block;font-size:13px;color:#173251}.status-pill{background:#e9f2fa;color:#14528b;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700;white-space:nowrap}.status-active{background:#e1f6ee;color:#087854}.status-inactive{background:#f1f2f5;color:#657487}.dashboard-empty{padding:55px 25px;background:white;border:1px dashed #c9d9e7;border-radius:22px;text-align:center;color:#667d92}.dashboard-empty>i{display:block;font-size:36px;color:#009eaa;margin-bottom:14px}.dashboard-empty h3{font-size:21px;color:#173251;font-weight:800}
.dashboard-mobile-header{height:69px;background:#fff;display:flex;align-items:center;gap:15px;padding:9px 16px;border-bottom:1px solid #e5edf3;position:sticky;top:0;z-index:1020}.dashboard-hamburger{width:43px;height:43px;display:grid;place-items:center;border:1px solid #d8e8ef;background:#eaf6f8;color:#0c5075;border-radius:13px;font-size:25px}.dashboard-mobile-title{font-size:15px;font-weight:800;flex:1}.dashboard-mobile-header img{height:49px;width:70px;object-fit:contain}.dashboard-drawer{background:linear-gradient(175deg,#103e71,#092b50);color:white;width:min(315px,85vw)!important}.dashboard-drawer .offcanvas-header{border-bottom:1px solid #ffffff24}.dashboard-drawer .offcanvas-body{display:flex;flex-direction:column;gap:8px}.dashboard-drawer-logo{background:#fff;border-radius:16px;padding:10px;text-align:center;margin:5px 0 16px}.dashboard-drawer-logo img{height:100px;max-width:100%;object-fit:contain}
@media(max-width:991.98px){.app-main{margin-left:0}.app-main>main{padding:23px 16px 35px!important}.dashboard-card-details{grid-template-columns:1fr 1fr}}
@media(max-width:575px){.dashboard-list-card{padding:19px}.dashboard-card-details{grid-template-columns:1fr}.app-main h1{font-size:26px}}

/* v2.3 dashboard logo-first navigation */
.app-sidebar .sidebar-brand{justify-content:center;min-height:122px;background:#ffffff!important;border-color:#c8e6e8!important}
.app-sidebar .sidebar-brand img{width:105px!important;height:108px!important;padding:5px!important;background:transparent!important}
.app-sidebar .sidebar-brand:hover{box-shadow:0 7px 24px #001e3318}
.dashboard-drawer .dashboard-drawer-logo img{height:120px}
/* Competition detail redesign (v2.6) */
.contest-detail-page{background:linear-gradient(180deg,#f3f8fc 0%,#fff 55%);color:#102b4d;min-height:75vh}.contest-detail-page .container-xl{max-width:1250px}.contest-back{color:#155a96;text-decoration:none;font-weight:650;display:inline-flex;align-items:center;gap:.5rem}.contest-back:hover{color:#083e75}.contest-cover{border-radius:24px;overflow:hidden;background:#eaf3fb;border:1px solid #e0eaf3;box-shadow:0 12px 38px rgba(12,49,87,.10)}.contest-cover-image{display:block;width:100%;height:auto;max-height:510px;object-fit:contain;margin:auto}.contest-eyebrow{color:#087a9a;font-size:.77rem;font-weight:800;letter-spacing:.15em;display:flex;gap:.6rem;align-items:center}.contest-heading h1{font-size:clamp(1.75rem,3.3vw,3rem);font-weight:800;line-height:1.2;letter-spacing:-.035em;margin:.7rem 0 1rem;color:#092b52}.contest-organizer{display:flex;align-items:center;gap:.6rem;color:#4b6783}.contest-organizer i{color:#009c9e}.contest-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.contest-meta{display:flex;gap:13px;align-items:center;padding:16px;background:#fff;border:1px solid #e3ebf3;border-radius:17px}.contest-meta-icon{background:#e9f7fa;color:#008b9b;border-radius:12px;width:43px;height:43px;display:grid;place-items:center;flex-shrink:0}.contest-meta small,.contest-meta strong{display:block}.contest-meta small{font-size:.77rem;color:#71859b}.contest-meta strong{font-size:.9rem;color:#153555;line-height:1.45}.contest-panel{background:#fff;border:1px solid #e5edf4;border-radius:22px;padding:clamp(20px,3vw,30px);box-shadow:0 6px 22px rgba(19,61,97,.035)}.contest-section-label{display:flex;align-items:center;gap:.7rem;font-size:1.22rem;font-weight:800;color:#10365a;margin-bottom:18px}.contest-section-label>i{color:#009b9e}.contest-description{color:#4c6075;line-height:1.85;overflow-wrap:anywhere}.contest-description p:last-child{margin-bottom:0}.contest-count{font-size:.7rem;border-radius:20px;padding:3px 9px;background:#e9f7fa;color:#008995}.contest-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.contest-gallery-item{position:relative;display:flex;align-items:center;justify-content:center;min-height:175px;max-height:330px;overflow:hidden;border-radius:16px;background:#f2f7fa;border:1px solid #e3ebf3}.contest-gallery-item img{width:100%;height:100%;max-height:330px;object-fit:contain;transition:transform .25s}.contest-gallery-item:hover img{transform:scale(1.025)}.contest-gallery-item span{position:absolute;bottom:10px;right:10px;border-radius:10px;background:rgba(8,40,71,.85);color:#fff;font-size:.75rem;padding:7px 10px}.contest-categories{display:flex;flex-wrap:wrap;gap:9px}.contest-category{border-radius:30px;background:#eaf6f8;border:1px solid #cde8ec;color:#075d73;padding:8px 14px;font-weight:600;font-size:.86rem}.contest-pricing-wrap{border:1px solid #dce9f2;border-radius:15px;overflow:hidden}.contest-pricing-table thead th{background:#edf5fa;color:#1b4b70;font-size:.8rem;letter-spacing:.02em;padding:15px 17px;border:0}.contest-pricing-table tbody td{padding:17px;border-color:#e9eff4;color:#1c3e5e;vertical-align:middle}.contest-pricing-table tbody tr:last-child td{border-bottom:0}.contest-pricing-table tbody td i{color:#00a3a0}.contest-standard-fee{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#eef8f8;padding:20px;border-radius:15px}.contest-standard-fee small{color:#5c758a}.contest-standard-fee strong{font-size:1.6rem;color:#075b78;white-space:nowrap}.contest-join-panel{position:sticky;top:25px;border-radius:23px;background:linear-gradient(145deg,#0c3761,#0c5274);color:#fff;padding:30px;box-shadow:0 18px 38px rgba(11,57,92,.17)}.contest-join-icon{display:grid;place-items:center;width:55px;height:55px;border-radius:16px;background:rgba(255,255,255,.13);font-size:1.5rem;margin-bottom:18px}.contest-join-panel h2{font-weight:800;font-size:1.5rem}.contest-join-panel p{color:#d7e7f2;line-height:1.7}.contest-join-divider{height:1px;background:rgba(255,255,255,.2);margin:20px 0}.contest-join-fee{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.88rem;margin-bottom:20px}.contest-join-fee strong{font-size:1.1rem}.contest-register-btn{background:#fff;color:#0d4b73;font-weight:750;width:100%;border-radius:12px;padding:13px;display:flex;justify-content:center;align-items:center;gap:10px}.contest-register-btn:hover{background:#e5f5f6;color:#083c62}.contest-join-note{display:block;text-align:center;color:#c6e1ec;margin-top:15px;font-size:.75rem}@media(max-width:767.98px){.contest-meta-grid{grid-template-columns:1fr}.contest-gallery{grid-template-columns:1fr}.contest-gallery-item{max-height:440px}.contest-cover{border-radius:15px}.contest-join-panel{position:static}.contest-pricing-table th,.contest-pricing-table td{font-size:.82rem;padding:12px!important}.contest-standard-fee strong{font-size:1.2rem}}
