.pfi-ap {
  --ap-navy: #0c3c59;
  --ap-navy-dark: #082a40;
  --ap-teal: #0b9bb4;
  --ap-teal-dark: #087b91;
  --ap-aqua: #39c0c9;
  --ap-ink: #172b37;
  --ap-muted: #667c87;
  --ap-line: #dce8ec;
  --ap-bg: #f4f9fa;
  position: relative;
  isolation: isolate;
  min-height: 100vh;
  width: 100vw;
  margin-right: calc(50% - 50vw);
  overflow: hidden;
  background: linear-gradient(150deg, #f9fcfd 0%, #eef8f9 55%, #f5fafc 100%);
  color: var(--ap-ink);
  direction: rtl;
  font-family: inherit;
}
.pfi-ap *, .pfi-ap *::before, .pfi-ap *::after { box-sizing: border-box; }
.pfi-ap h1, .pfi-ap h2, .pfi-ap h3, .pfi-ap p { margin-top: 0; }
.pfi-ap a { text-decoration: none; }
.pfi-ap__ambient { position: absolute; z-index: -1; border-radius: 999px; filter: blur(1px); opacity: .65; }
.pfi-ap__ambient--one { width: 420px; height: 420px; top: -210px; left: -120px; background: radial-gradient(circle, rgba(57,192,201,.25), rgba(57,192,201,0) 70%); }
.pfi-ap__ambient--two { width: 540px; height: 540px; bottom: -330px; right: -170px; background: radial-gradient(circle, rgba(11,155,180,.18), rgba(11,155,180,0) 70%); }
.pfi-ap__header { min-height: 105px; display: flex; align-items: center; justify-content: space-between; gap: 20px; max-width: 1180px; margin: 0 auto; padding: 14px 24px; border-bottom: 1px solid rgba(12,60,89,.08); }
.pfi-ap__brand img { display: block; width: min(305px, 65vw); height: 75px; object-fit: contain; object-position: right center; }
.pfi-ap__header-user { display: flex; align-items: center; gap: 11px; }
.pfi-ap__header-user>span { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: var(--ap-navy); color: #fff; font-weight: 900; }
.pfi-ap__header-user div { display: grid; gap: 3px; }
.pfi-ap__header-user b { color: var(--ap-ink); font-size: 13px; }
.pfi-ap__header-user a { color: var(--ap-teal-dark); font-size: 11px; font-weight: 750; }
.pfi-ap__main { width: min(1132px, calc(100% - 36px)); margin: 0 auto; padding: 52px 0 65px; }
.pfi-ap__page-title { margin-bottom: 28px; }
.pfi-ap__page-title>span, .pfi-ap__section-title>span { display: block; color: var(--ap-teal-dark); font-size: 12px; font-weight: 850; letter-spacing: .02em; margin-bottom: 7px; }
.pfi-ap__page-title h1 { margin: 0; color: var(--ap-navy-dark); font-size: clamp(31px, 5vw, 52px); line-height: 1.3; letter-spacing: -.03em; }
.pfi-ap__login-card { background: rgba(255,255,255,.94); border: 1px solid rgba(12,60,89,.12); border-radius: 27px; padding: 38px 36px 31px; box-shadow: 0 26px 70px rgba(9,54,76,.12); backdrop-filter: blur(10px); }
.pfi-ap__login-only { min-height: 100vh; width: min(100% - 28px, 470px); margin: 0 auto; padding: 40px 0; display: grid; place-items: center; }
.pfi-ap__login-card--standalone { width: 100%; padding: 36px 39px 38px; }
.pfi-ap__login-logo { display: flex; justify-content: center; margin: 0 auto 25px; }
.pfi-ap__login-logo img { display: block; width: min(330px, 82vw); height: 105px; object-fit: contain; }
.pfi-ap__login-card--standalone h1 { color: var(--ap-navy-dark); font-size: 27px; line-height: 1.4; text-align: center; margin: 0 0 7px; }
.pfi-ap__login-card--standalone>p { color: var(--ap-muted); font-size: 12px; line-height: 1.8; text-align: center; margin: 0 0 27px; }
.pfi-ap__login-card>p { color: var(--ap-muted); font-size: 12px; margin-bottom: 27px; }
.pfi-ap__login-form { display: grid; gap: 17px; }
.pfi-ap__login-form>label>span { display: block; color: var(--ap-ink); font-size: 12px; font-weight: 800; margin-bottom: 8px; }
.pfi-ap__input { position: relative; display: flex; align-items: center; height: 53px; border: 1px solid #d4e1e5; border-radius: 13px; background: #fbfdfd; transition: .2s; overflow: hidden; }
.pfi-ap__input:focus-within { border-color: var(--ap-teal); background: #fff; box-shadow: 0 0 0 4px rgba(11,155,180,.1); }
.pfi-ap__input>b { width: 45px; text-align: center; color: var(--ap-teal-dark); font-size: 13px; }
.pfi-ap__input input { flex: 1; min-width: 0; height: 100%; padding: 0 0 0 10px; border: 0 !important; outline: 0 !important; background: transparent !important; box-shadow: none !important; font: inherit; color: var(--ap-ink); font-size: 13px; }
.pfi-ap__input input::placeholder { color: #9aabb2; }
.pfi-ap__toggle-password { border: 0; background: transparent; color: var(--ap-teal-dark); padding: 0 12px; font: inherit; font-size: 10px; font-weight: 800; cursor: pointer; }
.pfi-ap__form-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 11px; }
.pfi-ap__remember { display: flex; align-items: center; gap: 7px; color: var(--ap-muted); cursor: pointer; }
.pfi-ap__remember input { accent-color: var(--ap-teal); }
.pfi-ap__form-row>a { color: var(--ap-teal-dark); font-weight: 800; }
.pfi-ap__button { min-height: 52px; border: 0; border-radius: 13px; display: inline-flex; align-items: center; justify-content: center; gap: 15px; padding: 0 24px; background: linear-gradient(135deg, var(--ap-navy), #0b617a); color: #fff !important; font: inherit; font-size: 13px; font-weight: 900; cursor: pointer; box-shadow: 0 12px 26px rgba(12,60,89,.18); transition: .2s; }
.pfi-ap__button:hover { transform: translateY(-1px); box-shadow: 0 16px 30px rgba(12,60,89,.22); }
.pfi-ap__button:disabled { opacity: .6; cursor: wait; transform: none; }
.pfi-ap__button i { font-style: normal; font-size: 18px; }
.pfi-ap__form-message { display: none; border-radius: 10px; padding: 11px 13px; font-size: 11px; line-height: 1.7; }
.pfi-ap__form-message.is-error { display: block; color: #983838; background: #fff0f0; border: 1px solid #efcaca; }
.pfi-ap__form-message.is-success { display: block; color: #176b4f; background: #eaf8f1; border: 1px solid #c7e8d6; }
.pfi-ap__help { border-top: 1px solid var(--ap-line); color: var(--ap-muted); margin-top: 23px; padding-top: 19px; text-align: center; font-size: 10px; line-height: 1.8; }
.pfi-ap__copyright { text-align: center; color: #85969e; font-size: 10px; padding: 18px; }
.pfi-ap__already, .pfi-ap__access { max-width: 590px; margin: 28px auto; background: #fff; border: 1px solid var(--ap-line); border-radius: 23px; padding: 45px; text-align: center; box-shadow: 0 20px 55px rgba(9,54,76,.09); }
.pfi-ap__success-icon { width: 65px; height: 65px; display: grid; place-items: center; margin: 0 auto 17px; border-radius: 22px; background: #e2f6ee; color: #178360; font-size: 28px; font-weight: 900; }
.pfi-ap__already h2, .pfi-ap__access h2 { color: var(--ap-navy-dark); margin-bottom: 9px; }
.pfi-ap__already p, .pfi-ap__access p { color: var(--ap-muted); font-size: 13px; margin-bottom: 22px; }
.pfi-ap__already .pfi-ap__button, .pfi-ap__access .pfi-ap__button { min-width: 210px; }
.pfi-ap__notice { padding: 13px; border-radius: 10px; font-size: 12px; }
.pfi-ap__notice--error { color: #983838; background: #fff0f0; }
.pfi-ap__profile { display: grid; grid-template-columns: 72px minmax(190px,.55fr) minmax(0,1.45fr); align-items: center; gap: 18px; background: linear-gradient(120deg, #fff, #f8fcfc); border: 1px solid var(--ap-line); border-radius: 22px; padding: 23px 25px; box-shadow: 0 13px 38px rgba(9,54,76,.07); }
.pfi-ap__avatar { width: 72px; height: 72px; display: grid; place-items: center; border-radius: 22px; background: linear-gradient(140deg, var(--ap-navy), var(--ap-teal)); color: #fff; font-size: 21px; font-weight: 900; }
.pfi-ap__profile-copy>span { color: var(--ap-teal-dark); font-size: 10px; font-weight: 900; }
.pfi-ap__profile-copy h2 { color: var(--ap-navy-dark); margin: 4px 0; font-size: 23px; }
.pfi-ap__profile-copy p { color: var(--ap-muted); font-size: 11px; margin: 0; direction: ltr; text-align: right; }
.pfi-ap__profile-meta { display: grid; grid-template-columns: repeat(2,minmax(120px,1fr)); gap: 9px; }
.pfi-ap__profile-meta>div { min-width: 0; background: var(--ap-bg); border-radius: 13px; padding: 11px 13px; }
.pfi-ap__profile-meta span, .pfi-ap__profile-meta b { display: block; }
.pfi-ap__profile-meta span { color: var(--ap-muted); font-size: 9px; margin-bottom: 4px; }
.pfi-ap__profile-meta b { color: var(--ap-navy-dark); font-size: 11px; }
.pfi-ap__quick { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; margin: 20px 0 32px; }
.pfi-ap__quick>a { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--ap-line); border-radius: 17px; padding: 18px; color: var(--ap-ink); box-shadow: 0 9px 30px rgba(9,54,76,.05); transition: .2s; }
.pfi-ap__quick>a:hover { transform: translateY(-2px); border-color: rgba(11,155,180,.45); }
.pfi-ap__quick i { width: 45px; height: 45px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 13px; background: #e8f7f8; color: var(--ap-teal-dark); font-style: normal; font-size: 20px; }
.pfi-ap__quick b, .pfi-ap__quick span { display: block; }
.pfi-ap__quick b { color: var(--ap-navy-dark); font-size: 13px; margin-bottom: 4px; }
.pfi-ap__quick span { color: var(--ap-muted); font-size: 10px; }
.pfi-ap__data-empty { background: rgba(255,255,255,.88); border: 1px dashed #bfd2d8; border-radius: 20px; padding: 45px 25px; text-align: center; }
.pfi-ap__data-empty>div { width: 55px; height: 55px; display: grid; place-items: center; margin: 0 auto 16px; border-radius: 17px; background: #e9f6f7; color: var(--ap-teal-dark); font-size: 24px; font-weight: 900; }
.pfi-ap__data-empty h3 { color: var(--ap-navy-dark); margin-bottom: 8px; }
.pfi-ap__data-empty p { max-width: 680px; margin: 0 auto; color: var(--ap-muted); font-size: 12px; line-height: 1.9; }
.pfi-ap__data-empty--warning { border-color: #e7c879; background: #fffaf0; }
.pfi-ap__data-empty--warning>div { color: #9c6c13; background: #fff0c8; }
.pfi-ap__legacy, .pfi-ap__courses { background: #fff; border: 1px solid var(--ap-line); border-radius: 20px; padding: 25px; margin-top: 25px; overflow: auto; }
.pfi-ap__section-title h2 { color: var(--ap-navy-dark); font-size: 23px; }
.pfi-ap__results { background:#fff; border:1px solid var(--ap-line); border-radius:20px; padding:25px; box-shadow:0 11px 34px rgba(9,54,76,.06); }
.pfi-ap__result-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:18px 0; }
.pfi-ap__result-stats>div { background:var(--ap-bg); border-radius:13px; padding:14px 16px; }
.pfi-ap__result-stats span,.pfi-ap__result-stats b { display:block; }
.pfi-ap__result-stats span { color:var(--ap-muted); font-size:9px; margin-bottom:6px; }
.pfi-ap__result-stats b { color:var(--ap-navy-dark); font-size:20px; }
.pfi-ap__table-wrap { width:100%; overflow:auto; }
.pfi-ap__results-table { width:100%; border-collapse:collapse; }
.pfi-ap__results-table th,.pfi-ap__results-table td { padding:13px 11px; border-bottom:1px solid var(--ap-line); text-align:right; white-space:nowrap; font-size:11px; }
.pfi-ap__results-table th { color:var(--ap-muted); background:#f6f9fa; font-size:9px; }
.pfi-ap__results-table td b { color:var(--ap-navy-dark); }
.pfi-ap__grade { display:inline-grid; place-items:center; min-width:35px; min-height:27px; color:var(--ap-navy); background:#eaf3f7; border-radius:8px; }
.pfi-ap__result-status { display:inline-flex; border-radius:99px; padding:5px 9px; font-size:9px; font-weight:850; }
.pfi-ap__result-status.is-passed { color:#176d4e; background:#e7f6ef; }
.pfi-ap__result-status.is-failed { color:#9c3a3a; background:#ffeded; }
.pfi-ap__results-empty { border:1px dashed #c5d3d7; background:var(--ap-bg); color:var(--ap-muted); border-radius:13px; padding:30px; text-align:center; font-size:12px; }
.pfi-ap__level-results { display:grid; gap:16px; }
.pfi-ap__level-block { border:1px solid var(--ap-line); border-radius:15px; overflow:hidden; background:#fff; }
.pfi-ap__level-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; background:linear-gradient(135deg,#f1f8f8,#f7fafb); border-bottom:1px solid var(--ap-line); }
.pfi-ap__level-heading span { display:block; color:var(--ap-teal-dark); font-size:8px; font-weight:850; }
.pfi-ap__level-heading h3 { color:var(--ap-navy-dark); font-size:16px; margin:3px 0 0; }
.pfi-ap__level-heading>b { color:var(--ap-navy); background:#fff; border:1px solid var(--ap-line); border-radius:99px; padding:6px 10px; font-size:9px; white-space:nowrap; }
.pfi-ap__trainer-gradebook { background:#fff; border:1px solid var(--ap-line); border-radius:21px; padding:25px; box-shadow:0 12px 36px rgba(9,54,76,.06); }
.pfi-ap__trainer-courses { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:18px 0 25px; }
.pfi-ap__trainer-courses>a { display:grid; gap:5px; border:1px solid var(--ap-line); border-radius:14px; padding:14px; color:var(--ap-ink); background:#fff; transition:.2s; }
.pfi-ap__trainer-courses>a:hover,.pfi-ap__trainer-courses>a.is-active { border-color:var(--ap-teal); background:#edf9f9; transform:translateY(-1px); }
.pfi-ap__trainer-courses span { width:fit-content; color:var(--ap-teal-dark); background:#e7f6f7; border-radius:99px; padding:4px 8px; font-size:8px; font-weight:850; }
.pfi-ap__trainer-courses b { color:var(--ap-navy-dark); font-size:13px; }
.pfi-ap__trainer-courses small { color:var(--ap-muted); font-size:9px; }
.pfi-ap__grade-entry { border-top:1px solid var(--ap-line); padding-top:22px; }
.pfi-ap__grade-entry-head { display:flex; justify-content:space-between; align-items:flex-start; gap:15px; margin-bottom:18px; }
.pfi-ap__grade-entry-head span { color:var(--ap-teal-dark); font-size:9px; font-weight:850; }
.pfi-ap__grade-entry-head h3 { color:var(--ap-navy-dark); margin:4px 0; font-size:20px; }
.pfi-ap__grade-entry-head p { color:var(--ap-muted); margin:0; font-size:10px; }
.pfi-ap__grade-entry-head>b { color:var(--ap-navy); background:var(--ap-bg); border-radius:99px; padding:7px 11px; font-size:10px; }
.pfi-ap__notice--success { color:#176b4f; background:#eaf8f1; border:1px solid #c7e8d6; margin-bottom:15px; }
.pfi-ap__grade-options { display:grid; grid-template-columns:1fr 180px; gap:12px; margin-bottom:15px; }
.pfi-ap__grade-options label { display:grid; gap:6px; }
.pfi-ap__grade-options span { color:var(--ap-ink); font-size:10px; font-weight:800; }
.pfi-ap__grade-options input,.pfi-ap__grades-table input { width:100%; height:42px; border:1px solid #d5e1e4; border-radius:10px; background:#fff; padding:0 10px; font:inherit; font-size:11px; outline:0; }
.pfi-ap__grade-options input:focus,.pfi-ap__grades-table input:focus { border-color:var(--ap-teal); box-shadow:0 0 0 3px rgba(11,155,180,.09); }
.pfi-ap__grades-table td:first-child b,.pfi-ap__grades-table td:first-child small { display:block; }
.pfi-ap__grades-table td:first-child small { color:var(--ap-muted); font-size:8px; margin-top:3px; }
.pfi-ap__grades-form>.pfi-ap__button { margin-top:16px; min-width:220px; }
.pfi-ap__course-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.pfi-ap__course-grid article { border: 1px solid var(--ap-line); border-radius: 14px; padding: 17px; }
.pfi-ap__course-grid article>span { color: #187359; background: #e7f7ef; border-radius: 99px; padding: 4px 8px; font-size: 9px; font-weight: 850; }
.pfi-ap__course-grid h3 { color: var(--ap-navy-dark); font-size: 14px; margin: 13px 0; }
.pfi-ap__course-grid a { color: var(--ap-teal-dark); font-size: 10px; font-weight: 850; }
@media (max-width: 850px) {
  .pfi-ap__login-card { max-width: 520px; width: 100%; margin: 0 auto; }
  .pfi-ap__profile { grid-template-columns: 62px 1fr; }
  .pfi-ap__avatar { width: 62px; height: 62px; }
  .pfi-ap__profile-meta { grid-column: 1/-1; }
  .pfi-ap__profile-meta>div { min-width: 0; }
  .pfi-ap__course-grid { grid-template-columns: repeat(2, 1fr); }
  .pfi-ap__trainer-courses { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 560px) {
  .pfi-ap__header { min-height: 84px; padding: 9px 15px; }
  .pfi-ap__brand img { width: 215px; height: 61px; }
  .pfi-ap__header-user div { display: none; }
  .pfi-ap__main { width: min(100% - 24px, 1132px); padding: 32px 0 48px; }
  .pfi-ap__page-title { margin-bottom: 20px; }
  .pfi-ap__page-title h1 { font-size: 30px; }
  .pfi-ap__login-card { border-radius: 20px; padding: 28px 20px 24px; }
  .pfi-ap__login-only { min-height: 100vh; padding: 20px 0; }
  .pfi-ap__login-card--standalone { padding: 27px 20px 30px; }
  .pfi-ap__login-logo { margin-bottom: 18px; }
  .pfi-ap__login-logo img { width: min(280px, 80vw); height: 90px; }
  .pfi-ap__profile { grid-template-columns: 54px 1fr; gap: 12px; padding: 17px; }
  .pfi-ap__avatar { width: 54px; height: 54px; border-radius: 17px; font-size: 17px; }
  .pfi-ap__profile-copy h2 { font-size: 18px; }
  .pfi-ap__profile-meta { display: grid; grid-template-columns: 1fr; width: 100%; }
  .pfi-ap__quick, .pfi-ap__course-grid { grid-template-columns: 1fr; }
  .pfi-ap__result-stats { grid-template-columns:1fr; }
  .pfi-ap__results { padding:18px 13px; }
  .pfi-ap__trainer-gradebook { padding:18px 13px; }
  .pfi-ap__trainer-courses,.pfi-ap__grade-options { grid-template-columns:1fr; }
  .pfi-ap__grade-entry-head { flex-direction:column; }
  .pfi-ap__already, .pfi-ap__access { padding: 34px 18px; }
}
