html {
  font-size: 15px;
}

@media (min-width: 768px) {
  html {
    font-size: 17px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
  background: #f6f6f2;
  color: #18382f;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

header .navbar { padding: 15px 0; background: #fbfbf8 !important; }
.navbar .container-fluid { max-width: 1220px; padding-left: 28px; padding-right: 28px; }
.navbar-brand { color: #14382e !important; font-weight: 800; letter-spacing: -.05em; font-size: 1.28rem; }
.navbar-nav .nav-link { color: #456157 !important; font-size: .87rem; font-weight: 600; margin-left: 20px; }
.navbar-nav .nav-link:hover { color: #bd5c3c !important; }
.container:has(.apply-hero), .container:has(.home-hero) { max-width: 1180px; }
.apply-hero { background: #173d32; color: #f7f4e9; padding: 62px 7.2% 46px; display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; min-height: 310px; position: relative; overflow: hidden; }
.home-hero:before { content: ""; position: absolute; inset: 0; z-index: 0; background-image: url('/Mubarek.et%20Digital%20Solutions%20Logo.png'); background-repeat: no-repeat; background-position: right 5% center; background-size: min(56vw, 760px) auto; opacity: .16; pointer-events: none; }
.apply-hero > *, .home-hero > * { position: relative; z-index: 1; }
.eyebrow,.home-eyebrow,.aside-label { font-size: .69rem; letter-spacing: .16em; font-weight: 800; }
.eyebrow { color: #c7d1a5; margin-bottom: 23px; }
.eyebrow-mark { display: inline-block; width: 8px; height: 8px; background: #d66a48; border-radius: 50%; margin-right: 8px; }
.apply-hero h1,.home-hero h1 { font-size: clamp(3rem, 6.3vw, 5.2rem); line-height: .98; letter-spacing: -.075em; font-weight: 750; margin: 0 0 17px; }
.apply-hero h1 em,.home-hero h1 em { color: #d7dca9; font-family: Georgia,serif; font-weight: 400; }
.apply-hero p { color: #d2ddd3; font-size: .98rem; max-width: 490px; line-height: 1.7; margin: 0; }
.apply-meta { display: flex; align-items: center; gap: 13px; margin-top: 31px; color: #c8d3c8; text-transform: uppercase; font-size: .61rem; letter-spacing: .08em; }
.apply-meta i { width: 25px; border-top: 1px solid #80958a; }
.hero-note { position: relative; z-index: 1; min-width: 190px; border-left: 1px solid #597366; padding: 5px 0 5px 24px; font-family: Georgia,serif; font-size: 1.18rem; line-height: 1.35; color: #f4f0dd; }
.hero-note small { display: block; margin-top: 22px; font: 700 .58rem ui-sans-serif,system-ui,sans-serif; letter-spacing: .12em; color: #c2cebb; }
.application-shell { background: #fff; display: grid; grid-template-columns: minmax(0,1fr) 265px; gap: 54px; padding: 52px 7.2% 62px; }
.application-form { min-width: 0; }
.form-section { padding-bottom: 37px; margin-bottom: 34px; border-bottom: 1px solid #e7e9e1; }
.section-heading { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 23px; }
.section-number { color: #bd5c3c; font-size: .72rem; font-weight: 800; letter-spacing: .08em; padding-top: 6px; }
.section-heading h2 { margin: 0 0 5px; font-size: 1.26rem; letter-spacing: -.035em; font-weight: 750; }
.section-heading p { color: #78837b; font-size: .8rem; margin: 0; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px 16px; padding-left: 32px; }
.field { min-width: 0; }
.field label { display: block; color: #40564b; font-size: .73rem; font-weight: 700; margin-bottom: 7px; }
.field input,.field select { appearance: auto; width: 100%; border: 1px solid #dce2db; border-radius: 2px; background: #fff; color: #18382f; min-height: 44px; padding: 10px 12px; font-size: .82rem; outline: none; }
.field input:focus,.field select:focus { border-color: #547c65; box-shadow: 0 0 0 3px rgba(84,124,101,.12); }
.field input::placeholder { color: #a1aaa2; }
.apply-hero .eyebrow { font-size: .76rem; }
.apply-hero p { font-size: 1.08rem; }
.apply-meta { font-size: .7rem; }
.application-form .section-heading h2 { font-size: 1.42rem; }
.application-form .section-heading p { font-size: .94rem; line-height: 1.5; }
.application-form .field label { font-size: .92rem; }
.application-form .field input,
.application-form .field select { min-height: 50px; font-size: 1rem; }
.application-form .field input[type="file"] { font-size: .86rem; }
.application-form .field > span { font-size: .82rem; }
.application-form .field small { font-size: .8rem; line-height: 1.55; }
.application-form .fayda-copy p { font-size: .88rem; }
.application-form .fayda-copy a { font-size: .82rem; }
.application-form .fayda-copy strong { font-size: .94rem; }
.application-form .secure-label { font-size: .65rem; }
.application-form .consent-row label { font-size: .9rem; line-height: 1.5; }
.application-form .consent-row span { font-size: .8rem; }
.application-form .submit-row > span { font-size: .8rem; max-width: 290px; }
.application-form .submit-row button { font-size: .9rem; }
.application-aside .aside-label { font-size: .66rem; }
.application-aside .aside-card li { font-size: .82rem; }
.application-aside .aside-help > span { font-size: .86rem; }
.application-aside .aside-help p,
.application-aside .aside-help a { font-size: .8rem; }
.field span, .consent-row span { display: block; color: #b44936; font-size: .7rem; margin-top: 5px; }
.field small { display: block; color: #879189; font-size: .66rem; line-height: 1.45; margin-top: 7px; }
.field-wide { grid-column: 1 / -1; }
.fayda-section { padding-bottom: 28px; margin-bottom: 22px; }
.fayda-card { margin-left: 32px; background: #f3f5ed; border: 1px solid #e5e9dd; display: flex; align-items: flex-start; gap: 14px; padding: 16px; position: relative; }
.fayda-icon { flex: 0 0 35px; height: 35px; display: grid; place-items: center; background: #173d32; color: white; font-family: Georgia,serif; font-weight: 700; font-size: 1.3rem; border-radius: 50%; }
.fayda-copy strong { display: block; font-size: .83rem; margin: 1px 0 5px; }
.optional-tag { display: inline-block; color: #5d725f; border: 1px solid #d1dbcf; padding: 3px 5px; margin-left: 6px; vertical-align: 1px; font: 700 .52rem ui-sans-serif,system-ui,sans-serif; letter-spacing: .08em; }
.fayda-copy p { font-size: .74rem; color: #67756b; line-height: 1.55; margin: 0 0 7px; max-width: 480px; }
.fayda-copy a { font-size: .7rem; font-weight: 700; text-decoration: none; color: #37644e; }
.secure-label { color: #5c745d; font-size: .55rem; letter-spacing: .1em; font-weight: 800; white-space: nowrap; }
.fayda-input { padding: 18px 0 0 32px; max-width: 420px; }
.consent-row { position: relative; display: flex; align-items: flex-start; gap: 10px; margin: 0 0 23px 32px; }
.consent-row input { margin-top: 3px; accent-color: #173d32; }
.consent-row label { font-size: .74rem; color: #5d6c62; }
.consent-row span { position: absolute; top: 22px; left: 23px; }
.submit-row { padding-left: 32px; display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.submit-row > span { font-size: .67rem; color: #818b83; max-width: 240px; line-height: 1.4; }
.submit-row button,.home-cta { border: 0; background: #c45f40; color: white; padding: 14px 19px; font-size: .77rem; font-weight: 750; text-decoration: none; transition: background .2s; }
.submit-row button:hover,.home-cta:hover { background: #a84e34; color: #fff; }
.submit-row button b,.home-cta b { margin-left: 16px; font-size: 1rem; }
.application-submit-button:disabled { cursor: wait; opacity: .78; }
.application-submit-progress { display: flex; align-items: center; gap: 12px; margin: 18px 0 0 32px; padding: 14px 16px; border: 1px solid #d8e6da; border-radius: 10px; background: #f4f8f3; color: #34533d; font-size: .92rem; line-height: 1.5; }
.application-submit-progress[hidden] { display: none; }
.application-submit-spinner { width: 20px; height: 20px; flex: 0 0 20px; border: 3px solid #c8d8cb; border-top-color: #39764a; border-radius: 50%; animation: application-submit-spin .8s linear infinite; }
@keyframes application-submit-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .application-submit-spinner { animation-duration: 2s; } }
.validation-summary:not(:empty) { color: #a3382b; background: #fff0ec; padding: 12px 16px; margin: 0 0 22px; font-size: .8rem; max-width: 100%; overflow-wrap: anywhere; }
.application-aside { padding-top: 1px; }
.aside-card { background: #f4f5ef; padding: 24px 21px 21px; }
.aside-label { color: #bd5c3c; font-size: .57rem; }
.aside-card h3 { font-family: Georgia,serif; font-weight: 400; font-size: 1.55rem; line-height: 1.17; margin: 15px 0 21px; letter-spacing: -.04em; }
.aside-card ul { list-style: none; padding: 0; margin: 0; }
.aside-card li { display: flex; gap: 12px; padding: 12px 0; border-top: 1px solid #e0e4db; font-size: .72rem; color: #5c6b60; line-height: 1.45; }
.aside-card li b { color: #bd5c3c; font-size: .61rem; }
.aside-help { border-top: 1px solid #dfe4db; margin-top: 15px; padding-top: 17px; }
.aside-help > span { font-weight: 750; font-size: .75rem; }
.aside-help p { font-size: .7rem; color: #77837a; line-height: 1.5; margin: 6px 0 9px; }
.aside-help a { color: #34604a; font-weight: 750; font-size: .69rem; text-decoration: none; }
.aside-stamp { color: #60766a; border: 1px solid #d9e0d7; padding: 17px 20px; margin-top: 16px; font-size: .65rem; letter-spacing: .12em; line-height: 1.55; }
.aside-stamp strong { color: #1c4536; font-size: .82rem; }
.aside-stamp span { display: block; margin-top: 8px; color: #9a6048; font-size: .53rem; font-weight: 800; }
.alert-info { margin-top: 18px; border: 0; background: #eaf1e9; color: #315c43; font-size: .82rem; }
.submitted-page { background: linear-gradient(135deg,#f3f5ee 0%,#faf9f5 55%,#eef2e9 100%); padding: clamp(30px,6vw,74px) 18px; min-height: 620px; }
.success-card { max-width: 760px; margin: 0 auto; padding: clamp(28px,6vw,60px); background: #fff; border: 1px solid #e7ebe3; box-shadow: 0 18px 55px rgba(31,59,43,.08); text-align: center; }
.submitted-mark { width: 58px; height: 58px; border-radius: 50%; background: #e7f1e6; border: 1px solid #d5e5d4; color: #376c4b; display: grid; place-items: center; margin: 0 auto 22px; font-size: 1.65rem; font-weight: 700; }
.success-card .eyebrow { color: #bd5c3c; margin-bottom: 10px; }
.success-card h1 { font-size: clamp(2.3rem,5vw,3.7rem); letter-spacing: -.07em; line-height: 1.05; margin: 12px 0; }
.success-card h1 em { color: #64836e; font: 400 1em Georgia,serif; }
.success-intro { max-width: 500px; margin: 0 auto; color: #68776d; font-size: .98rem; line-height: 1.65; }
.reference-card { max-width: 570px; margin: 30px auto 20px; padding: 22px; border: 1px solid #dfe6dc; background: #f6f8f3; display: grid; gap: 8px; text-align: center; }
.reference-card > span { color: #bd5c3c; font-size: .68rem; letter-spacing: .13em; font-weight: 800; }
.reference-card > strong { color: #173d32; font-size: 1.9rem; letter-spacing: .08em; }
.success-details { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-top: 12px; text-align: left; border-top: 1px solid #e1e7de; }
.success-details > div { display: flex; flex-direction: column; gap: 5px; padding: 13px 10px 8px; min-width: 0; }
.success-details small { color: #818c83; font-size: .63rem; font-weight: 800; letter-spacing: .09em; }
.success-details b { color: #314b3c; font-size: .83rem; line-height: 1.45; overflow-wrap: anywhere; }
.success-next { max-width: 570px; margin: 0 auto; padding: 17px 20px; background: #f7f5ed; border-left: 3px solid #c45f40; text-align: left; }
.success-next span { color: #8c5b42; font-size: .66rem; font-weight: 800; letter-spacing: .11em; }
.success-next p { margin: 6px 0 0; color: #5e6d62; font-size: .84rem; line-height: 1.6; }
.submitted-date { margin: 18px 0 0; font-size: .78rem; color: #7a867e; }
.success-card .home-cta { display: inline-block; margin-top: 22px; }
.admissions-page { background: #fff; padding: 44px 6% 60px; min-height: 480px; }
.admissions-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 30px; }
.admissions-top .eyebrow { color: #bd5c3c; }
.admissions-top h1,.admissions-login h1 { font-size: clamp(2.5rem,5vw,4rem); letter-spacing: -.07em; margin: 8px 0; }
.admissions-top h1 em,.admissions-login h1 em { color: #64836e; font: 400 1em Georgia,serif; }
.admissions-top p,.admissions-login > p { color: #77837a; font-size: .85rem; }
.logout-button,.back-link { color: #466452; background: transparent; border: 1px solid #dbe3da; padding: 9px 13px; font-size: .72rem; font-weight: 700; text-decoration: none; }
.application-table-wrap { overflow-x: auto; border: 1px solid #e5e9e2; }
.application-table { width: 100%; border-collapse: collapse; min-width: 760px; }
.application-table th { color: #718076; background: #f5f6f1; text-align: left; font-size: .61rem; text-transform: uppercase; letter-spacing: .1em; padding: 13px 14px; }
.application-table td { border-top: 1px solid #e9ece7; color: #314a3c; padding: 14px; font-size: .75rem; vertical-align: middle; }
.application-table td small { display: block; color: #879188; font-size: .64rem; margin-top: 4px; }
.application-table td a,.back-link { color: #37644e; font-weight: 750; text-decoration: none; }
.status-pill { display: inline-block; border-radius: 30px; padding: 5px 8px; font-size: .61rem; font-weight: 750; text-transform: uppercase; letter-spacing: .04em; background: #eff0e9; color: #6c756e; }
.status-submitted { background: #fff2de; color: #97632d; }
.status-approved { background: #e7f2e7; color: #347049; }
.status-rejected { background: #fae9e5; color: #9c493c; }
.empty-table { text-align: center; color: #78847b !important; padding: 42px !important; }
.admissions-login { background: #fff; max-width: 560px; margin: 0 auto; padding: 54px 8%; min-height: 400px; }
.admissions-login .field { margin: 22px 0; }
.admissions-login .home-cta { cursor: pointer; }
.review-page { padding-top: 32px; }
.review-page > .back-link { display: inline-block; margin-bottom: 28px; }
.review-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.review-card { border: 1px solid #e4e9e2; padding: 20px; }
.review-card h2 { font-size: 1rem; letter-spacing: -.03em; margin-bottom: 17px; }
.review-card dl { display: grid; grid-template-columns: 130px minmax(0,1fr); gap: 11px 12px; margin: 0; }
.review-card dt { color: #7b877d; font-size: .7rem; font-weight: 500; }
.review-card dd { color: #344d3e; font-size: .75rem; margin: 0; overflow-wrap: anywhere; }
.decision-form { max-width: 640px; margin-top: 25px; }
.decision-form textarea { width: 100%; resize: vertical; border: 1px solid #dce2db; padding: 12px; font-size: .8rem; }
.decision-buttons { display: flex; gap: 10px; margin-top: 13px; }
.decision-buttons button { border: 0; padding: 12px 16px; color: white; font-size: .73rem; font-weight: 750; }
.decision-approve { background: #376c4b; }
.decision-reject { background: #a64d3f; }
.decision-form > p { color: #818b83; font-size: .67rem; margin-top: 10px; }
.upload-grid .field input[type="file"] { padding: 8px; font-size: .72rem; }
.review-documents { margin-top: 18px; }
.document-links { display: flex; flex-direction: column; gap: 9px; }
.document-links a { display: flex; justify-content: space-between; gap: 12px; padding: 11px 12px; border: 1px solid #e4e9e2; color: #365c46; text-decoration: none; font-size: .75rem; overflow-wrap: anywhere; }
.document-links a span { flex: 0 0 auto; font-weight: 750; }
.document-links > span { color: #829087; font-size: .75rem; }
.applicant-photo { display: flex; align-items: flex-end; gap: 12px; margin-top: 16px; color: #77837a; font-size: .68rem; }
.applicant-photo img { width: 110px; height: 130px; object-fit: cover; border: 1px solid #e0e6dd; background: #f5f6f1; }
.privacy-page { max-width: 850px; margin: 0 auto; background: #fff; padding: 56px clamp(24px,7vw,84px) 70px; }
.privacy-page .eyebrow { color: #bd5c3c; }
.privacy-page h1 { font-size: clamp(2.8rem,6vw,4.7rem); letter-spacing: -.075em; line-height: 1; margin: 13px 0 20px; }
.privacy-page h1 em { color: #64836e; font: 400 1em Georgia,serif; }
.privacy-intro { color: #64746a; font-size: 1rem; line-height: 1.7; max-width: 610px; margin-bottom: 37px; }
.privacy-page section { border-top: 1px solid #e5e9e2; padding: 23px 0 17px; }
.privacy-page section h2 { font-size: 1.05rem; font-weight: 750; letter-spacing: -.025em; margin: 0 0 11px; }
.privacy-page section p { color: #627167; font-size: .84rem; line-height: 1.75; max-width: 680px; }
.privacy-updated { border-left: 3px solid #c45f40; color: #7a867d; font-size: .72rem; line-height: 1.6; margin-top: 18px; padding: 3px 0 3px 13px; }
.home-hero { background: #173d32; color: #f7f4e9; padding: 76px 8% 48px; position: relative; overflow: hidden; min-height: 495px; }
.home-eyebrow { color: #c7d1a5; margin-bottom: 26px; }
.home-eyebrow span { color: #d66a48; padding: 0 7px; }
.home-hero h1 { position: relative; z-index: 1; font-size: clamp(3.5rem,7.6vw,6.3rem); }
.home-hero h1 em { color: #d7dca9; }
.home-hero p { color: #d1ddd3; max-width: 435px; line-height: 1.7; font-size: .94rem; margin: 22px 0 26px; }
.home-cta { display: inline-block; position: relative; z-index: 1; padding: 15px 19px; }
.home-detail { display: flex; gap: 30px; position: absolute; bottom: 26px; left: 8%; color: #c4d0c5; font-size: .57rem; letter-spacing: .1em; }
.home-strip { display: flex; justify-content: space-around; gap: 15px; background: #f4f4ed; padding: 22px 15px; color: #446255; font-size: .61rem; letter-spacing: .13em; font-weight: 800; }
footer.footer { position: relative; height: auto; line-height: 1.5; padding: 19px 0; background: #f6f6f2; font-size: .75rem; }

@media (max-width: 900px) {
  .application-shell { grid-template-columns: minmax(0,1fr); gap: 30px; padding-left: 5%; padding-right: 5%; }
  .application-aside { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
  .aside-stamp { margin-top: 0; }
  .apply-hero { padding-left: 5%; padding-right: 5%; }
}
@media (max-width: 700px) {
  .application-shell { grid-template-columns: 1fr; padding: 36px 6%; gap: 30px; }
  .application-aside { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
  .aside-stamp { margin-top: 0; }
  .apply-hero { padding: 43px 6% 36px; min-height: 0; }
  .home-hero:before { background-size: 90vw auto; background-position: right -30% center; opacity: .11; }
  .hero-note { display: none; }
  .apply-meta { flex-wrap: wrap; font-size: .54rem; gap: 8px; }
  .apply-meta i { width: 13px; }
  .form-grid { padding-left: 0; }
  .fayda-card,.fayda-input,.consent-row,.submit-row { margin-left: 0; padding-left: 0; }
  .application-submit-progress { margin-left: 0; }
  .submit-row { align-items: flex-start; flex-direction: column; }
  .home-hero { padding: 60px 7% 85px; min-height: 460px; }
  .home-detail { left: 7%; gap: 11px; font-size: .48rem; }
  .home-strip { flex-wrap: wrap; justify-content: flex-start; padding-left: 7%; }
  .admissions-page { padding: 34px 5%; }
  .review-grid { grid-template-columns: 1fr; }
  .admissions-top { flex-direction: column; }
}
@media (max-width: 460px) {
  .form-grid { grid-template-columns: 1fr; }
  .field-wide { grid-column: auto; }
  .application-aside { grid-template-columns: 1fr; }
  .apply-meta span:last-child { display: none; }
  .success-details { grid-template-columns: 1fr; }
  .success-details > div { padding-left: 0; padding-right: 0; }
  .reference-card { padding: 17px; }
  .navbar .container-fluid { padding-left: 16px; padding-right: 16px; }
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}
