/* SDPI – Course, Assessment & Certification Manager Public */
.sdpi-scm-public-wrap{--sdpi-blue:#1D4982;--sdpi-green:#A4CE3A;--sdpi-light:#F4F9FD;--sdpi-grey:#F5F7FA;--sdpi-border:#D7E0E8;max-width:1000px;margin:24px auto;color:#24384a;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}.sdpi-scm-header{background:var(--sdpi-blue);color:#fff;border-radius:16px;padding:24px;margin-bottom:20px}.sdpi-scm-header h2{color:#fff;margin:0 0 6px;font-size:28px}.sdpi-scm-header p{margin:0;opacity:.92}.sdpi-scm-form,.sdpi-test-login,.sdpi-test-screen,.sdpi-result-panel{background:#fff;border:1px solid var(--sdpi-border);border-radius:16px;padding:24px}.sdpi-scm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.sdpi-scm-form label,.sdpi-test-login label,.sdpi-typing-label{display:block;font-weight:700;color:var(--sdpi-blue);margin-bottom:16px}.sdpi-scm-form label span,.sdpi-test-login label span,.sdpi-typing-label>span{display:block;margin-bottom:7px}.sdpi-scm-form input,.sdpi-scm-form select,.sdpi-scm-form textarea,.sdpi-test-login input,.sdpi-typing-label textarea{box-sizing:border-box;width:100%;border:1px solid var(--sdpi-border);border-radius:10px;padding:12px 13px;font:inherit;background:#fff;color:#1d2f3f}.sdpi-typing-label textarea{font-size:18px;line-height:1.7;min-height:240px}.sdpi-scm-primary,.sdpi-scm-secondary{border:0;border-radius:10px;padding:12px 20px;font-weight:700;font-size:16px;cursor:pointer}.sdpi-scm-primary{background:var(--sdpi-blue);color:#fff}.sdpi-scm-secondary{background:var(--sdpi-green);color:#17324d}.sdpi-scm-primary:disabled,.sdpi-scm-secondary:disabled{opacity:.55;cursor:not-allowed}.sdpi-scm-check{display:flex!important;align-items:flex-start;gap:10px}.sdpi-scm-check input{width:auto!important;margin-top:3px}.sdpi-scm-alert{border-radius:10px;padding:13px 15px;margin:15px 0}.sdpi-scm-alert.success{background:#eef9dc;border:1px solid #b9db71;color:#365500}.sdpi-scm-alert.error{background:#fff0ef;border:1px solid #e4a39d;color:#8a1f17}.hidden{display:none!important}.sdpi-test-meta,.sdpi-live-stats,.sdpi-result-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.sdpi-test-meta>div,.sdpi-live-stats>div,.sdpi-result-grid>div{background:var(--sdpi-grey);border:1px solid var(--sdpi-border);border-radius:10px;padding:12px}.sdpi-test-meta span,.sdpi-live-stats span,.sdpi-result-grid span{display:block;font-size:14px;color:#5d6d7a}.sdpi-test-meta strong,.sdpi-live-stats strong,.sdpi-result-grid strong{display:block;color:var(--sdpi-blue);font-size:18px;margin-top:3px}.sdpi-passage-box{background:var(--sdpi-light);border-left:5px solid var(--sdpi-green);border-radius:10px;padding:18px;margin-bottom:18px;user-select:none}.sdpi-passage-box h3{color:var(--sdpi-blue);margin:0 0 8px}.sdpi-passage-box p{font-size:18px;line-height:1.8;margin:0}.sdpi-result-panel{border-top:7px solid var(--sdpi-green)}.sdpi-result-panel h3{color:var(--sdpi-blue);font-size:25px;margin-top:0}.sdpi-verify-form{display:flex;gap:12px;align-items:flex-end}.sdpi-verify-form label{flex:1;margin:0}@media(max-width:760px){.sdpi-scm-grid,.sdpi-test-meta,.sdpi-live-stats,.sdpi-result-grid{grid-template-columns:1fr 1fr}.sdpi-verify-form{display:block}.sdpi-verify-form button{margin-top:12px;width:100%}}@media(max-width:480px){.sdpi-scm-grid,.sdpi-test-meta,.sdpi-live-stats,.sdpi-result-grid{grid-template-columns:1fr}.sdpi-scm-form,.sdpi-test-login,.sdpi-test-screen,.sdpi-result-panel{padding:17px}.sdpi-scm-header h2{font-size:24px}}

/* SDPI – Digital Campus Home and Student Panel */
.sdpi-cac-home .sdpi-scm-header h1{color:#fff;margin:0 0 7px;font-size:32px}.sdpi-cac-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.sdpi-cac-action{display:block;text-decoration:none!important;background:#fff;border:1px solid var(--sdpi-border);border-top:5px solid var(--sdpi-green);border-radius:14px;padding:20px;color:#24384a;transition:transform .15s ease,border-color .15s ease}.sdpi-cac-action:hover{transform:translateY(-2px);border-color:var(--sdpi-blue)}.sdpi-cac-action strong{display:block;color:var(--sdpi-blue);font-size:19px;margin-bottom:6px}.sdpi-cac-action span{display:block;line-height:1.55}.sdpi-student-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.sdpi-student-summary>div{background:#fff;border:1px solid var(--sdpi-border);border-radius:11px;padding:14px}.sdpi-student-summary span{display:block;color:#627384;font-size:14px;margin-bottom:3px}.sdpi-student-summary strong{display:block;color:var(--sdpi-blue)}.sdpi-student-attempts{margin-top:22px;background:#fff;border:1px solid var(--sdpi-border);border-radius:14px;padding:18px}.sdpi-student-attempts h3{margin-top:0;color:var(--sdpi-blue)}.sdpi-table-scroll{overflow-x:auto}.sdpi-student-attempts table{width:100%;border-collapse:collapse}.sdpi-student-attempts th,.sdpi-student-attempts td{padding:10px;border-bottom:1px solid var(--sdpi-border);text-align:left;white-space:nowrap}.sdpi-student-attempts th{background:var(--sdpi-light);color:var(--sdpi-blue)}@media(max-width:760px){.sdpi-cac-action-grid,.sdpi-student-summary{grid-template-columns:1fr}}

/* SDPI – Shorthand Examination Student Screen */
.sdpi-audio-test {
    margin: 18px 0;
    padding: 18px;
    border: 1px solid #D7E0E8;
    border-left: 5px solid #A4CE3A;
    border-radius: 12px;
    background: #F4F9FD;
}
.sdpi-audio-test audio {
    width: 100%;
    margin-bottom: 10px;
}
.sdpi-shorthand-exam textarea {
    min-height: 220px;
    font-size: 17px;
    line-height: 1.55;
}

/* =========================================================
   SDPI Digital Campus – Staff Testing & Role Panel v0.8.1
   ========================================================= */
.sdpi-staff-login-stage {
    max-width: 1180px;
    margin: 34px auto;
    padding: 34px;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr);
    gap: 36px;
    align-items: center;
    border: 1px solid #d7e0e8;
    border-radius: 28px;
    background: linear-gradient(135deg, #f4f9fd 0%, #ffffff 58%, #f7fbe9 100%);
}
.sdpi-staff-login-copy h1,
.sdpi-staff-dashboard-head h1 {
    margin: 8px 0 14px;
    color: #1d4982;
    font-size: clamp(30px, 4vw, 48px);
    line-height: 1.12;
}
.sdpi-staff-login-copy > p,
.sdpi-staff-dashboard-head p {
    color: #526273;
    font-size: 17px;
    line-height: 1.7;
}
.sdpi-staff-points {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 24px;
}
.sdpi-staff-points span {
    padding: 13px 15px;
    border: 1px solid #dfe9ef;
    border-left: 4px solid #a4ce3a;
    border-radius: 12px;
    background: #fff;
    color: #1d4982;
    font-weight: 600;
}
.sdpi-demo-user-picker {
    margin: 18px 0;
    padding: 14px;
    border: 1px solid #d7e0e8;
    border-radius: 14px;
    background: #f4f9fd;
}
.sdpi-demo-user-picker > strong { color: #1d4982; }
.sdpi-demo-user-picker > small { display:block; margin-top:10px; color:#657587; }
.sdpi-demo-user-picker-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 10px;
}
.sdpi-demo-user-fill {
    width: 100%;
    padding: 10px 12px;
    text-align: left;
    border: 1px solid #d7e0e8;
    border-radius: 10px;
    background: #fff;
    color: #1d4982;
    cursor: pointer;
}
.sdpi-demo-user-fill:hover,
.sdpi-demo-user-fill:focus { border-color:#a4ce3a; box-shadow:0 0 0 3px rgba(164,206,58,.18); }
.sdpi-demo-user-fill span { display:block; font-weight:700; }
.sdpi-demo-user-fill code { display:block; margin-top:3px; color:#4b5e70; font-size:14px; }
.sdpi-login-switch { margin:14px 0 0; text-align:center; color:#667587; }
.sdpi-login-switch a { color:#1d4982; font-weight:700; }
.sdpi-staff-dashboard-head {
    max-width: 1180px;
    margin: 32px auto 20px;
    padding: 28px 30px;
    display:flex;
    justify-content:space-between;
    gap:24px;
    align-items:center;
    border-radius:22px;
    background:#1d4982;
    color:#fff;
}
.sdpi-staff-dashboard-head h1,
.sdpi-staff-dashboard-head p,
.sdpi-staff-dashboard-head .sdpi-campus-eyebrow { color:#fff; }
.sdpi-portal-logout {
    flex:0 0 auto;
    padding:12px 18px;
    border-radius:10px;
    background:#a4ce3a;
    color:#17395f;
    font-weight:700;
    text-decoration:none;
}
.sdpi-role-confirmation {
    max-width:1180px;
    margin:0 auto 20px;
    padding:16px 18px;
    display:flex;
    gap:14px;
    align-items:flex-start;
    border:1px solid #dce8c3;
    border-radius:14px;
    background:#f7fbe9;
}
.sdpi-role-confirmation > span {
    display:grid;
    place-items:center;
    width:30px;
    height:30px;
    border-radius:50%;
    background:#a4ce3a;
    color:#17395f;
    font-weight:800;
}
.sdpi-role-confirmation strong { color:#1d4982; }
.sdpi-role-confirmation p { margin:4px 0 0; color:#607080; }
.sdpi-staff-module-grid {
    max-width:1180px;
    margin:0 auto 40px;
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:18px;
}
.sdpi-staff-module {
    position:relative;
    min-height:170px;
    padding:22px;
    border:1px solid #d7e0e8;
    border-radius:16px;
    background:#fff;
}
.sdpi-staff-module h2 { margin:34px 0 8px; color:#1d4982; font-size:21px; }
.sdpi-staff-module p { margin:0 0 14px; color:#526273; }
.sdpi-staff-module small { color:#728091; }
.sdpi-staff-module-status {
    position:absolute;
    top:16px;
    right:16px;
    padding:5px 9px;
    border-radius:999px;
    font-size:14px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.sdpi-staff-module-status.ready { background:#edf7d7; color:#496708; }
.sdpi-staff-module-status.framework { background:#eef4fa; color:#1d4982; }
@media (max-width: 850px) {
    .sdpi-staff-login-stage { grid-template-columns:1fr; padding:22px; }
    .sdpi-staff-module-grid { grid-template-columns:repeat(2,minmax(0,1fr)); padding:0 16px; }
    .sdpi-staff-dashboard-head { margin-left:16px; margin-right:16px; }
    .sdpi-role-confirmation { margin-left:16px; margin-right:16px; }
}
@media (max-width: 560px) {
    .sdpi-staff-points,
    .sdpi-demo-user-picker-grid,
    .sdpi-staff-module-grid { grid-template-columns:1fr; }
    .sdpi-staff-dashboard-head { align-items:flex-start; flex-direction:column; }
}

/* SDPI – Student active course/roll cards */
.sdpi-student-course-list { margin: 22px 0; }
.sdpi-student-course-list .sdpi-section-heading { margin-bottom: 12px; }
.sdpi-student-course-list .sdpi-section-heading span { color:#78a914; font-weight:800; font-size:14px; text-transform:uppercase; letter-spacing:.08em; }
.sdpi-student-course-list .sdpi-section-heading h2 { margin:4px 0 0; color:#1d4982; font-size:24px; }
.sdpi-student-course-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.sdpi-student-course-grid article { padding:16px; border:1px solid #d7e0e8; border-radius:14px; background:#fff; }
.sdpi-student-course-grid article > span { display:inline-block; margin-bottom:8px; padding:4px 8px; border-radius:999px; background:#f1f7fb; color:#1d4982; font-size:14px; font-weight:800; text-transform:uppercase; }
.sdpi-student-course-grid article strong { display:block; color:#25384a; line-height:1.35; }
.sdpi-student-course-grid article code { display:inline-block; margin-top:10px; padding:6px 8px; border-radius:7px; background:#f7fbe9; color:#1d4982; font-weight:800; }
@media(max-width:850px){.sdpi-student-course-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.sdpi-student-course-grid{grid-template-columns:1fr;}}

/* =========================================================
   SDPI – Learning & Practice Library
   ========================================================= */
.sdpi-practice-library,
.sdpi-practice-exercise-page {
    max-width: 1200px;
}
.sdpi-practice-stats,
.sdpi-practice-exercise-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin: 18px 0 28px;
}
.sdpi-practice-stats > div,
.sdpi-practice-exercise-summary > div {
    padding: 16px 18px;
    border: 1px solid #d7e0e8;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(29,73,130,.06);
}
.sdpi-practice-stats span,
.sdpi-practice-exercise-summary span {
    display: block;
    margin-bottom: 5px;
    color: #66788d;
    font-size:14px;
}
.sdpi-practice-stats strong,
.sdpi-practice-exercise-summary strong {
    color: #1d4982;
    font-size: 18px;
}
.sdpi-practice-section {
    margin: 34px 0;
}
.sdpi-resource-card-grid,
.sdpi-exercise-card-grid,
.sdpi-plan-level-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}
.sdpi-resource-card,
.sdpi-exercise-card,
.sdpi-plan-level-grid article {
    position: relative;
    padding: 20px;
    border: 1px solid #d7e0e8;
    border-top: 4px solid #a4ce3a;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(29,73,130,.07);
}
.sdpi-resource-card h3,
.sdpi-exercise-card h3,
.sdpi-plan-level-grid h3 {
    margin: 10px 0 8px;
    color: #1d4982;
    font-size: 19px;
    line-height: 1.35;
}
.sdpi-resource-card p,
.sdpi-exercise-card p,
.sdpi-plan-level-grid p {
    color: #5c6d7f;
}
.sdpi-resource-type,
.sdpi-exercise-card-head span,
.sdpi-plan-level-grid article > span {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 4px 10px;
    border-radius: 999px;
    background: #f0f7df;
    color: #4f7510;
    font-size:14px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.sdpi-resource-card > div,
.sdpi-exercise-meta,
.sdpi-exercise-card-head {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.sdpi-resource-card > div span,
.sdpi-exercise-meta span {
    padding: 5px 9px;
    border-radius: 8px;
    background: #f4f9fd;
    color: #37516c;
    font-size:14px;
}
.sdpi-resource-card a,
.sdpi-exercise-open,
.sdpi-document-reference,
.sdpi-practice-back {
    display: inline-flex;
    margin-top: 16px;
    color: #1d4982;
    font-weight: 800;
    text-decoration: none;
}
.sdpi-resource-card a:hover,
.sdpi-exercise-open:hover,
.sdpi-document-reference:hover,
.sdpi-practice-back:hover {
    color: #6f970b;
}
.sdpi-exercise-card-head {
    justify-content: space-between;
}
.sdpi-exercise-card small,
.sdpi-resource-card small {
    display: block;
    margin-top: 12px;
    color: #738296;
}
.sdpi-audio-pending {
    margin-top: 14px;
    padding: 10px 12px;
    border: 1px solid #f0c6c6;
    border-radius: 10px;
    background: #fff3f3;
    color: #a23b3b;
    font-weight: 700;
}
.sdpi-practice-filters {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}
.sdpi-practice-filters select {
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid #d7e0e8;
    border-radius: 10px;
    background: #fff;
    color: #1d3551;
}
.sdpi-plan-level-grid dl {
    margin: 16px 0 0;
}
.sdpi-plan-level-grid dl > div {
    padding: 10px 0;
    border-top: 1px solid #e7edf2;
}
.sdpi-plan-level-grid dt {
    color: #6a7b8d;
    font-size:14px;
    font-weight: 700;
    text-transform: uppercase;
}
.sdpi-plan-level-grid dd {
    margin: 4px 0 0;
    color: #243f5c;
}
.sdpi-empty-state {
    grid-column: 1 / -1;
    padding: 30px;
    border: 1px dashed #b9c7d4;
    border-radius: 14px;
    background: #f8fbfd;
    color: #52677d;
    text-align: center;
}
.sdpi-practice-attempt-form {
    margin-top: 22px;
    padding: 24px;
    border: 1px solid #d7e0e8;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(29,73,130,.08);
}
.sdpi-practice-attempt-form label > span {
    display: block;
    margin: 18px 0 8px;
    color: #1d4982;
    font-weight: 800;
}
.sdpi-practice-attempt-form textarea {
    width: 100%;
    min-height: 300px;
    padding: 16px;
    border: 1px solid #bdcbd8;
    border-radius: 12px;
    font: inherit;
    line-height: 1.65;
}
.sdpi-practice-attempt-form textarea:disabled {
    background: #f2f5f7;
}
.sdpi-practice-source-text,
.sdpi-reference-answer {
    max-height: 420px;
    overflow: auto;
    padding: 22px;
    border: 1px solid #d7e0e8;
    border-left: 5px solid #a4ce3a;
    border-radius: 14px;
    background: #f8fbfd;
    color: #273f57;
    font-size: 17px;
    line-height: 1.8;
}
.sdpi-practice-audio {
    padding: 18px;
    border: 1px solid #cfe4a1;
    border-left: 5px solid #a4ce3a;
    border-radius: 14px;
    background: #f7fbea;
}
.sdpi-practice-audio audio {
    display: block;
    width: 100%;
    margin: 12px 0 8px;
}
.sdpi-practice-timer {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 18px 0;
    padding: 14px 16px;
    border-radius: 12px;
    background: #f4f9fd;
}
.sdpi-practice-timer strong {
    margin-right: auto;
    color: #1d4982;
    font-size: 24px;
}
.sdpi-practice-result {
    margin: 22px 0;
    padding: 22px;
    border: 1px solid #cfe4a1;
    border-radius: 16px;
    background: #f8fce9;
}
.sdpi-practice-result > div {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}
.sdpi-practice-result span {
    padding: 12px;
    border-radius: 10px;
    background: #fff;
    color: #5d6f80;
}
.sdpi-practice-result strong {
    display: block;
    margin-top: 4px;
    color: #1d4982;
    font-size: 20px;
}
.sdpi-practice-result details {
    margin-top: 18px;
}
.sdpi-practice-instructions {
    margin-bottom: 18px;
    padding: 14px 16px;
    border-radius: 10px;
    background: #f0f7df;
    color: #365418;
}

@media (max-width: 900px) {
    .sdpi-practice-stats,
    .sdpi-practice-exercise-summary,
    .sdpi-resource-card-grid,
    .sdpi-exercise-card-grid,
    .sdpi-plan-level-grid,
    .sdpi-practice-result > div {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .sdpi-practice-stats,
    .sdpi-practice-exercise-summary,
    .sdpi-resource-card-grid,
    .sdpi-exercise-card-grid,
    .sdpi-plan-level-grid,
    .sdpi-practice-filters,
    .sdpi-practice-result > div {
        grid-template-columns: 1fr;
    }
    .sdpi-practice-attempt-form {
        padding: 16px;
    }
    .sdpi-practice-timer {
        align-items: stretch;
        flex-direction: column;
    }
}

/* =====================================================
   SDPI Digital Campus – MCQ / Online Courses v1.0.0
   ===================================================== */
.sdpi-mcq-app{font-family:Inter,"Segoe UI",Arial,sans-serif}.sdpi-mcq-test-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.sdpi-mcq-test-card{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:22px;border:1px solid #d7e0e8;border-radius:18px;background:#fff}.sdpi-mcq-test-card h3{margin:0;color:#1d4982;font-size:21px}.sdpi-mcq-test-card p{margin:0;color:#596b7d}.sdpi-mcq-test-card>div{display:flex;flex-wrap:wrap;gap:8px}.sdpi-mcq-test-card>div span{padding:6px 9px;border-radius:999px;background:#f4f9fd;color:#315a86;font-size:14px;font-weight:600}.sdpi-mcq-requirement{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:14px;font-weight:800}.sdpi-mcq-requirement.optional{background:#eef5fb;color:#1d4982}.sdpi-mcq-requirement.required{background:#eff8d8;color:#31550b}.sdpi-mcq-test-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px;padding:22px 24px;border-radius:18px;background:#1d4982;color:#fff}.sdpi-mcq-test-header h2,.sdpi-mcq-test-header p{color:#fff;margin:5px 0}.sdpi-mcq-test-header>div:last-child{min-width:120px;text-align:right}.sdpi-mcq-test-header strong,.sdpi-mcq-test-header small{display:block}.sdpi-mcq-question-form{display:grid;gap:16px}.sdpi-mcq-question{margin:0;padding:20px;border:1px solid #d7e0e8;border-radius:16px;background:#fff}.sdpi-mcq-question legend{display:flex;align-items:flex-start;gap:10px;padding:0 6px;color:#173b63;font-weight:700}.sdpi-mcq-question legend>span{display:inline-grid;place-items:center;min-width:28px;height:28px;border-radius:50%;background:#a4ce3a;color:#173b63}.sdpi-mcq-question>label{display:flex!important;align-items:center;gap:10px;margin:9px 0!important;padding:11px 12px;border:1px solid #e2e9ef;border-radius:12px;background:#f9fbfd;cursor:pointer}.sdpi-mcq-question>label:hover{border-color:#a4ce3a;background:#f7fbe9}.sdpi-mcq-question>label input{width:auto!important;min-height:auto!important;margin:0}.sdpi-mcq-question>label span{display:flex;align-items:center;gap:9px;color:#30465b}.sdpi-mcq-question>label b{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;background:#eaf1f7;color:#1d4982}.sdpi-mcq-result{display:grid;grid-template-columns:1.4fr auto 1fr;align-items:center;gap:22px;padding:24px;margin-bottom:20px;border:1px solid #d7e0e8;border-radius:18px;background:#f4f9fd}.sdpi-mcq-result.passed{border-left:6px solid #a4ce3a}.sdpi-mcq-result.failed{border-left:6px solid #c84d4d}.sdpi-mcq-result>span{grid-column:1/-1;color:#1d4982;font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.sdpi-mcq-result h2{margin:0;color:#1d4982}.sdpi-mcq-result>div{text-align:center}.sdpi-mcq-result>div strong{display:block;color:#1d4982;font-size:34px}.sdpi-mcq-result ul{margin:0;padding-left:20px}.sdpi-mcq-review-list{display:grid;gap:10px}.sdpi-mcq-review-list article{padding:13px 15px;border-left:4px solid #d7e0e8;border-radius:10px;background:#f8fafc}.sdpi-mcq-review-list article.is-correct{border-color:#a4ce3a}.sdpi-mcq-review-list article.is-wrong{border-color:#c84d4d}.sdpi-mcq-review-list p,.sdpi-mcq-review-list small{display:block;margin:5px 0 0;color:#586b7e}.sdpi-online-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.sdpi-online-course-grid article{padding:20px;border:1px solid #d7e0e8;border-radius:16px;background:#fff}.sdpi-online-course-grid article>span{color:#66809a;font-size:14px;text-transform:uppercase}.sdpi-online-course-grid h3{color:#1d4982}.sdpi-online-course-grid article>div{display:flex;justify-content:space-between;gap:10px;padding-top:12px;border-top:1px solid #e7edf2}@media(max-width:760px){.sdpi-mcq-test-grid,.sdpi-online-course-grid{grid-template-columns:1fr}.sdpi-mcq-test-header,.sdpi-mcq-result{grid-template-columns:1fr;flex-direction:column}.sdpi-mcq-test-header>div:last-child{text-align:left}.sdpi-mcq-result>span{grid-column:auto}}

/* =========================================================
   SDPI Digital Campus – Professional Staff Login v1.4.0
   ========================================================= */
body.sdpi-portal-page-staff-login .sdpi-scm-public-wrap.sdpi-staff-portal{
    max-width:1180px!important;
    padding:34px 24px 44px!important;
}
.sdpi-staff-login-stage{
    max-width:1120px;
    min-height:610px;
    margin:0 auto;
    padding:0;
    grid-template-columns:minmax(0,1.05fr) minmax(390px,.95fr);
    gap:0;
    align-items:stretch;
    overflow:hidden;
    border:1px solid #d4e0e9;
    border-radius:28px;
    background:#fff;
    box-shadow:0 24px 60px rgba(16,55,94,.14);
}
.sdpi-staff-login-copy{
    position:relative;
    overflow:hidden;
    padding:52px 48px;
    background:linear-gradient(145deg,#123864 0%,#1d4982 62%,#2a6aa9 100%);
    color:#fff;
}
.sdpi-staff-login-copy::before,.sdpi-staff-login-copy::after{
    content:"";
    position:absolute;
    border-radius:50%;
    pointer-events:none;
}
.sdpi-staff-login-copy::before{width:260px;height:260px;right:-125px;top:-100px;background:rgba(164,206,58,.14)}
.sdpi-staff-login-copy::after{width:180px;height:180px;left:-95px;bottom:-90px;background:rgba(255,255,255,.07)}
.sdpi-staff-login-copy>*{position:relative;z-index:1}
.sdpi-staff-login-copy .sdpi-campus-eyebrow{margin:0 0 15px;color:#dff19f;font-size:14px;letter-spacing:.08em;text-transform:uppercase}
.sdpi-staff-login-copy h1{margin:0 0 16px;color:#fff;font-size:clamp(34px,4vw,48px);line-height:1.08;letter-spacing:-.8px}
.sdpi-staff-login-copy>p{max-width:560px;margin:0;color:rgba(255,255,255,.86);font-size:16px;line-height:1.7}
.sdpi-staff-role-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:31px}
.sdpi-staff-role-cards article{display:flex;gap:11px;align-items:flex-start;padding:14px;border:1px solid rgba(255,255,255,.15);border-radius:14px;background:rgba(255,255,255,.08);backdrop-filter:blur(4px)}
.sdpi-staff-role-cards article>span{display:grid;place-items:center;width:37px;height:37px;flex:0 0 37px;border-radius:10px;background:rgba(164,206,58,.18);color:#dff19f;font-size:14px;font-weight:900}
.sdpi-staff-role-cards strong,.sdpi-staff-role-cards small{display:block}
.sdpi-staff-role-cards strong{color:#fff;font-size:14px}
.sdpi-staff-role-cards small{margin-top:3px;color:rgba(255,255,255,.7);font-size:14px;line-height:1.4}
.sdpi-staff-security-note{display:flex;align-items:center;gap:12px;margin-top:28px;padding-top:22px;border-top:1px solid rgba(255,255,255,.14)}
.sdpi-staff-security-note>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#a4ce3a;color:#123864;font-weight:900}
.sdpi-staff-security-note p{margin:0}.sdpi-staff-security-note strong,.sdpi-staff-security-note small{display:block}
.sdpi-staff-security-note strong{color:#fff;font-size:14px}.sdpi-staff-security-note small{margin-top:2px;color:rgba(255,255,255,.68);font-size:14px}
.sdpi-staff-login-column{display:flex;flex-direction:column;justify-content:center;padding:34px;background:linear-gradient(180deg,#fbfdff 0%,#f4f9fd 100%)}
.sdpi-staff-login-card{width:100%;max-width:470px;margin:0 auto;padding:29px!important;border-radius:20px!important;box-shadow:0 12px 34px rgba(29,73,130,.09)!important}
.sdpi-staff-login-card .sdpi-login-card-header{margin-bottom:20px}
.sdpi-staff-login-card .sdpi-login-card-header>span{display:block;margin-bottom:4px;color:#78a914;font-size:14px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.sdpi-staff-login-card .sdpi-login-card-header h2{font-size:29px!important}
.sdpi-staff-login-card .sdpi-title-mark{margin:10px auto!important}
.sdpi-staff-login-form{display:grid;gap:14px!important}
.sdpi-staff-login-form>label{display:block!important}
.sdpi-staff-login-form input{width:100%!important}
.sdpi-password-field{position:relative;display:block!important;margin:0!important}
.sdpi-password-field input{padding-right:76px!important}
.sdpi-password-toggle{position:absolute;right:7px;top:7px;bottom:7px;min-width:61px;border:0;border-radius:8px;background:#eef4fa;color:#1d4982;font-weight:800;cursor:pointer}
.sdpi-password-toggle:hover{background:#e4eef7}
.sdpi-login-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:-2px;font-size:14px}
.sdpi-login-options label{display:flex!important;align-items:center;gap:7px;color:#526779!important;font-weight:600!important}
.sdpi-login-options input{width:auto!important;min-height:0!important;margin:0!important}
.sdpi-login-options a{color:#1d4982;font-weight:800;text-decoration:none}
.sdpi-staff-login-submit{width:100%;margin-top:2px!important}
.sdpi-demo-user-picker{margin:0 0 17px;padding:0;border:1px solid #d7e0e8;border-radius:12px;background:#f4f9fd}
.sdpi-demo-user-picker summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;color:#1d4982;cursor:pointer;list-style:none}
.sdpi-demo-user-picker summary::-webkit-details-marker{display:none}
.sdpi-demo-user-picker summary small{padding:3px 7px;border-radius:999px;background:#edf7d7;color:#52730a;font-size:14px;font-weight:900;text-transform:uppercase}
.sdpi-demo-user-picker[open] summary{border-bottom:1px solid #d7e0e8}
.sdpi-demo-user-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:11px;margin:0}
.sdpi-demo-user-fill{padding:9px 10px;border-radius:9px;background:#fff}
.sdpi-demo-user-fill span{font-size:14px}.sdpi-demo-user-fill code{font-size:14px}
.sdpi-demo-note{display:block;padding:0 12px 11px;color:#67798a;font-size:14px}
.sdpi-staff-login-help{text-align:center;margin:13px 0 0;color:#6a7b8b;font-size:14px}
@media(max-width:900px){
    .sdpi-staff-login-stage{grid-template-columns:1fr;min-height:0}
    .sdpi-staff-login-copy{padding:34px 30px}.sdpi-staff-login-column{padding:26px}
}
@media(max-width:560px){
    body.sdpi-portal-page-staff-login .sdpi-scm-public-wrap.sdpi-staff-portal{padding:18px 12px 30px!important}
    .sdpi-staff-login-stage{border-radius:20px}.sdpi-staff-login-copy{padding:29px 22px}.sdpi-staff-login-copy h1{font-size:32px}
    .sdpi-staff-role-cards{grid-template-columns:1fr}.sdpi-staff-login-column{padding:18px}.sdpi-staff-login-card{padding:22px!important}
    .sdpi-login-options{align-items:flex-start;flex-direction:column}.sdpi-demo-user-picker-grid{grid-template-columns:1fr}
}

/* =========================================================
   SDPI Digital Campus v1.8.0 – Student Online Admission
   ========================================================= */
.sdpi-online-admission{max-width:1120px}.sdpi-admission-public-head{display:flex;justify-content:space-between;gap:20px;align-items:center}.sdpi-admission-public-head>div>span{display:block;margin-bottom:6px;color:#a4ce3a;font-size:14px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.sdpi-admission-public-head>strong{flex:0 0 auto;padding:8px 12px;border:1px solid rgba(255,255,255,.38);border-radius:999px;background:rgba(255,255,255,.12);font-size:14px;letter-spacing:.06em}.sdpi-public-demo-login{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;margin:0 0 20px;padding:18px 20px;border:1px solid #cfe2a2;border-left:5px solid #a4ce3a;border-radius:14px;background:#f7fce9}.sdpi-public-demo-login span{display:block;color:#6d921a;font-size:14px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.sdpi-public-demo-login strong{display:block;margin:4px 0;color:#1d4982;font-size:20px}.sdpi-public-demo-login p{margin:0;color:#5f6f7c}.sdpi-public-demo-credentials{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sdpi-public-demo-credentials code{padding:9px 10px;border:1px solid #d7e0e8;border-radius:8px;background:#fff;color:#1d4982;font-weight:800}.sdpi-public-admission-form{padding:0;overflow:hidden}.sdpi-public-login-fields{margin:20px 20px 0;padding:16px;border:1px solid #d7e0e8;border-radius:12px;background:#f4f9fd}.sdpi-public-login-fields legend{padding:0 8px;color:#1d4982;font-weight:800}.sdpi-public-form-steps{display:flex;gap:7px;overflow-x:auto;padding:18px 20px 12px;border-bottom:1px solid #d7e0e8;background:#f8fbfd}.sdpi-public-form-steps button{flex:0 0 auto;border:1px solid #d7e0e8;border-radius:9px;padding:9px 12px;background:#fff;color:#1d4982;font-weight:700;cursor:pointer}.sdpi-public-form-steps button.active{border-color:#1d4982;background:#1d4982;color:#fff}.sdpi-public-progress{display:flex;gap:14px;align-items:center;padding:10px 20px;border-bottom:1px solid #e4ebf1;background:#fff}.sdpi-public-progress>span{min-width:88px;color:#1d4982;font-size:14px;font-weight:800}.sdpi-public-progress>i{display:block;flex:1;height:8px;overflow:hidden;border-radius:999px;background:#dfe7ee}.sdpi-public-progress>i>b{display:block;width:16.66%;height:100%;border-radius:inherit;background:#a4ce3a;transition:width .2s ease}.sdpi-public-panel{display:none;padding:24px}.sdpi-public-panel.active{display:block}.sdpi-public-panel-head{margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid #e5edf4}.sdpi-public-panel-head>span{display:block;color:#79a918;font-size:14px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.sdpi-public-panel-head h3{margin:5px 0 4px;color:#1d4982;font-size:24px}.sdpi-public-panel-head p{margin:0;color:#607181}.sdpi-public-step-controls{display:flex;justify-content:space-between;gap:12px;margin:24px -24px -24px;padding:14px 24px;border-top:1px solid #d7e0e8;background:#f7fafc}.sdpi-public-address-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.sdpi-public-qualification-list{display:grid;gap:12px;margin-top:16px}.sdpi-public-qualification-list article{display:grid;grid-template-columns:180px repeat(3,minmax(0,1fr));gap:12px;align-items:end;padding:15px;border:1px solid #d7e0e8;border-radius:12px;background:#f8fbfd}.sdpi-public-qualification-list article>strong{align-self:center;color:#1d4982}.sdpi-public-qualification-list label{margin:0}.sdpi-public-document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.sdpi-public-document-grid label{padding:14px;border:1px solid #d7e0e8;border-radius:12px;background:#f8fbfd}.sdpi-public-document-grid small{display:block;margin-top:6px;color:#6a7a87;font-weight:400}.sdpi-public-info-note{display:flex;gap:10px;align-items:flex-start;margin-top:18px;padding:14px 16px;border:1px solid #c7d9e8;border-left:5px solid #1d4982;border-radius:11px;background:#f4f9fd}.sdpi-public-info-note strong{color:#1d4982}.sdpi-public-info-note span{color:#566a7b}.sdpi-public-scheme-toggle,.sdpi-public-declaration{padding:15px;border:1px solid #d7e0e8;border-radius:12px;background:#f8fbfd}.sdpi-public-review{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}.sdpi-public-review article{padding:15px;border:1px solid #d7e0e8;border-left:4px solid #a4ce3a;border-radius:11px;background:#fff}.sdpi-public-review span,.sdpi-public-review strong,.sdpi-public-review small{display:block}.sdpi-public-review span{color:#6a7a87;font-size:14px;font-weight:800;text-transform:uppercase}.sdpi-public-review strong{margin-top:5px;color:#1d4982;font-size:17px}.sdpi-public-review small{margin-top:3px;color:#6a7a87}.sdpi-public-submit{display:block;width:100%;margin-top:18px;padding:14px 20px}.sdpi-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}.sdpi-online-admission input[readonly]{background:#f3f6f8;color:#526273}.sdpi-online-admission fieldset[hidden],.sdpi-online-admission [hidden]{display:none!important}
@media(max-width:850px){.sdpi-admission-public-head,.sdpi-public-demo-login{align-items:flex-start;grid-template-columns:1fr;flex-direction:column}.sdpi-public-qualification-list article{grid-template-columns:1fr 1fr}.sdpi-public-qualification-list article>strong{grid-column:1/-1}.sdpi-public-address-grid,.sdpi-public-document-grid,.sdpi-public-review{grid-template-columns:1fr}}
@media(max-width:560px){.sdpi-public-panel{padding:17px}.sdpi-public-step-controls{margin-left:-17px;margin-right:-17px;padding-left:17px;padding-right:17px}.sdpi-public-qualification-list article{grid-template-columns:1fr}.sdpi-public-info-note{flex-direction:column}.sdpi-public-demo-credentials{align-items:stretch;flex-direction:column}.sdpi-public-demo-credentials .sdpi-scm-secondary{width:100%}}

/* SDPI – Prospective Student Inquiry Status */
.sdpi-inquiry-status-dashboard .sdpi-student-avatar.initials{display:flex;align-items:center;justify-content:center;background:#f1f9dd;color:#1d4982;font-weight:900;font-size:20px;border:1px solid #d7e0e8}.sdpi-inquiry-status-dashboard .sdpi-module-banner{margin-top:18px}.sdpi-inquiry-status-dashboard .sdpi-student-profile-status{white-space:nowrap}


/* =========================================================
   SDPI Digital Campus v1.12.5 - Shared Public Component Standard
   ========================================================= */
.sdpi-scm-public-wrap{font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.55;color:#24384a}
.sdpi-scm-public-wrap p,.sdpi-scm-public-wrap li,.sdpi-scm-public-wrap td{font-size:16px;line-height:1.55}
.sdpi-scm-public-wrap small,.sdpi-scm-public-wrap .description,.sdpi-scm-public-wrap [class*="help"],.sdpi-scm-public-wrap [class*="meta"]{font-size:14px!important;line-height:1.5}
.sdpi-scm-public-wrap label,.sdpi-scm-public-wrap legend{font-size:15px;font-weight:700}
.sdpi-scm-public-wrap input:not([type="checkbox"]):not([type="radio"]),.sdpi-scm-public-wrap select,.sdpi-scm-public-wrap textarea{font-size:16px;line-height:1.45}
.sdpi-scm-public-wrap button,.sdpi-scm-public-wrap .button,.sdpi-scm-public-wrap [class*="button"]{font-size:16px;font-weight:700}
.sdpi-scm-public-wrap table th{font-size:15px;font-weight:800}
.sdpi-scm-public-wrap code{font-size:14px}
.sdpi-scm-public-wrap h1{font-size:clamp(30px,3vw,40px);line-height:1.18}
.sdpi-scm-public-wrap h2{font-size:clamp(25px,2.3vw,32px);line-height:1.25}
.sdpi-scm-public-wrap h3{font-size:clamp(20px,1.8vw,24px);line-height:1.3}

/* v1.12.43 — one connected Enquiry → Application → Payment → Admission journey */
.sdpi-admission-entry-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr);gap:18px;align-items:start}
.sdpi-enquiry-start-card,.sdpi-admission-continue-card{border:1px solid #d9e3eb;border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(29,73,130,.06);overflow:hidden}
.sdpi-enquiry-start-card{border-top:4px solid #a4ce3a}
.sdpi-admission-continue-card{border-top:4px solid #1d4982;padding:20px}
.sdpi-enquiry-start-card .sdpi-public-panel-head{margin:0;padding:20px 20px 4px}
.sdpi-enquiry-start-card .sdpi-scm-grid{padding:14px 20px 8px}
.sdpi-enquiry-start-card .sdpi-scm-check,.sdpi-enquiry-start-card>.sdpi-scm-primary{margin-left:20px;margin-right:20px}
.sdpi-admission-continue-card h3{margin:4px 0 8px;color:#1d4982;font-size:20px}
.sdpi-admission-continue-card p{margin:0 0 16px;color:#5c6f80;line-height:1.55}
.sdpi-admission-continue-card .sdpi-scm-secondary{display:flex;justify-content:center;width:100%;box-sizing:border-box}
.sdpi-fee-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.sdpi-fee-choice-grid>label{display:flex;align-items:flex-start;gap:10px;padding:14px;border:1px solid #d9e3eb;border-radius:11px;background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.sdpi-fee-choice-grid>label:hover{border-color:#a4ce3a;box-shadow:0 7px 18px rgba(29,73,130,.08);transform:translateY(-1px)}
.sdpi-fee-choice-grid>label:has(input:checked){border-color:#1d4982;box-shadow:0 0 0 2px rgba(29,73,130,.08)}
.sdpi-fee-choice-grid input[type=radio]{margin-top:4px;flex:0 0 auto}
.sdpi-fee-choice-grid>label>span{display:grid;gap:4px;width:100%}
.sdpi-fee-choice-grid strong{color:#1d4982;font-size:15px}
.sdpi-fee-choice-grid b{color:#315d17;font-size:18px}
.sdpi-fee-choice-grid small{color:#687b8b;line-height:1.45}
.sdpi-fee-choice-grid input[type=number]{width:100%;box-sizing:border-box;margin-top:3px}
@media(max-width:760px){.sdpi-admission-entry-grid,.sdpi-fee-choice-grid{grid-template-columns:1fr}}


/* =========================================================
   SDPI Digital Campus v1.12.46 – Fee Preference UI hotfix
   Fix generic form input width leaking into radio controls.
   ========================================================= */
.sdpi-admission-fee-choice{overflow:visible}
.sdpi-admission-fee-choice .sdpi-fee-course-field{margin-bottom:12px}
.sdpi-course-fee-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.35fr);gap:8px 20px;align-items:center;margin:0 0 18px;padding:15px 17px;border:1px solid #d7e0e8;border-left:5px solid #a4ce3a;border-radius:12px;background:#f8fbfd}
.sdpi-course-fee-summary>div{min-width:0}
.sdpi-course-fee-summary span{display:block;margin:0 0 3px;color:#687b8b;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.sdpi-course-fee-summary strong{display:block;overflow-wrap:anywhere;color:#1d4982;font-size:17px;line-height:1.35}
.sdpi-course-fee-summary>div:nth-child(2){text-align:right}
.sdpi-course-fee-summary>div:nth-child(2) strong{color:#315d17;font-size:22px}
.sdpi-course-fee-summary>small{grid-column:1/-1;color:#687b8b;line-height:1.45}
.sdpi-fee-choice-fieldset{min-width:0;margin:0;padding:0;border:0}
.sdpi-fee-choice-fieldset>legend{margin:0 0 10px;padding:0;color:#1d4982;font-weight:800}
.sdpi-admission-fee-choice .sdpi-fee-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 16px}
.sdpi-admission-fee-choice .sdpi-fee-choice-grid>.sdpi-fee-option{display:grid!important;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:11px;min-width:0;margin:0!important;padding:15px 16px;border:1px solid #d9e3eb;border-radius:12px;background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease,background .15s ease}
.sdpi-admission-fee-choice .sdpi-fee-choice-grid>.sdpi-fee-option:hover{border-color:#a4ce3a;box-shadow:0 7px 18px rgba(29,73,130,.08);transform:translateY(-1px)}
.sdpi-admission-fee-choice .sdpi-fee-choice-grid>.sdpi-fee-option:focus-within{outline:2px solid rgba(164,206,58,.55);outline-offset:2px}
.sdpi-admission-fee-choice .sdpi-fee-choice-grid>.sdpi-fee-option.is-selected,.sdpi-admission-fee-choice .sdpi-fee-choice-grid>.sdpi-fee-option:has(input[type=radio]:checked){border-color:#7daf1d;background:#f8fcef;box-shadow:0 0 0 2px rgba(164,206,58,.16)}
.sdpi-admission-fee-choice .sdpi-fee-choice-grid input[type=radio]{appearance:auto!important;-webkit-appearance:radio!important;display:block!important;position:static!important;float:none!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;max-width:18px!important;margin:3px 0 0!important;padding:0!important;border-radius:50%!important;box-shadow:none!important;flex:none!important}
.sdpi-admission-fee-choice .sdpi-fee-choice-grid>.sdpi-fee-option>span{display:grid!important;grid-template-columns:1fr auto;gap:4px 12px;min-width:0;width:auto!important;margin:0!important}
.sdpi-admission-fee-choice .sdpi-fee-choice-grid strong{min-width:0;color:#1d4982;font-size:15px;line-height:1.35;overflow-wrap:normal;word-break:normal}
.sdpi-admission-fee-choice .sdpi-fee-choice-grid b{justify-self:end;color:#315d17;font-size:18px;line-height:1.3;white-space:nowrap}
.sdpi-admission-fee-choice .sdpi-fee-choice-grid small{grid-column:1/-1;color:#687b8b;font-weight:400;line-height:1.45}
.sdpi-admission-fee-choice .sdpi-fee-option-custom input[type=number]{grid-column:1/-1;width:100%!important;min-width:0;margin:5px 0 1px!important;padding:10px 11px!important}
@media(max-width:760px){.sdpi-admission-fee-choice .sdpi-fee-choice-grid{grid-template-columns:1fr}.sdpi-course-fee-summary{grid-template-columns:1fr}.sdpi-course-fee-summary>div:nth-child(2){text-align:left}.sdpi-course-fee-summary>small{grid-column:auto}}
@media(max-width:480px){.sdpi-admission-fee-choice .sdpi-fee-choice-grid>.sdpi-fee-option{padding:13px}.sdpi-admission-fee-choice .sdpi-fee-choice-grid>.sdpi-fee-option>span{grid-template-columns:1fr}.sdpi-admission-fee-choice .sdpi-fee-choice-grid b{justify-self:start}}

/* v1.12.54 typing navigation / language-control hardening */
[data-hindi-font-control][hidden],[data-english-font-control][hidden]{display:none!important}.sdpi-typing-test-actions,.sdpi-typing-result-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px}.sdpi-typing-result-actions{margin-top:18px}

/* v1.12.56 typing workspace: keep reference readable without pushing the typing box below the fold. */
.sdpi-test-screen .sdpi-passage-box{max-height:300px;overflow:auto;scrollbar-gutter:stable}
.sdpi-test-screen .sdpi-typing-label{display:block;position:relative}
.sdpi-test-screen .sdpi-typing-label textarea{min-height:220px;max-height:42vh;resize:vertical}
.sdpi-typing-test-actions,.sdpi-typing-result-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:12px}
@media(min-width:960px){.sdpi-test-screen{scroll-margin-top:90px}.sdpi-test-screen .sdpi-passage-box{max-height:260px}.sdpi-test-screen .sdpi-typing-label textarea{min-height:240px}}
@media(max-width:760px){.sdpi-test-screen .sdpi-passage-box{max-height:220px}.sdpi-test-screen .sdpi-typing-label textarea{min-height:200px;max-height:none}.sdpi-typing-test-actions>*{flex:1 1 180px}}

/* v1.12.60 - compact typing post-exam review */
.sdpi-typing-detailed-review{margin-top:18px;border:1px solid #d9e2ec;border-radius:12px;padding:16px;background:#f8fafc}
.sdpi-typing-review-codes{font-size:12px;color:#526879;margin:0 0 12px;word-break:break-word}
.sdpi-typing-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sdpi-typing-review-text{margin-top:7px;padding:12px;border:1px solid #d8e0ea;border-radius:8px;background:#fff;line-height:1.7;max-height:300px;overflow:auto}
.sdpi-typing-review-text mark{background:#fff0a6;padding:1px 2px;border-radius:3px}
.sdpi-typing-review-text del{background:#ffe1e1;text-decoration:line-through;padding:1px 2px}
.sdpi-typing-review-text ins{background:#dcfce7;text-decoration:none;padding:1px 2px}
.sdpi-typing-review-summary{margin:12px 0 0;font-size:13px;color:#42566b}
@media(max-width:760px){.sdpi-typing-review-grid{grid-template-columns:1fr}}

/* v1.12.61 — compact live Student Lifecycle and permanent academic records */
.sdpi-live-lifecycle{margin:18px 0;padding:18px;border:1px solid #d8e2eb;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(29,73,130,.055)}
.sdpi-live-lifecycle .sdpi-section-heading{margin-bottom:14px}
.sdpi-live-lifecycle .sdpi-section-heading>span{display:block;margin-bottom:3px;color:#5f7420;font-size:12px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.sdpi-live-lifecycle .sdpi-section-heading h2{margin:0 0 4px;color:#1d4982;font-size:23px}
.sdpi-live-lifecycle .sdpi-section-heading p{margin:0;color:#687b8b;font-size:14px}
.sdpi-live-lifecycle-grid{display:grid;grid-template-columns:repeat(7,minmax(112px,1fr));gap:10px}
.sdpi-live-lifecycle-grid article{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;align-items:center;min-width:0;min-height:94px;padding:12px;border:1px solid #d7e0e8;border-radius:11px;background:#fbfdff}
.sdpi-live-lifecycle-grid article>span{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#eaf1f7;color:#1d4982;font-size:13px;font-weight:900}
.sdpi-live-lifecycle-grid article strong{min-width:0;color:#1d4982;font-size:14px;line-height:1.3}
.sdpi-live-lifecycle-grid article small{min-width:0;color:#687b8b;font-size:12px;line-height:1.3;overflow-wrap:anywhere}
.sdpi-live-lifecycle-grid article.is-complete{border-color:#b9d57b;background:#f6fbe9}
.sdpi-live-lifecycle-grid article.is-complete>span{background:#dceead;color:#355c08}
.sdpi-live-lifecycle-grid article.is-current{border-color:#6f98c4;background:#f2f7fc;box-shadow:0 0 0 2px rgba(29,73,130,.08)}
.sdpi-live-lifecycle-grid article.is-current>span{background:#1d4982;color:#fff}
.sdpi-live-lifecycle-grid article.is-blocked{border-color:#e8c7a2;background:#fff8ef}
.sdpi-live-lifecycle-grid article.is-blocked>span{background:#f6ddbf;color:#865015}
.sdpi-lifecycle-blockers{margin-top:12px;padding:12px 14px;border-left:4px solid #d99435;border-radius:8px;background:#fff8ef;color:#654117}
.sdpi-lifecycle-blockers strong{display:block;margin-bottom:5px}
.sdpi-lifecycle-blockers ul{margin:0 0 0 18px;padding:0}
.sdpi-lifecycle-blockers li{margin:3px 0}
.sdpi-student-documents{margin:20px 0;padding:18px;border:1px solid #d8e2eb;border-radius:16px;background:#fff}
.sdpi-student-document-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.sdpi-student-document-grid article{display:flex;flex-direction:column;gap:7px;min-width:0;padding:15px;border:1px solid #d8e2eb;border-radius:12px;background:#fbfdff}
.sdpi-student-document-grid article>span{color:#5f7420;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.sdpi-student-document-grid article strong{color:#1d4982;font-size:16px;overflow-wrap:anywhere}
.sdpi-student-document-grid article small,.sdpi-student-document-grid article p{margin:0;color:#687b8b;font-size:13px;line-height:1.45}
.sdpi-student-document-grid article code{display:block;max-width:100%;overflow-wrap:anywhere;white-space:normal}
.sdpi-student-document-grid .sdpi-scm-primary{align-self:flex-start;margin-top:auto}
@media(max-width:1180px){.sdpi-live-lifecycle-grid{grid-template-columns:repeat(4,minmax(120px,1fr))}.sdpi-student-document-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.sdpi-live-lifecycle{padding:14px}.sdpi-live-lifecycle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sdpi-student-document-grid{grid-template-columns:1fr}}
@media(max-width:430px){.sdpi-live-lifecycle-grid{grid-template-columns:1fr}.sdpi-live-lifecycle-grid article{min-height:76px}}

/* v1.12.61 — compact simple-English Student Dashboard help */
.sdpi-student-howto{margin:14px 0;padding:0;overflow:hidden}.sdpi-student-howto summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;list-style:none}.sdpi-student-howto summary::-webkit-details-marker{display:none}.sdpi-student-howto summary span{font-size:12px;font-weight:700;opacity:.7}.sdpi-student-howto[open] summary{border-bottom:1px solid rgba(15,43,77,.1)}.sdpi-student-howto ol{margin:0;padding:14px 20px 16px 38px}.sdpi-student-howto li{margin:6px 0;line-height:1.45}

/* v1.12.61 — real Student Portal service summaries */
.sdpi-student-services-overview{margin:18px 0}.sdpi-student-service-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.sdpi-student-service-grid article{min-height:106px;padding:14px;border:1px solid rgba(15,43,77,.12);border-radius:12px;background:#fff;display:flex;flex-direction:column;gap:6px}.sdpi-student-service-grid article span{font-size:12px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;opacity:.65}.sdpi-student-service-grid article strong{font-size:17px;line-height:1.25}.sdpi-student-service-grid article small{line-height:1.4;opacity:.75}.sdpi-student-service-grid article.is-warning{border-color:#e3b33d;background:#fffaf0}.sdpi-student-receipts{margin-top:12px;border:1px solid rgba(15,43,77,.12);border-radius:12px;background:#fff;overflow:hidden}.sdpi-student-receipts summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;padding:13px 15px}.sdpi-student-receipts[open] summary{border-bottom:1px solid rgba(15,43,77,.1)}.sdpi-student-receipts .sdpi-table-scroll{padding:0 12px 12px}.sdpi-student-receipts table{width:100%;border-collapse:collapse}.sdpi-student-receipts th,.sdpi-student-receipts td{padding:9px 8px;text-align:left;border-bottom:1px solid rgba(15,43,77,.08);white-space:nowrap}
@media(max-width:1100px){.sdpi-student-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.sdpi-student-service-grid{grid-template-columns:1fr}}

/* v1.12.64 — save-before-next / continue-later admission UX */
.sdpi-public-progress>em{flex:0 0 auto;min-width:58px;color:#6a7a87;font-size:12px;font-style:normal;font-weight:800;text-align:right}.sdpi-public-progress>em.is-error{color:#b42318}.sdpi-public-step-controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.sdpi-public-step-controls>:last-child{justify-self:end}.sdpi-public-step-controls .sdpi-save-later{justify-self:center}.sdpi-application-next-stage{display:grid;gap:3px;margin:0 0 16px;padding:15px 16px;border:1px solid #d6e2eb;border-left:5px solid #a4ce3a;border-radius:12px;background:#f8fbfd}.sdpi-application-next-stage.is-pending{border-left-color:#e8a317;background:#fffaf0}.sdpi-application-next-stage span{color:#6b7d8d;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.sdpi-application-next-stage strong{color:#1d4982;font-size:18px}.sdpi-application-next-stage small{color:#5f7180}.sdpi-admission-saved-state .sdpi-scm-secondary{display:inline-flex;margin:4px 6px 4px 0}
@media(max-width:640px){.sdpi-public-step-controls{grid-template-columns:1fr 1fr}.sdpi-public-step-controls .sdpi-save-later{grid-column:1/-1;grid-row:1;justify-self:stretch}.sdpi-public-step-controls .sdpi-save-later+*{justify-self:end}.sdpi-public-progress>em{display:none}}

/* v1.12.71 — controlled Demo Admission clarity */
.sdpi-demo-admission-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid rgba(154,52,18,.16)}
.sdpi-demo-admission-tools span{font-size:13px;line-height:1.4}
.sdpi-demo-admission-tools .sdpi-scm-secondary{margin:0!important;white-space:nowrap}
.sdpi-admin-demo-switch{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.sdpi-admin-demo-switch .sdpi-demo-admission-tools{margin:0;padding:0;border:0}
.sdpi-demo-catalogue-note{margin:0 0 14px}
@media(max-width:640px){.sdpi-demo-admission-tools,.sdpi-admin-demo-switch{align-items:stretch}.sdpi-demo-admission-tools .sdpi-scm-secondary{width:100%;justify-content:center}}

/* v1.12.74 — public/student rectangular enterprise normalization */
.sdpi-online-admission,.sdpi-staff-login-shell,.sdpi-student-portal,.sdpi-public-workshop{--sdpi-public-radius:6px;--sdpi-public-control-radius:4px}
.sdpi-online-admission .sdpi-card,.sdpi-online-admission fieldset,.sdpi-online-admission .sdpi-public-demo-login,.sdpi-online-admission .sdpi-public-panel,.sdpi-student-portal .sdpi-card,.sdpi-public-workshop .sdpi-card{border-radius:var(--sdpi-public-radius)!important}
.sdpi-online-admission button,.sdpi-online-admission input:not([type=checkbox]):not([type=radio]),.sdpi-online-admission select,.sdpi-online-admission textarea,.sdpi-student-portal button,.sdpi-student-portal input:not([type=checkbox]):not([type=radio]),.sdpi-student-portal select,.sdpi-student-portal textarea,.sdpi-public-workshop button,.sdpi-public-workshop input:not([type=checkbox]):not([type=radio]),.sdpi-public-workshop select,.sdpi-public-workshop textarea,.sdpi-online-admission .sdpi-pill,.sdpi-student-portal .sdpi-pill{border-radius:var(--sdpi-public-control-radius)!important}
.sdpi-online-admission input:not([type=checkbox]):not([type=radio]),.sdpi-online-admission select,.sdpi-student-portal input:not([type=checkbox]):not([type=radio]),.sdpi-student-portal select,.sdpi-public-workshop input:not([type=checkbox]):not([type=radio]),.sdpi-public-workshop select{min-height:38px}
.sdpi-online-admission .sdpi-public-form-steps{gap:5px;padding:12px 16px 9px}.sdpi-online-admission .sdpi-public-form-steps button{border-radius:4px!important;padding:7px 10px}
.sdpi-online-admission .sdpi-public-panel{padding:18px}.sdpi-online-admission .sdpi-public-step-controls{margin:18px -18px -18px;padding:11px 18px}


/* v1.12.75: DD/MM/YYYY display with a real calendar button on public admission. */
.sdpi-online-admission .sdpi-date-control{position:relative;display:flex;align-items:center;width:100%;min-width:0}
.sdpi-online-admission .sdpi-date-control .sdpi-date-display{width:100%;padding-right:44px!important}
.sdpi-online-admission .sdpi-date-picker-button{position:absolute;right:5px;top:50%;transform:translateY(-50%);z-index:2;width:34px;height:34px;min-height:34px!important;padding:0!important;border:0!important;background:transparent!important;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border-radius:4px!important;color:#234e74;box-shadow:none!important}
.sdpi-online-admission .sdpi-date-picker-button:hover,.sdpi-online-admission .sdpi-date-picker-button:focus{background:#edf5fa!important;color:#153b5d;outline:2px solid rgba(52,118,155,.18)}
.sdpi-online-admission .sdpi-date-picker-button svg{width:18px;height:18px;fill:currentColor;pointer-events:none}
.sdpi-online-admission .sdpi-date-native-picker{position:absolute!important;right:5px!important;top:50%!important;left:auto!important;bottom:auto!important;transform:translateY(-50%);width:34px!important;height:34px!important;min-height:34px!important;opacity:0!important;pointer-events:none!important;padding:0!important;border:0!important}

/* v1.12.75: keep public admission dates compact and expose native calendar picker. */
.sdpi-online-admission input[type="date"]{min-height:42px;line-height:1.2;padding-right:10px;cursor:pointer;color:#173a5e;background:#fff;color-scheme:light}
.sdpi-online-admission input[type="date"]::-webkit-calendar-picker-indicator{opacity:1;cursor:pointer;margin-left:6px}
.sdpi-online-admission input[type="date"]:focus{outline:0;border-color:#34769b;box-shadow:0 0 0 3px rgba(52,118,155,.12)}

/* v1.12.75 UAT hardening — public admission payment submission */
.sdpi-online-admission .sdpi-public-payment-panel{margin:14px 0 18px;padding:16px;border:1px solid #d7e3ec;border-left:4px solid #1d4982;border-radius:10px;background:#f8fbfd}
.sdpi-online-admission .sdpi-public-payment-panel .sdpi-public-panel-head{margin-bottom:12px}
.sdpi-online-admission .sdpi-qr-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:12px 0 15px}
.sdpi-online-admission .sdpi-qr-choice{display:flex!important;align-items:center;gap:10px;margin:0!important;padding:10px;border:1px solid #d6e1eb;border-radius:8px;background:#fff;cursor:pointer}
.sdpi-online-admission .sdpi-qr-choice:has(input:checked){border-color:#1d4982;box-shadow:0 0 0 2px rgba(29,73,130,.10)}
.sdpi-online-admission .sdpi-qr-choice input{width:auto!important;margin:0!important}
.sdpi-online-admission .sdpi-qr-choice img{width:72px;height:72px;object-fit:contain;border:1px solid #e1e8ee;border-radius:6px;background:#fff}
.sdpi-online-admission .sdpi-qr-choice span{display:flex;flex-direction:column;gap:3px;min-width:0}.sdpi-online-admission .sdpi-qr-choice small{color:#627589;overflow-wrap:anywhere}
@media(max-width:680px){.sdpi-online-admission .sdpi-qr-choice-grid{grid-template-columns:1fr}}


/* v1.12.76 — public/student portal stabilization */
.sdpi-scm-public-wrap,.sdpi-scm-public-wrap *,.sdpi-online-admission,.sdpi-online-admission *{box-sizing:border-box}
.sdpi-scm-public-wrap,.sdpi-online-admission{max-width:100%;min-width:0;overflow-x:clip}
.sdpi-scm-public-wrap>*,.sdpi-online-admission>*,.sdpi-online-admission .sdpi-card,
.sdpi-online-admission .sdpi-form-grid,.sdpi-online-admission .sdpi-grid-2,.sdpi-online-admission fieldset{max-width:100%;min-width:0}
.sdpi-scm-public-wrap h1,.sdpi-scm-public-wrap h2,.sdpi-scm-public-wrap h3,.sdpi-scm-public-wrap p,
.sdpi-scm-public-wrap label,.sdpi-scm-public-wrap small,.sdpi-online-admission h1,.sdpi-online-admission h2,
.sdpi-online-admission h3,.sdpi-online-admission p,.sdpi-online-admission label,.sdpi-online-admission small{overflow-wrap:anywhere}
.sdpi-scm-public-wrap input,.sdpi-scm-public-wrap select,.sdpi-scm-public-wrap textarea,
.sdpi-online-admission input,.sdpi-online-admission select,.sdpi-online-admission textarea{max-width:100%}
.sdpi-online-admission .sdpi-form-grid>*,.sdpi-online-admission .sdpi-grid-2>*{min-width:0}
@media(max-width:782px){.sdpi-scm-public-wrap,.sdpi-online-admission{overflow-x:hidden}}

/* =========================================================
   v1.12.96 — Final Typing Scope
   Focus workspace + auto-follow reference + tutor keyboard.
   Final printed-reference mode intentionally hides all aids.
   ========================================================= */
body.sdpi-typing-focus-active{overflow:hidden!important}
.sdpi-typing-app.is-running{position:fixed!important;inset:0!important;z-index:2147483000!important;width:100vw!important;height:100dvh!important;max-width:none!important;margin:0!important;padding:10px 14px!important;overflow:auto!important;background:#f3f7fa!important;color:#173a5e}
.sdpi-typing-app.is-running .sdpi-scm-header,.sdpi-typing-app.is-running [data-login-panel],.sdpi-typing-app.is-running [data-result-panel]{display:none!important}
.sdpi-typing-app.is-running .sdpi-test-screen{display:flex!important;flex-direction:column;gap:10px;min-height:calc(100dvh - 20px);margin:0 auto;max-width:1500px;width:100%}
.sdpi-typing-app.is-running .sdpi-test-meta{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;flex:0 0 auto;margin:0}
.sdpi-typing-app.is-running .sdpi-test-meta>div{min-width:0;padding:7px 9px;border:1px solid #d5e0e9;border-radius:6px;background:#fff}
.sdpi-typing-app.is-running .sdpi-test-meta span{display:block;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#687b8b}
.sdpi-typing-app.is-running .sdpi-test-meta strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;color:#173a5e}
.sdpi-typing-app.is-running .sdpi-passage-box{display:flex;flex-direction:column;flex:0 0 min(34vh,330px);max-height:none!important;overflow:hidden!important;margin:0;padding:10px 12px;border:1px solid #cfdce7;border-radius:7px;background:#fff}
.sdpi-typing-app.is-running .sdpi-passage-box h3{flex:0 0 auto;margin:0 0 7px;font-size:14px;color:#173a5e}
.sdpi-typing-app .sdpi-passage-scroll{min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;padding:3px 5px 7px 2px;scroll-behavior:smooth}
.sdpi-typing-app .sdpi-typing-target[data-passage]{margin:0;white-space:pre-wrap;word-break:normal;overflow-wrap:break-word;font-size:19px;line-height:1.85;user-select:none}
.sdpi-typing-app .sdpi-ref-char{border-radius:2px;transition:background-color .08s ease,color .08s ease,box-shadow .08s ease}
.sdpi-typing-app .sdpi-ref-char.is-correct{background:#e7f7e9;color:#176b2c}
.sdpi-typing-app .sdpi-ref-char.is-wrong{background:#ffe8e8;color:#a61b1b;text-decoration:underline;text-decoration-thickness:1px}
.sdpi-typing-app .sdpi-ref-char.is-current{box-shadow:inset 0 -3px 0 #2f6fa6;background:#e8f2fb}
.sdpi-typing-app.is-running .sdpi-typing-label{display:flex!important;flex-direction:column;flex:1 1 30vh;min-height:230px;margin:0}
.sdpi-typing-app.is-running .sdpi-typing-label>span{flex:0 0 auto;margin:0 0 5px;font-size:13px;font-weight:800;color:#173a5e}
.sdpi-typing-app.is-running .sdpi-typing-label textarea{flex:1 1 auto;width:100%;min-height:220px!important;max-height:none!important;resize:none!important;padding:14px 16px!important;border:2px solid #6f98c4;border-radius:7px!important;background:#fff!important;font-size:20px;line-height:1.8;box-shadow:0 3px 14px rgba(29,73,130,.07)}
.sdpi-typing-app.is-running .sdpi-typing-label textarea:focus{outline:0;border-color:#1d4982;box-shadow:0 0 0 3px rgba(29,73,130,.12)}
.sdpi-typing-app.is-running .sdpi-live-stats{display:none!important}
.sdpi-typing-app.is-running .sdpi-typing-test-actions{position:sticky;bottom:0;z-index:5;flex:0 0 auto;margin:0;padding:8px;border:1px solid #d5e0e9;border-radius:7px;background:rgba(255,255,255,.96);box-shadow:0 -3px 10px rgba(29,73,130,.06)}
.sdpi-typing-app.is-running .sdpi-typing-test-actions button{min-height:38px}

/* v1.12.151 — Official Printed Reference final exam.
   Once the timer starts the on-screen Reference Passage area must not exist at
   all: the candidate types only from the controlled A4 paper. */
.sdpi-typing-app.is-running.is-external-reference .sdpi-passage-box,
.sdpi-typing-app.is-running.is-external-reference .sdpi-passage-box[hidden]{display:none!important}
.sdpi-typing-app.is-running.is-external-reference .sdpi-typing-label{flex:1 1 auto;min-height:0}
.sdpi-typing-app.is-running.is-external-reference .sdpi-typing-label textarea{min-height:0!important;height:100%!important}

/* Tutor is available only for Demo/Practice, never Final/Weekly/Monthly. */
.sdpi-typing-tutor{display:grid;grid-template-columns:minmax(150px,.22fr) minmax(0,1fr);gap:10px;align-items:center;padding:9px 10px;border:1px solid #d4e0e9;border-radius:7px;background:#fff}
.sdpi-typing-tutor.hidden{display:none!important}
.sdpi-tutor-next{display:grid;gap:2px;align-content:center;min-width:0}
.sdpi-tutor-next>span{font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#687b8b}
.sdpi-tutor-next>strong{font-size:22px;color:#1d4982;line-height:1.15}
.sdpi-tutor-next>small{font-size:11px;line-height:1.35;color:#526879}
.sdpi-virtual-keyboard{display:grid;gap:4px;min-width:0}
.sdpi-keyboard-row{display:flex;gap:4px;justify-content:center;min-width:0}
.sdpi-key{display:flex;align-items:center;justify-content:center;min-width:31px;height:29px;padding:0 6px;border:1px solid #c7d4df;border-bottom-width:2px;border-radius:5px;background:#f7fafc;color:#173a5e;font:700 11px/1 Arial,sans-serif;box-shadow:0 1px 1px rgba(0,0,0,.04)}
.sdpi-key.is-space{flex:0 1 290px;min-width:150px}
.sdpi-key.is-shift{min-width:58px}
.sdpi-key.is-next{border-color:#1d4982;background:#dcecf8;color:#0f3557;box-shadow:0 0 0 2px rgba(29,73,130,.13)}
.sdpi-key.is-pressed{transform:translateY(1px);background:#e2f2c6;border-color:#7ba527}

.sdpi-result-panel .sdpi-result-grid{grid-template-columns:repeat(6,minmax(0,1fr))}

@media(max-width:1050px){
  .sdpi-typing-app.is-running .sdpi-test-meta{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sdpi-typing-tutor{grid-template-columns:1fr}
  .sdpi-key{min-width:27px;padding:0 4px;font-size:10px}
  .sdpi-result-panel .sdpi-result-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .sdpi-typing-app.is-running{padding:7px!important}
  .sdpi-typing-app.is-running .sdpi-test-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sdpi-typing-app.is-running .sdpi-passage-box{flex-basis:min(30vh,250px)}
  .sdpi-typing-app.is-running .sdpi-typing-target[data-passage]{font-size:17px;line-height:1.7}
  .sdpi-typing-app.is-running .sdpi-typing-label textarea{font-size:18px;line-height:1.65}
  .sdpi-typing-app.is-running.is-tutor-mode .sdpi-typing-tutor{display:none!important}
  .sdpi-result-panel .sdpi-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* =========================================================
   v1.12.97 — English Mastery Tutor + true exam workspace
   Competency stages, progressive line-follow and hand guide.
   ========================================================= */
.sdpi-typing-app.is-running{overflow:hidden!important;padding:8px 12px!important;background:#edf3f7!important}
.sdpi-typing-app.is-running .sdpi-test-screen{height:calc(100dvh - 16px);min-height:0!important;overflow:hidden;gap:7px;padding:8px 10px!important;border-radius:12px!important;box-shadow:0 14px 40px rgba(18,54,95,.12)}
.sdpi-typing-app.is-running .sdpi-test-meta{gap:5px}
.sdpi-typing-app.is-running .sdpi-test-meta>div{padding:5px 8px;border-radius:7px}
.sdpi-typing-app.is-running .sdpi-test-meta span{font-size:9px}
.sdpi-typing-app.is-running .sdpi-test-meta strong{font-size:12px;margin-top:1px}

.sdpi-tutor-stage-banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"badge copy streak" "badge note streak";gap:2px 12px;align-items:center;flex:0 0 auto;padding:7px 10px;border:1px solid #cbdbe7;border-radius:9px;background:linear-gradient(90deg,#f3f8fc,#fff);color:#173a5e}
.sdpi-tutor-stage-banner.hidden{display:none!important}
.sdpi-tutor-stage-badge{grid-area:badge;display:flex;align-items:baseline;gap:3px;padding:5px 8px;border-radius:8px;background:#1d4982;color:#fff;font-size:10px;font-weight:800;white-space:nowrap}
.sdpi-tutor-stage-badge strong{font-size:18px;color:#dff1a9}
.sdpi-tutor-stage-copy{grid-area:copy;display:flex;align-items:baseline;gap:10px;min-width:0}
.sdpi-tutor-stage-copy>strong{font-size:13px;white-space:nowrap;color:#173a5e}
.sdpi-tutor-stage-copy>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#60768a}
.sdpi-tutor-stage-streak{grid-area:streak;text-align:right;white-space:nowrap}
.sdpi-tutor-stage-streak span{display:block;font-size:9px;font-weight:800;text-transform:uppercase;color:#708394}
.sdpi-tutor-stage-streak strong{font-size:15px;color:#4c6f00}
.sdpi-tutor-stage-banner p{grid-area:note;margin:0;font-size:10px;line-height:1.3;color:#536b80;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.sdpi-typing-app.is-running .sdpi-passage-box{flex:0 0 clamp(145px,24vh,245px);padding:8px 11px;border-left:4px solid #a4ce3a;border-radius:9px;box-shadow:inset 0 1px 0 #fff}
.sdpi-typing-app.is-running .sdpi-passage-box h3{margin-bottom:4px;font-size:12px;letter-spacing:.02em}
.sdpi-typing-app.is-running .sdpi-passage-scroll{position:relative;overscroll-behavior:contain;padding:2px 8px 6px 2px;scrollbar-width:thin;scroll-padding-top:28%}
.sdpi-typing-app.is-running .sdpi-typing-target[data-passage]{font-size:20px;line-height:1.72}
.sdpi-typing-app .sdpi-ref-char.is-correct{background:#e4f6e7;color:#176b2c}
.sdpi-typing-app .sdpi-ref-char.is-wrong{background:#ffe4e4;color:#a51717}
.sdpi-typing-app .sdpi-ref-char.is-current{position:relative;z-index:1;background:#d9eaf8;box-shadow:inset 0 -3px 0 #1d6aa8}

.sdpi-typing-app.is-running .sdpi-typing-label{flex:1 1 auto;min-height:150px!important}
.sdpi-typing-app.is-running .sdpi-typing-label>span{margin-bottom:3px;font-size:11px}
.sdpi-typing-app.is-running .sdpi-typing-label textarea{min-height:150px!important;padding:10px 13px!important;border-radius:9px!important;font-size:20px;line-height:1.65;overscroll-behavior:contain}
.sdpi-typing-app.is-running .sdpi-typing-test-actions{position:relative;bottom:auto;padding:5px 7px;min-height:42px;border-radius:8px}
.sdpi-typing-app.is-running .sdpi-typing-test-actions button{min-height:34px;padding-top:6px;padding-bottom:6px}

/* Compact visual touch-typing coach. It is SDPI-original UI and does not copy a
   commercial tutor illustration. Highlighted fingers follow standard key zones. */
.sdpi-typing-app.is-running .sdpi-typing-tutor{grid-template-columns:minmax(250px,.42fr) minmax(0,1fr);gap:8px;flex:0 0 auto;max-height:155px;padding:7px 9px;overflow:hidden;border-radius:9px;background:#fff}
.sdpi-tutor-coach{display:grid;grid-template-columns:minmax(105px,.7fr) minmax(150px,1.3fr);gap:8px;align-items:center;min-width:0}
.sdpi-tutor-next>span{font-size:9px}.sdpi-tutor-next>strong{font-size:20px}.sdpi-tutor-next>small{font-size:10px}
.sdpi-hand-guide{display:flex;justify-content:center;align-items:end;gap:8px;min-width:0}
.sdpi-hand{display:grid;grid-template-columns:repeat(5,15px);grid-template-rows:37px 24px;gap:2px;align-items:end;justify-content:center;min-width:84px;padding:4px 3px 2px;border-radius:12px 12px 8px 8px;background:#f5f8fb;border:1px solid #d7e2eb}
.sdpi-finger{display:flex;align-items:flex-start;justify-content:center;width:13px;height:30px;margin:auto;border:1px solid #b9c9d6;border-radius:9px 9px 5px 5px;background:#e7eef4;transition:transform .12s ease,background .12s ease,border-color .12s ease,box-shadow .12s ease}
.sdpi-finger b{font:700 8px/1 Arial,sans-serif;color:#6a7d8d;margin-top:4px}
.sdpi-finger.little{height:22px}.sdpi-finger.ring{height:28px}.sdpi-finger.middle{height:35px}.sdpi-finger.index{height:32px}.sdpi-finger.thumb{height:18px;align-self:end;transform:rotate(-18deg)}
.sdpi-hand.is-right .sdpi-finger.thumb{transform:rotate(18deg)}
.sdpi-finger.is-active{background:#dff2a9;border-color:#7ca119;box-shadow:0 0 0 2px rgba(164,206,58,.24);transform:translateY(-4px)}
.sdpi-finger.thumb.is-active{transform:translateY(-3px) rotate(-18deg)}.sdpi-hand.is-right .sdpi-finger.thumb.is-active{transform:translateY(-3px) rotate(18deg)}
.sdpi-finger.is-active b{color:#355000}
.sdpi-palm{grid-column:1/-1;display:flex;align-items:center;justify-content:center;height:22px;border-radius:5px 5px 8px 8px;background:#dfe8ef;color:#50677a;font:800 8px/1 Arial,sans-serif;letter-spacing:.08em}
.sdpi-typing-app.is-running .sdpi-virtual-keyboard{gap:3px}
.sdpi-typing-app.is-running .sdpi-keyboard-row{gap:3px}
.sdpi-typing-app.is-running .sdpi-key{min-width:27px;height:24px;padding:0 4px;font-size:9px;border-radius:4px}
.sdpi-typing-app.is-running .sdpi-key.is-space{min-width:120px;max-width:260px}
.sdpi-typing-app.is-running .sdpi-key.is-shift{min-width:48px}

.sdpi-tutor-result-progress{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0;padding:11px 13px;border:1px solid #cfe2a5;border-radius:9px;background:#f5faea;color:#365400}
.sdpi-tutor-result-progress.hidden{display:none!important}
.sdpi-tutor-result-progress strong{color:#2f5200}.sdpi-tutor-result-progress span{font-size:12px;color:#526b29;text-align:right}

@media(max-height:820px) and (min-width:761px){
  .sdpi-typing-app.is-running .sdpi-test-screen{gap:5px;padding:6px 8px!important}
  .sdpi-typing-app.is-running .sdpi-test-meta>div{padding:4px 6px}
  .sdpi-tutor-stage-banner{padding:5px 8px}.sdpi-tutor-stage-banner p{display:none}
  .sdpi-typing-app.is-running .sdpi-passage-box{flex-basis:145px}
  .sdpi-typing-app.is-running .sdpi-typing-target[data-passage]{font-size:17px;line-height:1.55}
  .sdpi-typing-app.is-running .sdpi-typing-label{min-height:135px!important}
  .sdpi-typing-app.is-running .sdpi-typing-label textarea{min-height:135px!important;font-size:18px;line-height:1.5}
  .sdpi-typing-app.is-running .sdpi-typing-tutor{max-height:132px;padding:5px 7px}
  .sdpi-hand{grid-template-columns:repeat(5,13px);grid-template-rows:31px 20px;min-width:74px}.sdpi-finger{width:11px;height:25px}.sdpi-finger.little{height:19px}.sdpi-finger.ring{height:23px}.sdpi-finger.middle{height:29px}.sdpi-finger.index{height:27px}.sdpi-finger.thumb{height:15px}.sdpi-palm{height:18px}
  .sdpi-typing-app.is-running .sdpi-key{height:21px;font-size:8px}
}
@media(max-width:1050px){
  .sdpi-typing-app.is-running .sdpi-typing-tutor{grid-template-columns:1fr;max-height:220px;overflow:auto}
  .sdpi-tutor-coach{grid-template-columns:minmax(120px,.45fr) minmax(180px,.55fr)}
}
@media(max-width:760px){
  .sdpi-typing-app.is-running{overflow:auto!important}
  .sdpi-typing-app.is-running .sdpi-test-screen{height:auto;min-height:calc(100dvh - 14px)!important;overflow:visible}
  .sdpi-tutor-stage-banner{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"badge copy" "streak streak" "note note"}.sdpi-tutor-stage-streak{text-align:left}.sdpi-tutor-stage-banner p{white-space:normal}
  .sdpi-typing-app.is-running .sdpi-passage-box{flex-basis:190px}
  .sdpi-typing-app.is-running.is-tutor-mode .sdpi-typing-tutor{display:grid!important;max-height:none}
  .sdpi-tutor-coach{grid-template-columns:1fr}.sdpi-hand-guide{justify-content:flex-start}
  .sdpi-virtual-keyboard{overflow-x:auto;padding-bottom:3px}
  .sdpi-keyboard-row{min-width:610px;justify-content:flex-start}
  .sdpi-tutor-result-progress{align-items:flex-start;flex-direction:column}.sdpi-tutor-result-progress span{text-align:left}
}


/* =========================================================
   v1.12.98 — Typing Focus viewport/exit hotfix
   Keep all active test controls inside the visible viewport. The reference,
   typing buffer and tutor coach scroll internally; the browser page never has
   to scroll to reach Finish / Clear / Back.
   ========================================================= */
body.sdpi-typing-focus-active{
  height:100dvh!important;
  max-height:100dvh!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
.sdpi-typing-app.is-running,
.sdpi-typing-app.is-running *{box-sizing:border-box}
.sdpi-typing-app.is-running{
  height:100dvh!important;
  max-height:100dvh!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
.sdpi-typing-app.is-running .sdpi-test-screen{
  display:grid!important;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:auto minmax(120px,30vh) minmax(160px,1fr) auto;
  align-items:stretch;
  height:calc(100dvh - 16px)!important;
  max-height:calc(100dvh - 16px)!important;
  min-height:0!important;
  overflow:hidden!important;
}
/* Tutor adds its stage banner and coach as two controlled rows. */
.sdpi-typing-app.is-running.is-tutor-mode .sdpi-test-screen{
  grid-template-rows:auto auto minmax(105px,21vh) minmax(120px,1fr) minmax(92px,20vh) auto;
}
.sdpi-typing-app.is-running .sdpi-test-meta,
.sdpi-typing-app.is-running .sdpi-tutor-stage-banner,
.sdpi-typing-app.is-running .sdpi-passage-box,
.sdpi-typing-app.is-running .sdpi-typing-label,
.sdpi-typing-app.is-running .sdpi-typing-tutor,
.sdpi-typing-app.is-running .sdpi-typing-test-actions{
  min-width:0!important;
  min-height:0!important;
}
.sdpi-typing-app.is-running .sdpi-passage-box{
  height:auto!important;
  max-height:none!important;
  flex:none!important;
}
.sdpi-typing-app.is-running .sdpi-passage-scroll{
  min-height:0!important;
  height:100%!important;
  overflow-y:auto!important;
}
.sdpi-typing-app.is-running .sdpi-typing-label{
  height:auto!important;
  flex:none!important;
  overflow:hidden!important;
}
.sdpi-typing-app.is-running .sdpi-typing-label textarea{
  min-height:0!important;
  height:100%!important;
  max-height:100%!important;
  overflow-y:auto!important;
}
.sdpi-typing-app.is-running .sdpi-typing-tutor{
  height:100%!important;
  max-height:none!important;
  overflow:auto!important;
  overscroll-behavior:contain;
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions{
  position:relative!important;
  inset:auto!important;
  z-index:30!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  width:100%!important;
  margin:0!important;
  padding:6px 8px!important;
  background:#fff!important;
  border:1px solid #cbd9e5!important;
  box-shadow:0 -5px 16px rgba(18,54,95,.10)!important;
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:36px!important;
  margin:0!important;
}
/* Printed-reference final exam has no tutor/banner rows. */
.sdpi-typing-app.is-running.is-external-reference .sdpi-test-screen{
  grid-template-rows:auto minmax(220px,1fr) auto;
}
.sdpi-typing-app.is-running.is-external-reference .sdpi-typing-label,
.sdpi-typing-app.is-running.is-external-reference .sdpi-typing-label textarea{
  min-height:0!important;
  height:100%!important;
}
@media(max-height:760px) and (min-width:761px){
  .sdpi-typing-app.is-running{padding:5px 8px!important}
  .sdpi-typing-app.is-running .sdpi-test-screen{
    height:calc(100dvh - 10px)!important;
    max-height:calc(100dvh - 10px)!important;
    gap:4px!important;
    padding:5px 7px!important;
  }
  .sdpi-typing-app.is-running.is-tutor-mode .sdpi-test-screen{
    grid-template-rows:auto auto minmax(90px,19vh) minmax(105px,1fr) minmax(78px,18vh) auto;
  }
  .sdpi-typing-app.is-running .sdpi-test-meta>div{padding:3px 5px!important}
  .sdpi-tutor-stage-banner{padding:4px 7px!important}
  .sdpi-tutor-stage-banner p{display:none!important}
  .sdpi-typing-app.is-running .sdpi-passage-box{padding:5px 8px!important}
  .sdpi-typing-app.is-running .sdpi-typing-target[data-passage]{font-size:16px!important;line-height:1.48!important}
  .sdpi-typing-app.is-running .sdpi-typing-label textarea{padding:7px 10px!important;font-size:17px!important;line-height:1.45!important}
  .sdpi-typing-app.is-running .sdpi-typing-tutor{padding:4px 6px!important}
  .sdpi-typing-app.is-running .sdpi-typing-test-actions{padding:4px 6px!important}
  .sdpi-typing-app.is-running .sdpi-typing-test-actions button{min-height:32px!important;padding:5px 9px!important}
}
@media(max-width:760px){
  /* Mobile keeps a single internal scroll container, with actions sticky at
     the bottom of the focus workspace so Finish/Back remain reachable. */
  .sdpi-typing-app.is-running{
    overflow:hidden!important;
    padding:5px!important;
  }
  .sdpi-typing-app.is-running .sdpi-test-screen,
  .sdpi-typing-app.is-running.is-tutor-mode .sdpi-test-screen,
  .sdpi-typing-app.is-running.is-external-reference .sdpi-test-screen{
    display:flex!important;
    flex-direction:column!important;
    height:calc(100dvh - 10px)!important;
    max-height:calc(100dvh - 10px)!important;
    min-height:0!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    padding-bottom:54px!important;
  }
  .sdpi-typing-app.is-running .sdpi-typing-test-actions{
    position:sticky!important;
    bottom:0!important;
    flex:0 0 auto!important;
  }
}

/* v1.12.99 English Tutor final UAT polish: recognisable hand coach + demo stage selector. */
.sdpi-demo-stage-select small{display:block;margin-top:5px;color:#607487;font-weight:500}
.sdpi-hand-guide{display:flex;align-items:flex-end;justify-content:center;gap:12px;min-width:0}
.sdpi-hand-card{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px;min-width:96px;padding:3px 5px 2px;border:1px solid #d4e0e8;border-radius:12px;background:linear-gradient(180deg,#fbfdff,#f2f7fa)}
.sdpi-hand-card>strong{font:800 8px/1.2 Arial,sans-serif;letter-spacing:.08em;color:#597083}
.sdpi-hand-visual{display:block;width:92px;height:79px;overflow:visible}
.sdpi-hand-palm{fill:#dbe6ee;stroke:#9cb1c1;stroke-width:1.4}
.sdpi-hand-finger{fill:#e9f0f5;stroke:#9cb1c1;stroke-width:1.4;transition:fill .12s ease,stroke .12s ease,filter .12s ease,transform .12s ease;transform-box:fill-box;transform-origin:center}
.sdpi-hand-finger.is-active{fill:#dff2a9;stroke:#6f9811;stroke-width:2;filter:drop-shadow(0 0 3px rgba(164,206,58,.65))}
.sdpi-hand-finger:not(.sdpi-hand-thumb).is-active{transform:translateY(-3px)}
.sdpi-typing-app.is-running .sdpi-typing-target[data-passage],
.sdpi-typing-app.is-running .sdpi-typing-label textarea{font-kerning:normal;letter-spacing:normal;font-variant-ligatures:normal}
@media(max-height:820px) and (min-width:761px){
  .sdpi-hand-card{min-width:82px;padding:2px 3px}.sdpi-hand-visual{width:78px;height:66px}.sdpi-hand-guide{gap:7px}
}
@media(max-width:760px){
  .sdpi-hand-guide{justify-content:center;flex-wrap:wrap}.sdpi-hand-card{min-width:92px}
}


/* =========================================================
   v1.12.100 — English Typing UAT correction batch
   - true in-page focus fallback even without browser fullscreen
   - bottom actions always reachable
   - live score hidden while typing; result appears after submit
   - pre-test technique/rules panel
   - clearer DEMO stage selector
   - finger-zone keyboard + recognisable hand guide polish
   ========================================================= */
body.sdpi-typing-focus-active .sdpi-typing-app.is-running{
  position:fixed!important;
  inset:0!important;
  z-index:2147483000!important;
  width:100vw!important;
  max-width:none!important;
  height:100dvh!important;
  max-height:100dvh!important;
  margin:0!important;
  padding:8px!important;
  border:0!important;
  border-radius:0!important;
  background:#eef4f8!important;
}
body.sdpi-typing-focus-active .sdpi-typing-app.is-running .sdpi-test-screen{
  width:min(1480px,100%)!important;
  margin:0 auto!important;
}
.sdpi-typing-app.is-running .sdpi-live-stats{display:none!important}
.sdpi-typing-app.is-running.is-tutor-mode .sdpi-test-screen{
  grid-template-rows:auto auto minmax(110px,22vh) minmax(140px,1fr) minmax(108px,24vh) auto!important;
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions{
  flex-wrap:wrap!important;
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions [data-finish-test]{font-weight:800}
.sdpi-typing-app.is-running .sdpi-typing-tutor{
  display:grid;
  grid-template-columns:minmax(300px,.72fr) minmax(520px,1.28fr);
  gap:10px;
}
.sdpi-typing-app.is-running .sdpi-tutor-coach{
  display:grid;
  grid-template-columns:minmax(125px,.35fr) minmax(210px,.65fr);
  align-items:center;
  gap:8px;
}
.sdpi-demo-stage-quick{
  grid-column:1/-1;
  padding:10px 12px;
  border:1px solid #cfdde7;
  border-radius:10px;
  background:#f7fafc;
}
.sdpi-demo-stage-quick>span{display:block;margin-bottom:7px;font-weight:800;color:#173f75}
.sdpi-demo-stage-quick>div{display:flex;flex-wrap:wrap;gap:6px}
.sdpi-demo-stage-quick button{
  min-width:76px;padding:7px 10px;border:1px solid #b9cad7;border-radius:8px;background:#fff;color:#173f75;font-weight:800;cursor:pointer;
}
.sdpi-demo-stage-quick button:hover,.sdpi-demo-stage-quick button.is-active{
  border-color:#285d9b;background:#e7f0fb;box-shadow:0 0 0 2px rgba(40,93,155,.10);
}
.sdpi-demo-stage-quick small{display:block;margin-top:7px;color:#607487}

/* Pre-test rules / fullscreen choice. */
.sdpi-typing-preflight{
  position:fixed;inset:0;z-index:2147483600;display:grid;place-items:center;padding:18px;
  background:rgba(10,31,50,.70);backdrop-filter:blur(3px);
}
.sdpi-typing-preflight.hidden{display:none!important}
body.sdpi-typing-preflight-open{overflow:hidden!important}
.sdpi-typing-preflight-card{
  width:min(900px,96vw);max-height:min(90dvh,760px);overflow:auto;padding:18px;
  border-radius:16px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.28);
}
.sdpi-typing-preflight-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:12px}
.sdpi-typing-preflight-head span{display:block;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#698030}
.sdpi-typing-preflight-head h3{margin:2px 0 0;font-size:24px;color:#173f75}
.sdpi-preflight-close{border:0;background:transparent;font-size:30px;line-height:1;color:#506579;cursor:pointer}
.sdpi-typing-rules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.sdpi-typing-rules-grid>div{padding:10px 11px;border:1px solid #d9e4eb;border-radius:10px;background:#f8fbfd}
.sdpi-typing-rules-grid strong{display:block;margin-bottom:3px;color:#173f75}
.sdpi-typing-rules-grid span{display:block;color:#566d7f;line-height:1.35;font-size:13px}
.sdpi-typing-preflight-note{margin:10px 0;padding:9px 11px;border-left:4px solid #a6cf32;background:#f5f9e8;color:#41551b}
.sdpi-typing-preflight-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.sdpi-typing-preflight-actions button{min-height:40px}

/* Clearer original hand tutor, conceptually similar to standard typing tutors
   but drawn specifically for SDPI. */
.sdpi-hand-card{
  background:#fff!important;border-color:#c8d8e3!important;box-shadow:0 3px 10px rgba(30,69,105,.07);
}
.sdpi-hand-palm{fill:#f1f5f8!important;stroke:#7995aa!important;stroke-width:1.6!important}
.sdpi-hand-finger{fill:#fbfdff!important;stroke:#7995aa!important;stroke-width:1.6!important}
.sdpi-hand-finger.is-active{
  fill:#dff2a9!important;stroke:#638d0c!important;stroke-width:2.5!important;filter:drop-shadow(0 0 4px rgba(154,198,46,.62))!important;
}
.sdpi-key.is-wrong-key{background:#fee2e2!important;border-color:#dc4444!important;color:#9c1f1f!important}
.sdpi-key[data-finger-zone="left-little"],.sdpi-key.zone-left-little{background:#f6ecff}
.sdpi-key[data-finger-zone="left-ring"],.sdpi-key.zone-left-ring{background:#eaf5ff}
.sdpi-key[data-finger-zone="left-middle"],.sdpi-key.zone-left-middle{background:#eaf9f2}
.sdpi-key[data-finger-zone="left-index"],.sdpi-key.zone-left-index{background:#fff4df}
.sdpi-key[data-finger-zone="right-index"],.sdpi-key.zone-right-index{background:#fff4df}
.sdpi-key[data-finger-zone="right-middle"],.sdpi-key.zone-right-middle{background:#eaf9f2}
.sdpi-key[data-finger-zone="right-ring"],.sdpi-key.zone-right-ring{background:#eaf5ff}
.sdpi-key[data-finger-zone="right-little"],.sdpi-key.zone-right-little{background:#f6ecff}
.sdpi-key.zone-thumb{background:#f1f3f5}
.sdpi-key.is-next{outline:3px solid rgba(118,158,22,.25)!important;background:#dff2a9!important;border-color:#6b9611!important}

@media(max-height:760px) and (min-width:761px){
  .sdpi-typing-app.is-running.is-tutor-mode .sdpi-test-screen{
    grid-template-rows:auto auto minmax(86px,18vh) minmax(105px,1fr) minmax(94px,22vh) auto!important;
  }
  .sdpi-typing-app.is-running .sdpi-typing-tutor{grid-template-columns:minmax(250px,.7fr) minmax(430px,1.3fr)!important}
  .sdpi-typing-preflight-card{max-height:94dvh;padding:13px}
  .sdpi-typing-rules-grid>div{padding:7px 8px}.sdpi-typing-rules-grid span{font-size:12px}
}
@media(max-width:900px){
  .sdpi-typing-rules-grid{grid-template-columns:1fr}
  .sdpi-typing-app.is-running .sdpi-typing-tutor{grid-template-columns:1fr!important}
}

.sdpi-hand-outline{fill:#f8fbfd;stroke:#6f8da3;stroke-width:2;stroke-linejoin:round;opacity:.9}
.sdpi-hand-card .sdpi-hand-palm{opacity:.55}


/* =========================================================
   v1.12.101 — Typing action-bar visibility hotfix
   The Finish / Clear / Back controls are viewport controls, not content.
   Keep them visible in both Normal Screen and browser Full Screen while
   reference, typing buffer and tutor coach consume only the remaining space.
   ========================================================= */
body.sdpi-typing-focus-active .sdpi-typing-app.is-running .sdpi-test-screen{
  padding-bottom:64px!important;
}
.sdpi-typing-app.is-running .sdpi-test-screen{
  grid-template-rows:auto minmax(105px,25vh) minmax(150px,1fr)!important;
}
.sdpi-typing-app.is-running.is-tutor-mode .sdpi-test-screen{
  grid-template-rows:auto auto minmax(100px,18vh) minmax(140px,1fr) minmax(96px,19vh)!important;
}
.sdpi-typing-app.is-running.is-external-reference .sdpi-test-screen{
  grid-template-rows:auto minmax(220px,1fr)!important;
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  bottom:8px!important;
  top:auto!important;
  transform:translateX(-50%)!important;
  z-index:2147483550!important;
  width:min(1480px,calc(100vw - 16px))!important;
  min-height:48px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  margin:0!important;
  padding:6px 8px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  white-space:nowrap!important;
  border:1px solid #bdcfdd!important;
  border-radius:10px!important;
  background:rgba(255,255,255,.98)!important;
  box-shadow:0 -8px 24px rgba(18,54,95,.16)!important;
  backdrop-filter:blur(8px);
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions button{
  flex:0 0 auto!important;
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
  min-height:36px!important;
  margin:0!important;
}
.sdpi-typing-app.is-running .sdpi-typing-tutor{
  min-height:0!important;
  overflow:auto!important;
}
@media(max-height:760px) and (min-width:761px){
  body.sdpi-typing-focus-active .sdpi-typing-app.is-running .sdpi-test-screen{padding-bottom:58px!important}
  .sdpi-typing-app.is-running.is-tutor-mode .sdpi-test-screen{
    grid-template-rows:auto auto minmax(82px,16vh) minmax(105px,1fr) minmax(82px,17vh)!important;
  }
  .sdpi-typing-app.is-running .sdpi-typing-test-actions{
    bottom:5px!important;min-height:43px!important;padding:4px 6px!important;
  }
}
@media(max-width:760px){
  body.sdpi-typing-focus-active .sdpi-typing-app.is-running .sdpi-test-screen,
  .sdpi-typing-app.is-running .sdpi-test-screen{
    padding-bottom:64px!important;
  }
  .sdpi-typing-app.is-running .sdpi-typing-test-actions{
    bottom:5px!important;
    width:calc(100vw - 10px)!important;
  }
}

/* =========================================================
   v1.12.101 FINAL — English Typing UAT viewport + tutor polish
   - Stage 1–7: larger, clearer keyboard and hand coach
   - Stage 8: no tutor row/blank reserved area
   - Esc exits browser fullscreen only; SDPI focus workspace stays active
   - Finish / Clear / Back remain viewport controls in all active stages
   ========================================================= */
/* Stage 8 is still an English Tutor stage, but has no keyboard/hand assistance. */
.sdpi-typing-app.is-running.is-tutor-mode:not(.has-tutor-assist) .sdpi-test-screen{
  grid-template-rows:auto auto minmax(120px,24vh) minmax(180px,1fr)!important;
}
/* Stages 1–7 reserve a controlled tutor row. */
.sdpi-typing-app.is-running.is-tutor-mode.has-tutor-assist .sdpi-test-screen{
  grid-template-rows:auto auto minmax(105px,18vh) minmax(145px,1fr) minmax(130px,23vh)!important;
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-tutor{
  grid-template-columns:minmax(340px,.78fr) minmax(560px,1.22fr)!important;
  gap:12px!important;
  padding:8px 12px!important;
  overflow:auto!important;
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-tutor-coach{
  grid-template-columns:minmax(115px,.28fr) minmax(250px,.72fr)!important;
  gap:10px!important;
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-hand-guide{gap:14px!important}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-hand-card{
  min-width:122px!important;
  padding:4px 7px 3px!important;
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-hand-visual{
  width:116px!important;
  height:100px!important;
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-hand-card>strong{font-size:9px!important}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-virtual-keyboard{gap:5px!important}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-keyboard-row{gap:5px!important}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-key{
  min-width:35px!important;
  height:32px!important;
  padding:0 7px!important;
  font-size:11px!important;
  border-radius:6px!important;
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-key.is-shift{min-width:66px!important}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-key.is-space{min-width:190px!important;max-width:330px!important}

/* A fixed action rail is independent of the tutor grid and survives Esc/fullscreen changes. */
body.sdpi-typing-focus-active .sdpi-typing-app.is-running .sdpi-test-screen{
  padding-bottom:66px!important;
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions{
  position:fixed!important;
  left:50%!important;
  bottom:8px!important;
  transform:translateX(-50%)!important;
  width:min(1480px,calc(100vw - 16px))!important;
  min-height:50px!important;
  z-index:2147483550!important;
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
}

@media(max-height:800px) and (min-width:901px){
  .sdpi-typing-app.is-running.is-tutor-mode.has-tutor-assist .sdpi-test-screen{
    grid-template-rows:auto auto minmax(85px,16vh) minmax(115px,1fr) minmax(108px,20vh)!important;
  }
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-tutor{
    grid-template-columns:minmax(300px,.72fr) minmax(500px,1.28fr)!important;
    padding:5px 8px!important;
  }
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-hand-card{min-width:102px!important}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-hand-visual{width:96px!important;height:82px!important}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-key{min-width:31px!important;height:27px!important;font-size:9px!important;padding:0 5px!important}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-key.is-shift{min-width:56px!important}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-key.is-space{min-width:155px!important}
}
@media(max-width:1100px){
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-tutor{
    grid-template-columns:minmax(285px,.68fr) minmax(440px,1.32fr)!important;
  }
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-hand-card{min-width:104px!important}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-hand-visual{width:98px!important;height:84px!important}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-key{min-width:31px!important;height:28px!important;padding:0 5px!important;font-size:9px!important}
}
@media(max-width:900px){
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-tutor{
    grid-template-columns:1fr!important;
  }
}


/* =========================================================
   v1.12.102 — English Typing UAT compact Stage 1–7 UI
   UI-only correction from live testing:
   - Stage 8 assessment layout remains unchanged.
   - Stage 1–7 reclaim vertical space from DEMO/meta strips.
   - Larger hand/keyboard coach while action rail remains visible.
   - Top Back returns to Hindi / English typing selection.
   ========================================================= */
.sdpi-test-screen{position:relative}
.sdpi-typing-top-back{
  position:absolute;top:7px;left:8px;z-index:12;
  min-height:28px;padding:4px 9px;border:1px solid #b9ccda;border-radius:7px;
  background:#fff;color:#173f75;font:800 11px/1.15 Arial,sans-serif;cursor:pointer;
  box-shadow:0 2px 6px rgba(20,60,95,.07)
}
.sdpi-typing-top-back:hover{background:#f2f7fb;border-color:#88a8bf}

/* Only Tutor Stages 1–7 are compacted. Stage 8 deliberately keeps its clean assessment geometry. */
.sdpi-typing-app.is-running.has-tutor-assist>.sdpi-scm-alert.success{
  position:fixed!important;top:6px!important;right:10px!important;left:auto!important;z-index:2147483540!important;
  width:auto!important;max-width:180px!important;min-height:24px!important;
  margin:0!important;padding:4px 8px!important;border-radius:999px!important;
  font-size:0!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;
  box-shadow:0 2px 8px rgba(33,80,118,.08)!important
}
.sdpi-typing-app.is-running.has-tutor-assist>.sdpi-scm-alert.success strong{
  display:inline!important;font-size:10px!important;letter-spacing:.04em!important
}
.sdpi-typing-app.is-running.has-tutor-assist>.sdpi-scm-alert.success br{display:none!important}

.sdpi-typing-app.is-running.has-tutor-assist .sdpi-test-meta{
  padding-left:70px!important;gap:4px!important;min-height:34px!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-test-meta>div{
  display:flex!important;align-items:center!important;gap:6px!important;
  min-height:32px!important;padding:3px 6px!important;border-radius:6px!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-test-meta span{
  flex:0 0 auto!important;font-size:8px!important;line-height:1!important;margin:0!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-test-meta strong{
  min-width:0!important;font-size:11px!important;line-height:1.1!important;margin:0!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-tutor-stage-banner{
  min-height:38px!important;padding:3px 7px!important;gap:1px 8px!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-tutor-stage-badge{
  padding:3px 6px!important;font-size:9px!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-tutor-stage-badge strong{font-size:15px!important}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-tutor-stage-copy>strong{font-size:11px!important}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-tutor-stage-copy>span{font-size:9px!important}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-tutor-stage-streak strong{font-size:13px!important}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-tutor-stage-banner p{
  font-size:9px!important;line-height:1.15!important
}

/* Rebalance only assisted stages: more usable tutor area, less header waste. */
.sdpi-typing-app.is-running.is-tutor-mode.has-tutor-assist .sdpi-test-screen{
  grid-template-rows:auto auto minmax(92px,16vh) minmax(130px,1fr) minmax(150px,26vh)!important;
  gap:5px!important;padding-top:6px!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-passage-box{
  padding:6px 9px!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-passage-box h3{
  margin-bottom:2px!important;font-size:11px!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-target[data-passage]{
  font-size:18px!important;line-height:1.55!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-label>span{
  margin-bottom:2px!important;font-size:10px!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-label textarea{
  padding:8px 11px!important;font-size:18px!important;line-height:1.5!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-tutor{
  grid-template-columns:minmax(390px,.82fr) minmax(600px,1.18fr)!important;
  min-height:150px!important;max-height:none!important;
  gap:14px!important;padding:7px 10px 58px!important;
  overflow:auto!important;align-items:center!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-tutor-coach{
  grid-template-columns:minmax(95px,.22fr) minmax(285px,.78fr)!important;gap:12px!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-hand-guide{gap:18px!important}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-hand-card{
  min-width:136px!important;padding:4px 8px 3px!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-hand-visual{
  width:128px!important;height:108px!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-keyboard-row{gap:5px!important}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-key{
  min-width:38px!important;height:33px!important;padding:0 7px!important;font-size:11px!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-key.is-shift{min-width:70px!important}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-key.is-space{min-width:210px!important;max-width:360px!important}

/* Keep the fixed action rail above the tutor content; tutor padding-bottom reserves it visually. */
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-test-actions{
  min-height:48px!important;bottom:6px!important
}

@media(max-height:820px) and (min-width:901px){
  .sdpi-typing-app.is-running.is-tutor-mode.has-tutor-assist .sdpi-test-screen{
    grid-template-rows:auto auto minmax(76px,14vh) minmax(105px,1fr) minmax(126px,24vh)!important
  }
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-target[data-passage]{font-size:16px!important;line-height:1.45!important}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-label textarea{font-size:17px!important;line-height:1.42!important}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-tutor{
    grid-template-columns:minmax(330px,.78fr) minmax(520px,1.22fr)!important;min-height:126px!important;padding:5px 8px 54px!important
  }
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-hand-card{min-width:112px!important}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-hand-visual{width:106px!important;height:90px!important}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-key{min-width:32px!important;height:28px!important;font-size:9px!important;padding:0 5px!important}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-key.is-shift{min-width:58px!important}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-key.is-space{min-width:165px!important}
}
@media(max-width:1180px) and (min-width:901px){
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-tutor{
    grid-template-columns:minmax(320px,.72fr) minmax(500px,1.28fr)!important
  }
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-hand-card{min-width:112px!important}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-hand-visual{width:106px!important;height:90px!important}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-key{min-width:32px!important;height:29px!important;font-size:9px!important;padding:0 5px!important}
}
@media(max-width:900px){
  .sdpi-typing-top-back{top:6px;left:6px}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-test-meta{padding-left:68px!important}
  .sdpi-typing-app.is-running.has-tutor-assist>.sdpi-scm-alert.success{display:none!important}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-tutor{grid-template-columns:1fr!important;padding-bottom:58px!important}
}

/* =========================================================
   v1.12.104 — Hindi Kruti Tutor + active typing rail refinement
   - Active test has no duplicate top Back button.
   - Stage/status strip lives beside the bottom actions, after Back to Typing Tests.
   - Top Student/Course/Time/Attempt/Mode/Progress row gets readable spacing.
   - Stage 8 stays clean with no keyboard/hand coach.
   - Hindi assisted stages show physical QWERTY + Kruti normal/Shift glyphs.
   ========================================================= */
.sdpi-typing-selection-actions{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px
}
.sdpi-typing-selection-actions .sdpi-typing-selection-back{
  min-height:40px;padding:8px 15px;font-weight:800;color:#173f75;border-color:#b8cad8;background:#fff
}
.sdpi-typing-selection-actions .sdpi-scm-primary{min-height:40px}
.sdpi-typing-top-back{display:none!important}

/* The duplicate top stage row has moved to the bottom action rail. */
.sdpi-typing-app.is-running .sdpi-test-meta{
  padding-left:0!important;gap:7px!important;min-height:39px!important
}
.sdpi-typing-app.is-running .sdpi-test-meta>div{
  display:flex!important;align-items:center!important;gap:7px!important;
  min-height:38px!important;padding:5px 8px!important;border-radius:7px!important
}
.sdpi-typing-app.is-running .sdpi-test-meta span{
  flex:0 0 auto!important;font-size:9.5px!important;line-height:1.05!important;
  font-weight:800!important;letter-spacing:.035em!important;margin:0!important
}
.sdpi-typing-app.is-running .sdpi-test-meta strong{
  min-width:0!important;font-size:12.5px!important;line-height:1.15!important;
  font-weight:800!important;margin:0!important
}

/* DOM order is now Meta → Reference → Typing Box → Tutor. Stage information
   is fixed inside the bottom action rail and therefore consumes no top row. */
.sdpi-typing-app.is-running.is-tutor-mode.has-tutor-assist .sdpi-test-screen{
  grid-template-rows:auto minmax(92px,16vh) minmax(130px,1fr) minmax(150px,26vh)!important;
  gap:5px!important;padding-top:6px!important
}
.sdpi-typing-app.is-running.is-tutor-mode:not(.has-tutor-assist) .sdpi-test-screen{
  grid-template-rows:auto minmax(120px,24vh) minmax(180px,1fr)!important
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-tutor{
  padding:7px 10px 8px!important
}

/* Buttons first; stage information follows after a deliberate visual gap. */
.sdpi-typing-app.is-running .sdpi-typing-test-actions{
  flex-wrap:nowrap!important;align-items:center!important;gap:8px!important;
  min-height:52px!important;overflow-x:auto!important;overflow-y:hidden!important
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-banner{
  flex:1 1 620px!important;min-width:470px!important;max-width:none!important;
  min-height:38px!important;margin:0 0 0 10px!important;padding:4px 9px!important;
  display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;
  grid-template-areas:"badge copy streak"!important;gap:8px!important;
  align-items:center!important;border-radius:7px!important;white-space:normal!important
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-banner.hidden{display:none!important}
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-banner p{display:none!important}
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-badge{
  grid-area:badge!important;padding:4px 7px!important;font-size:9px!important;white-space:nowrap!important
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-badge strong{font-size:14px!important}
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-copy{
  grid-area:copy!important;min-width:0!important
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-copy>strong{
  display:block!important;font-size:11.5px!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-copy>span{
  display:block!important;font-size:9.5px!important;line-height:1.15!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-streak{
  grid-area:streak!important;text-align:right!important;white-space:nowrap!important
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-streak span{font-size:8.5px!important}
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-streak strong{font-size:13px!important}

/* Hindi legacy tutor keyboard: physical-key legend stays readable while the
   selected Kruti Dev 010/011 font renders normal and Shift glyphs directly. */
.sdpi-typing-app.is-running.is-hindi-tutor .sdpi-key[data-hindi-key="1"]{
  position:relative!important;height:38px!important;min-width:39px!important;padding:2px 4px!important;
  display:grid!important;grid-template-columns:1fr 1fr!important;grid-template-rows:auto 1fr!important;
  align-items:center!important;justify-items:center!important;line-height:1!important
}
.sdpi-key-physical{
  grid-column:1/-1;justify-self:start;font:800 7.5px/1 Arial,sans-serif!important;
  color:#536b80;letter-spacing:.02em
}
.sdpi-key-glyph{display:block;line-height:1!important;font-weight:400!important;color:#173a5e}
.sdpi-key-glyph-normal{font-size:16px!important}
.sdpi-key-glyph-shift{font-size:12px!important;opacity:.82}
.sdpi-typing-app.is-running.is-hindi-tutor .sdpi-key.is-next .sdpi-key-physical{color:#315200}

@media(max-height:820px) and (min-width:901px){
  .sdpi-typing-app.is-running.is-tutor-mode.has-tutor-assist .sdpi-test-screen{
    grid-template-rows:auto minmax(76px,14vh) minmax(105px,1fr) minmax(126px,24vh)!important
  }
  .sdpi-typing-app.is-running.is-hindi-tutor .sdpi-key[data-hindi-key="1"]{height:32px!important;min-width:33px!important}
  .sdpi-key-glyph-normal{font-size:14px!important}.sdpi-key-glyph-shift{font-size:10px!important}
}
@media(max-width:900px){
  .sdpi-typing-app.is-running .sdpi-test-meta{padding-left:0!important}
  .sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-banner{min-width:330px!important;margin-left:8px!important}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-tutor{padding-bottom:8px!important}
}


/* =========================================================
   v1.12.105 — Typing Tutor final UAT UI polish
   - Compact SDPI-blue top status bar with larger readable white text.
   - Consistency returns to the top status row in Tutor mode.
   - DEMO / TEST MODE moves from the top overlay to the bottom action rail.
   - Bottom stage/target copy is larger and starts farther right of Back.
   - Hindi Kruti Dev reference/input text is enlarged; typing row is slightly reduced.
   - Shared geometry applies to English + Hindi without changing Stage 8 assistance rules.
   ========================================================= */
.sdpi-typing-app.is-running>.sdpi-scm-alert.success{display:none!important}

.sdpi-typing-app.is-running .sdpi-test-meta{
  padding-left:0!important;gap:6px!important;min-height:38px!important;
  grid-template-columns:minmax(185px,1.35fr) minmax(215px,1.55fr) minmax(88px,.56fr) minmax(74px,.46fr) minmax(155px,1.02fr) minmax(78px,.48fr)!important
}
.sdpi-typing-app.is-running.is-tutor-mode .sdpi-test-meta{
  grid-template-columns:minmax(185px,1.35fr) minmax(215px,1.55fr) minmax(88px,.56fr) minmax(74px,.46fr) minmax(155px,1.02fr) minmax(78px,.48fr) minmax(92px,.58fr)!important
}
.sdpi-typing-app.is-running .sdpi-test-meta>div{
  min-height:36px!important;padding:5px 8px!important;border:1px solid #173f72!important;
  border-radius:7px!important;background:#1d4982!important;color:#fff!important;
  box-shadow:0 1px 2px rgba(15,48,82,.08)!important
}
.sdpi-typing-app.is-running .sdpi-test-meta span{
  font-size:9.5px!important;line-height:1!important;font-weight:900!important;
  letter-spacing:.045em!important;text-transform:uppercase!important;color:rgba(255,255,255,.83)!important
}
.sdpi-typing-app.is-running .sdpi-test-meta strong{
  font-size:13px!important;line-height:1.1!important;font-weight:850!important;color:#fff!important
}
.sdpi-meta-consistency{display:none!important}
.sdpi-typing-app.is-running.is-tutor-mode .sdpi-meta-consistency{display:flex!important}
.sdpi-typing-app.is-running.is-tutor-mode .sdpi-meta-consistency strong{color:#e7f6b4!important}

/* Give the reference a little more presence and reclaim a small amount of typing-box height. */
.sdpi-typing-app.is-running.is-tutor-mode.has-tutor-assist .sdpi-test-screen{
  grid-template-rows:auto minmax(96px,17vh) minmax(122px,.82fr) minmax(158px,28vh)!important
}
.sdpi-typing-app.is-running.is-tutor-mode:not(.has-tutor-assist) .sdpi-test-screen{
  grid-template-rows:auto minmax(118px,25vh) minmax(170px,1fr)!important
}
.sdpi-typing-app.is-running.is-hindi-tutor .sdpi-typing-target[data-passage]{
  font-size:21px!important;line-height:1.62!important
}
.sdpi-typing-app.is-running.is-hindi-tutor .sdpi-typing-label textarea{
  font-size:21px!important;line-height:1.55!important;padding-top:8px!important
}

/* Bottom rail: buttons, deliberate gap, readable stage target, demo badge at far right. */
.sdpi-typing-app.is-running .sdpi-typing-test-actions{
  gap:8px!important;min-height:52px!important;overflow-x:auto!important;overflow-y:hidden!important
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-banner{
  flex:1 1 570px!important;min-width:480px!important;min-height:40px!important;
  margin-left:18px!important;padding:5px 10px!important;
  grid-template-columns:auto minmax(0,1fr)!important;grid-template-areas:"badge copy"!important;
  gap:10px!important
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-badge{
  padding:5px 8px!important;font-size:10px!important
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-badge strong{font-size:15px!important}
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-copy>strong{
  font-size:13.5px!important;line-height:1.12!important;font-weight:850!important;color:#173a5e!important
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-copy>span{
  margin-top:2px!important;font-size:11.5px!important;line-height:1.2!important;font-weight:650!important;color:#536c80!important
}
.sdpi-action-demo-badge{
  flex:0 0 auto;margin-left:auto;padding:6px 10px;border:1px solid #b8d777;border-radius:999px;
  background:#f4f9e8;color:#4d6800;font-size:10px;font-weight:900;letter-spacing:.035em;white-space:nowrap
}

@media(max-height:820px) and (min-width:901px){
  .sdpi-typing-app.is-running.is-tutor-mode.has-tutor-assist .sdpi-test-screen{
    grid-template-rows:auto minmax(78px,15vh) minmax(104px,.78fr) minmax(130px,25vh)!important
  }
  .sdpi-typing-app.is-running.is-hindi-tutor .sdpi-typing-target[data-passage]{font-size:19px!important;line-height:1.5!important}
  .sdpi-typing-app.is-running.is-hindi-tutor .sdpi-typing-label textarea{font-size:19px!important;line-height:1.46!important}
}
@media(max-width:1180px) and (min-width:901px){
  .sdpi-typing-app.is-running.is-tutor-mode .sdpi-test-meta{
    grid-template-columns:minmax(170px,1.25fr) minmax(190px,1.4fr) 82px 72px minmax(145px,1fr) 76px 88px!important
  }
  .sdpi-typing-app.is-running .sdpi-test-meta strong{font-size:12px!important}
  .sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-banner{min-width:405px!important;margin-left:12px!important}
}
@media(max-width:900px){
  .sdpi-typing-app.is-running .sdpi-test-meta,
  .sdpi-typing-app.is-running.is-tutor-mode .sdpi-test-meta{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-banner{min-width:340px!important;margin-left:8px!important}
  .sdpi-action-demo-badge{margin-left:4px}
}

/* =========================================================
   v1.12.106 — Typing Tutor compact top meta rail
   Keep SDPI-blue/white readability, but stop the desktop cards stretching
   across the full viewport. Student/Course stay wider; utility metrics use
   compact widths. Shared by English + Hindi tutor screens.
   ========================================================= */
@media(min-width:901px){
  .sdpi-typing-app.is-running .sdpi-test-meta{
    grid-template-columns:minmax(150px,190px) minmax(190px,255px) 96px 78px minmax(135px,165px) 82px!important;
    justify-content:start!important;
    align-items:stretch!important;
    gap:6px!important;
  }
  .sdpi-typing-app.is-running.is-tutor-mode .sdpi-test-meta{
    grid-template-columns:minmax(150px,190px) minmax(190px,255px) 96px 78px minmax(135px,165px) 82px 102px!important;
  }
  .sdpi-typing-app.is-running .sdpi-test-meta>div{
    width:100%!important;
    min-height:34px!important;
    padding:4px 7px!important;
  }
  .sdpi-typing-app.is-running .sdpi-test-meta span{
    font-size:9px!important;
    letter-spacing:.035em!important;
  }
  .sdpi-typing-app.is-running .sdpi-test-meta strong{
    font-size:12.5px!important;
  }
}
@media(max-width:1180px) and (min-width:901px){
  .sdpi-typing-app.is-running .sdpi-test-meta{
    grid-template-columns:minmax(135px,170px) minmax(165px,215px) 90px 72px minmax(122px,145px) 76px!important;
  }
  .sdpi-typing-app.is-running.is-tutor-mode .sdpi-test-meta{
    grid-template-columns:minmax(135px,170px) minmax(165px,215px) 90px 72px minmax(122px,145px) 76px 94px!important;
  }
  .sdpi-typing-app.is-running .sdpi-test-meta strong{font-size:12px!important}
}


/* =========================================================
   v1.12.107 — Typing Tutor top-row height correction
   User UAT correction: restore the useful full-width desktop rail from
   v1.12.105, but make the blue cards distinctly shorter. Also enlarge the
   bottom mastery target so WPM / accuracy / matter is readable at a glance.
   Shared by English + Hindi tutor screens.
   ========================================================= */
@media(min-width:901px){
  .sdpi-typing-app.is-running .sdpi-test-meta{
    grid-template-columns:minmax(185px,1.35fr) minmax(215px,1.55fr) minmax(88px,.56fr) minmax(74px,.46fr) minmax(155px,1.02fr) minmax(78px,.48fr)!important;
    justify-content:stretch!important;
    align-items:start!important;
    grid-auto-rows:40px!important;
    height:40px!important;
    min-height:40px!important;
    max-height:40px!important;
    gap:6px!important;
    overflow:visible!important;
  }
  .sdpi-typing-app.is-running.is-tutor-mode .sdpi-test-meta{
    grid-template-columns:minmax(185px,1.35fr) minmax(215px,1.55fr) minmax(88px,.56fr) minmax(74px,.46fr) minmax(155px,1.02fr) minmax(78px,.48fr) minmax(92px,.58fr)!important;
  }
  .sdpi-typing-app.is-running .sdpi-test-meta>div{
    width:100%!important;
    height:40px!important;
    min-height:40px!important;
    max-height:40px!important;
    padding:3px 7px!important;
    align-self:start!important;
    overflow:hidden!important;
  }
  .sdpi-typing-app.is-running .sdpi-test-meta span{
    font-size:9px!important;
    line-height:1!important;
  }
  .sdpi-typing-app.is-running .sdpi-test-meta strong{
    font-size:12.5px!important;
    line-height:1.05!important;
  }
}
@media(max-width:1180px) and (min-width:901px){
  .sdpi-typing-app.is-running .sdpi-test-meta{
    grid-template-columns:minmax(155px,1.3fr) minmax(185px,1.45fr) 88px 72px minmax(135px,1fr) 76px!important;
  }
  .sdpi-typing-app.is-running.is-tutor-mode .sdpi-test-meta{
    grid-template-columns:minmax(155px,1.3fr) minmax(185px,1.45fr) 88px 72px minmax(135px,1fr) 76px 92px!important;
  }
}

/* Bottom stage/target rail: make the actual qualification target prominent. */
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-copy>strong{
  font-size:14px!important;
  font-weight:850!important;
}
.sdpi-typing-app.is-running .sdpi-typing-test-actions .sdpi-tutor-stage-copy>span{
  font-size:13.5px!important;
  line-height:1.18!important;
  font-weight:780!important;
  color:#405d75!important;
}


/* =========================================================
   v1.12.108 — Typing Tutor final viewport balance polish
   - Keep the approved top-card width/height, but center the assisted-stage rail
     so left/right outer whitespace is balanced.
   - Give the Reference Passage a little more vertical room.
   - Make "Type the passage below" easier to read.
   Shared by English + Hindi tutor screens; no exam/progression logic changed.
   ========================================================= */
@media(min-width:901px){
  /* v1.12.102 reserved 70px on the left for the old top Back control.
     The Back control is no longer shown during an active test, so preserve the
     same usable card width but distribute that spare width evenly on both sides. */
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-test-meta{
    box-sizing:border-box!important;
    width:calc(100% - 70px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
  }

  /* Slightly taller reference area; reclaim only a small amount from typing area. */
  .sdpi-typing-app.is-running.is-tutor-mode.has-tutor-assist .sdpi-test-screen{
    grid-template-rows:auto minmax(112px,20vh) minmax(116px,.76fr) minmax(158px,28vh)!important;
  }
}

.sdpi-typing-app.is-running.has-tutor-assist .sdpi-passage-box h3{
  font-size:12.5px!important;
  line-height:1.15!important;
  font-weight:850!important;
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-label>span{
  font-size:13px!important;
  line-height:1.15!important;
  font-weight:850!important;
  margin-bottom:4px!important;
}

@media(max-height:820px) and (min-width:901px){
  .sdpi-typing-app.is-running.is-tutor-mode.has-tutor-assist .sdpi-test-screen{
    grid-template-rows:auto minmax(88px,17vh) minmax(100px,.72fr) minmax(130px,25vh)!important;
  }
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-label>span{
    font-size:12px!important;
    margin-bottom:3px!important;
  }
}

/* =========================================================
   v1.12.109 — Typing Tutor top-row + reference balance touch
   User UAT polish only:
   - Keep the approved blue-card dimensions/widths, but make label/value text larger.
   - Force the top meta grid row to the approved 40px so no unused vertical band
     can open below it on wide/tall desktop viewports.
   - Start Reference Passage directly below the top row with the normal compact gap.
   - Give Reference Passage more height while keeping the typing/tutor rows usable.
   - Enlarge "Type the passage below" one more step.
   Shared by English + Hindi assisted Tutor screens; no scoring/progression changes.
   ========================================================= */
@media(min-width:901px){
  .sdpi-typing-app.is-running.is-tutor-mode.has-tutor-assist .sdpi-test-screen{
    grid-template-rows:40px minmax(145px,23vh) minmax(118px,1fr) minmax(158px,28vh)!important;
    gap:6px!important;
    align-content:stretch!important;
  }
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-test-meta{
    height:40px!important;
    min-height:40px!important;
    max-height:40px!important;
    align-self:start!important;
  }
  .sdpi-typing-app.is-running .sdpi-test-meta span{
    font-size:10.5px!important;
    line-height:1!important;
    font-weight:900!important;
  }
  .sdpi-typing-app.is-running .sdpi-test-meta strong{
    font-size:14px!important;
    line-height:1.08!important;
    font-weight:850!important;
  }
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-passage-box h3{
  font-size:13.5px!important;
}
.sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-label>span{
  font-size:14.5px!important;
  line-height:1.15!important;
  font-weight:900!important;
  margin-bottom:4px!important;
}

@media(max-height:820px) and (min-width:901px){
  .sdpi-typing-app.is-running.is-tutor-mode.has-tutor-assist .sdpi-test-screen{
    grid-template-rows:40px minmax(108px,20vh) minmax(100px,1fr) minmax(130px,25vh)!important;
  }
  .sdpi-typing-app.is-running .sdpi-test-meta span{font-size:10px!important}
  .sdpi-typing-app.is-running .sdpi-test-meta strong{font-size:13.5px!important}
  .sdpi-typing-app.is-running.has-tutor-assist .sdpi-typing-label>span{font-size:13.5px!important}
}

/* =========================================================
   v1.12.112 — Operational Centre Manager / Faculty Portal
   Replaces placeholder framework cards with a compact old-panel-inspired
   sidebar + real working module launch surface.
   ========================================================= */
.sdpi-scm-public-wrap.sdpi-staff-portal{max-width:none!important;margin:0!important;padding:0!important}
.sdpi-staff-portal .sdpi-ops-shell{min-height:calc(100vh - 112px);display:grid;grid-template-columns:238px minmax(0,1fr);background:#f5f8fb;border:1px solid #d8e2ea;border-radius:14px;overflow:hidden}
.sdpi-ops-sidebar{display:flex;flex-direction:column;background:#123e70;color:#fff;min-height:720px}
.sdpi-ops-brand{display:flex;align-items:center;gap:11px;padding:18px 16px;border-bottom:1px solid rgba(255,255,255,.13)}
.sdpi-ops-brand>span{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#a4ce3a;color:#153a61;font-weight:900;font-size:14px}
.sdpi-ops-brand strong,.sdpi-ops-brand small{display:block;color:#fff}.sdpi-ops-brand strong{font-size:15px}.sdpi-ops-brand small{margin-top:2px;font-size:10.5px;opacity:.78;line-height:1.25}
.sdpi-ops-sidebar nav{display:grid;gap:2px;padding:10px 8px;overflow:auto}
.sdpi-ops-sidebar nav a{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:8px;min-height:37px;padding:5px 8px;border-radius:7px;color:#e8f1fa;text-decoration:none;font-size:12.5px;font-weight:700}
.sdpi-ops-sidebar nav a:hover,.sdpi-ops-sidebar nav a.is-active{background:rgba(255,255,255,.14);color:#fff}.sdpi-ops-sidebar nav a.is-active{box-shadow:inset 3px 0 0 #a4ce3a}
.sdpi-ops-sidebar nav a b{display:grid;place-items:center;width:24px;height:24px;border-radius:6px;background:rgba(255,255,255,.12);font-size:9px;letter-spacing:.03em}
.sdpi-ops-logout{margin:auto 10px 12px;padding:9px 10px;border:1px solid rgba(255,255,255,.25);border-radius:7px;color:#fff!important;text-align:center;text-decoration:none!important;font-size:12px;font-weight:800}
.sdpi-ops-main{min-width:0;padding:18px 20px 28px}
.sdpi-ops-head{display:flex;justify-content:space-between;align-items:center;gap:18px;background:#fff;border:1px solid #d8e2ea;border-radius:13px;padding:14px 16px;box-shadow:0 3px 14px rgba(18,62,112,.04)}
.sdpi-ops-head span{font-size:9px;color:#77a11a;font-weight:900;letter-spacing:.13em}.sdpi-ops-head h1{margin:2px 0 3px;color:#173f75;font-size:22px;line-height:1.15}.sdpi-ops-head p{margin:0;color:#66798a;font-size:12px}
.sdpi-ops-head-actions{display:flex;gap:7px;flex-wrap:wrap}.sdpi-ops-head-actions a{padding:7px 9px;border:1px solid #cbd8e3;border-radius:7px;color:#173f75;text-decoration:none;font-size:11px;font-weight:800;background:#fff}
.sdpi-ops-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:12px 0}.sdpi-ops-kpis article{background:#fff;border:1px solid #d8e2ea;border-radius:10px;padding:10px 12px}.sdpi-ops-kpis strong{display:block;color:#173f75;font-size:22px;line-height:1}.sdpi-ops-kpis span{display:block;margin-top:5px;color:#6a7b8d;font-size:10.5px;font-weight:700}
.sdpi-ops-section{background:#fff;border:1px solid #d8e2ea;border-radius:13px;padding:14px;margin-top:12px}.sdpi-ops-section-title{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:11px}.sdpi-ops-section-title>div>span{font-size:9px;color:#78a914;font-weight:900;letter-spacing:.12em}.sdpi-ops-section-title h2{margin:2px 0 0;color:#173f75;font-size:18px}.sdpi-ops-section-title p{margin:0;color:#6b7c8d;font-size:11.5px}
.sdpi-ops-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.sdpi-ops-card-grid>a{position:relative;display:grid;grid-template-columns:34px 1fr;column-gap:10px;row-gap:2px;min-height:98px;padding:12px;border:1px solid #dbe4eb;border-radius:10px;color:#273b4e;text-decoration:none;background:linear-gradient(180deg,#fff,#fbfdff)}.sdpi-ops-card-grid>a:hover{border-color:#9fca38;box-shadow:0 4px 14px rgba(18,62,112,.07);transform:translateY(-1px)}
.sdpi-ops-card-grid>a>b{grid-row:1/4;display:grid;place-items:center;align-self:start;width:34px;height:34px;border-radius:8px;background:#173f75;color:#fff;font-size:10px}.sdpi-ops-card-grid>a>strong{color:#173f75;font-size:13px;line-height:1.2}.sdpi-ops-card-grid>a>span{color:#6c7c8c;font-size:10.5px;line-height:1.35}.sdpi-ops-card-grid>a>small{color:#6e980d;font-weight:900;font-size:10px;margin-top:4px}
.sdpi-ops-legacy-map{margin-top:12px;padding:11px 13px;border:1px solid #dce9be;border-left:4px solid #a4ce3a;border-radius:9px;background:#fbfff1}.sdpi-ops-legacy-map strong{color:#173f75;font-size:12.5px}.sdpi-ops-legacy-map p{margin:4px 0 0;color:#647687;font-size:11px;line-height:1.5}
@media(max-width:1050px){.sdpi-staff-portal .sdpi-ops-shell{grid-template-columns:190px minmax(0,1fr)}.sdpi-ops-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sdpi-ops-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.sdpi-staff-portal .sdpi-ops-shell{grid-template-columns:1fr}.sdpi-ops-sidebar{min-height:auto}.sdpi-ops-sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}.sdpi-ops-logout{margin:8px 10px 12px}.sdpi-ops-head,.sdpi-ops-section-title{align-items:flex-start;flex-direction:column}.sdpi-ops-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.sdpi-ops-main{padding:10px}.sdpi-ops-sidebar nav,.sdpi-ops-card-grid,.sdpi-ops-kpis{grid-template-columns:1fr}}

.sdpi-student-study-list{display:grid;gap:10px}.sdpi-student-study-list>article{display:grid;grid-template-columns:1fr auto;gap:8px 14px;align-items:center;padding:12px;border:1px solid #dbe4eb;border-radius:10px;background:#fbfdff}.sdpi-student-study-list>article>div:first-child span,.sdpi-student-study-list>article>div:first-child strong,.sdpi-student-study-list>article>div:first-child small{display:block}.sdpi-student-study-list>article>div:first-child span{font-size:10px;color:#78a914;font-weight:900;text-transform:uppercase}.sdpi-student-study-list>article>div:first-child strong{color:#173f75;font-size:14px;margin:2px 0}.sdpi-student-study-list>article>div:first-child small{color:#6a7c8e}.sdpi-student-study-list>article>p{grid-column:1/-1;margin:0;color:#657789;font-size:12px}.sdpi-student-study-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.sdpi-student-study-actions>a:not(.sdpi-scm-primary){padding:7px 10px;border:1px solid #cbd7e2;border-radius:8px;color:#173f75;text-decoration:none;font-weight:800;font-size:12px}.sdpi-student-study-actions .sdpi-scm-primary{padding:8px 11px;text-decoration:none;font-size:12px}@media(max-width:650px){.sdpi-student-study-list>article{grid-template-columns:1fr}.sdpi-student-study-actions{justify-content:flex-start}}

/* =========================================================
   v1.12.113 — Branded front-end operational workspaces
   Centre/Faculty/Accounts/Examiner modules render inside the Campus shell;
   WordPress admin chrome/URL is never part of the staff-facing experience.
   ========================================================= */
.sdpi-ops-workspace-shell .sdpi-ops-main{padding-bottom:34px}
.sdpi-ops-module-head{margin-bottom:12px}
.sdpi-ops-module-host{min-width:0;background:#fff;border:1px solid #d8e2ea;border-radius:13px;padding:14px;overflow:hidden}
.sdpi-ops-module-host>.wrap,.sdpi-ops-module-host .wrap{margin:0!important;max-width:none!important;padding:0!important}
.sdpi-ops-module-host .sdpi-control-hero,.sdpi-ops-module-host .sdpi-student-page-head{margin-top:0!important}
.sdpi-ops-module-host .notice{margin:10px 0!important;padding:9px 12px;border:1px solid #d7e2eb;border-left:4px solid #1d5a97;border-radius:8px;background:#f8fbfe;color:#30465a}
.sdpi-ops-module-host .notice-error{border-left-color:#bd3434;background:#fff7f7}.sdpi-ops-module-host .notice-success{border-left-color:#6d9911;background:#fbfff2}
.sdpi-ops-module-host .button,.sdpi-ops-module-host button.button,.sdpi-ops-module-host input[type=submit].button{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 11px;border:1px solid #c8d5e1;border-radius:7px;background:#fff;color:#174779;text-decoration:none;font-size:12px;font-weight:800;line-height:1.2;cursor:pointer;box-shadow:none}
.sdpi-ops-module-host .button:hover,.sdpi-ops-module-host button.button:hover{border-color:#8caf31;background:#f9fdec;color:#153e70}
.sdpi-ops-module-host .button-primary,.sdpi-ops-module-host button.button-primary,.sdpi-ops-module-host input.button-primary{border-color:#1d548c;background:#1d548c;color:#fff}
.sdpi-ops-module-host .button-primary:hover,.sdpi-ops-module-host button.button-primary:hover{border-color:#173f70;background:#173f70;color:#fff}
.sdpi-ops-module-host table.widefat{width:100%;border-collapse:collapse;background:#fff;border:1px solid #dbe4eb;border-radius:8px;overflow:hidden}
.sdpi-ops-module-host table.widefat th,.sdpi-ops-module-host table.widefat td{padding:9px 10px;border-bottom:1px solid #e3eaf0;text-align:left;vertical-align:top;font-size:12px;color:#32485b}
.sdpi-ops-module-host table.widefat th{background:#f3f7fa;color:#173f75;font-weight:900}
.sdpi-ops-module-host table.striped tbody tr:nth-child(odd){background:#fbfdff}
.sdpi-ops-module-host input[type=text],.sdpi-ops-module-host input[type=search],.sdpi-ops-module-host input[type=email],.sdpi-ops-module-host input[type=tel],.sdpi-ops-module-host input[type=url],.sdpi-ops-module-host input[type=number],.sdpi-ops-module-host input[type=date],.sdpi-ops-module-host input[type=time],.sdpi-ops-module-host input[type=datetime-local],.sdpi-ops-module-host select,.sdpi-ops-module-host textarea{max-width:100%;min-height:36px;border:1px solid #cbd8e3;border-radius:7px;background:#fff;color:#263d51;padding:7px 9px;font:inherit;box-shadow:none}
.sdpi-ops-module-host textarea{min-height:82px}
.sdpi-ops-module-host label{color:#42596d;font-size:12px;font-weight:700}
.sdpi-ops-module-host h1,.sdpi-ops-module-host h2,.sdpi-ops-module-host h3{color:#173f75}
.sdpi-ops-module-host .sdpi-table-scroll{overflow:auto}
@media(max-width:760px){.sdpi-ops-module-host{padding:10px}.sdpi-ops-module-host table.widefat th,.sdpi-ops-module-host table.widefat td{padding:8px;font-size:11px}}


/* v1.12.114 — Centre/Faculty operational sidebar readability polish.
 * Keep the approved structure; strengthen contrast so all role modules remain
 * clearly visible at normal browser zoom and at compact desktop zoom levels. */
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-shell{
    grid-template-columns:252px minmax(0,1fr);
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-sidebar{
    background:linear-gradient(180deg,#174f87 0%,#123f72 100%);
    color:#fff;
    border-right:1px solid rgba(7,39,73,.18);
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-brand{
    background:#113d6c;
    border-bottom-color:rgba(255,255,255,.18);
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-brand strong,
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-brand small{
    color:#fff!important;
    opacity:1!important;
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-brand small{
    color:#d9e9f7!important;
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-sidebar nav{
    gap:4px;
    padding:12px 9px;
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-sidebar nav a,
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-sidebar nav a:link,
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-sidebar nav a:visited{
    grid-template-columns:30px minmax(0,1fr);
    min-height:39px;
    padding:6px 9px;
    color:#f7fbff!important;
    background:transparent;
    font-size:13.5px;
    font-weight:800;
    line-height:1.2;
    opacity:1!important;
    text-shadow:0 1px 0 rgba(0,0,0,.12);
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-sidebar nav a span{
    color:#f7fbff!important;
    opacity:1!important;
    visibility:visible!important;
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-sidebar nav a b{
    width:27px;
    height:27px;
    color:#f7fbff!important;
    background:rgba(255,255,255,.16);
    border:1px solid rgba(255,255,255,.09);
    font-size:9px;
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-sidebar nav a:hover,
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-sidebar nav a:focus-visible{
    background:#286498;
    color:#fff!important;
    outline:none;
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-sidebar nav a.is-active{
    background:#376f9f;
    color:#fff!important;
    box-shadow:inset 4px 0 0 #a4ce3a;
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-sidebar nav a.is-active b{
    background:#a4ce3a;
    border-color:#a4ce3a;
    color:#153a61!important;
    text-shadow:none;
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-logout,
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-logout:visited{
    color:#fff!important;
    background:rgba(255,255,255,.07);
    border-color:rgba(255,255,255,.35);
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-logout:hover{
    background:#286498;
}
@media(max-width:1050px){
    body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-shell{grid-template-columns:215px minmax(0,1fr)}
    body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-sidebar nav a{font-size:12.5px}
}
@media(max-width:760px){
    body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-shell{grid-template-columns:1fr}
}

/* =========================================================
   v1.12.115 — Branded Main Admin front-end control centre
   Existing SDPI module callbacks render inside a Campus-owned shell. WordPress
   admin chrome, toolbar and admin.php URLs are not part of normal operations.
   ========================================================= */
body.sdpi-portal-page-admin-portal .sdpi-portal-main{padding:14px 16px 24px!important;background:#eef3f7!important}
body.sdpi-portal-page-admin-portal .sdpi-portal-content{width:100%;max-width:none;margin:0!important;padding:0!important}
body.sdpi-portal-page-admin-portal .sdpi-scm-public-wrap.sdpi-admin-portal{max-width:none!important;margin:0!important;padding:0!important}
.sdpi-admin-shell{min-height:calc(100vh - 118px);display:grid;grid-template-columns:260px minmax(0,1fr);background:#f4f7fa;border:1px solid #d3dee8;border-radius:15px;overflow:hidden;box-shadow:0 8px 28px rgba(14,49,84,.06)}
.sdpi-admin-sidebar{display:flex;flex-direction:column;align-self:start;position:sticky;top:8px;height:calc(100vh - 24px);min-height:0;max-height:calc(100vh - 24px);background:linear-gradient(180deg,#174f87 0%,#103b6b 100%);color:#fff;border-right:1px solid rgba(9,39,69,.22);overflow:hidden}
.sdpi-admin-brand{display:flex;align-items:center;gap:11px;padding:17px 15px;background:#103b69;border-bottom:1px solid rgba(255,255,255,.16)}
.sdpi-admin-brand>span{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#a4ce3a;color:#173b61;font-size:13px;font-weight:950;letter-spacing:.03em}
.sdpi-admin-brand strong,.sdpi-admin-brand small{display:block}.sdpi-admin-brand strong{color:#fff;font-size:14px;line-height:1.15}.sdpi-admin-brand small{margin-top:3px;color:#d7e7f6;font-size:10.5px;line-height:1.25}
.sdpi-admin-sidebar nav{display:grid;gap:3px;padding:10px 8px;overflow:auto;min-height:0;overscroll-behavior:contain}
.sdpi-admin-sidebar nav a,.sdpi-admin-sidebar nav a:link,.sdpi-admin-sidebar nav a:visited{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:8px;min-height:38px;padding:5px 8px;border-radius:7px;color:#f7fbff!important;text-decoration:none!important;font-size:12.8px!important;line-height:1.2!important;font-weight:800!important;opacity:1!important}
.sdpi-admin-sidebar nav a b{display:grid;place-items:center;width:27px;height:27px;border-radius:6px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.08);color:#fff;font-size:8.5px;letter-spacing:.02em}
.sdpi-admin-sidebar nav a:hover,.sdpi-admin-sidebar nav a:focus-visible{background:#286498;color:#fff!important;outline:none}
.sdpi-admin-sidebar nav a.is-active{background:#376f9f;color:#fff!important;box-shadow:inset 4px 0 0 #a4ce3a}.sdpi-admin-sidebar nav a.is-active b{background:#a4ce3a;border-color:#a4ce3a;color:#153a61}
/* v1.12.117 — native, no-JS Main Admin sidebar dropdowns. */
.sdpi-admin-sidebar nav .sdpi-admin-nav-group{margin:0;border:0;border-radius:7px;overflow:hidden}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group>summary{display:grid;grid-template-columns:30px minmax(0,1fr) 16px;align-items:center;gap:8px;min-height:38px;padding:5px 8px;border-radius:7px;color:#f7fbff;cursor:pointer;list-style:none;font-size:12.8px;line-height:1.2;font-weight:800;user-select:none}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group>summary::-webkit-details-marker{display:none}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group>summary b{display:grid;place-items:center;width:27px;height:27px;border-radius:6px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.08);color:#fff;font-size:8.5px;letter-spacing:.02em}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group>summary i{position:relative;width:14px;height:14px}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group>summary i:before,.sdpi-admin-sidebar nav .sdpi-admin-nav-group>summary i:after{content:'';position:absolute;top:6px;width:7px;height:2px;border-radius:2px;background:#dcebf8;transition:transform .16s ease}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group>summary i:before{left:1px;transform:rotate(45deg)}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group>summary i:after{right:1px;transform:rotate(-45deg)}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group[open]>summary i:before{transform:rotate(-45deg)}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group[open]>summary i:after{transform:rotate(45deg)}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group>summary:hover,.sdpi-admin-sidebar nav .sdpi-admin-nav-group>summary:focus-visible{background:#286498;outline:none}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group.is-current>summary{background:#376f9f;color:#fff!important;box-shadow:inset 4px 0 0 #a4ce3a}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group.is-current>summary b{background:#a4ce3a;border-color:#a4ce3a;color:#153a61}
.sdpi-admin-nav-children{display:grid;gap:2px;margin:2px 0 5px;padding:4px 5px 5px 38px;background:rgba(4,38,70,.22);border-radius:0 0 7px 7px}
.sdpi-admin-sidebar nav .sdpi-admin-nav-children a,.sdpi-admin-sidebar nav .sdpi-admin-nav-children a:link,.sdpi-admin-sidebar nav .sdpi-admin-nav-children a:visited{display:block;min-height:0;padding:6px 8px;border-radius:5px;color:#eaf4fc!important;font-size:11.4px!important;line-height:1.28!important;font-weight:700!important;box-shadow:none}
.sdpi-admin-sidebar nav .sdpi-admin-nav-children a:hover,.sdpi-admin-sidebar nav .sdpi-admin-nav-children a:focus-visible{background:rgba(255,255,255,.12);color:#fff!important}
.sdpi-admin-sidebar nav .sdpi-admin-nav-children a.is-active{background:#a4ce3a;color:#153a61!important;box-shadow:none}
.sdpi-admin-sidebar nav .sdpi-admin-nav-children .sdpi-admin-nav-overview{color:#bfe169!important;font-weight:850!important}
.sdpi-admin-sidebar nav .sdpi-admin-nav-children .sdpi-admin-nav-overview.is-active{color:#153a61!important}
.sdpi-admin-logout{margin:auto 10px 12px;padding:9px 10px;border:1px solid rgba(255,255,255,.34);border-radius:7px;background:rgba(255,255,255,.07);color:#fff!important;text-align:center;text-decoration:none!important;font-size:12px!important;font-weight:850!important}.sdpi-admin-logout:hover{background:#286498}
.sdpi-admin-main{min-width:0;padding:15px 17px 28px}
.sdpi-admin-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:11px;padding:13px 15px;background:#fff;border:1px solid #d4e0e9;border-radius:12px;box-shadow:0 3px 13px rgba(16,55,92,.04)}
.sdpi-admin-head>div>span{font-size:9px!important;color:#76a016;font-weight:950;letter-spacing:.12em}.sdpi-admin-head h1{margin:2px 0 2px!important;color:#173f75!important;font-size:23px!important;line-height:1.12!important}.sdpi-admin-head p{margin:0!important;color:#687b8c!important;font-size:11.5px!important;line-height:1.35!important}
.sdpi-admin-head-actions{display:flex;gap:7px;flex-wrap:wrap}.sdpi-admin-head-actions a{display:inline-flex;align-items:center;min-height:32px;padding:6px 9px;border:1px solid #cad7e2;border-radius:7px;background:#fff;color:#173f75!important;text-decoration:none!important;font-size:11px!important;font-weight:850!important}
.sdpi-admin-module-host{min-width:0;background:#fff;border:1px solid #d4e0e9;border-radius:12px;padding:14px;overflow:hidden}
.sdpi-admin-module-host>.wrap,.sdpi-admin-module-host .wrap{margin:0!important;max-width:none!important;padding:0!important}
.sdpi-admin-module-host .sdpi-launch-dashboard,.sdpi-admin-module-host .sdpi-nav-hub,.sdpi-admin-module-host .sdpi-control-centre{margin:0!important}
.sdpi-admin-module-host .sdpi-launch-hero,.sdpi-admin-module-host .sdpi-control-hero{margin-top:0!important}
.sdpi-admin-module-host .notice{margin:9px 0!important;padding:8px 11px!important;border:1px solid #d7e1e9;border-left:4px solid #1e5b96;border-radius:7px;background:#f8fbfe;color:#2e465a}.sdpi-admin-module-host .notice-success{border-left-color:#759f19;background:#fbfff2}.sdpi-admin-module-host .notice-error{border-left-color:#bd3434;background:#fff7f7}
.sdpi-admin-module-host .button,.sdpi-admin-module-host button.button,.sdpi-admin-module-host input.button{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:33px!important;height:auto!important;padding:6px 10px!important;border:1px solid #c7d4df!important;border-radius:7px!important;background:#fff!important;color:#174779!important;text-decoration:none!important;font-size:12px!important;font-weight:800!important;line-height:1.2!important;box-shadow:none!important}.sdpi-admin-module-host .button-primary,.sdpi-admin-module-host button.button-primary,.sdpi-admin-module-host input.button-primary{border-color:#1d548c!important;background:#1d548c!important;color:#fff!important}
.sdpi-admin-module-host input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]),.sdpi-admin-module-host select,.sdpi-admin-module-host textarea{max-width:100%;min-height:35px!important;height:auto;padding:6px 8px!important;border:1px solid #c8d6e2!important;border-radius:7px!important;background:#fff;color:#263d51;font-size:13px!important;line-height:1.35!important;box-shadow:none!important}.sdpi-admin-module-host textarea{min-height:78px!important}.sdpi-admin-module-host label,.sdpi-admin-module-host legend{font-size:12.5px!important;line-height:1.35!important;font-weight:750!important;color:#41596e}
.sdpi-admin-module-host p,.sdpi-admin-module-host li,.sdpi-admin-module-host td,.sdpi-admin-module-host th{font-size:12.5px!important;line-height:1.45}.sdpi-admin-module-host small,.sdpi-admin-module-host .description{font-size:11px!important;line-height:1.4!important}
.sdpi-admin-module-host table.widefat{width:100%;border-collapse:collapse;background:#fff;border:1px solid #dbe4eb}.sdpi-admin-module-host table.widefat th,.sdpi-admin-module-host table.widefat td{padding:8px 9px!important;border-bottom:1px solid #e2e9ef;color:#33495c}.sdpi-admin-module-host table.widefat th{background:#f3f7fa;color:#173f75;font-weight:900}
.sdpi-admin-module-host .nav-tab-wrapper{display:flex;gap:5px;flex-wrap:wrap;border-bottom:1px solid #d9e2ea;margin:0 0 12px;padding:0 0 7px}.sdpi-admin-module-host .nav-tab{margin:0!important;padding:6px 10px!important;border:1px solid #cbd8e3!important;border-radius:7px!important;background:#f7fafc!important;color:#174779!important;text-decoration:none!important;font-size:12px!important;font-weight:800!important}.sdpi-admin-module-host .nav-tab-active{background:#1d548c!important;border-color:#1d548c!important;color:#fff!important}
@media(max-width:1100px){.sdpi-admin-shell{grid-template-columns:220px minmax(0,1fr)}.sdpi-admin-sidebar nav a{font-size:12px!important}}
@media(max-width:780px){body.sdpi-portal-page-admin-portal .sdpi-portal-main{padding:8px!important}.sdpi-admin-shell{grid-template-columns:1fr}.sdpi-admin-sidebar{position:static;height:auto;max-height:none;min-height:auto}.sdpi-admin-sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}.sdpi-admin-logout{margin:8px 10px 12px}.sdpi-admin-head{align-items:flex-start;flex-direction:column}.sdpi-admin-main{padding:10px}.sdpi-admin-module-host{padding:10px}}
@media(max-width:520px){.sdpi-admin-sidebar nav{grid-template-columns:1fr}}


/* v1.12.118 — Main-Admin-only WordPress maintenance gateway. */
.sdpi-wp-maintenance{display:grid;gap:16px}
.sdpi-wp-maintenance-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;border:1px solid #d8e2eb;border-radius:16px;background:linear-gradient(135deg,#f8fbfd,#eef5fa);color:#153f72}
.sdpi-wp-maintenance-hero span{display:block;margin-bottom:4px;color:#6e9700;font-size:11px;font-weight:900;letter-spacing:.09em}
.sdpi-wp-maintenance-hero h2{margin:0 0 6px;font-size:28px;line-height:1.1;color:#174579}
.sdpi-wp-maintenance-hero p{margin:0;max-width:780px;color:#60758a;font-size:14px;line-height:1.5}
.sdpi-wp-maintenance-hero>strong{flex:0 0 auto;padding:8px 12px;border:1px solid #a8cc4a;border-radius:999px;background:#f6fbe9;color:#537600;font-size:12px}
.sdpi-wp-maintenance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sdpi-wp-maintenance-card{display:grid;grid-template-columns:44px 1fr 20px;align-items:center;gap:12px;min-height:92px;padding:15px 16px;border:1px solid #d7e1ea;border-radius:14px;background:#fff;text-decoration:none!important;box-shadow:0 4px 14px rgba(22,64,104,.04);transition:.18s ease}
.sdpi-wp-maintenance-card:hover{border-color:#9ec735;transform:translateY(-1px);box-shadow:0 7px 18px rgba(22,64,104,.08)}
.sdpi-wp-maintenance-card>b{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#1d4f86;color:#fff;font-size:12px;letter-spacing:.04em}
.sdpi-wp-maintenance-card div{display:grid;gap:3px}
.sdpi-wp-maintenance-card div>strong{color:#174579;font-size:15px}
.sdpi-wp-maintenance-card div>span{color:#687d91;font-size:12.5px;line-height:1.4}
.sdpi-wp-maintenance-card>i{color:#6f9700;font-style:normal;font-size:20px;font-weight:900}
.sdpi-wp-maintenance-note{padding:14px 16px;border-left:4px solid #a4ce3a;border-radius:10px;background:#f7fbe9;color:#4e6578}
.sdpi-wp-maintenance-note strong{color:#174579}.sdpi-wp-maintenance-note p{margin:4px 0 0;font-size:13px;line-height:1.45}
@media(max-width:760px){.sdpi-wp-maintenance-grid{grid-template-columns:1fr}.sdpi-wp-maintenance-hero{align-items:flex-start;flex-direction:column}.sdpi-wp-maintenance-hero h2{font-size:23px}}
/* v1.12.122 — branded Main Admin legacy-module host */
.sdpi-admin-legacy-frame-wrap{width:100%;min-height:640px;background:transparent;border:0;border-radius:0;overflow:hidden}
.sdpi-admin-legacy-frame{display:none;width:100%;height:900px;min-height:640px;border:0;background:transparent;overflow:hidden}
@media(max-width:900px){.sdpi-admin-legacy-frame-wrap{border-radius:10px}.sdpi-admin-legacy-frame{min-height:760px}}

/* v1.12.123 — native Main Admin renderer blank-screen guard */
.sdpi-admin-frame-status{margin:14px;padding:14px 16px;border:1px solid #f0c9c6;border-left:4px solid #c4382b;border-radius:10px;background:#fff5f4;color:#7d2b24;display:grid;gap:4px}
.sdpi-admin-frame-status[hidden]{display:none!important}.sdpi-admin-frame-status strong{font-size:14px}.sdpi-admin-frame-status span{font-size:12.5px;line-height:1.45}

/* =========================================================
   v1.12.129 — Compact Centre / Faculty operational shell
   Actual user identity + centre-name dashboard + grouped submenus.
   ========================================================= */
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-shell{grid-template-columns:228px minmax(0,1fr)!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-sidebar{min-height:680px}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-brand{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px 10px;align-items:center;padding:11px 10px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-brand-mark{grid-row:1;display:grid;place-items:center;width:40px;height:40px;border-radius:9px;background:#a4ce3a;color:#153a61!important;font-size:12px;font-weight:950;letter-spacing:.02em}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-person{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;align-items:center;min-width:0}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-person img,body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-person>i{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.68);background:#fff;color:#173f75;display:grid;place-items:center;font-style:normal;font-size:13px;font-weight:900}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-person strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff!important;font-size:12px!important;line-height:1.15}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-person small{display:block;margin-top:2px;color:#d9e9f7!important;font-size:9.5px!important;line-height:1.2}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-brand>em{grid-column:1/-1;display:block;margin:0;padding-top:6px;border-top:1px solid rgba(255,255,255,.14);color:#d9e9f7;font-size:9.5px;font-style:normal;line-height:1.25;white-space:normal}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-sidebar nav{display:block;padding:7px 7px 10px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-sidebar nav .sdpi-ops-nav-direct{margin-bottom:4px}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-nav-group{margin:3px 0;border:0;border-radius:7px;overflow:hidden}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-nav-group>summary{display:grid;grid-template-columns:minmax(0,1fr) 15px;align-items:center;gap:6px;min-height:34px;padding:6px 9px;border-radius:7px;color:#f7fbff;cursor:pointer;list-style:none;font-size:11.5px;font-weight:850;line-height:1.15}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-nav-group>summary::-webkit-details-marker{display:none}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-nav-group>summary:hover,body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-nav-group.is-current>summary{background:#286498;color:#fff!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-nav-group>summary i{position:relative;width:13px;height:13px}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-nav-group>summary i:before,body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-nav-group>summary i:after{content:'';position:absolute;top:6px;width:6px;height:1.5px;border-radius:2px;background:#dcebf8;transition:transform .16s ease}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-nav-group>summary i:before{left:1px;transform:rotate(45deg)}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-nav-group>summary i:after{right:1px;transform:rotate(-45deg)}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-nav-group[open]>summary i:before{transform:rotate(-45deg)}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-nav-group[open]>summary i:after{transform:rotate(45deg)}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-nav-group>div{display:grid;gap:2px;padding:3px 0 5px 6px}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-nav-group>div>a{min-height:31px!important;padding:4px 7px!important;font-size:11.2px!important;font-weight:750!important;grid-template-columns:24px minmax(0,1fr)!important;border-radius:6px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-nav-group>div>a b{width:22px!important;height:22px!important;font-size:7.5px!important;border-radius:5px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-main{padding:11px 13px 18px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-head{padding:10px 12px!important;border-radius:10px!important;gap:10px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-head h1{font-size:18px!important;margin:1px 0 2px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-head p{font-size:10.5px!important;line-height:1.35!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-head-actions a{padding:6px 8px!important;font-size:10px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-kpis{gap:7px!important;margin:8px 0!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-kpis article{padding:7px 9px!important;border-radius:8px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-kpis strong{font-size:17px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-kpis span{margin-top:3px!important;font-size:9.5px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-section{padding:10px!important;margin-top:8px!important;border-radius:10px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-section-title{margin-bottom:7px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-section-title h2{font-size:15px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-section-title p{font-size:10px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-card-grid>a{grid-template-columns:28px 1fr!important;column-gap:8px!important;min-height:70px!important;padding:8px!important;border-radius:8px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-card-grid>a>b{width:28px!important;height:28px!important;border-radius:6px!important;font-size:8px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-card-grid>a>strong{font-size:11.5px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-card-grid>a>span{font-size:9.5px!important;line-height:1.25!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-card-grid>a>small{font-size:9px!important;margin-top:2px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-legacy-map{margin-top:8px!important;padding:8px 10px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-legacy-map p{font-size:10px!important}
/* Embedded Student Register and other legacy module pages stay dense inside staff portal. */
body.sdpi-portal-page-staff-login .sdpi-ops-module-host{padding:9px!important;border-radius:10px!important}
body.sdpi-portal-page-staff-login .sdpi-ops-module-host .wrap{margin:0!important;max-width:none!important}
body.sdpi-portal-page-staff-login .sdpi-ops-module-host h1{font-size:18px!important;margin:4px 0 8px!important;line-height:1.2!important}
body.sdpi-portal-page-staff-login .sdpi-ops-module-host h2{font-size:14.5px!important;margin:7px 0!important;line-height:1.2!important}
body.sdpi-portal-page-staff-login .sdpi-ops-module-host h3{font-size:12.5px!important;margin:6px 0!important}
body.sdpi-portal-page-staff-login .sdpi-ops-module-host .sdpi-control-hero{padding:10px 12px!important;margin:0 0 8px!important;border-radius:9px!important;min-height:0!important}
body.sdpi-portal-page-staff-login .sdpi-ops-module-host .sdpi-control-hero h1{font-size:18px!important;margin:2px 0 3px!important}
body.sdpi-portal-page-staff-login .sdpi-ops-module-host .sdpi-control-hero p{font-size:10.5px!important;line-height:1.35!important}
body.sdpi-portal-page-staff-login .sdpi-ops-module-host .sdpi-card{padding:9px 10px!important;margin:7px 0!important;border-radius:9px!important}
body.sdpi-portal-page-staff-login .sdpi-ops-module-host table.widefat th,body.sdpi-portal-page-staff-login .sdpi-ops-module-host table.widefat td{padding:6px 7px!important;font-size:10.8px!important;line-height:1.3!important}
body.sdpi-portal-page-staff-login .sdpi-ops-module-host table.widefat th{font-size:10.3px!important}
body.sdpi-portal-page-staff-login .sdpi-ops-module-host .sdpi-enterprise-filterbar{gap:6px!important;padding:7px!important;margin:0 0 7px!important}
body.sdpi-portal-page-staff-login .sdpi-ops-module-host input[type=text],body.sdpi-portal-page-staff-login .sdpi-ops-module-host input[type=search],body.sdpi-portal-page-staff-login .sdpi-ops-module-host input[type=email],body.sdpi-portal-page-staff-login .sdpi-ops-module-host input[type=tel],body.sdpi-portal-page-staff-login .sdpi-ops-module-host input[type=url],body.sdpi-portal-page-staff-login .sdpi-ops-module-host input[type=number],body.sdpi-portal-page-staff-login .sdpi-ops-module-host input[type=date],body.sdpi-portal-page-staff-login .sdpi-ops-module-host input[type=time],body.sdpi-portal-page-staff-login .sdpi-ops-module-host select{min-height:32px!important;padding:5px 7px!important;font-size:10.8px!important}
@media(max-width:1050px){body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-shell{grid-template-columns:205px minmax(0,1fr)!important}body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-shell{grid-template-columns:1fr!important}body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-card-grid{grid-template-columns:1fr}}
.sdpi-public-payment-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}.sdpi-public-payment-methods article{border:1px solid #d7e2ea;border-radius:9px;background:#fbfdff;padding:9px 10px}.sdpi-public-payment-methods strong,.sdpi-public-payment-methods span{display:block}.sdpi-public-payment-methods strong{color:#173f75;font-size:12px}.sdpi-public-payment-methods span{margin-top:3px;color:#64778a;font-size:10.5px;line-height:1.4}@media(max-width:650px){.sdpi-public-payment-methods{grid-template-columns:1fr}}
.sdpi-centre-profile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.sdpi-centre-profile-grid article{padding:8px 9px;border:1px solid #dbe4eb;border-radius:8px;background:#fbfdff}.sdpi-centre-profile-grid span,.sdpi-centre-profile-grid strong{display:block}.sdpi-centre-profile-grid span{color:#6b7c8d;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.sdpi-centre-profile-grid strong{margin-top:3px;color:#173f75;font-size:11px;line-height:1.3}@media(max-width:1000px){.sdpi-centre-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.sdpi-centre-profile-grid{grid-template-columns:1fr}}

/* v1.12.130 — compact admission controls: normal institute workflow, not oversized wizard actions */
.sdpi-online-admission .sdpi-public-panel-head{margin-bottom:13px;padding-bottom:9px}
.sdpi-online-admission .sdpi-public-panel-head>span{font-size:11px;letter-spacing:.06em}
.sdpi-online-admission .sdpi-public-panel-head h3{margin:3px 0;font-size:19px;line-height:1.25}
.sdpi-online-admission .sdpi-public-panel-head p{font-size:13px;line-height:1.45}
.sdpi-online-admission .sdpi-public-step-controls{gap:8px;margin-top:15px;padding-top:9px;padding-bottom:9px}
.sdpi-online-admission .sdpi-public-step-controls .sdpi-scm-primary,
.sdpi-online-admission .sdpi-public-step-controls .sdpi-scm-secondary,
.sdpi-online-admission .sdpi-public-step-controls button,
.sdpi-online-admission .sdpi-public-submit,
.sdpi-online-admission .sdpi-admission-action-button{box-sizing:border-box;width:auto;min-height:34px;padding:7px 13px!important;border-radius:4px!important;font-size:13px;line-height:1.2;display:inline-flex;align-items:center;justify-content:center}
.sdpi-online-admission .sdpi-public-submit{margin:12px 0 0 auto}
.sdpi-online-admission .sdpi-public-form-steps button{min-height:32px;font-size:12px}
.sdpi-online-admission .sdpi-public-document-grid label{padding:10px}
.sdpi-online-admission .sdpi-public-info-note{margin-top:12px;padding:10px 12px;font-size:13px}
@media(max-width:560px){
  .sdpi-online-admission .sdpi-public-step-controls{grid-template-columns:1fr 1fr;align-items:stretch}
  .sdpi-online-admission .sdpi-public-step-controls .sdpi-save-later{grid-column:1/-1;grid-row:2;justify-self:stretch}
  .sdpi-online-admission .sdpi-public-step-controls .sdpi-scm-primary,
  .sdpi-online-admission .sdpi-public-step-controls .sdpi-scm-secondary,
  .sdpi-online-admission .sdpi-public-step-controls button,
  .sdpi-online-admission .sdpi-public-submit{width:100%;justify-self:stretch}
}

/* v1.12.131 — prevent one-frame nested admin/sidebar flash while a signed child module is loading. The frame is revealed only after the child posts its ready height. */

/* v1.12.132 — simple Student Portal QR/UPI self-pay */
.sdpi-student-self-pay{margin:12px 0;padding:13px;border:1px solid #d5e1e9;border-left:4px solid #a4ce3a;border-radius:9px;background:#fbfdff}.sdpi-student-self-pay-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.sdpi-student-self-pay-head>div{min-width:0}.sdpi-student-self-pay-head span,.sdpi-student-self-pay-head small{display:block;color:#6b7d8d;font-size:10px}.sdpi-student-self-pay-head span{color:#6c930e;font-weight:900;letter-spacing:.08em}.sdpi-student-self-pay-head strong{display:block;margin:2px 0;color:#1d4982;font-size:14px}.sdpi-student-self-pay-head>b{white-space:nowrap;color:#1d4982;font-size:21px}.sdpi-student-qr-pay-grid{display:grid;grid-template-columns:180px minmax(0,1fr);gap:12px;margin-top:10px}.sdpi-student-qr-box{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px;border:1px solid #dbe5ed;border-radius:8px;background:#fff;text-align:center}.sdpi-student-qr-box img{width:118px;height:118px;object-fit:contain}.sdpi-student-qr-box strong{margin-top:5px;color:#1d4982;font-size:12px}.sdpi-student-qr-box span,.sdpi-student-qr-box small{margin-top:2px;color:#687a89;font-size:9.5px;overflow-wrap:anywhere}.sdpi-student-self-pay-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;align-content:start}.sdpi-student-self-pay-form label{margin:0!important;color:#40586f;font-size:10.5px;font-weight:700}.sdpi-student-self-pay-form label:nth-of-type(3),.sdpi-student-self-pay-form button,.sdpi-student-self-pay-form>small{grid-column:1/-1}.sdpi-student-self-pay-form input{width:100%;min-height:36px;margin-top:3px}.sdpi-student-self-pay-form button{justify-self:start;min-height:36px;padding:7px 12px}.sdpi-student-self-pay-form>small{color:#6b7c8d;font-size:9.5px}.sdpi-student-pay-pending{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:10px;padding:10px;border:1px solid #ead49d;border-radius:8px;background:#fff9e9}.sdpi-student-pay-pending strong{color:#845e00}.sdpi-student-pay-pending span,.sdpi-student-pay-pending small{font-size:10px;color:#6e6550}.sdpi-student-self-pay.is-clear,.sdpi-student-self-pay.is-unavailable{display:flex;gap:8px;align-items:center}.sdpi-student-self-pay.is-clear strong{color:#3f6c00}.sdpi-student-self-pay.is-unavailable strong{color:#8a6100}
/* Keep logout inside the visible admin shell instead of at document bottom. */
.sdpi-admin-sidebar{min-height:0!important}.sdpi-admin-sidebar nav{min-height:0!important;overflow-y:auto!important;overscroll-behavior:contain}.sdpi-admin-logout{flex:0 0 auto;margin-top:6px!important;margin-bottom:8px!important}
@media(max-width:720px){.sdpi-student-qr-pay-grid,.sdpi-student-self-pay-form{grid-template-columns:1fr}.sdpi-student-self-pay-form label:nth-of-type(3),.sdpi-student-self-pay-form button,.sdpi-student-self-pay-form>small{grid-column:auto}.sdpi-student-self-pay-head{align-items:flex-start}.sdpi-student-self-pay-head>b{font-size:18px}}


/* v1.12.133 — Main Admin left-navigation click regression hardening.
 * Keep the branded sidebar above embedded/native module surfaces and make every
 * navigation hit target explicitly interactive. This preserves the compact
 * viewport-height sidebar introduced in v1.12.132 without allowing an iframe
 * or module stacking context to intercept pointer input. */
.sdpi-admin-shell{isolation:isolate}
.sdpi-admin-sidebar{z-index:40!important;pointer-events:auto!important;isolation:isolate}
.sdpi-admin-sidebar .sdpi-admin-brand,.sdpi-admin-sidebar nav,.sdpi-admin-sidebar .sdpi-admin-logout,.sdpi-admin-sidebar nav details,.sdpi-admin-sidebar nav summary,.sdpi-admin-sidebar nav a{position:relative;z-index:2;pointer-events:auto!important}
.sdpi-admin-sidebar nav summary,.sdpi-admin-sidebar nav a,.sdpi-admin-sidebar .sdpi-admin-logout{touch-action:manipulation;cursor:pointer}
.sdpi-admin-main{position:relative;z-index:1;min-width:0}
.sdpi-admin-module-host,.sdpi-admin-legacy-frame-wrap,.sdpi-admin-legacy-frame{position:relative;z-index:0;max-width:100%}
@media(max-width:780px){.sdpi-admin-sidebar{z-index:5!important}}

/* v1.12.134 — explicit accordion visibility for branded admin/staff sidebars.
 * This prevents theme/user-agent details rules from leaving submenu state ambiguous. */
.sdpi-admin-sidebar nav details.sdpi-admin-nav-group:not([open]) > .sdpi-admin-nav-children{display:none!important}
.sdpi-admin-sidebar nav details.sdpi-admin-nav-group[open] > .sdpi-admin-nav-children{display:grid!important}
body.sdpi-portal-page-staff-login .sdpi-ops-sidebar nav .sdpi-ops-nav-group:not([open]) > div{display:none!important}
body.sdpi-portal-page-staff-login .sdpi-ops-sidebar nav .sdpi-ops-nav-group[open] > div{display:grid!important}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group>summary,
body.sdpi-portal-page-staff-login .sdpi-ops-sidebar nav .sdpi-ops-nav-group>summary{position:relative;z-index:6!important;pointer-events:auto!important}



/* v1.12.135 — Main Admin navigation is server-rendered, not a JS/details accordion. */
.sdpi-admin-sidebar nav .sdpi-admin-nav-group{margin:0;border:0;border-radius:7px;overflow:visible}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group-link,
.sdpi-admin-sidebar nav .sdpi-admin-nav-group-link:link,
.sdpi-admin-sidebar nav .sdpi-admin-nav-group-link:visited{display:grid;grid-template-columns:30px minmax(0,1fr) 16px;align-items:center;gap:8px;min-height:38px;padding:5px 8px;border-radius:7px;color:#f7fbff!important;text-decoration:none!important;font-size:12.8px!important;line-height:1.2!important;font-weight:800!important;opacity:1!important;cursor:pointer;pointer-events:auto!important}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group-link b{display:grid;place-items:center;width:27px;height:27px;border-radius:6px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.08);color:#fff;font-size:8.5px;letter-spacing:.02em}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group-link i{position:relative;width:14px;height:14px}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group-link i:before,.sdpi-admin-sidebar nav .sdpi-admin-nav-group-link i:after{content:'';position:absolute;top:6px;width:7px;height:2px;border-radius:2px;background:#dcebf8}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group-link i:before{left:1px;transform:rotate(45deg)}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group-link i:after{right:1px;transform:rotate(-45deg)}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group.is-open>.sdpi-admin-nav-group-link i:before{transform:rotate(-45deg)}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group.is-open>.sdpi-admin-nav-group-link i:after{transform:rotate(45deg)}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group-link:hover,.sdpi-admin-sidebar nav .sdpi-admin-nav-group-link:focus-visible{background:#286498;color:#fff!important;outline:none}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group.is-current>.sdpi-admin-nav-group-link{background:#376f9f;color:#fff!important;box-shadow:inset 4px 0 0 #a4ce3a}
.sdpi-admin-sidebar nav .sdpi-admin-nav-group.is-current>.sdpi-admin-nav-group-link b{background:#a4ce3a;border-color:#a4ce3a;color:#153a61}
/* v1.12.136 — server-rendered admin groups are DIVs, not DETAILS.
   Legacy [open] rules must never hide their children. */
.sdpi-admin-sidebar nav div.sdpi-admin-nav-group.is-open > .sdpi-admin-nav-children{display:grid!important}
.sdpi-admin-sidebar nav div.sdpi-admin-nav-group:not(.is-open) > .sdpi-admin-nav-children{display:none!important}

/* v1.12.146 — admission UAT: visible DOB calendar + conventional one-line wizard actions. */
.sdpi-online-admission .sdpi-date-picker-button{
  border:1px solid #b9cddd!important;
  background:#eef5fa!important;
  color:#173f75!important;
  box-shadow:0 1px 2px rgba(20,58,92,.08)!important;
}
.sdpi-online-admission .sdpi-date-picker-button:hover,
.sdpi-online-admission .sdpi-date-picker-button:focus{
  border-color:#1d5b92!important;
  background:#e4f0f7!important;
  color:#0f3557!important;
}
.sdpi-online-admission .sdpi-public-step-controls{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
}
.sdpi-online-admission .sdpi-public-step-secondary{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.sdpi-online-admission .sdpi-public-step-controls .sdpi-save-later{
  justify-self:auto!important;
}
.sdpi-online-admission .sdpi-public-final-controls .sdpi-public-submit{
  margin:0!important;
}
.sdpi-online-admission .sdpi-public-step-controls .sdpi-scm-secondary{
  background:#fff!important;
  border:1px solid #1d5b92!important;
  color:#173f75!important;
}
.sdpi-online-admission .sdpi-public-step-controls .sdpi-scm-primary,
.sdpi-online-admission .sdpi-public-step-controls .sdpi-public-submit{
  background:#1d4f87!important;
  border-color:#1d4f87!important;
  color:#fff!important;
}
@media(max-width:640px){
  .sdpi-online-admission .sdpi-public-step-controls{align-items:stretch!important;flex-direction:column!important}
  .sdpi-online-admission .sdpi-public-step-secondary{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .sdpi-online-admission .sdpi-public-step-controls .sdpi-scm-primary,
  .sdpi-online-admission .sdpi-public-step-controls .sdpi-public-submit{width:100%!important}
}

/* =========================================================
   v1.12.149 — Typing selection + timed-screen readability
   - One Back control on the selection screen only.
   - Timed screen has no top Back/Exit control.
   - Top status labels/values are large enough to read at exam distance.
   - Direct Kruti Dev IME warning is visible inside the active test screen.
   ========================================================= */
.sdpi-typing-app .sdpi-typing-selection-header h2{
  font-size:30px!important;line-height:1.18!important;font-weight:850!important;letter-spacing:-.01em
}
.sdpi-typing-app .sdpi-typing-selection-header p{
  font-size:14.5px!important;line-height:1.5!important;max-width:900px
}
.sdpi-typing-app .sdpi-typing-selection-actions .sdpi-typing-selection-back{
  min-width:170px;justify-content:center
}
.sdpi-typing-app.is-running .sdpi-test-meta>div{
  min-height:44px!important;padding:6px 9px!important;overflow:hidden
}
.sdpi-typing-app.is-running .sdpi-test-meta span{
  font-size:11px!important;line-height:1.05!important;letter-spacing:.035em!important
}
.sdpi-typing-app.is-running .sdpi-test-meta strong{
  min-width:0!important;font-size:15px!important;line-height:1.12!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.sdpi-typing-input-warning{
  margin:0 0 8px!important;padding:9px 12px!important;border-radius:8px!important;
  font-size:13px!important;line-height:1.4!important;font-weight:750!important
}
.sdpi-typing-app.is-running .sdpi-typing-label>span{
  font-size:13.5px!important;line-height:1.25!important;font-weight:850!important
}
@media(max-height:820px) and (min-width:901px){
  .sdpi-typing-app.is-running .sdpi-test-meta>div{min-height:40px!important;padding:5px 8px!important}
  .sdpi-typing-app.is-running .sdpi-test-meta span{font-size:10.5px!important}
  .sdpi-typing-app.is-running .sdpi-test-meta strong{font-size:14px!important}
}
@media(max-width:760px){
  .sdpi-typing-app .sdpi-typing-selection-header h2{font-size:25px!important}
  .sdpi-typing-app .sdpi-typing-selection-actions .sdpi-typing-selection-back{min-width:0;flex:1 1 180px}
}

/* =========================================================
   SDPI Digital Campus v1.12.159 — Public/mobile Student Photo
   Native phone selfie capture + in-form 3:4 crop/compress helper.
   ========================================================= */
.sdpi-public-photo-upload{min-width:0;padding:14px;border:1px solid #d7e0e8;border-radius:12px;background:#f8fbfd}
.sdpi-public-photo-title{display:block;margin-bottom:10px;color:#1d4982;font-weight:800}
.sdpi-public-photo-body{display:grid;grid-template-columns:92px minmax(0,1fr);gap:14px;align-items:start}
.sdpi-public-photo-preview{display:grid;place-items:center;width:92px;aspect-ratio:3/4;overflow:hidden;border:1px solid #cfdbe5;border-radius:10px;background:#fff;color:#7b8d9d;font-size:13px;font-weight:800}
.sdpi-public-photo-preview img{display:block;width:100%;height:100%;object-fit:cover}
.sdpi-public-photo-preview img[hidden],.sdpi-public-photo-preview span[hidden]{display:none!important}
.sdpi-public-photo-control{min-width:0}
.sdpi-public-photo-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sdpi-public-photo-action{display:inline-flex!important;align-items:center;justify-content:center;box-sizing:border-box;min-height:40px;margin:0!important;cursor:pointer;text-decoration:none}
.sdpi-public-photo-native{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.sdpi-public-photo-control>small{display:block;margin-top:9px;color:#6a7a87;font-weight:400}
.sdpi-public-photo-meta{margin-top:9px;padding:9px 10px;border-radius:8px;background:#fff;color:#4d6274;font-size:14px;font-weight:650;line-height:1.45}
.sdpi-public-photo-meta:empty{display:none}
.sdpi-public-photo-meta.is-error{border-left:4px solid #b42318;background:#fff4f2;color:#8f1f17}
.sdpi-public-photo-meta.is-warning{border-left:4px solid #d59b17;background:#fff8e8;color:#735000}
.sdpi-public-photo-meta.is-ok{border-left:4px solid #5f8f15;background:#f6fbe9;color:#496c13}
.sdpi-public-photo-editor[hidden]{display:none!important}
.sdpi-public-photo-editor{position:fixed;inset:0;z-index:100700;display:grid;place-items:center;padding:18px}
.sdpi-public-photo-editor-backdrop{position:absolute;inset:0;background:rgba(12,31,48,.72)}
.sdpi-public-photo-editor-dialog{position:relative;z-index:1;width:min(760px,96vw);max-height:92vh;max-height:92dvh;overflow:auto;border:1px solid #c7d5e1;border-radius:16px;background:#fff;box-shadow:0 24px 70px rgba(5,24,40,.35)}
.sdpi-public-photo-editor-dialog>header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:16px 18px;border-bottom:1px solid #e0e8ef;background:#f7fafc}
.sdpi-public-photo-editor-dialog>header span{display:block;color:#77a714;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.sdpi-public-photo-editor-dialog>header h3{margin:3px 0 4px;color:#1d4982}
.sdpi-public-photo-editor-dialog>header p{margin:0;color:#607181;font-size:14px}
.sdpi-public-photo-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px 18px;border-bottom:1px solid #e2eaf0;background:#fff}
.sdpi-public-photo-summary>div{min-width:0;padding:9px 10px;border:1px solid #d8e3eb;border-radius:8px;background:#f8fbfd}
.sdpi-public-photo-summary span{display:block;margin-bottom:3px;color:#6a7f91;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.sdpi-public-photo-summary strong{display:block;color:#244d77;font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.sdpi-public-photo-stage{display:grid;place-items:center;padding:18px;background:#edf3f7}
.sdpi-public-photo-stage canvas{display:block;width:min(300px,78vw);aspect-ratio:3/4;border:2px solid #fff;border-radius:10px;background:#dfe8ee;box-shadow:0 8px 24px rgba(31,64,91,.18)}
.sdpi-public-photo-editor-status{margin:0 18px;padding:9px 11px;border-radius:8px;background:#f7fafc;color:#4d6274;font-size:13px;font-weight:650;line-height:1.45}
.sdpi-public-photo-editor-status.is-error{background:#fff4f2;color:#8f1f17}
.sdpi-public-photo-editor-status.is-ok{background:#f6fbe9;color:#496c13}
.sdpi-public-photo-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:14px 18px 18px}
.sdpi-public-photo-tools label{display:flex;align-items:center;gap:8px;margin:0;color:#496175;font-weight:700}
.sdpi-public-photo-tools input[type=range]{width:140px}
.sdpi-public-photo-tools .sdpi-scm-primary{margin-left:auto}
.sdpi-public-photo-tools button:disabled{opacity:.55;cursor:not-allowed}
html.sdpi-public-photo-editor-open{overflow:hidden}
@media(max-width:600px){
  .sdpi-public-photo-body{grid-template-columns:72px minmax(0,1fr);gap:10px}
  .sdpi-public-photo-preview{width:72px}
  .sdpi-public-photo-actions{display:grid;grid-template-columns:1fr}
  .sdpi-public-photo-action{width:100%}
  .sdpi-public-photo-editor{padding:8px}
  .sdpi-public-photo-editor-dialog{width:100%;max-height:96vh;max-height:96dvh;border-radius:12px}
  .sdpi-public-photo-editor-dialog>header{padding:13px 14px}
  .sdpi-public-photo-summary{grid-template-columns:1fr;padding:10px 12px}
  .sdpi-public-photo-stage{padding:12px}
  .sdpi-public-photo-stage canvas{width:min(300px,86vw);max-height:55vh;max-height:55dvh}
  .sdpi-public-photo-editor-status{margin:0 12px}
  .sdpi-public-photo-tools{align-items:stretch;padding:12px;gap:7px}
  .sdpi-public-photo-tools>button{flex:1 1 calc(50% - 7px);min-height:42px}
  .sdpi-public-photo-tools label{width:100%;justify-content:space-between}
  .sdpi-public-photo-tools input[type=range]{flex:1;min-width:0}
  .sdpi-public-photo-tools .sdpi-scm-primary{margin-left:0;flex-basis:100%}
}

/* =========================================================
   v1.12.161 — Student self-attendance + shared public Campus UI
   Reuses the existing Student Attendance geofence engine; this layer is UI only.
   ========================================================= */
.sdpi-student-self-attendance{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;margin:0 0 14px;padding:13px 14px;border:1px solid #d6e2eb;border-radius:10px;background:#f7fafc}
.sdpi-student-self-attendance-copy{min-width:0}.sdpi-student-self-attendance-copy>span{display:block;margin-bottom:3px;color:#6a7d8e;font-size:10.5px;font-weight:850;letter-spacing:.055em}.sdpi-student-self-attendance-copy>strong{display:block;color:#1d4982;font-size:15px;line-height:1.35}.sdpi-student-self-attendance-copy>small{display:block;margin-top:4px;color:#5e7182;font-size:12.5px;line-height:1.45}.sdpi-student-self-attendance-action{display:flex;align-items:center;justify-content:flex-end;min-width:112px}.sdpi-student-self-attendance-action .sdpi-scm-primary{min-width:108px;text-align:center}.sdpi-student-attendance-done{display:inline-flex;align-items:center;min-height:36px;padding:7px 10px;border:1px solid #cfe2b2;border-radius:7px;background:#f4fae9;color:#486a19;font-size:12px;font-weight:800}.sdpi-student-attendance-live-status{grid-column:1/-1;min-height:0;margin:0;color:#45637c;font-size:12px;font-weight:700}.sdpi-student-attendance-live-status:empty{display:none}.sdpi-student-attendance-live-status.is-error{padding:7px 9px;border-left:3px solid #b42318;background:#fff4f2;color:#8f1f17}

/* Public transactional screens: one compact, consistent control language. */
.sdpi-scm-public-wrap{--sdpi-public-control-h:40px;--sdpi-public-radius:8px;--sdpi-public-border:#d6e0e8}
.sdpi-scm-public-wrap input:not([type=checkbox]):not([type=radio]):not([type=file]),.sdpi-scm-public-wrap select{min-height:var(--sdpi-public-control-h);box-sizing:border-box;border-radius:var(--sdpi-public-radius)}
.sdpi-scm-public-wrap textarea{box-sizing:border-box;border-radius:var(--sdpi-public-radius)}
.sdpi-scm-public-wrap .sdpi-scm-primary,.sdpi-scm-public-wrap .sdpi-scm-secondary,.sdpi-scm-public-wrap button{border-radius:var(--sdpi-public-radius)}
.sdpi-scm-public-wrap .sdpi-student-panel-card,.sdpi-scm-public-wrap .sdpi-student-simple-card,.sdpi-scm-public-wrap .sdpi-public-info-note{height:auto;min-height:0;align-self:start}
.sdpi-scm-public-wrap .sdpi-student-panel-head{align-items:flex-start;gap:12px}.sdpi-scm-public-wrap .sdpi-student-panel-head h2{line-height:1.22}
@media(max-width:640px){.sdpi-student-self-attendance{grid-template-columns:1fr}.sdpi-student-self-attendance-action{justify-content:stretch;min-width:0}.sdpi-student-self-attendance-action .sdpi-scm-primary,.sdpi-student-attendance-done{width:100%;box-sizing:border-box;justify-content:center}.sdpi-scm-public-wrap .sdpi-student-panel-head{flex-direction:column}}

/* =========================================================
   v1.12.164 — compact public transactional UI normalization
   Admission/status/document pages follow the Student Register density. Login,
   public home and timed typing examination layouts are intentionally excluded.
   ========================================================= */
body.sdpi-portal-body .sdpi-scm-public-wrap.sdpi-online-admission{width:min(100%,1120px)!important;max-width:1120px!important;margin:0 auto!important;padding:14px 16px 24px!important}
.sdpi-online-admission>.sdpi-scm-header{padding:13px 16px!important;margin:0 0 8px!important;border-radius:8px!important;box-shadow:none!important}
.sdpi-online-admission>.sdpi-scm-header h2{font-size:20px!important;line-height:1.15!important;margin:0 0 3px!important}.sdpi-online-admission>.sdpi-scm-header p{font-size:11.5px!important;line-height:1.3!important}
.sdpi-online-admission .sdpi-public-demo-login{margin:0 0 7px!important;padding:8px 10px!important;border-radius:7px!important;gap:8px!important}.sdpi-online-admission .sdpi-public-demo-login strong{font-size:13px!important}.sdpi-online-admission .sdpi-public-demo-login p,.sdpi-online-admission .sdpi-public-demo-login span{font-size:9.5px!important;line-height:1.25!important}
.sdpi-online-admission .sdpi-public-login-fields{margin:7px 9px 0!important;padding:8px 9px!important;border-radius:6px!important}.sdpi-online-admission .sdpi-public-form-steps{gap:4px!important;padding:6px 8px!important}.sdpi-online-admission .sdpi-public-form-steps button{padding:5px 7px!important;font-size:10px!important;border-radius:5px!important;min-height:30px!important}
.sdpi-online-admission .sdpi-public-progress{gap:7px!important;padding:5px 9px!important}.sdpi-online-admission .sdpi-public-progress>span{min-width:70px!important;font-size:10px!important}.sdpi-online-admission .sdpi-public-progress>i{height:5px!important}.sdpi-online-admission .sdpi-public-panel{padding:10px 11px!important;min-height:0!important}.sdpi-online-admission .sdpi-public-panel-head{margin-bottom:8px!important;padding-bottom:6px!important}.sdpi-online-admission .sdpi-public-panel-head>span{font-size:8.5px!important}.sdpi-online-admission .sdpi-public-panel-head h3{font-size:16px!important;line-height:1.2!important;margin:2px 0!important}.sdpi-online-admission .sdpi-public-panel-head p{font-size:10px!important;line-height:1.3!important}
.sdpi-online-admission .sdpi-scm-grid,.sdpi-online-admission .sdpi-public-address-grid{gap:7px 9px!important}.sdpi-online-admission label{margin-bottom:0!important;font-size:10.5px!important;line-height:1.25!important}.sdpi-online-admission label>span{margin-bottom:3px!important}.sdpi-online-admission input:not([type=checkbox]):not([type=radio]):not([type=file]),.sdpi-online-admission select{min-height:34px!important;height:34px!important;padding:5px 7px!important;font-size:11px!important;border-radius:5px!important}.sdpi-online-admission textarea{min-height:64px!important;padding:6px 7px!important;font-size:11px!important;border-radius:5px!important}
.sdpi-online-admission .sdpi-public-document-grid{gap:6px!important;margin-top:7px!important}.sdpi-online-admission .sdpi-public-document-grid label{padding:7px 8px!important;border-radius:6px!important}.sdpi-online-admission .sdpi-public-document-grid small{margin-top:3px!important;font-size:9px!important;line-height:1.25!important}.sdpi-online-admission .sdpi-public-info-note,.sdpi-online-admission .sdpi-public-scheme-toggle,.sdpi-online-admission .sdpi-public-declaration{margin-top:7px!important;padding:7px 9px!important;border-radius:6px!important;font-size:10px!important;line-height:1.3!important}
.sdpi-online-admission .sdpi-public-step-controls{margin:9px -11px -10px!important;padding:7px 11px!important;gap:6px!important}.sdpi-online-admission .sdpi-public-step-controls button,.sdpi-online-admission .sdpi-scm-primary,.sdpi-online-admission .sdpi-scm-secondary{min-height:32px!important;padding:5px 9px!important;font-size:10px!important;border-radius:5px!important}.sdpi-online-admission .sdpi-public-review{gap:6px!important;margin-bottom:7px!important}.sdpi-online-admission .sdpi-public-review article{padding:7px 8px!important;border-radius:6px!important}.sdpi-online-admission .sdpi-public-review span{font-size:8.5px!important}.sdpi-online-admission .sdpi-public-review strong{font-size:11.5px!important;margin-top:2px!important}.sdpi-online-admission .sdpi-public-review small{font-size:9px!important}
/* Status text must remain fully visible on every transactional/mobile screen. */
.sdpi-scm-public-wrap .sdpi-pill,.sdpi-scm-public-wrap .sdpi-status-chip,.sdpi-scm-public-wrap .sdpi-badge{display:inline-flex!important;align-items:center!important;width:auto!important;max-width:100%!important;min-width:max-content!important;height:auto!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;line-height:1.2!important}
@media(max-width:700px){body.sdpi-portal-body .sdpi-scm-public-wrap.sdpi-online-admission{padding:9px 9px 18px!important}.sdpi-online-admission .sdpi-public-panel{padding:9px!important}.sdpi-online-admission .sdpi-public-step-controls{margin:8px -9px -9px!important;padding:7px 9px!important}}


/* v1.12.175 — restore and lock the user-UAT-passed Spacebar thumb visual fix.
 * v1.12.170 proved this correction live; the consolidated later baseline lost
 * the terminal override. Keep the SVG thumb attached to the palm and never
 * rotate/translate it when Space is the active next key. Visual-only. */
.sdpi-hand-finger.sdpi-hand-thumb,
.sdpi-hand-finger.sdpi-hand-thumb.is-active{
  transform:none!important;
  transform-origin:center!important;
}

/* =========================================================
   v1.12.181 — Open Admission mobile form fit/readability lock
   Fixes iPhone/in-app-browser clipping and oversized vertical rhythm across
   every admission step. Inputs stay 16px on phones to prevent iOS focus zoom.
   ========================================================= */
@media(max-width:700px){
  body.sdpi-portal-page-admission .sdpi-portal-header-inner{
    min-height:58px!important;padding:5px 10px!important;
  }
  body.sdpi-portal-page-admission .sdpi-portal-brand img{
    height:38px!important;max-width:108px!important;object-fit:contain!important;
  }
  body.sdpi-portal-page-admission .sdpi-portal-header-actions{gap:5px!important}
  body.sdpi-portal-page-admission .sdpi-portal-header-actions a,
  body.sdpi-portal-page-admission .sdpi-portal-header-actions button{
    min-height:34px!important;padding:5px 8px!important;font-size:11px!important;
  }
  body.sdpi-portal-page-admission .sdpi-portal-main{padding-left:0!important;padding-right:0!important}
  body.sdpi-portal-page-admission .sdpi-scm-public-wrap.sdpi-online-admission{
    width:100%!important;max-width:100%!important;margin:0!important;padding:6px 7px 14px!important;overflow:hidden!important;
  }
  .sdpi-online-admission>.sdpi-scm-header{
    padding:9px 10px!important;margin:0 0 6px!important;border-radius:7px!important;
  }
  .sdpi-online-admission>.sdpi-scm-header h1,
  .sdpi-online-admission>.sdpi-scm-header h2{font-size:17px!important;line-height:1.18!important}
  .sdpi-online-admission>.sdpi-scm-header p{font-size:11px!important;line-height:1.35!important}
  .sdpi-online-admission .sdpi-public-demo-login{padding:7px 8px!important;margin-bottom:6px!important}
  .sdpi-online-admission .sdpi-public-demo-login strong{font-size:12px!important}
  .sdpi-online-admission .sdpi-public-demo-login p,
  .sdpi-online-admission .sdpi-public-demo-login span{font-size:10.5px!important;line-height:1.35!important}
  .sdpi-online-admission .sdpi-public-form-steps{
    display:flex!important;gap:4px!important;overflow-x:auto!important;padding:5px 4px!important;scrollbar-width:thin;
  }
  .sdpi-online-admission .sdpi-public-form-steps button{
    flex:0 0 auto!important;min-height:30px!important;padding:5px 7px!important;font-size:10px!important;white-space:nowrap!important;
  }
  .sdpi-online-admission .sdpi-public-progress{padding:4px 6px!important;gap:5px!important}
  .sdpi-online-admission .sdpi-public-progress>span{min-width:60px!important;font-size:9.5px!important}
  .sdpi-online-admission .sdpi-public-panel{
    width:100%!important;max-width:100%!important;min-width:0!important;padding:8px!important;border-radius:8px!important;
  }
  .sdpi-online-admission .sdpi-public-panel-head{margin-bottom:7px!important;padding-bottom:6px!important}
  .sdpi-online-admission .sdpi-public-panel-head>span{font-size:9px!important}
  .sdpi-online-admission .sdpi-public-panel-head h3{font-size:17px!important;line-height:1.2!important;margin:2px 0 3px!important}
  .sdpi-online-admission .sdpi-public-panel-head p{font-size:11.5px!important;line-height:1.38!important;margin:0!important}
  .sdpi-online-admission .sdpi-scm-grid,
  .sdpi-online-admission .sdpi-form-grid,
  .sdpi-online-admission .sdpi-grid-2,
  .sdpi-online-admission .sdpi-public-address-grid{
    display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important;width:100%!important;min-width:0!important;
  }
  .sdpi-online-admission label,
  .sdpi-online-admission .sdpi-scm-form label{
    display:block!important;width:100%!important;min-width:0!important;margin:0!important;font-size:13px!important;line-height:1.25!important;
  }
  .sdpi-online-admission label>span{margin:0 0 3px!important;font-size:13px!important;line-height:1.25!important}
  .sdpi-online-admission input:not([type=checkbox]):not([type=radio]):not([type=file]),
  .sdpi-online-admission select,
  .sdpi-online-admission textarea{
    display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;
    font-size:16px!important;line-height:1.25!important;border-radius:6px!important;
  }
  .sdpi-online-admission input:not([type=checkbox]):not([type=radio]):not([type=file]),
  .sdpi-online-admission select{
    min-height:42px!important;height:42px!important;padding:7px 9px!important;
  }
  .sdpi-online-admission select{padding-right:34px!important;text-overflow:ellipsis!important;white-space:nowrap!important;overflow:hidden!important}
  .sdpi-online-admission textarea{min-height:72px!important;padding:8px 9px!important}
  .sdpi-online-admission input[type=date]{min-height:42px!important;height:42px!important}
  .sdpi-online-admission .sdpi-date-picker-button{width:34px!important;height:34px!important;min-height:34px!important;right:4px!important}
  .sdpi-online-admission small,
  .sdpi-online-admission .description,
  .sdpi-online-admission .sdpi-public-info-note,
  .sdpi-online-admission .sdpi-public-scheme-toggle,
  .sdpi-online-admission .sdpi-public-declaration{
    font-size:11px!important;line-height:1.35!important;
  }
  .sdpi-online-admission .sdpi-public-info-note,
  .sdpi-online-admission .sdpi-public-scheme-toggle,
  .sdpi-online-admission .sdpi-public-declaration{padding:7px 8px!important;margin-top:7px!important}
  .sdpi-online-admission .sdpi-public-step-controls{
    display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:6px!important;
    margin:8px -8px -8px!important;padding:7px 8px!important;width:auto!important;
  }
  .sdpi-online-admission .sdpi-public-step-secondary{display:grid!important;grid-template-columns:1fr!important;gap:6px!important;width:100%!important}
  .sdpi-online-admission .sdpi-public-step-controls .sdpi-scm-primary,
  .sdpi-online-admission .sdpi-public-step-controls .sdpi-scm-secondary,
  .sdpi-online-admission .sdpi-public-step-controls button,
  .sdpi-online-admission .sdpi-public-submit,
  .sdpi-online-admission .sdpi-admission-action-button{
    width:100%!important;min-height:40px!important;padding:8px 10px!important;font-size:13px!important;line-height:1.2!important;white-space:normal!important;
  }
  .sdpi-online-admission .sdpi-public-document-grid,
  .sdpi-online-admission .sdpi-qr-choice-grid{grid-template-columns:minmax(0,1fr)!important;gap:7px!important}
}


/* v1.12.306 — Staff/Faculty Physical Library shell integrity.
 * The outer branded staff portal owns the page header. Library renderers inside
 * that shell must stay in normal document flow and may expose only a compact
 * action strip, never a second legacy hero/wrap that can collide with the header.
 */
body.sdpi-portal-page-staff-login .sdpi-ops-module-host > .sdpi-library-staff-module,
body.sdpi-portal-page-staff-login .sdpi-ops-module-host .sdpi-library-staff-module{
    display:block!important;
    position:static!important;
    float:none!important;
    clear:both!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    inset:auto!important;
    transform:none!important;
    overflow:visible!important;
}
body.sdpi-portal-page-staff-login .sdpi-library-staff-actions{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:7px!important;
    width:100%!important;
    margin:0 0 9px!important;
    padding:0!important;
    position:static!important;
}
body.sdpi-portal-page-staff-login .sdpi-library-staff-actions .button{
    flex:0 0 auto!important;
    width:auto!important;
    max-width:100%!important;
    margin:0!important;
    white-space:normal!important;
}
body.sdpi-portal-page-staff-login .sdpi-library-staff-module > :first-child:not(.sdpi-library-staff-actions){
    margin-top:0!important;
}
body.sdpi-portal-page-staff-login .sdpi-library-staff-module .sdpi-control-hero{
    display:none!important;
}
@media(max-width:760px){
    body.sdpi-portal-page-staff-login .sdpi-library-staff-actions{justify-content:flex-start!important}
}

/* v1.12.307 — cross-role branded staff workspace integrity.
 * Compact must never mean squeezed: keep one normal-flow module canvas, readable
 * operational text and explicit horizontal containment for dense tables/forms. */
html body.sdpi-portal-body .sdpi-ops-workspace-shell .sdpi-ops-main,
html body.sdpi-portal-body .sdpi-ops-workspace-shell .sdpi-ops-module-host{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
html body.sdpi-portal-body .sdpi-ops-module-host{
  position:relative;
  overflow-x:auto;
  overflow-y:visible;
}
html body.sdpi-portal-body .sdpi-ops-module-host :is(.wrap,.sdpi-scm-wrap,.sdpi-cac-wrap,.sdpi-etm-admin){
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin-left:0!important;
  margin-right:0!important;
  box-sizing:border-box;
}
html body.sdpi-portal-body .sdpi-ops-module-host :is(.sdpi-table-scroll,.table-responsive,.sdpi-responsive-table){
  width:100%;
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
html body.sdpi-portal-body .sdpi-ops-module-host table.widefat{
  min-width:680px;
}
html body.sdpi-portal-body .sdpi-ops-module-host table.widefat :is(th,td){
  font-size:13px;
  line-height:1.4;
  white-space:normal;
  word-break:normal;
  overflow-wrap:anywhere;
}
html body.sdpi-portal-body .sdpi-ops-module-host :is(label,.description,.sdpi-help,small){
  font-size:13px!important;
  line-height:1.42;
}
html body.sdpi-portal-body .sdpi-ops-module-host :is(.sdpi-form-grid,.sdpi-user-access-grid){
  min-width:0;
}
html body.sdpi-portal-body .sdpi-ops-module-host .sdpi-user-access-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:10px;
}
html body.sdpi-portal-body .sdpi-ops-module-host .sdpi-user-access-grid label{
  display:grid;
  gap:5px;
  min-width:0;
}
@media (max-width:980px){
  html body.sdpi-portal-body .sdpi-ops-module-host .sdpi-user-access-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:680px){
  html body.sdpi-portal-body .sdpi-ops-module-host{padding:10px;}
  html body.sdpi-portal-body .sdpi-ops-module-host .sdpi-user-access-grid{grid-template-columns:1fr;}
  html body.sdpi-portal-body .sdpi-ops-module-host table.widefat{min-width:620px;}
}

/* =========================================================
   v1.12.308 — Faculty mobile dashboard polish
   App-first presentation only; RBAC / centre / module logic is unchanged.
   ========================================================= */
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-faculty-head-identity{
  display:flex;align-items:center;gap:12px;min-width:0
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-faculty-head-avatar{
  width:46px;height:46px;flex:0 0 46px;border-radius:10px;object-fit:cover;border:2px solid #c7a24b;background:#f6efdf
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-faculty-head-initial{
  display:grid;place-items:center;font-style:normal;font-size:17px;font-weight:900;color:#1f2937;background:#f6e9b9
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-faculty-head-identity>div{min-width:0}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-head{
  background:linear-gradient(135deg,#233b2d 0%,#192c21 100%)!important;border-color:#304f3c!important;border-bottom:3px solid #c7a24b!important
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-head h1{
  color:#fff!important;font-size:22px!important;letter-spacing:-.01em
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-head .sdpi-faculty-head-identity>div>span{
  color:#f6e9b9!important;font-size:11px!important;letter-spacing:.09em!important
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-head p{
  color:#f6efdf!important;font-size:13px!important;white-space:normal
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-head p strong{color:#fff!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-head-actions a{
  border-color:#c7a24b!important;background:#f6efdf!important;color:#233b2d!important
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-kpis{
  grid-template-columns:repeat(4,minmax(0,1fr));gap:8px!important;margin:10px 0!important
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-kpis article{
  min-height:72px;padding:10px 11px!important;border-color:#d9e1dc!important;background:#fff!important;box-shadow:0 2px 8px rgba(25,44,33,.04)
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-kpis strong{
  color:#233b2d!important;font-size:20px!important
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-kpis span{
  color:#4b5c52!important;font-size:12px!important;line-height:1.25!important
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-section{
  border-color:#d9e1dc!important;background:#fff!important
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-section-title>div>span{color:#6f8f18!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-section-title h2{color:#233b2d!important;font-size:18px!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-section-title p{font-size:13px!important;color:#526158!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));gap:9px!important
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a{
  min-height:104px!important;padding:11px!important;grid-template-columns:38px minmax(0,1fr)!important;column-gap:10px!important;border-color:#d9e1dc!important;border-radius:10px!important;background:#fff!important
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a>b{
  width:38px!important;height:34px!important;border-radius:6px!important;background:#c7a24b!important;color:#1f2937!important;font-size:11px!important
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a>strong{
  color:#233b2d!important;font-size:15px!important;line-height:1.2!important
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a>span{
  color:#526158!important;font-size:13px!important;line-height:1.32!important
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a>small{
  color:#6f8f18!important;font-size:12px!important;margin-top:4px!important
}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a:hover,
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a:focus-visible{
  border-color:#c7a24b!important;box-shadow:0 5px 16px rgba(35,59,45,.10)!important
}
@media(max-width:760px){
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-main{padding:10px 10px 74px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-head{padding:11px 12px!important;display:block!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-head-actions{display:none!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-faculty-head-avatar{width:42px;height:42px;flex-basis:42px}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-head h1{font-size:20px!important;margin:1px 0 2px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-head p{font-size:12px!important;line-height:1.35!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-kpis article{min-height:64px;padding:8px 10px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-kpis strong{font-size:19px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-kpis span{font-size:11.5px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-section{padding:10px!important;margin-top:9px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-section-title{display:block!important;margin-bottom:9px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-section-title h2{font-size:17px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-section-title p{margin-top:3px!important;font-size:12px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:4px!important;min-height:126px!important;padding:10px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a>b{display:grid!important;flex:0 0 32px!important;width:38px!important;height:32px!important;margin-bottom:2px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a>strong{font-size:14px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a>span{font-size:11.5px!important;line-height:1.3!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a>small{font-size:11px!important;margin-top:auto!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-legacy-map{display:none!important}
}
@media(max-width:390px){
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a{min-height:132px!important;padding:9px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-faculty-meta-dot{display:none}
}


/* =========================================================
   v1.12.309 — Faculty app dashboard compact interaction pass
   Builds on v1.12.308. Presentation only; permissions and data unchanged.
   ========================================================= */
@media(max-width:760px){
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-main{
    padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))!important;
  }
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-head{
    border-radius:12px!important;
    box-shadow:0 4px 14px rgba(25,44,33,.10)!important;
  }
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-kpis article{
    min-height:58px!important;
    border-radius:9px!important;
  }
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-section-title p{
    max-width:34ch;
  }
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a{
    min-height:104px!important;
    padding:9px 10px!important;
    border-radius:10px!important;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a>b{
    flex-basis:29px!important;
    width:34px!important;
    height:29px!important;
    margin-bottom:1px!important;
  }
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a>strong{
    font-size:13.5px!important;
    line-height:1.22!important;
  }
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a>span{
    display:-webkit-box!important;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
    font-size:11px!important;
    line-height:1.27!important;
  }
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a>small{
    font-size:10.5px!important;
  }
}
@media(max-width:430px){
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-main{padding-left:8px!important;padding-right:8px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-head{padding:10px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-faculty-head-identity{gap:9px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-faculty-head-avatar{width:40px;height:40px;flex-basis:40px;border-radius:9px}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-head h1{font-size:19px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-kpis{gap:6px!important;margin:8px 0!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-kpis article{padding:7px 9px!important;min-height:56px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-kpis strong{font-size:18px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-section{padding:8px!important;margin-top:7px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid{gap:6px!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a{min-height:100px!important;padding:8px 9px!important}
}
@media(max-width:350px){
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid{grid-template-columns:1fr!important}
  body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-ops-card-grid>a{min-height:82px!important}
}


/* =========================================================
   v1.12.310 — Staff/Faculty All Tools mobile workspace
   Permission-driven navigation only; no duplicate business workflow.
   ========================================================= */
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-all-tools-row{margin-top:9px;padding-top:9px;border-top:1px solid #e3dfd2}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-all-tools-row>a{display:grid;grid-template-columns:34px minmax(0,1fr) 22px;gap:9px;align-items:center;min-height:54px;padding:8px 10px;border:1px solid #d8cfb6;border-radius:9px;background:#f6efdf;color:#233b2d!important;text-decoration:none!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-all-tools-row>a>b{display:grid;place-items:center;width:34px;height:30px;border-radius:6px;background:#c7a24b;color:#1f2937;font-size:10px;font-weight:900}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-all-tools-row>a span{min-width:0;display:grid;gap:1px}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-all-tools-row>a strong{font-size:13.5px;line-height:1.2;color:#233b2d}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-all-tools-row>a small{font-size:11.5px;line-height:1.25;color:#526158}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-all-tools-row>a>i{font-style:normal;font-size:18px;font-weight:900;color:#7a6427}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-all-tools-row>a:is(:hover,:focus-visible){border-color:#c7a24b;background:#fbf6e9;outline:none}
.sdpi-staff-all-tools{display:grid;gap:10px;color:#1f2937}.sdpi-tools-overview{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 14px;border:1px solid #304f3c;border-bottom:3px solid #c7a24b;border-radius:10px;background:linear-gradient(135deg,#233b2d,#192c21);color:#fff}.sdpi-tools-overview>div{min-width:0}.sdpi-tools-overview span{display:block;color:#f6e9b9;font-size:11px;font-weight:900;letter-spacing:.07em}.sdpi-tools-overview h2{margin:2px 0 3px!important;color:#fff!important;font-size:20px!important}.sdpi-tools-overview p{margin:0!important;color:#f6efdf!important;font-size:12.5px!important;line-height:1.35!important}.sdpi-tools-overview>strong{display:grid;place-items:center;min-width:72px;padding:8px;border:1px solid rgba(246,233,185,.45);border-radius:8px;background:rgba(246,239,223,.10);color:#fff;font-size:22px;line-height:1}.sdpi-tools-overview>strong small{margin-top:4px;color:#f6e9b9;font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.sdpi-tools-section{padding:10px;border:1px solid #e0dbcd;border-radius:9px;background:#fff}.sdpi-tools-title{margin-bottom:8px}.sdpi-tools-title span{display:block;color:#7a6427;font-size:10px;font-weight:900;letter-spacing:.07em}.sdpi-tools-title h3{margin:2px 0 0!important;color:#233b2d!important;font-size:16px!important}.sdpi-tools-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.sdpi-tools-grid>a{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:8px;row-gap:2px;min-height:82px;padding:9px;border:1px solid #ded8c9;border-radius:8px;background:#fff;color:#1f2937!important;text-decoration:none!important}.sdpi-tools-grid>a>b{grid-row:1/4;display:grid;place-items:center;align-self:start;width:32px;height:29px;border-radius:6px;background:#c7a24b;color:#1f2937;font-size:9px;font-weight:900}.sdpi-tools-grid>a>strong{color:#233b2d;font-size:13px;line-height:1.2}.sdpi-tools-grid>a>span{color:#526158;font-size:11px;line-height:1.3}.sdpi-tools-grid>a>small{margin-top:3px;color:#7a6427;font-size:10.5px;font-weight:800}.sdpi-tools-grid>a:is(:hover,:focus-visible){border-color:#c7a24b;background:#fdfbf5;outline:none;box-shadow:0 3px 10px rgba(35,59,45,.07)}.sdpi-tools-grid-quick>a{background:#f8f5ec;border-color:#d8cfb6}
@media(max-width:900px){.sdpi-tools-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.sdpi-tools-overview{align-items:flex-start}.sdpi-tools-overview>strong{min-width:60px}.sdpi-tools-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.sdpi-tools-grid>a{display:flex;flex-direction:column;gap:4px;min-height:112px;padding:8px}.sdpi-tools-grid>a>b{flex:0 0 28px;width:34px;height:28px}.sdpi-tools-grid>a>strong{font-size:12.5px}.sdpi-tools-grid>a>span{font-size:10.5px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.sdpi-tools-grid>a>small{margin-top:auto}.sdpi-ops-all-tools-row>a{min-height:52px!important}}@media(max-width:340px){.sdpi-tools-grid{grid-template-columns:1fr}.sdpi-tools-grid>a{min-height:78px}}


/* v1.12.314 — final Typing/Shorthand mobile navigation polish. */
.sdpi-shorthand-public-head-actions{display:flex;justify-content:flex-start;align-items:center;gap:8px;margin:0 0 10px}
.sdpi-shorthand-public-head-actions .button{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 11px;border:1px solid #C7A24B;border-radius:6px;background:#F6EFDF;color:#233B2D!important;text-decoration:none;font-weight:800;box-shadow:none}
.sdpi-shorthand-public-head-actions .button:hover{background:#F6E9B9;border-color:#233B2D;color:#192C21!important}
.sdpi-compact-howto summary{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;color:#233B2D}
.sdpi-compact-howto summary span{font-size:12px;color:#6B6A60;font-weight:700}
@media(max-width:600px){.sdpi-shorthand-public-head-actions .button{width:100%;box-sizing:border-box}.sdpi-compact-howto summary{align-items:flex-start;flex-direction:column;gap:2px}}

/* v1.12.339 — faculty hero text remains readable; profile photo is shown once in sidebar. */
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-faculty-head-text-only{display:block!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-faculty-head-text-only h1{color:#fff!important;opacity:1!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-faculty-head-text-only>div>span{color:#f6e9b9!important}
body.sdpi-portal-page-staff-login .sdpi-staff-portal .sdpi-ops-role-faculty .sdpi-faculty-head-text-only p{color:#f6efdf!important}
