/* ERP Addon — Admission form (website + admin). All classes are prefixed "apx-" to avoid clashes with the existing CSS */
.apx { --apx-primary:#1f3c88; --apx-primary-2:#2d55c4; --apx-accent:#e8eefc; --apx-border:#dde3ee; --apx-text:#1e2433; --apx-muted:#6b7385;
       --apx-ok:#1b8a4b; --apx-warn:#b36b00; --apx-err:#c62828; --apx-bg:#f4f6fb;
       font-family: "Roboto", Arial, sans-serif; color: var(--apx-text); font-size:14px; line-height:1.5; }
.apx *, .apx *::before, .apx *::after { box-sizing: border-box; }
.apx-page { background: var(--apx-bg); padding: 28px 0 48px; }
.apx-wrap { max-width: 1040px; margin: 0 auto; padding: 0 16px; }

.apx-hero { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.apx-hero h1 { font-size:24px; margin:0; color:var(--apx-primary); font-weight:700; }
.apx-hero p { margin:2px 0 0; color:var(--apx-muted); }
.apx-appno { background:#fff; border:1px dashed var(--apx-primary); border-radius:8px; padding:8px 14px; font-size:13px; }
.apx-appno b { color:var(--apx-primary); font-size:15px; letter-spacing:.5px; }

/* Stepper */
.apx-steps { display:flex; list-style:none; margin:0 0 18px; padding:0; gap:6px; counter-reset: s; }
.apx-steps li { flex:1; position:relative; text-align:center; font-size:12px; color:var(--apx-muted); padding-top:36px; }
.apx-steps li::before { counter-increment:s; content:counter(s); position:absolute; top:0; left:50%; transform:translateX(-50%);
    width:30px; height:30px; line-height:30px; border-radius:50%; background:#fff; border:2px solid var(--apx-border); font-weight:700; color:var(--apx-muted); z-index:1; }
.apx-steps li::after { content:""; position:absolute; top:14px; left:calc(-50% + 18px); right:calc(50% + 18px); height:2px; background:var(--apx-border); }
.apx-steps li:first-child::after { display:none; }
.apx-steps li.done::before { content:"✓"; background:var(--apx-ok); border-color:var(--apx-ok); color:#fff; }
.apx-steps li.done::after, .apx-steps li.active::after { background:var(--apx-ok); }
.apx-steps li.active::before { background:var(--apx-primary); border-color:var(--apx-primary); color:#fff; box-shadow:0 0 0 4px var(--apx-accent); }
.apx-steps li.active { color:var(--apx-primary); font-weight:700; }
.apx-steps a { color:inherit; text-decoration:none; }
@media (max-width:600px){ .apx-steps li span { display:none; } .apx-steps li.active span { display:block; } }

/* Card */
.apx-card { background:#fff; border:1px solid var(--apx-border); border-radius:10px; box-shadow:0 1px 3px rgba(20,30,60,.05); margin-bottom:18px; }
.apx-card-h { padding:14px 20px; border-bottom:1px solid var(--apx-border); display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.apx-card-h h2 { font-size:17px; margin:0; font-weight:700; color:var(--apx-primary); }
.apx-card-h small { color:var(--apx-muted); }
.apx-card-b { padding:18px 20px; }
.apx-sub { font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; color:var(--apx-muted); margin:18px 0 10px; padding-bottom:6px; border-bottom:1px dashed var(--apx-border); }
.apx-sub:first-child { margin-top:0; }

/* Grid + fields */
.apx-grid { display:grid; grid-template-columns:repeat(12, 1fr); gap:14px 16px; }
.apx-c3 { grid-column: span 3; } .apx-c4 { grid-column: span 4; } .apx-c6 { grid-column: span 6; } .apx-c8 { grid-column: span 8; } .apx-c12 { grid-column: span 12; }
@media (max-width:900px){ .apx-c3 { grid-column: span 6; } .apx-c4 { grid-column: span 6; } .apx-c8 { grid-column: span 12; } }
@media (max-width:600px){ .apx-c3, .apx-c4, .apx-c6 { grid-column: span 12; } }
.apx-field label { display:block; font-weight:600; font-size:13px; margin-bottom:5px; color:#2b3245; }
.apx-field label .req { color:var(--apx-err); margin-left:2px; }
.apx-field .apx-hint { display:block; font-size:11.5px; color:var(--apx-muted); margin-top:4px; }
.apx-input, .apx select.apx-input, .apx textarea.apx-input {
    display:block; width:100%; height:40px; padding:8px 11px; font-size:14px; color:var(--apx-text); background:#fff;
    border:1px solid #c9d1e0; border-radius:6px; box-shadow:none; transition:border-color .15s, box-shadow .15s; }
.apx textarea.apx-input { height:auto; min-height:76px; resize:vertical; }
.apx-input:focus { outline:none; border-color:var(--apx-primary-2); box-shadow:0 0 0 3px rgba(45,85,196,.15); }
.apx-field.has-err .apx-input { border-color:var(--apx-err); background:#fffafa; }
.apx-field .apx-err { color:var(--apx-err); font-size:12px; margin-top:4px; display:block; }
.apx-input[readonly] { background:#f6f7fa; }
.apx-upper { text-transform:uppercase; }

/* Upload boxes */
.apx-upload { border:1.5px dashed #b8c3d9; border-radius:8px; padding:12px; display:flex; gap:12px; align-items:center; background:#fbfcff; min-height:96px; }
.apx-upload.has-err { border-color:var(--apx-err); }
.apx-upload .apx-thumb { width:72px; height:84px; border-radius:6px; background:#eef1f7 center/cover no-repeat; flex:0 0 72px; display:flex; align-items:center; justify-content:center; color:#9aa4b8; font-size:26px; border:1px solid var(--apx-border); overflow:hidden; }
.apx-upload .apx-thumb.sign { height:48px; width:120px; flex-basis:120px; background-size:contain; background-color:#fff; }
.apx-upload .apx-thumb.pdf { font-size:13px; font-weight:700; color:var(--apx-err); }
.apx-upload input[type=file] { font-size:12.5px; max-width:100%; }
.apx-upload .apx-meta { flex:1; min-width:0; }
.apx-upload .apx-meta .t { font-weight:600; font-size:13px; }
.apx-upload .apx-meta .s { font-size:11.5px; color:var(--apx-muted); }
.apx-upload .apx-meta .ok { font-size:11.5px; color:var(--apx-ok); }
.apx-upload .apx-meta a { font-size:12px; }

/* Qualification table */
.apx-qtable { width:100%; border-collapse:separate; border-spacing:0; font-size:13px; }
.apx-qtable th { background:#f1f4fa; text-align:left; padding:8px; font-weight:600; border-bottom:1px solid var(--apx-border); white-space:nowrap; }
.apx-qtable td { padding:6px; border-bottom:1px solid #eef1f6; vertical-align:top; }
.apx-qtable .apx-input { height:36px; font-size:13px; padding:6px 8px; }
.apx-qtable td.lvl { font-weight:600; white-space:nowrap; padding-top:14px; }
.apx-qscroll { overflow-x:auto; -webkit-overflow-scrolling:touch; }
@media (max-width:760px){
  .apx-qtable thead { display:none; }
  .apx-qtable, .apx-qtable tbody, .apx-qtable tr, .apx-qtable td { display:block; width:100%; }
  .apx-qtable tr { border:1px solid var(--apx-border); border-radius:8px; margin-bottom:10px; padding:6px; }
  .apx-qtable td { border:0; padding:4px 6px; }
  .apx-qtable td[data-l]::before { content:attr(data-l); display:block; font-size:11px; color:var(--apx-muted); margin-bottom:2px; }
}

/* Buttons + bars */
.apx-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; height:42px; padding:0 20px; border-radius:6px; font-weight:700; font-size:14px;
    border:1px solid transparent; cursor:pointer; text-decoration:none !important; transition:background .15s, opacity .15s; }
.apx-btn-primary { background:var(--apx-primary); color:#fff !important; }
.apx-btn-primary:hover { background:var(--apx-primary-2); }
.apx-btn-success { background:var(--apx-ok); color:#fff !important; }
.apx-btn-light { background:#fff; color:var(--apx-primary) !important; border-color:var(--apx-border); }
.apx-btn[disabled], .apx-btn.is-busy { opacity:.65; cursor:wait; }
.apx-actions { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; padding:14px 20px; border-top:1px solid var(--apx-border); background:#fafbfe; border-radius:0 0 10px 10px; }
.apx-actions .apx-note { font-size:12px; color:var(--apx-muted); }

.apx-alert { padding:11px 14px; border-radius:7px; margin-bottom:14px; font-size:13.5px; border:1px solid; }
.apx-alert-ok { background:#eaf7ef; border-color:#b8e2c8; color:#14532d; }
.apx-alert-err { background:#fdecec; border-color:#f5c2c2; color:#8a1c1c; }
.apx-alert-info { background:var(--apx-accent); border-color:#c8d5f5; color:#1d2f6b; }
.apx-alert ul { margin:6px 0 0 18px; padding:0; }

/* Preview / definition list */
.apx-dl { display:grid; grid-template-columns: minmax(120px, 38%) 1fr; gap:0; font-size:13.5px; }
.apx-dl > div { padding:7px 10px; border-bottom:1px solid #eef1f6; word-break:break-word; }
.apx-dl > div:nth-child(odd) { color:var(--apx-muted); background:#fafbfd; }
@media (max-width:600px){ .apx-dl { grid-template-columns: 1fr; } .apx-dl > div:nth-child(odd){ border-bottom:0; padding-bottom:0; background:none; font-size:12px; } }
.apx-two { display:grid; grid-template-columns: 1fr 1fr; gap:0 24px; }
@media (max-width:800px){ .apx-two { grid-template-columns: 1fr; } }
.apx-narrow .apx-two { grid-template-columns: 1fr; }
.apx-photo-box { display:flex; gap:14px; align-items:flex-start; }
.apx-photo-box img.ph { width:110px; height:130px; object-fit:cover; border:1px solid var(--apx-border); border-radius:6px; }
.apx-photo-box img.sg { width:150px; height:55px; object-fit:contain; border:1px solid var(--apx-border); border-radius:6px; background:#fff; }
.apx-badge { display:inline-block; padding:3px 9px; border-radius:20px; font-size:12px; font-weight:700; }
.apx-badge-secondary { background:#eceff4; color:#4b5468; } .apx-badge-warning { background:#fff3dc; color:var(--apx-warn); }
.apx-badge-info { background:var(--apx-accent); color:var(--apx-primary); } .apx-badge-success { background:#e3f5ea; color:var(--apx-ok); }
.apx-badge-danger { background:#fde8e8; color:var(--apx-err); }
.apx-fee { font-size:28px; font-weight:800; color:var(--apx-primary); }
.apx-check { display:flex; gap:10px; align-items:flex-start; font-size:13.5px; background:#fffbea; border:1px solid #f0e2a8; padding:12px; border-radius:7px; }
.apx-check input { margin-top:3px; width:18px; height:18px; flex:0 0 18px; }
.apx-hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.apx-center { text-align:center; }
.apx-mt { margin-top:14px; }
