/* ── Portal Header ── */
.cp-header{background:var(--forest);border-bottom:3px solid var(--gold);position:sticky;top:0;z-index:300;box-shadow:0 2px 12px rgba(0,0,0,.2)}
.cp-header-inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;padding:0 16px;height:62px;gap:10px}
.cp-logo-link{text-decoration:none!important;flex-shrink:1;min-width:0;display:flex;align-items:center;color:#fff!important}
.cp-logo-full{font-size:.88rem;font-weight:900;color:#fff!important;-webkit-text-fill-color:#fff!important;letter-spacing:-.02em;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.cp-nav{display:flex;align-items:center;gap:2px;flex:1;overflow:hidden;min-width:0}
.cp-nav-link{padding:7px 10px;border-radius:7px;font-size:.76rem;font-weight:700;color:rgba(255,255,255,.75);text-decoration:none;white-space:nowrap;transition:all .15s;flex-shrink:0}
.cp-nav-link:hover{background:rgba(255,255,255,.12);color:#fff}
.cp-nav-link.active{background:rgba(200,150,26,.25);color:var(--gold)}
.cp-user{display:flex;align-items:center;gap:8px;flex-shrink:0}
.cp-avatar{width:34px;height:34px;border-radius:50%;background:var(--gold);color:#0d2418;font-size:.85rem;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cp-user-name{font-size:.78rem;font-weight:700;color:rgba(255,255,255,.85)}
.cp-logout{padding:5px 12px;border:1.5px solid rgba(255,255,255,.3);border-radius:6px;color:rgba(255,255,255,.8);text-decoration:none;font-size:.72rem;font-weight:700;transition:all .15s}
.cp-logout:hover{background:rgba(255,255,255,.1);color:#fff}
.cp-hamburger{display:none;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;cursor:pointer;padding:7px;line-height:0;transition:background .15s;align-items:center;justify-content:center}
@media(max-width:768px){.cp-header-inner{height:56px;padding:0 12px}.cp-logo-full{font-size:.72rem!important;max-width:120px!important;color:#fff!important;-webkit-text-fill-color:#fff!important}}

/* ── Portal Header ── */
/* =====================================================
   CIC Admission Portal — GOV.UK Inspired Design
   ===================================================== */
:root {
    --forest:#1a3d2b; --gold:#c8961a; --midnight:#0d2418;
    --white:#fff; --off:#f8f8f8;
    --gray-100:#f3f4f6; --gray-200:#e5e7eb; --gray-400:#9ca3af;
    --gray-500:#6b7280; --gray-700:#374151; --gray-800:#1f2937; --gray-900:#111827;
    --error:#d4351c; --success:#00703c;
}
*,*::before,*::after{box-sizing:border-box}
body.cicp-body{margin:0;padding:0;background:#f8f8f8;font-family:Arial,sans-serif}
.cp-portal{min-height:100vh;background:#f8f8f8}

/* HEADER */


.cp-avatar{width:36px;height:36px;border-radius:50%;background:var(--gold);color:var(--midnight);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.8rem;flex-shrink:0}
.cp-user-name{font-size:.85rem;color:rgba(255,255,255,.85)}
.cp-logout{font-size:.82rem;font-weight:700;color:rgba(255,255,255,.75);text-decoration:none;padding:6px 14px;border:1.5px solid rgba(255,255,255,.3);border-radius:6px;transition:all .15s;white-space:nowrap}
.cp-logout:hover{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.6)}

/* BODY */
.cp-body{max-width:1200px;margin:0 auto;padding:32px 20px 80px}

/* CARDS */
.cp-card{background:#fff;border-radius:10px;padding:24px;margin-bottom:20px;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.cp-card h3{margin:0 0 16px;font-size:1rem;color:var(--forest)}

/* ALERTS */
.cp-alert{border-radius:8px;padding:14px 18px;margin-bottom:18px;font-size:.9rem;line-height:1.5}
.cp-alert-success{background:#ecfdf5;border:1.5px solid #86efac;color:#15803d}
.cp-alert-error{background:#fef2f2;border:1.5px solid #fca5a5;color:#991b1b}
.cp-alert-info{background:#eff6ff;border:1.5px solid #bfdbfe;color:#1d4ed8}
.cp-alert-warning{background:#fff8e6;border:1.5px solid #fde68a;color:#92400e}

/* BUTTONS */
.cp-btn{display:inline-flex;align-items:center;gap:6px;background:var(--forest);color:#fff;border:2px solid var(--forest);padding:10px 22px;border-radius:6px;font-size:.9rem;font-weight:700;text-decoration:none;cursor:pointer;font-family:inherit;transition:opacity .15s}
.cp-btn:hover{opacity:.88}
.cp-btn-gold{background:var(--gold);color:var(--midnight);border-color:var(--gold)}
.cp-btn-outline{background:transparent;color:var(--forest)}
.cp-btn-sm{padding:5px 12px;font-size:.8rem}
.cp-btn-full{width:100%;text-align:center;justify-content:center}

/* SECTION */
.cp-section{margin-bottom:32px}
.cp-section-title{font-size:1.3rem;font-weight:800;color:var(--forest);margin:0 0 20px}

/* HERO */
.cp-apply-hero{background:linear-gradient(135deg,var(--midnight) 0%,var(--forest) 60%,#2d5a3f 100%);border-radius:14px;padding:48px 40px;margin-bottom:32px;color:#fff}
.cp-apply-hero h1{font-size:2rem;margin:0 0 8px}
.cp-apply-hero p{color:rgba(255,255,255,.75);margin:0;font-size:1rem}

/* ===================================================
   GOV.UK STYLE APPLICATION FORM
   =================================================== */

.govuk-wrap{max-width:760px;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 16px rgba(0,0,0,.08);margin-bottom:32px}

/* Steps */
.govuk-steps{display:flex;gap:0;padding:0 24px;background:#fff;border-bottom:1px solid var(--gray-200);overflow-x:auto;scrollbar-width:none}
.govuk-steps::-webkit-scrollbar{display:none}
.govuk-step{display:flex;align-items:center;gap:8px;padding:12px 12px 12px 0;font-size:.78rem;font-weight:700;color:var(--gray-400);white-space:nowrap;border-bottom:3px solid transparent;cursor:pointer;transition:all .15s;user-select:none}
.govuk-step.active{color:var(--forest);border-bottom-color:var(--forest)}
.govuk-step.done{color:var(--success)}
.govuk-step-num{width:22px;height:22px;border-radius:50%;background:var(--gray-200);color:var(--gray-500);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:800;flex-shrink:0}
.govuk-step.active .govuk-step-num{background:var(--forest);color:#fff}
.govuk-step.done .govuk-step-num{background:var(--success);color:#fff}

/* Progress */
.govuk-progress{background:var(--forest);padding:14px 24px}
.govuk-progress-label{color:rgba(255,255,255,.65);font-size:.8rem}
.govuk-progress-val{color:var(--gold);font-weight:800;font-size:.88rem;float:right}
.govuk-progress-track{height:4px;background:rgba(255,255,255,.2);border-radius:2px;margin-top:8px;overflow:hidden;clear:both}
.govuk-progress-fill{height:100%;background:var(--gold);border-radius:2px;transition:width .4s ease}

/* Section panel */
.govuk-section{border-top:4px solid var(--forest);padding:28px 32px 12px;display:none}
.govuk-section.active{display:block}
.govuk-section-label{font-size:.78rem;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px}
.govuk-section-heading{font-size:1.4rem;font-weight:800;color:var(--gray-900);margin:0 0 24px;padding-bottom:16px;border-bottom:2px solid var(--gray-100)}

/* Form group */
.govuk-form-group{margin-bottom:20px}
.govuk-label{display:block;font-weight:700;font-size:.95rem;color:var(--gray-800);margin-bottom:3px}
.govuk-hint{display:block;font-size:.84rem;color:var(--gray-500);margin-bottom:6px}
.govuk-req{color:var(--error)}

/* Inputs */
.govuk-input,.govuk-textarea,.govuk-select{display:block;width:100%;padding:10px 12px;border:2px solid #767676;border-radius:4px;font-size:1rem;font-family:inherit;color:var(--gray-900);background:#fff;outline:none;transition:border-color .15s}
.govuk-input:focus,.govuk-textarea:focus,.govuk-select:focus{border-color:var(--forest);box-shadow:0 0 0 3px rgba(26,61,43,.12)}
.govuk-textarea{resize:vertical;min-height:100px}
.govuk-select{cursor:pointer}
.govuk-input-third{max-width:33%}
.govuk-input-half{max-width:50%}

/* GOV.UK Radio */
.govuk-radios{margin-top:6px}
.govuk-radio{display:flex;align-items:center;margin-bottom:6px;position:relative}
.govuk-radio input[type="radio"]{width:40px;height:40px;border:2px solid #767676;border-radius:50%;appearance:none;-webkit-appearance:none;cursor:pointer;flex-shrink:0;margin:0;background:#fff;transition:border-color .15s}
.govuk-radio input[type="radio"]:checked{border-color:var(--forest);border-width:13px}
.govuk-radio input[type="radio"]:focus{outline:3px solid #fd0;outline-offset:2px}
.govuk-radio label{padding:8px 0 8px 12px;font-size:.95rem;color:var(--gray-800);cursor:pointer;line-height:1.4;font-weight:400;flex:1}

/* GOV.UK Checkbox */
.govuk-checkboxes{margin-top:6px}
.govuk-checkbox{display:flex;align-items:flex-start;margin-bottom:6px}
.govuk-checkbox input[type="checkbox"]{width:40px;height:40px;border:2px solid #767676;border-radius:2px;appearance:none;-webkit-appearance:none;cursor:pointer;flex-shrink:0;margin:0;background:#fff;transition:all .15s}
.govuk-checkbox input[type="checkbox"]:checked{background:var(--forest);border-color:var(--forest);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3E%3C/svg%3E");background-size:28px;background-position:center;background-repeat:no-repeat}
.govuk-checkbox label{padding:8px 0 8px 12px;font-size:.95rem;color:var(--gray-800);cursor:pointer;line-height:1.5}

/* Two col */
.govuk-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.govuk-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
@media(max-width:600px){.govuk-grid-2,.govuk-grid-3{grid-template-columns:1fr}}

/* File upload */
.govuk-file-wrap{border:2px dashed var(--gray-200);border-radius:8px;padding:14px 16px;background:var(--off);cursor:pointer;transition:border-color .15s;text-align:center}
.govuk-file-wrap:hover{border-color:var(--forest)}
.govuk-file-wrap input[type="file"]{display:none}
.govuk-file-btn{display:inline-block;background:#fff;border:2px solid var(--forest);color:var(--forest);font-weight:700;font-size:.87rem;padding:8px 18px;border-radius:6px;cursor:pointer;font-family:inherit;margin-bottom:6px}
.govuk-file-hint{font-size:.8rem;color:var(--gray-500)}
.govuk-file-name{font-size:.85rem;color:var(--forest);font-weight:600;margin-top:6px}

/* Error */
.govuk-error-msg{display:block;font-size:.87rem;font-weight:700;color:var(--error);margin-bottom:6px;padding-left:12px;border-left:4px solid var(--error)}
.govuk-error-summary{background:#fef2f2;border:2px solid var(--error);border-radius:8px;padding:16px 20px;margin-bottom:22px}
.govuk-error-summary h3{color:var(--error);margin:0 0 8px;font-size:1rem}

/* Form actions */
.govuk-form-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:20px 32px;border-top:1px solid var(--gray-100);background:var(--off)}
.govuk-btn-next,.govuk-btn-submit{background:var(--forest);color:#fff;border:2px solid var(--forest);border-radius:6px;padding:12px 28px;font-size:1rem;font-weight:700;cursor:pointer;font-family:inherit;display:flex;align-items:center;gap:8px;transition:opacity .15s}
.govuk-btn-next:hover,.govuk-btn-submit:hover{opacity:.88}
.govuk-btn-next:disabled,.govuk-btn-submit:disabled{opacity:.45;cursor:not-allowed}
.govuk-btn-submit{background:var(--gold);color:var(--midnight);border-color:var(--gold);font-size:1.05rem}
.govuk-btn-back{background:#fff;color:var(--gray-700);border:2px solid var(--gray-200);border-radius:6px;padding:12px 22px;font-size:1rem;font-weight:600;cursor:pointer;font-family:inherit;transition:border-color .15s}
.govuk-btn-back:hover{border-color:var(--gray-400)}

/* Doc rows */
.cp-doc-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--gray-100);gap:12px}
.cp-doc-row:last-child{border-bottom:none}
.cp-doc-link{font-size:.82rem;font-weight:700;color:var(--forest);text-decoration:none;padding:5px 12px;border:1px solid var(--forest);border-radius:6px;white-space:nowrap}
.cp-doc-link:hover{background:var(--forest);color:#fff}

/* Stage card */
.cp-stage-card{border-radius:12px;padding:28px;text-align:center;color:#fff;margin-bottom:20px}

/* Messages */
.cp-msg-me,.cp-msg-them{padding:13px 16px;border-radius:12px;max-width:75%;font-size:.9rem;line-height:1.7;word-break:break-word}
.cp-msg-me{background:var(--forest);color:#fff;border-radius:16px 16px 4px 16px}
.cp-msg-them{background:#fff;color:var(--gray-800);border:1px solid var(--gray-200);border-radius:16px 16px 16px 4px}

/* WhatsApp float */
.cp-wa{position:fixed;bottom:22px;right:22px;z-index:9999;width:52px;height:52px;border-radius:50%;background:#25d366;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 14px rgba(37,211,102,.4);text-decoration:none;transition:transform .2s}
.cp-wa:hover{transform:scale(1.08)}

/* Responsive */
@media(max-width:768px){
    .cp-header-inner{padding:0 12px;height:56px}
    .cp-nav-link{padding:5px 9px;font-size:.78rem}
    .cp-body{padding:16px 12px 60px}
    .govuk-section{padding:18px 16px 8px}
    .govuk-form-actions{padding:14px 16px}
    .govuk-steps{padding:0 12px}
    .govuk-section-heading{font-size:1.15rem}
    .cp-apply-hero{padding:32px 20px}
    .cp-apply-hero h1{font-size:1.5rem}
}


/* ============================================================
   AUTH PAGES — Login / Register / Reset
   ============================================================ */
body.cicp-body.cicp-auth-body {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #0d2418 0%, #1a3d2b 50%, #0d2418 100%);
    padding: 20px;
}
.cp-auth-wrap {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 20px;
    background: linear-gradient(135deg, #0d2418 0%, #1a3d2b 50%, #0d2418 100%);
}
.cp-auth-card {
    background: #fff;
    border-radius: 20px;
    padding: 44px 48px;
    width: 100%;
    max-width: 460px;
    box-shadow: 0 24px 64px rgba(0,0,0,.35);
}
.cp-auth-logo {
    text-align: center;
    margin-bottom: 24px;
}
.cp-auth-logo img {
    height: 72px;
    width: auto;
}
.cp-auth-title {
    text-align: center;
    font-size: 1.7rem;
    font-weight: 900;
    color: #1a3d2b;
    margin: 0 0 6px;
    font-family: Georgia, serif;
}
.cp-auth-sub {
    text-align: center;
    color: #6b7280;
    font-size: .9rem;
    margin: 0 0 28px;
}
.cp-auth-form {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.cp-auth-links {
    text-align: center;
    margin-top: 20px;
    font-size: .88rem;
    color: #6b7280;
}
.cp-auth-links a {
    color: #1a3d2b;
    font-weight: 700;
}
.cp-field {
    margin-bottom: 16px;
}
.cp-field label {
    display: block;
    font-size: .84rem;
    font-weight: 700;
    color: #374151;
    margin-bottom: 6px;
}
.cp-field input,
.cp-field select,
.cp-field textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1.5px solid #e5e7eb;
    border-radius: 10px;
    font-size: .95rem;
    font-family: inherit;
    color: #111;
    background: #fff;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
    box-sizing: border-box;
}
.cp-field input:focus,
.cp-field select:focus,
.cp-field textarea:focus {
    border-color: #1a3d2b;
    box-shadow: 0 0 0 3px rgba(26,61,43,.1);
}
.cp-btn-primary {
    display: block;
    width: 100%;
    padding: 14px;
    background: #1a3d2b;
    color: #c8961a;
    border: none;
    border-radius: 10px;
    font-size: 1rem;
    font-weight: 900;
    cursor: pointer;
    font-family: inherit;
    letter-spacing: .02em;
    transition: opacity .15s, transform .1s;
    text-align: center;
    text-decoration: none;
}
.cp-btn-primary:hover {
    opacity: .9;
    transform: translateY(-1px);
}

/* ============================================================
   OTP SCREEN
   ============================================================ */
.cp-otp-inputs {
    display: flex;
    gap: 10px;
    justify-content: center;
    margin: 24px 0;
}
.cp-otp-inputs input {
    width: 52px;
    height: 60px;
    border: 2px solid #e5e7eb;
    border-radius: 10px;
    text-align: center;
    font-size: 1.4rem;
    font-weight: 800;
    color: #1a3d2b;
    outline: none;
    transition: border-color .15s;
}
.cp-otp-inputs input:focus {
    border-color: #1a3d2b;
    box-shadow: 0 0 0 3px rgba(26,61,43,.1);
}

/* ============================================================
   STUDENT PORTAL HOME — Status + Workflow
   ============================================================ */
.cp-status-card {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,.08);
    margin-bottom: 28px;
}
.cp-status-header {
    padding: 20px 24px;
    color: #fff;
}
.cp-status-label {
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    opacity: .8;
    margin-bottom: 4px;
}
.cp-status-value {
    font-size: 1.4rem;
    font-weight: 900;
    font-family: Georgia, serif;
}
.cp-status-body {
    padding: 16px 24px 20px;
}
.cp-ref {
    font-size: .88rem;
    color: #6b7280;
    margin-bottom: 14px;
}
.cp-prog-wrap {
    display: flex;
    align-items: center;
    gap: 12px;
}
.cp-prog-bar {
    flex: 1;
    height: 8px;
    background: #f3f4f6;
    border-radius: 9999px;
    overflow: hidden;
}
.cp-prog-fill {
    height: 100%;
    border-radius: 9999px;
    transition: width .6s ease;
}
.cp-prog-label {
    font-size: .8rem;
    font-weight: 700;
    color: #6b7280;
    white-space: nowrap;
}

/* Workflow timeline */
.cp-workflow {
    background: #fff;
    border-radius: 16px;
    padding: 28px 24px;
    margin-bottom: 28px;
    box-shadow: 0 2px 12px rgba(0,0,0,.06);
}
.cp-workflow h3 {
    font-size: 1rem;
    font-weight: 800;
    color: #1a3d2b;
    margin: 0 0 22px;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-size: .82rem;
}
.cp-workflow-steps {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    position: relative;
}
.cp-wf-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    min-width: 80px;
    position: relative;
    text-align: center;
}
.cp-wf-step:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 16px;
    left: 50%;
    width: 100%;
    height: 2px;
    background: #e5e7eb;
    z-index: 0;
}
.cp-wf-step.done:not(:last-child)::after,
.cp-wf-step.current:not(:last-child)::after {
    background: #1a3d2b;
}
.cp-wf-dot {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #e5e7eb;
    border: 3px solid #e5e7eb;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .75rem;
    font-weight: 800;
    color: #9ca3af;
    z-index: 1;
    position: relative;
    transition: all .3s;
}
.cp-wf-step.done .cp-wf-dot {
    background: #1a3d2b;
    border-color: #1a3d2b;
    color: #c8961a;
}
.cp-wf-step.current .cp-wf-dot {
    background: #c8961a;
    border-color: #c8961a;
    color: #0d2418;
    box-shadow: 0 0 0 4px rgba(200,150,26,.2);
    animation: wfPulse 2s ease-in-out infinite;
}
@keyframes wfPulse {
    0%,100% { box-shadow: 0 0 0 4px rgba(200,150,26,.2); }
    50%      { box-shadow: 0 0 0 8px rgba(200,150,26,.1); }
}
.cp-wf-label {
    font-size: .68rem;
    font-weight: 700;
    color: #9ca3af;
    margin-top: 8px;
    line-height: 1.3;
    max-width: 72px;
}
.cp-wf-step.done .cp-wf-label { color: #1a3d2b; }
.cp-wf-step.current .cp-wf-label { color: #c8961a; font-weight: 900; }

/* Quick links grid */
.cp-quick-links {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 14px;
    margin-bottom: 28px;
}
.cp-quick-link {
    background: #fff;
    border-radius: 12px;
    padding: 18px 14px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
    transition: transform .15s, box-shadow .15s;
    border: 1.5px solid #f3f4f6;
}
.cp-quick-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0,0,0,.1);
}
.cp-ql-icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
}
.cp-ql-label {
    font-size: .78rem;
    font-weight: 700;
    color: #374151;
    text-align: center;
}

/* Welcome */
.cp-welcome { margin-bottom: 24px; }
.cp-welcome-title { font-size: 1.8rem; font-weight: 900; color: #1a3d2b; margin: 0 0 4px; }
.cp-welcome-sub { color: #6b7280; font-size: .95rem; margin: 0; }

@media(max-width:600px) {
    .cp-auth-card { padding: 28px 22px; }
    .cp-otp-inputs input { width: 42px; height: 50px; font-size: 1.2rem; }
    .cp-quick-links { grid-template-columns: repeat(3,1fr); }
    .cp-wf-label { font-size: .62rem; max-width: 60px; }
}
