:root{--ink:#10233e;--muted:#627087;--brand:#0f67ea;--soft:#f4f7fb;--line:#dce4ef;--ok:#15803d;--warn:#b45309}*{box-sizing:border-box}.opp-header{height:78px;padding:0 max(24px,5vw);display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:5}.opp-logo img{width:170px;max-height:52px}.opp-header nav{display:flex;align-items:center;gap:25px}.opp-header nav a,.opp-header summary{color:var(--ink);font-weight:650;cursor:pointer}.opp-header details{position:relative}.opp-header details div{position:absolute;right:0;top:34px;width:260px;padding:10px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 45px #10233e22}.opp-header details div a{display:block;padding:10px;border-radius:7px}.opp-header details div a:hover{background:var(--soft)}.opp-hero{padding:70px max(24px,8vw);background:linear-gradient(125deg,#071c39,#0c5fcf);color:#fff}.opp-hero div{max-width:850px}.opp-hero span{text-transform:uppercase;letter-spacing:.15em;font-weight:700}.opp-hero h1{font-size:clamp(2.2rem,5vw,4.3rem);color:#fff;margin:10px 0}.opp-hero p{font-size:1.15rem;max-width:690px}.opp-shell{max-width:1200px;margin:auto;padding:50px 24px}.opp-filters{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:14px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 30px #10233e0b}.opp-filters label,.opp-form-grid label,.opp-apply>form>label{display:flex;flex-direction:column;gap:7px;color:var(--ink);font-weight:650}.opp-filters input,.opp-filters select,.opp-form-grid input,.opp-form-grid select,.opp-apply textarea{border:1px solid #cbd5e1;border-radius:8px;min-height:46px;padding:10px;background:#fff}.opp-filters button,.opp-apply button{border:0;border-radius:9px;background:var(--brand);color:#fff;padding:12px 22px;font-weight:700;align-self:end}.opp-state{text-align:center;padding:48px;color:var(--muted)}.opp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:28px}.opp-card{display:flex;flex-direction:column;padding:24px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 10px 35px #10233e0b}.opp-card h2{font-size:1.35rem;color:var(--ink);margin:12px 0}.opp-card p{color:var(--muted);flex:1}.opp-meta{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.opp-meta span,.opp-status{padding:5px 9px;border-radius:999px;background:var(--soft);font-size:.82rem;color:#334155}.opp-card a{display:block;text-align:center;background:var(--ink);color:#fff;border-radius:8px;padding:11px;margin-top:16px}.opp-deadline{color:var(--warn);font-weight:650}.opp-pages{display:flex;justify-content:center;gap:7px;margin:32px}.opp-pages button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 12px}.opp-pages button.active{background:var(--brand);color:#fff}.opp-back{display:inline-block;margin-bottom:24px;color:var(--brand);cursor:pointer}.opp-detail,.opp-apply{padding:clamp(22px,4vw,45px);border:1px solid var(--line);border-radius:18px;background:#fff}.opp-detail h1{color:var(--ink)}.opp-section{margin-top:30px}.opp-section h2{font-size:1.3rem;color:var(--ink)}.opp-apply{margin-top:25px}.opp-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}.wide{grid-column:1/-1;margin:15px 0}.check{flex-direction:row!important;align-items:flex-start}.check input{margin-top:5px}.opp-message{padding:12px 0}.opp-message.success{color:var(--ok);font-weight:700}.opp-footer{text-align:center;padding:35px;background:#071c39;color:#fff}.opp-footer a{color:#fff}@media(max-width:850px){.opp-header nav>a{display:none}.opp-filters{grid-template-columns:1fr}.opp-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.opp-grid,.opp-form-grid{grid-template-columns:1fr}.opp-header{padding:0 16px}.opp-logo img{width:140px}}
/* --- Enhancements: cards, skeletons, empty & error states --- */
.opp-card{transition:transform .2s ease,box-shadow .2s ease;position:relative}
.opp-card:hover{transform:translateY(-4px);box-shadow:0 18px 50px #10233e1f}
.opp-badge{position:absolute;top:16px;right:16px;background:#fef3c7;color:#92400e;font-size:.72rem;font-weight:800;padding:4px 10px;border-radius:999px}
.opp-status{align-self:flex-start;text-transform:capitalize;font-weight:700}
.opp-status-published{background:#dcfce7;color:#15803d}
.opp-card-actions{display:flex;gap:10px;margin-top:16px}
.opp-card-actions a{flex:1;display:block;text-align:center;border-radius:9px;padding:11px;font-weight:700;margin:0}
.opp-card-actions a.opp-view{background:var(--ink);color:#fff}
.opp-card-actions a.opp-apply-link{background:var(--brand);color:#fff}
.opp-card-actions a:hover{filter:brightness(1.08)}
.opp-skeleton{pointer-events:none}
.sk{display:block;border-radius:8px;background:linear-gradient(90deg,#eef2f7 25%,#e2e8f0 37%,#eef2f7 63%);background-size:400% 100%;animation:opp-shimmer 1.3s ease infinite}
.sk-tag{width:80px;height:22px;border-radius:999px;margin-bottom:14px}
.sk-title{width:75%;height:22px;margin-bottom:16px}
.sk-line{width:100%;height:12px;margin-bottom:9px}
.sk-line.short{width:55%}
.sk-btn{width:100%;height:42px;margin-top:18px;border-radius:9px}
@keyframes opp-shimmer{0%{background-position:100% 0}100%{background-position:0 0}}
.opp-empty{grid-column:1/-1;text-align:center;padding:56px 24px;background:#fff;border:1px dashed var(--line);border-radius:16px}
.opp-empty-icon{font-size:2.6rem;color:var(--brand);margin-bottom:12px}
.opp-empty h3{color:var(--ink);font-size:1.4rem;margin:0 0 8px}
.opp-empty p{color:var(--muted);max-width:520px;margin:0 auto 20px}
.opp-empty-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.opp-empty-actions a{padding:9px 16px;border-radius:999px;background:var(--soft);color:var(--ink);font-weight:650;border:1px solid var(--line)}
.opp-empty-actions a:hover{background:#fff;border-color:var(--brand);color:var(--brand)}
.opp-empty-actions button{border:0;border-radius:999px;background:var(--brand);color:#fff;padding:9px 18px;font-weight:700;cursor:pointer}
.opp-error .opp-empty-icon{color:var(--warn)}
