:root{
  --tp-navy:#071733;--tp-navy-2:#0b1d3d;--tp-blue:#1769ff;--tp-blue-2:#0d5be8;
  --tp-bg:#f4f7fb;--tp-card:#fff;--tp-text:#07142e;--tp-muted:#5d6f8d;
  --tp-border:#d8e1ee;--tp-soft:#edf4ff;--tp-green:#0b8d4f;--tp-red:#c93b46;
  --tp-orange:#b66d00;--tp-shadow:0 8px 24px rgba(18,42,77,.06);
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--tp-text);background:var(--tp-bg)}a{color:var(--tp-blue);text-decoration:none}button,input,select,textarea{font:inherit}.tp-body{min-height:100vh}.tp-topbar{height:86px;background:#0f172a;display:flex;align-items:center;justify-content:space-between;padding:0 28px 0 20px;color:#ffffff;position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(255,255,255,.08)}.tp-topbar a{color:#ffffff}.tp-brand span{display:grid;gap:4px}.tp-brand strong{font-size:18px}.tp-user-menu summary small{font-size:12px;color:#94a3b8}.tp-user-menu{position:relative}.tp-user-menu summary{display:flex;align-items:center;gap:12px;list-style:none;cursor:pointer}.tp-user-menu summary::-webkit-details-marker{display:none}.tp-user-menu summary>span:nth-child(2){display:grid;gap:2px}.tp-user-menu summary strong{font-size:15px}.tp-user-menu summary small{font-size:12px;color:var(--tp-muted)}.tp-avatar{width:46px;height:46px;border-radius:50%;background:#e2e8f0;color:var(--tp-navy);display:flex;align-items:center;justify-content:center;font-weight:800;overflow:hidden}.tp-avatar img{width:100%;height:100%;object-fit:cover}.tp-chevron{font-size:20px}.tp-user-dropdown{position:absolute;right:0;top:58px;width:190px;background:#fff;border:1px solid var(--tp-border);border-radius:12px;box-shadow:var(--tp-shadow);padding:8px;display:grid;z-index:100}.tp-user-dropdown a{padding:10px 12px;color:var(--tp-text);border-radius:8px}.tp-user-dropdown a:hover{background:var(--tp-soft)}.tp-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:calc(100vh - 86px)}.tp-sidebar{background:linear-gradient(180deg,#061934,var(--tp-navy));color:#fff;display:flex;flex-direction:column;min-height:calc(100vh - 86px)}.tp-sidebar nav{display:grid;gap:10px;padding:18px 14px}.tp-sidebar nav a{display:flex;align-items:center;gap:13px;min-height:52px;padding:0 14px;border-radius:9px;color:#fff;font-weight:700}.tp-sidebar nav a span{width:22px;text-align:center;font-size:20px}.tp-sidebar nav a:hover,.tp-sidebar nav a.active{background:linear-gradient(135deg,#2779ff,#1260e9);box-shadow:0 8px 20px rgba(23,105,255,.28)}.tp-sidebar footer{margin-top:auto;min-height:64px;border-top:1px solid rgba(255,255,255,.15);display:flex;align-items:center;padding:0 28px;font-size:12px;color:#c4d1e5}.tp-content-column{min-width:0;display:flex;flex-direction:column;min-height:calc(100vh - 86px)}.tp-main{flex:1;padding:30px 30px 24px}.tp-footer{min-height:64px;border-top:1px solid var(--tp-border);display:flex;align-items:center;justify-content:center;color:var(--tp-muted);font-size:13px;background:#f8fafc;text-align:center}.tp-page-head{margin-bottom:20px}.tp-page-head h1,.tp-register-head h1{margin:6px 0 3px;font-size:27px;line-height:1.15}.tp-page-head p,.tp-register-head p{margin:0;color:var(--tp-muted)}.tp-eyebrow{color:var(--tp-blue);font-size:13px;letter-spacing:.08em;font-weight:900}.tp-card{background:var(--tp-card);border:1px solid var(--tp-border);border-radius:14px;box-shadow:var(--tp-shadow);padding:20px}.tp-card h2{margin:0 0 11px;font-size:17px}.tp-card h3{margin:0}.tp-card header,.tp-section-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.tp-card header p,.tp-section-header p{margin:4px 0 0;color:var(--tp-muted);font-size:13px}.tp-btn{border:0;border-radius:8px;min-height:40px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:800;cursor:pointer}.tp-btn.primary{background:linear-gradient(135deg,var(--tp-blue),var(--tp-blue-2));color:#fff}.tp-btn.outline{background:#fff;color:var(--tp-blue);border:1px solid #9fc0ff}.tp-btn.small{min-height:34px;padding:0 12px;font-size:12px}.tp-kpi-grid{display:grid;gap:14px;margin-bottom:18px}.tp-kpi-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}.tp-kpi-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.tp-kpi-grid article{background:#fff;border:1px solid var(--tp-border);border-radius:14px;padding:17px;display:flex;align-items:center;gap:14px;min-height:112px;box-shadow:var(--tp-shadow)}.tp-kpi-grid i{font-style:normal;width:54px;height:54px;border-radius:12px;background:var(--tp-soft);display:grid;place-items:center;color:var(--tp-blue);font-size:26px}.tp-kpi-grid article>div{display:grid;gap:4px}.tp-kpi-grid small{font-weight:700;color:#425574}.tp-kpi-grid strong{font-size:22px}.tp-kpi-grid strong.tp-kpi-text{font-size:17px}.tp-kpi-grid span{font-size:12px;color:var(--tp-muted)}.tp-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(320px,.95fr);gap:16px}.tp-dashboard-side{display:grid;gap:16px}.tp-table-wrap{overflow:auto;border:1px solid var(--tp-border);border-radius:10px}.tp-table{width:100%;border-collapse:collapse;min-width:760px}.tp-table th{background:#f7f9fc;color:#435471;font-size:12px;text-align:left;padding:13px 12px;border-bottom:1px solid var(--tp-border);white-space:nowrap}.tp-table td{padding:13px 12px;border-bottom:1px solid #e7edf5;font-size:13px;vertical-align:middle}.tp-table tr:last-child td{border-bottom:0}.tp-date-line{display:block;white-space:nowrap;line-height:1.55}.tp-center-link{display:block;text-align:center;margin-top:14px;font-weight:800}.tp-count-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid #e8edf5}.tp-count-row:last-child{border-bottom:0}.tp-count-row span{display:grid;font-weight:800;gap:3px}.tp-count-row small{font-weight:400;color:var(--tp-muted)}.tp-count-row b{background:var(--tp-soft);color:var(--tp-blue);padding:9px 13px;border-radius:9px}.tp-progress-label{display:flex;justify-content:space-between;color:var(--tp-muted);font-size:13px}.tp-progress{height:8px;background:#dfe7f3;border-radius:999px;margin:10px 0 14px;overflow:hidden}.tp-progress i{display:block;height:100%;background:var(--tp-blue)}.tp-quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tp-quick-grid a{min-height:54px;border:1px solid var(--tp-border);border-radius:9px;display:flex;align-items:center;justify-content:center;color:var(--tp-text);font-weight:700}.tp-profile-hero{min-height:120px;display:flex;align-items:center;margin-bottom:16px}.tp-profile-identity{display:flex;align-items:center;gap:20px}.tp-profile-avatar{width:90px;height:90px;border-radius:50%;background:#e5eaf1;display:grid;place-items:center;font-size:28px;font-weight:800;overflow:hidden}.tp-profile-avatar img{width:100%;height:100%;object-fit:cover}.tp-profile-identity h2{margin:0 0 4px;font-size:21px}.tp-profile-identity p{margin:0 0 8px;color:var(--tp-muted)}.tp-tabs{display:flex;gap:6px;background:#fff;border:1px solid var(--tp-border);border-radius:12px;padding:0 8px;margin-bottom:15px;overflow:auto}.tp-tabs a{padding:15px 20px;color:#3f506c;white-space:nowrap;border-bottom:3px solid transparent;font-weight:700}.tp-tabs a.active{color:var(--tp-blue);border-color:var(--tp-blue)}.tp-tabs.compact{display:inline-flex}.tp-profile-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.8fr);gap:16px}.tp-info-list{margin:0}.tp-info-list>div{display:grid;grid-template-columns:235px 1fr;gap:15px;padding:11px 0;border-bottom:1px solid #e7edf5}.tp-info-list>div:last-child{border-bottom:0}.tp-info-list dt{font-weight:800}.tp-info-list dd{margin:0;color:#344966;overflow-wrap:anywhere}.tp-info-list small{color:var(--tp-muted)}.tp-photo-card{text-align:left}.tp-photo-current{width:150px;height:150px;border-radius:50%;margin:24px auto 15px;background:#e8edf4;display:grid;place-items:center;overflow:hidden;font-size:30px;font-weight:800}.tp-photo-current img{width:100%;height:100%;object-fit:cover}.tp-photo-form .map-pp-widget{align-items:center}.tp-photo-form .map-pp-preview-wrap{display:none}.tp-photo-form .map-pp-open{background:linear-gradient(135deg,var(--tp-blue),var(--tp-blue-2));color:#fff;border:0;padding:12px 18px;border-radius:8px;font-weight:800}.tp-photo-form .map-pp-widget>small{display:none}.tp-form-card form,.tp-password-card form{display:grid;gap:14px}.tp-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.tp-span-2{grid-column:1/-1}.tp-form-grid label,.tp-form-card label,.tp-password-card label,.tp-auth-card label{display:grid;gap:7px;font-weight:700;font-size:13px}.tp-form-grid input,.tp-form-grid select,.tp-form-grid textarea,.tp-form-card input,.tp-form-card textarea,.tp-form-card select,.tp-password-card input,.tp-auth-card input,.tp-register-form input,.tp-register-form select,.tp-search-form input{width:100%;min-height:43px;border:1px solid #cbd8e8;border-radius:8px;padding:9px 12px;background:#fff;color:var(--tp-text)}textarea{min-height:100px;resize:vertical}.tp-form-grid small,label small{color:var(--tp-muted);font-weight:400}.tp-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.tp-collapsible-form{border-top:1px solid var(--tp-border);margin-top:18px;padding-top:18px}.tp-collapsible-form[hidden],label[hidden]{display:none!important}.tp-note{background:#edf5ff;border:1px solid #a9c9ff;border-radius:9px;padding:12px 14px;color:#214b89;margin:0 0 16px}.tp-note.muted{background:#f5f8fc;color:#52657f}.tp-note.compact{font-size:13px}.tp-alert{padding:12px 14px;border-radius:9px;margin:0 0 15px}.tp-alert.success{background:#e9f8ef;color:#0d7043;border:1px solid #a9e2c2}.tp-alert.error{background:#fff0f1;color:#a52632;border:1px solid #efb7bd}.tp-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:800;background:#eef2f7;color:#53627a;white-space:nowrap}.tp-status.active,.tp-status.approved,.tp-status.verified,.tp-status.completed,.tp-status.present{background:#e4f7ec;color:#0b7c47}.tp-status.in-progress,.tp-status.upcoming,.tp-status.pending-review,.tp-status.pending{background:#e9f2ff;color:#155cbd}.tp-status.rejected,.tp-status.absent{background:#ffedef;color:#b5303b}.tp-status.draft,.tp-status.not-marked{background:#eef1f5;color:#58667c}.tp-status.late,.tp-status.leave{background:#fff3da;color:#9b6500}.tp-row-menu{position:relative}.tp-row-menu summary{list-style:none;cursor:pointer;border:1px solid var(--tp-border);border-radius:7px;min-width:36px;min-height:32px;display:grid;place-items:center}.tp-row-menu summary::-webkit-details-marker{display:none}.tp-row-menu>div,.tp-row-menu>form{position:absolute;right:0;top:36px;background:#fff;border:1px solid var(--tp-border);border-radius:9px;box-shadow:var(--tp-shadow);min-width:165px;padding:7px;z-index:20;display:grid}.tp-row-menu a,.tp-row-menu button{border:0;background:#fff;color:var(--tp-text);padding:9px 10px;text-align:left;cursor:pointer}.tp-row-menu a:hover,.tp-row-menu button:hover{background:var(--tp-soft)}.tp-cert-form{background:#f9fbfe;border:1px solid var(--tp-border);border-radius:10px;padding:16px}.tp-upload-field input{position:absolute;opacity:0;pointer-events:none}.tp-upload-field span{border:1px dashed #aac3e6;border-radius:9px;min-height:80px;padding:18px;display:grid;place-items:center;text-align:center;color:#52709c;background:#fbfdff}.tp-upload-field:hover span{border-color:var(--tp-blue);background:var(--tp-soft)}.tp-expertise-grid{display:grid;grid-template-columns:1fr 1fr .8fr 1.2fr;gap:14px}.tp-expertise-grid article,.tp-expertise-grid fieldset{border:1px solid var(--tp-border);border-radius:10px;padding:15px;min-width:0}.tp-expertise-grid article>strong{font-size:23px}.tp-expertise-grid ul{padding-left:18px;max-height:140px;overflow:auto}.tp-expertise-grid fieldset{display:grid;gap:10px}.tp-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tp-inline-check{display:flex!important;align-items:center;gap:8px}.tp-inline-check input{width:auto!important;min-height:auto!important}.tp-trainings-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(320px,.8fr);gap:16px}.tp-session-panel article{display:grid;grid-template-columns:12px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid #e7edf5}.tp-session-panel article>span{width:9px;height:9px;border-radius:50%;background:#22ad69;margin-top:7px}.tp-session-panel article div{display:grid;gap:3px}.tp-session-panel article small,.tp-session-panel article p{color:var(--tp-muted);margin:0}.tp-batch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.tp-batch-card header{margin-bottom:12px}.tp-batch-card h2{min-height:48px}.tp-batch-card dl{display:grid;gap:8px}.tp-batch-card dl>div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #edf1f6;padding-bottom:7px}.tp-batch-card dt{color:var(--tp-muted)}.tp-batch-card dd{margin:0;text-align:right;font-weight:700}.tp-search-form{display:flex;gap:10px;margin-bottom:14px}.tp-search-form input{max-width:520px}.tp-banking-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.7fr);gap:20px}.tp-security-card{text-align:center;align-self:start}.tp-security-card>div{font-size:70px;color:var(--tp-blue);margin:25px}.tp-security-card p{color:var(--tp-muted);line-height:1.5}.tp-password-card{max-width:640px}.tp-workflow{display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:center;background:#eef6ff;border:1px solid #b9d1f6;border-radius:14px;padding:20px;margin-bottom:16px}.tp-workflow h2{margin:0 0 6px}.tp-workflow p{margin:0;color:var(--tp-muted)}.tp-workflow ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.tp-workflow li{position:relative;text-align:center;display:grid;gap:4px}.tp-workflow li:not(:last-child):after{content:'→';position:absolute;right:-13px;top:8px;color:#7b92b3}.tp-workflow b{font-size:13px}.tp-workflow span{font-size:11px;color:var(--tp-muted)}.tp-content-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.tp-action-row{display:flex;gap:8px;margin-bottom:12px}.tp-answer-options{display:flex;gap:18px}.tp-question-picker{display:grid;gap:7px;max-height:220px;overflow:auto;border:1px solid var(--tp-border);padding:10px;border-radius:8px}.tp-attendance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.tp-attendance-grid article{border:1px solid var(--tp-border);border-radius:10px;padding:15px;display:grid;gap:8px}.tp-attendance-grid small{color:var(--tp-muted)}.tp-empty{text-align:center;color:var(--tp-muted);padding:28px!important}.tp-public-body{min-height:100vh;background:var(--tp-bg);display:flex;flex-direction:column}.tp-public-topbar{height:70px;background:#0f172a;display:flex;justify-content:space-between;align-items:center;padding:0 24px;border-bottom:1px solid rgba(255,255,255,.08)}.tp-public-topbar .map-brand-link{color:#ffffff}.tp-public-topbar .tp-brand img{width:48px;height:48px}.tp-public-topbar .tp-brand strong{font-size:18px}.tp-public-signin{color:#93c5fd;font-weight:800}.tp-public-main{width:min(1480px,calc(100% - 40px));margin:0 auto;padding:28px 0;flex:1}.tp-public-footer{min-height:58px;border-top:1px solid var(--tp-border);display:flex;align-items:center;justify-content:center;color:var(--tp-muted);background:#fff}.tp-auth-wrap{min-height:calc(100vh - 190px);display:grid;place-items:center}.tp-auth-card{width:min(480px,100%);background:#fff;border:1px solid var(--tp-border);border-radius:16px;padding:30px;box-shadow:var(--tp-shadow)}.tp-auth-card h1{margin:7px 0 6px}.tp-auth-card p{color:var(--tp-muted)}.tp-auth-card form{display:grid;gap:15px}.tp-auth-link{text-align:center}.tp-register-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,.9fr);gap:18px}.tp-register-form form{display:grid;gap:16px}.tp-register-side{display:grid;align-content:start;gap:16px}.tp-register-actions{display:flex;justify-content:space-between;align-items:center;gap:15px}.tp-city-fieldset{grid-column:1/-1;border:1px solid var(--tp-border);border-radius:9px;padding:13px}.tp-steps{list-style:none;counter-reset:steps;padding:0;margin:0;display:grid;gap:16px}.tp-steps li{counter-increment:steps;display:flex;align-items:center;gap:12px;font-weight:800}.tp-steps li:before{content:counter(steps);width:34px;height:34px;border-radius:50%;background:var(--tp-blue);color:#fff;display:grid;place-items:center}.tp-policy-card{background:#edf5ff}.tp-public-main input[type=checkbox]{width:auto}
@media(max-width:1200px){.tp-kpi-grid.five{grid-template-columns:repeat(3,1fr)}.tp-dashboard-grid,.tp-trainings-grid{grid-template-columns:1fr}.tp-expertise-grid{grid-template-columns:1fr 1fr}.tp-batch-grid{grid-template-columns:1fr 1fr}.tp-content-grid{grid-template-columns:1fr}.tp-workflow{grid-template-columns:1fr}.tp-register-grid{grid-template-columns:1fr}}
@media(max-width:820px){.tp-topbar{padding:0 14px}.tp-brand strong{font-size:15px}.tp-brand img{width:46px;height:46px}.tp-user-menu summary>span:nth-child(2){display:none}.tp-shell{grid-template-columns:1fr}.tp-sidebar{position:static;min-height:auto}.tp-sidebar nav{grid-template-columns:repeat(2,1fr)}.tp-sidebar footer{display:none}.tp-main{padding:20px 14px}.tp-content-column{min-height:auto}.tp-footer{min-height:58px}.tp-kpi-grid.five,.tp-kpi-grid.four,.tp-profile-grid,.tp-banking-grid{grid-template-columns:1fr}.tp-form-grid{grid-template-columns:1fr}.tp-info-list>div{grid-template-columns:1fr}.tp-batch-grid,.tp-attendance-grid{grid-template-columns:1fr}.tp-workflow ol{grid-template-columns:1fr}.tp-workflow li:not(:last-child):after{display:none}.tp-expertise-grid{grid-template-columns:1fr}.tp-register-actions{align-items:flex-start;flex-direction:column}.tp-public-main{width:min(100% - 24px,1480px)}}

/* =========================================================
   Trainer Registration v1.0.1 Hotfix
   Approved prototype restoration
   ========================================================= */
.tp-public-topbar{
  height:76px;
  padding:0 28px;
  background:#0f172a;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.tp-public-topbar .tp-brand{gap:13px}
.tp-public-topbar .tp-brand img{
  width:48px;
  height:48px;
  padding:0;
  border-radius:50%;
  background:transparent;
}
.tp-public-topbar .tp-brand strong{font-size:18px;line-height:1.15}
.tp-public-topbar .tp-brand small{margin-top:3px;color:#94a3b8}
.tp-public-signin{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#fff;
  font-weight:800;
}
.tp-public-signin svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.tp-public-main{
  width:min(1480px,calc(100% - 48px));
  padding:27px 0 30px;
}
.tp-register-head{margin-bottom:20px}
.tp-register-head h1{font-size:38px;margin:7px 0 5px}
.tp-register-head p{font-size:15px}
.tp-register-grid{
  grid-template-columns:minmax(0,2fr) minmax(360px,.92fr);
  gap:20px;
  align-items:start;
}
.tp-register-form{padding:26px 28px}
.tp-register-card-title{
  display:flex;
  align-items:center;
  gap:13px;
  margin-bottom:20px;
}
.tp-register-card-title h2{margin:0 0 4px;font-size:20px}
.tp-register-card-title p{margin:0;color:var(--tp-muted);font-size:13px}
.tp-register-title-icon{
  width:46px;
  height:46px;
  border-radius:12px;
  display:grid;
  place-items:center;
  color:var(--tp-blue);
  background:var(--tp-soft);
  flex:0 0 46px;
}
.tp-register-title-icon svg,
.tp-step-icon svg,
.tp-policy-icon svg,
.tp-submit-application svg,
.tp-input-icon>svg{
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.tp-register-title-icon svg{width:24px;height:24px}
.tp-register-fields{gap:17px 18px}
.tp-register-fields label{
  display:grid;
  gap:7px;
  min-width:0;
  color:#0f172a;
  font-size:13px;
  font-weight:750;
}
.tp-register-fields label>span:first-child{display:block}
.tp-register-fields label em{
  color:var(--tp-muted);
  font-style:normal;
  font-weight:500;
}
.tp-register-form input,
.tp-register-form select{
  width:100%;
  min-height:48px;
  padding:11px 13px;
  border:1px solid #cbd8e8;
  border-radius:9px;
  background:#fff;
  color:var(--tp-text);
  outline:none;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.tp-register-form input:focus,
.tp-register-form select:focus{
  border-color:#6ea3ff;
  box-shadow:0 0 0 3px rgba(23,105,255,.12);
}
.tp-register-fields small{font-size:11px;color:var(--tp-muted)}
.tp-input-icon{position:relative;display:block}
.tp-input-icon>svg{
  position:absolute;
  left:13px;
  top:50%;
  width:19px;
  height:19px;
  color:#52657f;
  transform:translateY(-50%);
  pointer-events:none;
}
.tp-input-icon input{padding-left:42px}
.tp-social-icon>svg{color:#0f172a}
.tp-current-city-field select{max-width:calc(50% - 9px)}
.tp-register-actions{
  margin-top:4px;
  padding-top:18px;
  border-top:1px solid #e6edf6;
}
.tp-inline-check{
  display:flex;
  align-items:flex-start;
  gap:10px;
  color:#263a57;
  font-size:13px;
  line-height:1.45;
  font-weight:600;
}
.tp-inline-check input{
  width:17px;
  height:17px;
  min-height:17px;
  margin-top:1px;
  flex:0 0 17px;
}
.tp-submit-application{min-height:46px;padding:0 20px;white-space:nowrap}
.tp-submit-application svg{width:19px;height:19px}
.tp-register-side{gap:18px}
.tp-how-card{padding:25px}
.tp-how-card h2{margin-bottom:20px}
.tp-steps{
  counter-reset:none;
  display:grid;
  gap:0;
  margin:0;
  padding:0;
}
.tp-steps li{
  counter-increment:none;
  position:relative;
  display:grid;
  grid-template-columns:28px 54px minmax(0,1fr);
  align-items:center;
  gap:12px;
  min-height:68px;
  font-weight:800;
}
.tp-steps li:before{display:none!important;content:none!important}
.tp-steps li:not(:last-child):after{
  content:'';
  position:absolute;
  left:13px;
  top:48px;
  bottom:-20px;
  width:1px;
  background:#d6e2f1;
}
.tp-step-number{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--tp-blue);
  color:#fff;
  font-size:12px;
  font-weight:900;
  z-index:1;
}
.tp-step-icon{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--tp-soft);
  color:var(--tp-blue);
}
.tp-step-icon svg{width:27px;height:27px}
.tp-steps strong{font-size:14px}
.tp-policy-card{
  display:flex;
  align-items:center;
  gap:18px;
  padding:22px;
  background:#edf5ff;
  border-color:#bfd5fb;
}
.tp-policy-card h2{margin:0 0 6px;font-size:19px}
.tp-policy-card p{margin:0;color:#425b7d;line-height:1.5;font-size:13px}
.tp-policy-icon{
  width:70px;
  height:70px;
  display:grid;
  place-items:center;
  flex:0 0 70px;
  border-radius:50%;
  color:#fff;
  background:linear-gradient(145deg,#2779ff,#0f5be7);
  box-shadow:0 12px 30px rgba(23,105,255,.22);
}
.tp-policy-icon svg{width:35px;height:35px}
.tp-public-footer{
  min-height:64px;
  justify-content:center;
  text-align:center;
}
@media(max-width:1100px){
  .tp-register-grid{grid-template-columns:1fr}
  .tp-register-side{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
  .tp-public-topbar{height:70px;padding:0 14px}
  /* PIN-UI-1: the long brand name wraps and Sign In stays on screen on phones. */
  .tp-public-topbar{gap:10px}.tp-public-topbar .map-brand-link{min-width:0;flex:1 1 auto}.tp-public-topbar .map-brand-title{white-space:normal;font-size:13px;line-height:1.2}.tp-public-signin{flex:none;white-space:nowrap}
  .tp-public-topbar .tp-brand strong{font-size:15px}
  .tp-public-topbar .tp-brand img{width:43px;height:43px}
  .tp-public-main{width:min(100% - 24px,1480px);padding-top:22px}
  .tp-register-head h1{font-size:30px}
  .tp-register-form{padding:20px 18px}
  .tp-register-card-title p{display:none}
  .tp-register-fields{grid-template-columns:1fr}
  .tp-current-city-field{grid-column:auto}
  .tp-current-city-field select{max-width:none}
  .tp-register-actions{align-items:stretch}
  .tp-submit-application{width:100%}
  .tp-register-side{grid-template-columns:1fr}
}


/* =========================================================
   Trainer Registration v1.0.2 Compact Layout Hotfix
   - Removes public role checkbox / duplicate-profile notice
   - Keeps CNIC linkage automatic in the backend
   - Reduces oversized spacing and aligns all field rows
   ========================================================= */
.tp-public-topbar{
  height:68px;
  padding:0 24px;
}
.tp-public-topbar .tp-brand{gap:11px}
.tp-public-topbar .tp-brand img{
  width:42px;
  height:42px;
}
.tp-public-topbar .tp-brand strong{
  font-size:17px;
  line-height:1.1;
}
.tp-public-topbar .tp-brand small{
  margin-top:2px;
  font-size:11px;
}
.tp-public-main{
  width:min(1240px,calc(100% - 36px));
  padding:20px 0 24px;
}
.tp-register-head{
  margin-bottom:14px;
}
.tp-register-head .tp-eyebrow{
  font-size:11px;
  letter-spacing:.08em;
}
.tp-register-head h1{
  margin:5px 0 3px;
  font-size:32px;
  line-height:1.08;
}
.tp-register-head p{
  margin:0;
  font-size:13px;
  line-height:1.35;
}
.tp-register-grid{
  grid-template-columns:minmax(0,1.82fr) minmax(300px,.78fr);
  gap:16px;
}
.tp-register-form{
  padding:21px 22px;
}
.tp-register-card-title{
  gap:11px;
  margin-bottom:15px;
}
.tp-register-title-icon{
  width:40px;
  height:40px;
  flex-basis:40px;
  border-radius:10px;
}
.tp-register-title-icon svg{
  width:21px;
  height:21px;
}
.tp-register-card-title h2{
  margin:0 0 2px;
  font-size:18px;
  line-height:1.2;
}
.tp-register-card-title p{
  font-size:12px;
  line-height:1.3;
}
.tp-register-form form{
  gap:13px;
}
.tp-register-fields{
  gap:13px 16px;
  align-items:start;
}
.tp-register-fields label{
  gap:5px;
  align-content:start;
  font-size:12px;
  line-height:1.25;
}
.tp-register-form input,
.tp-register-form select{
  min-height:42px;
  height:42px;
  padding:8px 11px;
  border-radius:8px;
  font-size:13px;
  line-height:1.2;
}
.tp-register-fields small{
  min-height:13px;
  margin:0;
  font-size:10px;
  line-height:1.25;
}
.tp-input-icon>svg{
  left:11px;
  width:17px;
  height:17px;
}
.tp-input-icon input{
  padding-left:36px;
}
.tp-current-city-field{
  grid-column:1;
}
.tp-current-city-field select{
  max-width:none;
}
.tp-register-actions{
  justify-content:flex-end;
  margin-top:1px;
  padding-top:14px;
}
.tp-submit-application{
  min-height:42px;
  height:42px;
  padding:0 17px;
  border-radius:8px;
  font-size:13px;
}
.tp-submit-application svg{
  width:17px;
  height:17px;
}
.tp-register-side{
  gap:14px;
}
.tp-how-card{
  padding:21px;
}
.tp-how-card h2{
  margin:0 0 13px;
  font-size:18px;
}
.tp-steps li{
  grid-template-columns:24px 44px minmax(0,1fr);
  gap:10px;
  min-height:56px;
}
.tp-steps li:not(:last-child):after{
  left:11px;
  top:41px;
  bottom:-15px;
}
.tp-step-number{
  width:24px;
  height:24px;
  font-size:11px;
}
.tp-step-icon{
  width:44px;
  height:44px;
}
.tp-step-icon svg{
  width:22px;
  height:22px;
}
.tp-steps strong{
  font-size:12.5px;
  line-height:1.25;
}
.tp-public-footer{
  min-height:54px;
  font-size:12px;
}
@media(max-width:1100px){
  .tp-register-grid{grid-template-columns:1fr}
  .tp-register-side{grid-template-columns:1fr}
  .tp-how-card{max-width:none}
}
@media(max-width:820px){
  .tp-public-topbar{height:64px;padding:0 12px}
  .tp-public-topbar .tp-brand img{width:38px;height:38px}
  .tp-public-topbar .tp-brand strong{font-size:14px}
  .tp-public-main{width:min(100% - 20px,1240px);padding:17px 0 20px}
  .tp-register-head h1{font-size:28px}
  .tp-register-form{padding:18px 15px}
  .tp-register-fields{grid-template-columns:1fr;gap:12px}
  .tp-current-city-field{grid-column:auto}
  .tp-register-actions{align-items:stretch}
  .tp-submit-application{width:100%}
}

/* =========================================================
   Trainer Registration v1.0.3 Visual Polish Hotfix
   - Improves heading/subtitle spacing
   - Aligns every two-column form row consistently
   - Refines scale, card depth, and visual balance
   ========================================================= */
.tp-public-main{
  width:min(1180px,calc(100% - 40px));
  padding:24px 0 28px;
}
.tp-register-head{
  display:block;
  margin:0 0 18px;
}
.tp-register-head .tp-eyebrow{
  display:block;
  margin:0 0 8px;
  font-size:11px;
  line-height:1;
  letter-spacing:.09em;
}
.tp-register-head h1{
  margin:0;
  font-size:27px;
  line-height:1.1;
  letter-spacing:-.025em;
}
.tp-register-head p{
  margin:10px 0 0;
  font-size:14px;
  line-height:1.45;
  color:#60718d;
}
.tp-register-grid{
  grid-template-columns:minmax(0,1.86fr) minmax(315px,.78fr);
  gap:18px;
}
.tp-register-form,
.tp-how-card{
  position:relative;
  overflow:hidden;
  border-color:#d5e0ee;
  box-shadow:0 12px 32px rgba(16,42,78,.07);
}
.tp-register-form::before,
.tp-how-card::before{
  content:'';
  position:absolute;
  inset:0 0 auto;
  height:3px;
  background:linear-gradient(90deg,#1769ff 0%,#69a2ff 62%,rgba(105,162,255,0) 100%);
}
.tp-register-form{
  padding:23px 24px 21px;
}
.tp-register-card-title{
  gap:12px;
  margin-bottom:18px;
}
.tp-register-title-icon{
  width:42px;
  height:42px;
  flex-basis:42px;
  border-radius:11px;
}
.tp-register-card-title h2{
  margin:0 0 3px;
  font-size:18px;
  line-height:1.18;
}
.tp-register-card-title p{
  font-size:12px;
  line-height:1.35;
}
.tp-register-form form{
  gap:14px;
}
.tp-register-fields{
  gap:13px 18px;
  align-items:start;
}
.tp-register-fields label{
  grid-template-rows:17px 44px 13px;
  gap:4px;
  min-height:82px;
  font-size:12px;
  line-height:1.2;
}
.tp-register-fields label>span:first-child{
  align-self:end;
  line-height:17px;
}
.tp-register-form input,
.tp-register-form select,
.tp-input-icon{
  height:44px;
  min-height:44px;
}
.tp-register-form input,
.tp-register-form select{
  padding:9px 12px;
  border-radius:8px;
  font-size:13px;
}
.tp-input-icon input{
  height:44px;
  padding-left:37px;
}
.tp-register-fields small{
  min-height:13px;
  font-size:10px;
  line-height:13px;
}
.tp-current-city-field{
  grid-column:1;
}
.tp-register-actions{
  margin-top:0;
  padding-top:15px;
}
.tp-submit-application{
  min-height:42px;
  height:42px;
  padding:0 18px;
  font-size:13px;
  box-shadow:0 7px 16px rgba(23,105,255,.18);
}
.tp-how-card{
  padding:23px 22px;
}
.tp-how-card h2{
  margin:0 0 15px;
  font-size:19px;
  line-height:1.2;
}
.tp-steps li{
  grid-template-columns:24px 44px minmax(0,1fr);
  gap:11px;
  min-height:58px;
}
.tp-steps strong{
  font-size:12.5px;
  line-height:1.28;
}
.tp-public-footer{
  min-height:56px;
}
@media(max-width:1100px){
  .tp-public-main{width:min(960px,calc(100% - 32px))}
  .tp-register-grid{grid-template-columns:1fr}
}
@media(max-width:820px){
  .tp-public-main{width:min(100% - 20px,1180px);padding:18px 0 22px}
  .tp-register-head{margin-bottom:15px}
  .tp-register-head h1{font-size:28px}
  .tp-register-head p{margin-top:7px;font-size:13px}
  .tp-register-form{padding:19px 16px}
  .tp-register-fields{grid-template-columns:1fr;gap:11px}
  .tp-register-fields label{grid-template-rows:17px 44px auto;min-height:auto}
  .tp-register-actions{padding-top:13px}
}

/* =========================================================
   Trainer Portal v1.2.0 UI Polish
   - Compact production scale
   - Consistent SVG icon system
   - Admin-aligned header branding
   - Profile photo adjustment controls
   - Banking and payment history layout
   ========================================================= */
.tp-svg-icon,
.tp-nav-icon,
.tp-info-icon,
.tp-note-icon,
.tp-button-icon,
.tp-payment-stat-icon,
.tp-inline-icon svg,
.tp-upload-icon svg{
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.tp-svg-icon{width:24px;height:24px}
.tp-topbar{
  height:80px;
  padding:0 26px;
}
.tp-brand{gap:13px}
.tp-brand-logo{
  width:52px;
  height:52px;
  flex:0 0 52px;
  overflow:hidden;
  border-radius:50%;
}
.tp-brand-logo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:50%;
  transform:scale(1.13);
}
.tp-brand-text{display:grid;gap:3px}
.tp-brand-text strong{font-size:21px;line-height:1.18;font-weight:760}
.tp-brand-text small{font-size:12px;color:#b7cae7}
.tp-user-menu summary{gap:10px;padding:4px 0}
.tp-user-meta{display:grid;gap:2px}
.tp-user-menu summary strong{font-size:14px}
.tp-user-menu summary small{font-size:11px}
.tp-avatar{width:42px;height:42px}
.tp-menu-chevron{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:7px;
  color:#c8d7ee;
  transition:background .15s ease,transform .15s ease;
}
.tp-menu-chevron svg{width:16px;height:16px}
.tp-user-menu summary:hover .tp-menu-chevron{background:rgba(255,255,255,.08)}
.tp-user-menu[open] .tp-menu-chevron{transform:rotate(180deg)}
.tp-user-dropdown{top:52px}
.tp-shell{grid-template-columns:238px minmax(0,1fr);min-height:calc(100vh - 80px)}
.tp-sidebar{min-height:calc(100vh - 80px)}
.tp-sidebar nav{gap:7px;padding:16px 12px}
.tp-sidebar nav a{
  min-height:46px;
  padding:0 13px;
  gap:11px;
  font-size:14px;
  border-radius:8px;
}
.tp-nav-icon{width:20px;height:20px;flex:0 0 20px}
.tp-sidebar footer{min-height:58px;padding:0 24px;font-size:11px}
.tp-content-column{min-height:calc(100vh - 80px)}
.tp-main{padding:24px 24px 20px;font-size:14px}
.tp-footer{min-height:58px;font-size:12px}
.tp-page-head{margin-bottom:16px}
.tp-page-head h1{margin:5px 0 3px;font-size:30px;line-height:1.08;letter-spacing:-.02em}
.tp-page-head p{font-size:13px;line-height:1.4}
.tp-eyebrow{font-size:11px;letter-spacing:.09em}
.tp-card{padding:16px;border-radius:12px;box-shadow:0 7px 20px rgba(18,42,77,.055)}
.tp-card h2{margin-bottom:12px;font-size:18px}
.tp-card header,.tp-section-header{margin-bottom:12px}
.tp-card header p,.tp-section-header p{font-size:12px}
.tp-btn{min-height:38px;padding:0 14px;font-size:13px;border-radius:7px}
.tp-btn.small{min-height:32px;padding:0 10px;font-size:11.5px}
.tp-button-icon{width:16px;height:16px}
.tp-kpi-grid{gap:12px;margin-bottom:15px}
.tp-kpi-grid article{min-height:94px;padding:14px;gap:12px;border-radius:12px}
.tp-kpi-grid i{width:46px;height:46px;border-radius:10px}
.tp-kpi-grid i svg{width:23px;height:23px}
.tp-kpi-grid small{font-size:11.5px}
.tp-kpi-grid strong{font-size:23px;line-height:1}
.tp-kpi-grid span{font-size:11px;line-height:1.35}
.tp-dashboard-grid,.tp-trainings-grid{gap:14px}
.tp-dashboard-side{gap:14px}
.tp-table-wrap{border-radius:9px}
.tp-table{min-width:720px}
.tp-table th{padding:10px 10px;font-size:11px}
.tp-table td{padding:10px 10px;font-size:12.25px;line-height:1.35}
.tp-date-line{display:flex;align-items:center;gap:6px;line-height:1.45}
.tp-inline-icon{display:inline-grid;place-items:center;color:#536b8d;flex:0 0 14px}
.tp-inline-icon svg{width:14px;height:14px}
.tp-center-link{margin-top:11px;font-size:12.5px}
.tp-count-row{padding:10px 0}
.tp-count-row span{font-size:13px}
.tp-count-row small{font-size:11px}
.tp-count-row b{padding:7px 10px;font-size:12px}
.tp-quick-grid{gap:8px}
.tp-quick-grid a{min-height:46px;font-size:12.5px}
.tp-profile-hero{min-height:100px;margin-bottom:13px}
.tp-profile-identity{gap:16px}
.tp-profile-avatar{width:74px;height:74px;font-size:24px}
.tp-profile-identity h2{font-size:21px;margin-bottom:3px}
.tp-profile-identity p{margin-bottom:6px;font-size:12px}
.tp-tabs{margin-bottom:13px;border-radius:10px}
.tp-tabs a{padding:12px 16px;font-size:13px}
.tp-profile-grid{grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:14px}
.tp-info-list>div{grid-template-columns:220px minmax(0,1fr);gap:12px;padding:9px 0}
.tp-info-list dt{display:flex;align-items:center;gap:9px;font-size:12.5px}
.tp-info-list dd{font-size:12.5px}
.tp-info-icon{width:17px;height:17px;flex:0 0 17px;color:#164d96}
.tp-photo-current{width:150px;height:150px;margin:20px auto 14px}
.tp-photo-form .map-pp-widget{display:flex;flex-direction:column;align-items:stretch;gap:9px}
.tp-photo-form .map-pp-adjust,
.tp-photo-form .map-pp-open{
  width:100%;
  min-height:40px;
  border-radius:8px;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
}
.tp-photo-form .map-pp-adjust{
  order:1;
  border:1px solid #9fc0ff;
  background:#fff;
  color:var(--tp-blue);
}
.tp-photo-form .map-pp-open{order:2}
.tp-photo-form .map-pp-adjust:disabled{
  cursor:not-allowed;
  color:#8b99ad;
  background:#f2f5f9;
  border-color:#d8e1ee;
  opacity:.75;
}
.tp-form-grid{gap:12px}
.tp-form-grid label,.tp-form-card label,.tp-password-card label,.tp-auth-card label{font-size:12.5px;gap:6px}
.tp-form-grid input,.tp-form-grid select,.tp-form-grid textarea,.tp-form-card input,.tp-form-card textarea,.tp-form-card select,.tp-password-card input,.tp-auth-card input,.tp-search-form input{min-height:40px;padding:8px 10px;font-size:12.5px}
textarea{min-height:88px}
.tp-form-actions{margin-top:13px}
.tp-note{padding:10px 12px;font-size:12.5px}
.tp-note-with-icon{display:flex;align-items:flex-start;gap:9px}
.tp-note-icon{width:17px;height:17px;flex:0 0 17px;margin-top:1px}
.tp-upload-icon{display:inline-grid;place-items:center;margin-bottom:6px;color:var(--tp-blue)}
.tp-upload-icon svg{width:20px;height:20px}
.tp-expertise-grid{gap:12px}
.tp-expertise-grid article,.tp-expertise-grid fieldset{padding:13px}
.tp-expertise-grid h3{font-size:14px}
.tp-expertise-grid article>strong{font-size:24px}
.tp-expertise-grid p,.tp-expertise-grid li,.tp-expertise-grid label{font-size:12px}
.tp-session-panel article{padding:10px 0}
.tp-batch-grid{gap:13px}
.tp-batch-card h2{min-height:40px;font-size:17px}
.tp-batch-card dl{font-size:12px}
.tp-search-form{margin-bottom:12px}
.tp-workflow{grid-template-columns:240px 1fr;gap:16px;padding:16px;margin-bottom:14px}
.tp-workflow h2{font-size:17px}
.tp-workflow p{font-size:12px}
.tp-workflow b{font-size:12px}
.tp-workflow span{font-size:10.5px}
.tp-content-grid{gap:14px}
.tp-action-row{flex-wrap:wrap}
.tp-password-card{max-width:560px}

/* Banking and payment history */
.tp-banking-grid{grid-template-columns:minmax(0,1.45fr) minmax(340px,.75fr);gap:16px}
.tp-banking-card form[hidden]{display:none!important}
.tp-bank-summary{margin:0;display:grid}
.tp-bank-summary>div{display:grid;grid-template-columns:155px minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid #e8eef6}
.tp-bank-summary>div:last-child{border-bottom:0}
.tp-bank-summary dt{font-size:12px;font-weight:800;color:#4d607f}
.tp-bank-summary dd{margin:0;font-size:12.5px;color:#152844;overflow-wrap:anywhere}
.tp-bank-iban{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.03em}
.tp-payment-history-card{align-self:start}
.tp-payment-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tp-payment-stats article{display:flex;align-items:center;gap:10px;border:1px solid var(--tp-border);border-radius:9px;padding:11px;background:#fbfdff}
.tp-payment-stat-icon{width:22px;height:22px;color:var(--tp-blue);flex:0 0 22px}
.tp-payment-stats span{display:grid;gap:2px}
.tp-payment-stats small{font-size:10.5px;color:var(--tp-muted)}
.tp-payment-stats strong{font-size:21px;line-height:1}
.tp-payment-total{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:12px;border-radius:9px;background:var(--tp-soft)}
.tp-payment-total span{font-size:11.5px;color:#476087}
.tp-payment-total strong{font-size:14px;color:#0d4faa;white-space:nowrap}
.tp-payment-list{display:grid}
.tp-payment-list>article{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #e8eef6}
.tp-payment-list>article:last-child{border-bottom:0}
.tp-payment-list article>div{display:grid;gap:3px}
.tp-payment-list strong{font-size:12px}
.tp-payment-list span{font-size:10.5px;color:var(--tp-muted)}
.tp-payment-amount{text-align:right}
.tp-payment-empty{padding:20px!important}

@media(max-width:1200px){
  .tp-shell{grid-template-columns:220px minmax(0,1fr)}
  .tp-kpi-grid.five{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tp-banking-grid{grid-template-columns:1fr}
}
@media(max-width:820px){
  .tp-topbar{height:70px;padding:0 14px}
  .tp-brand-logo{width:44px;height:44px;flex-basis:44px}
  .tp-brand-text strong{font-size:15px}
  .tp-brand-text small{font-size:10px}
  .tp-shell{grid-template-columns:1fr}
  .tp-sidebar{min-height:auto}
  .tp-sidebar nav{grid-template-columns:1fr 1fr}
  .tp-main{padding:18px 12px}
  .tp-page-head h1{font-size:26px}
  .tp-kpi-grid.five,.tp-kpi-grid.four,.tp-profile-grid,.tp-banking-grid{grid-template-columns:1fr}
  .tp-info-list>div,.tp-bank-summary>div{grid-template-columns:1fr;gap:4px}
  .tp-expertise-grid{grid-template-columns:1fr}
  .tp-workflow{grid-template-columns:1fr}
  .tp-payment-stats{grid-template-columns:1fr 1fr}
}


/* =========================================================
   Trainer Portal v1.2.1 Sidebar Label Fix
   - Prevents navigation labels from inheriting icon sizing
   - Keeps labels on one line at desktop widths
   ========================================================= */
.tp-sidebar nav a > span {
  width: auto;
  min-width: 0;
  flex: 1 1 auto;
  text-align: left;
  font-size: 14px;
  line-height: 1.25;
  white-space: nowrap;
}

@media (max-width: 820px) {
  .tp-sidebar nav a > span {
    white-space: normal;
  }
}

/* =========================================================
   Trainer Portal v1.3.0 Dashboard & Training Assignment Flow
   ========================================================= */
@media (min-width: 821px) {
  .tp-topbar{height:72px;padding:0 22px 0 16px}
  .tp-brand{gap:11px}.tp-brand img{width:48px;height:48px}.tp-brand strong{font-size:17px}.tp-brand small{font-size:11px}
  .tp-avatar{width:38px;height:38px}.tp-user-menu summary strong{font-size:13px}.tp-user-menu summary small{font-size:10.5px}
  .tp-user-dropdown{top:48px}
  .tp-shell{grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 72px)}
  .tp-sidebar{min-height:calc(100vh - 72px)}
  .tp-sidebar nav{gap:6px;padding:14px 8px}.tp-sidebar nav a{min-height:45px;padding:0 12px;gap:10px;font-size:13px}
  .tp-sidebar nav a>svg{width:18px;height:18px;flex:0 0 18px}
  .tp-sidebar nav a>span{font-size:13px}
  .tp-main{padding:20px 20px 18px;font-size:13px}
  .tp-page-head{margin-bottom:14px}.tp-page-head h1{font-size:24px}.tp-page-head p{font-size:12px}.tp-eyebrow{font-size:11px}
  .tp-card{padding:16px;border-radius:12px}.tp-card h2{font-size:17px}
}
.tp-kpi-actions{align-items:stretch}
.tp-kpi-button{
  width:100%;min-width:0;min-height:86px;padding:13px;border:1px solid var(--tp-border);
  border-radius:12px;background:#fff;box-shadow:var(--tp-shadow);display:flex;align-items:center;
  gap:11px;text-align:left;color:var(--tp-text);cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;
}
.tp-kpi-button:hover,.tp-kpi-button:focus-visible,.tp-kpi-button[aria-expanded="true"]{
  transform:translateY(-2px);border-color:#8eb8ff;box-shadow:0 10px 24px rgba(23,105,255,.12);outline:none;
}
.tp-kpi-button i{width:44px;height:44px;flex:0 0 44px;border-radius:10px}.tp-kpi-button i svg{width:22px;height:22px}
.tp-kpi-copy{display:grid;gap:2px;min-width:0}.tp-kpi-copy small{font-size:11px}.tp-kpi-copy strong{font-size:22px;line-height:1}.tp-kpi-copy>span{font-size:10.5px}
.tp-kpi-chevron{margin-left:auto;width:16px!important;flex:0 0 16px!important;color:#7d91ad!important;transition:transform .15s ease}.tp-kpi-chevron svg{width:15px;height:15px}
.tp-kpi-button[aria-expanded="true"] .tp-kpi-chevron{transform:rotate(90deg);color:var(--tp-blue)!important}
.tp-dashboard-detail-shell{margin:-2px 0 16px}.tp-dashboard-detail-shell[hidden],.tp-dashboard-detail[hidden]{display:none!important}
.tp-dashboard-detail{background:#fff;border:1px solid #9fc0ff;border-radius:12px;padding:16px;box-shadow:0 10px 24px rgba(18,42,77,.08)}
.tp-dashboard-detail-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:13px}.tp-dashboard-detail-head h2{margin:3px 0 0;font-size:18px}
.tp-detail-close{width:32px;height:32px;border:1px solid var(--tp-border);border-radius:8px;background:#fff;color:#425574;font-size:21px;cursor:pointer}
.tp-program-detail-grid,.tp-batch-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.tp-detail-card{border:1px solid var(--tp-border);border-radius:10px;padding:14px;background:#fbfdff}
.tp-detail-card-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.tp-detail-card-title span:first-child{display:block;color:var(--tp-blue);font-size:10px;font-weight:900;letter-spacing:.05em}.tp-detail-card-title h3{margin:4px 0 0;font-size:15px;line-height:1.3}
.tp-detail-list{display:grid;gap:8px;margin:0 0 13px}.tp-detail-list.two-column{grid-template-columns:1fr 1fr}.tp-detail-list>div{display:flex;justify-content:space-between;gap:10px;padding-bottom:7px;border-bottom:1px solid #e8eef6}.tp-detail-list dt{color:var(--tp-muted);font-size:11px}.tp-detail-list dd{margin:0;text-align:right;font-size:11.5px;font-weight:700}
.tp-detail-table{min-width:960px}.tp-cell-note{display:block;margin-top:3px;color:var(--tp-muted);font-size:10.5px;font-weight:400;white-space:normal}
.tp-status.awaiting-batch-assignment{background:#fff3da;color:#8f5b00}.tp-status.inactive{background:#eef1f5;color:#58667c}
.tp-training-tabs{margin-bottom:14px}.tp-trainings-grid-wide{grid-template-columns:minmax(0,2.2fr) minmax(290px,.72fr)}
.tp-session-panel article b{font-size:12px}.tp-session-panel article strong{font-size:12px}.tp-session-panel article small,.tp-session-panel article p{font-size:10.5px}
.tp-batch-role{margin:0 0 12px;color:var(--tp-blue);font-size:11.5px;font-weight:800}
@media(max-width:1200px){.tp-kpi-grid.five{grid-template-columns:repeat(3,minmax(0,1fr))}.tp-program-detail-grid,.tp-batch-detail-grid{grid-template-columns:1fr}}
@media(max-width:820px){.tp-kpi-grid.five{grid-template-columns:1fr}.tp-kpi-button{min-height:80px}.tp-dashboard-detail{padding:13px}.tp-detail-list.two-column{grid-template-columns:1fr}.tp-trainings-grid-wide{grid-template-columns:1fr}}

/* MetaPi Trainer Portal v1.3.1 corrective build */
.tp-kpi-button .tp-kpi-chevron{display:inline-flex;align-items:center;justify-content:center}
.tp-training-summary,.tp-training-tabs{visibility:visible;opacity:1}

/* =========================================================
   Trainer Portal v1.3.2 - Trainings Restore & Content Polish
   ========================================================= */
.tp-training-summary,
.tp-training-tabs,
.tp-training-panel,
.tp-content-page-head,
.tp-content-kpis,
.tp-content-workflow,
.tp-content-grid-managed {
  visibility: visible !important;
  opacity: 1 !important;
}

.tp-training-summary article {
  min-height: 88px;
  padding: 13px;
}
.tp-training-summary article i {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
}
.tp-training-summary article i svg {
  width: 22px;
  height: 22px;
}
.tp-training-summary article strong {
  font-size: 22px;
}
.tp-training-summary article small {
  font-size: 10.5px;
}
.tp-training-summary article span {
  font-size: 10px;
  line-height: 1.35;
}
.tp-training-panel {
  min-width: 0;
}
.tp-training-panel .tp-table th,
.tp-training-panel .tp-table td {
  padding-top: 10px;
  padding-bottom: 10px;
}
.tp-role-label {
  display: inline-flex;
  align-items: center;
  padding: 5px 8px;
  border-radius: 999px;
  background: #eaf2ff;
  color: #0f5eea;
  font-size: 10.5px;
  font-weight: 800;
  white-space: nowrap;
}

.tp-content-page-head {
  margin-bottom: 14px;
}
.tp-content-kpis {
  margin-bottom: 14px;
}
.tp-content-kpis article {
  min-height: 88px;
  padding: 13px;
}
.tp-content-kpis article i {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
}
.tp-content-kpis article i svg {
  width: 22px;
  height: 22px;
}
.tp-content-kpis small {
  font-size: 10.5px;
  line-height: 1.25;
}
.tp-content-kpis strong {
  font-size: 22px;
}
.tp-content-kpis span {
  font-size: 10px;
  line-height: 1.3;
}
.tp-content-workflow {
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 14px;
  padding: 14px;
  margin-bottom: 14px;
}
.tp-content-workflow ol {
  gap: 6px;
}
.tp-content-workflow li {
  min-width: 0;
}
.tp-content-workflow li b {
  line-height: 1.25;
}
.tp-content-workflow li span {
  line-height: 1.25;
}
.tp-content-grid-managed {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
.tp-content-section {
  min-width: 0;
}
.tp-content-section-header {
  align-items: flex-start;
  margin-bottom: 12px;
}
.tp-section-kicker {
  display: block;
  margin-bottom: 4px;
  color: var(--tp-blue);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
}
.tp-content-section-header h2 {
  margin-bottom: 3px;
}
.tp-content-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}
.tp-content-toolbar .tp-btn {
  min-height: 36px;
  padding: 0 12px;
  font-size: 11.5px;
}
.tp-content-note {
  margin-bottom: 10px;
}
.tp-content-form {
  margin: 10px 0 12px;
  padding: 14px;
  border: 1px solid #d7e2f1;
  border-radius: 10px;
  background: #f8fbff;
}
.tp-content-form[hidden] {
  display: none !important;
}
.tp-content-form .tp-form-grid {
  margin: 0;
}
.tp-answer-fieldset,
.tp-question-picker-fieldset {
  padding: 12px;
  border: 1px solid #d5e0ef;
  border-radius: 9px;
  background: #fff;
}
.tp-question-picker-fieldset legend small {
  color: var(--tp-muted);
  font-weight: 400;
}
.tp-question-picker {
  max-height: 230px;
  overflow: auto;
}
.tp-content-table-wrap {
  margin-top: 10px;
}
.tp-content-table {
  min-width: 720px;
}
.tp-quiz-table {
  min-width: 780px;
}
.tp-content-section .tp-btn:disabled {
  cursor: not-allowed;
  opacity: .55;
  transform: none;
}

@media (max-width: 1050px) {
  .tp-content-workflow {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 820px) {
  .tp-content-section-header {
    align-items: stretch;
    flex-direction: column;
  }
  .tp-content-section-header .tp-btn {
    width: 100%;
  }
}


/* =========================================================
   Trainer Portal v1.3.3 — locked brand mark and admin preview
   ========================================================= */
.tp-brand .tp-brand-logo {
  width:46px;
  height:46px;
  flex:0 0 46px;
  display:grid;
  place-items:center;
  padding:5px;
  overflow:hidden;
  border-radius:11px;
  background:#fff;
}
.tp-brand .tp-brand-logo img {
  display:block;
  width:100%;
  height:100%;
  padding:0;
  border-radius:0;
  background:transparent;
  object-fit:contain;
  transform:none;
}
.tp-admin-preview-banner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 0 14px;
  padding:11px 14px;
  border:1px solid #b8d0f5;
  border-radius:10px;
  background:#edf5ff;
  color:#12345f;
}
.tp-admin-preview-banner > div {
  display:grid;
  gap:2px;
}
.tp-admin-preview-banner strong {
  font-size:13px;
}
.tp-admin-preview-banner span {
  color:#55708f;
  font-size:11.5px;
}
.tp-admin-preview-banner a {
  flex:0 0 auto;
  padding:7px 11px;
  border:1px solid #1769ff;
  border-radius:7px;
  color:#1769ff;
  background:#fff;
  font-size:11px;
  font-weight:800;
}
.tp-admin-preview-banner a:hover {
  color:#fff;
  background:#1769ff;
}
@media(max-width:820px) {
  .tp-brand .tp-brand-logo {
    width:42px;
    height:42px;
    flex-basis:42px;
    padding:4px;
  }
  .tp-admin-preview-banner {
    align-items:flex-start;
    flex-direction:column;
  }
}

/* MAP 2.7 compact desktop density */
@media(min-width:1280px){
 body{font-size:14px}.tp-topbar{height:64px;padding:0 20px}.tp-brand{gap:10px}.tp-brand img{width:40px;height:40px}.tp-brand strong{font-size:16px}.tp-brand small{font-size:11px}.tp-shell{grid-template-columns:210px minmax(0,1fr);min-height:calc(100vh - 64px)}.tp-sidebar{padding:18px 10px}.tp-sidebar nav a{padding:10px 11px}.tp-main{padding:22px}.tp-card{padding:15px}.tp-public-topbar{height:64px;padding:0 22px}.tp-public-topbar .tp-brand img{width:40px;height:40px}.tp-public-topbar .tp-brand strong{font-size:16px}.tp-public-main{padding:20px 0 24px}.tp-register-head h1{font-size:31px}.tp-register-form{padding:20px 22px}.tp-register-fields{gap:13px 14px}.tp-register-form input,.tp-register-form select{min-height:40px;padding:8px 11px}
}

/* =========================================================
   MAP 3.0 Trainer Portal shell alignment remediation v3.0.1
   - Match authenticated Trainer brand/logo geometry to Admin Portal
   - Add desktop resizable navigation with persisted width
   - Remove double sidebar padding that crowds long labels
   - Preserve tablet/mobile and all public Trainer pages
   ========================================================= */
:root{
  --tp-trainer-sidebar-width:228px;
}

@media (min-width:1025px){
  body.tp-body .tp-topbar{
    height:62px!important;
    padding:0 20px!important;
    background:#0f172a!important;
  }
  body.tp-body .tp-topbar .tp-brand{
    gap:10px!important;
    min-width:0;
  }
  body.tp-body .tp-topbar .tp-brand-logo{
    width:52px!important;
    height:52px!important;
    flex:0 0 52px!important;
    display:grid!important;
    place-items:center!important;
    padding:0!important;
    overflow:hidden!important;
    border:0!important;
    border-radius:50%!important;
    background:transparent!important;
  }
  body.tp-body .tp-topbar .tp-brand-logo img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    padding:0!important;
    object-fit:cover!important;
    border-radius:50%!important;
    background:transparent!important;
    transform:scale(1.13)!important;
  }
  body.tp-body .tp-topbar .tp-brand-text{
    display:grid!important;
    gap:0!important;
    min-width:0;
  }
  body.tp-body .tp-topbar .tp-brand-text strong{
    font-size:22px!important;
    line-height:1.2!important;
    font-weight:750!important;
    white-space:nowrap;
  }
  body.tp-body .tp-topbar .tp-brand-text small{
    margin-top:4px!important;
    font-size:13px!important;
    color:#94a3b8!important;
  }

  body.tp-body .tp-shell{
    grid-template-columns:var(--tp-trainer-sidebar-width) minmax(0,1fr)!important;
    min-height:calc(100vh - 62px)!important;
  }
  body.tp-body .tp-sidebar{
    min-width:0;
    min-height:calc(100vh - 62px)!important;
    padding:0!important;
  }
  body.tp-body .tp-sidebar nav{
    gap:4px!important;
    padding:12px 9px 20px!important;
  }
  body.tp-body .tp-sidebar nav a{
    min-width:0;
    min-height:38px!important;
    padding:8px 10px!important;
    gap:10px!important;
    border-radius:8px!important;
    font-size:13px!important;
  }
  body.tp-body .tp-sidebar nav a > svg{
    width:18px!important;
    height:18px!important;
    flex:0 0 18px!important;
  }
  body.tp-body .tp-sidebar nav a > span{
    width:auto!important;
    min-width:0!important;
    flex:1 1 auto!important;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap!important;
    text-align:left!important;
    font-size:13px!important;
    line-height:1.25!important;
  }
  body.tp-body .tp-content-column{
    min-width:0;
    min-height:calc(100vh - 62px)!important;
  }

  .tp-sidebar-resize-handle{
    position:fixed;
    top:62px;
    bottom:0;
    left:calc(var(--tp-trainer-sidebar-width) - 3px);
    z-index:60;
    width:7px;
    cursor:col-resize;
    background:transparent;
    transition:background .15s ease;
    touch-action:none;
  }
  .tp-sidebar-resize-handle::after{
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    left:3px;
    width:1px;
    background:transparent;
    transition:background .15s ease;
  }
  .tp-sidebar-resize-handle:hover::after,
  body.tp-sidebar-resizing .tp-sidebar-resize-handle::after{
    background:#60a5fa;
  }
  body.tp-sidebar-resizing{
    cursor:col-resize!important;
    user-select:none!important;
  }
  body.tp-sidebar-resizing .tp-shell{
    transition:none!important;
  }
}

@media (max-width:1024px){
  .tp-sidebar-resize-handle{display:none!important;}
}


/* Registration-only correction after the shared input padding rules. */
.tp-register-form .tp-input-icon input { padding-left: 42px; }
.tp-register-form .ss-wrap { min-width: 0; width: 100%; }
.tp-register-form .ss-trigger { min-height: 44px; }
.tp-register-form .ss-search { padding: 8px 10px; }
.tp-register-form input[type=file] { width: 100%; min-width: 0; }
/* Final registration refinements; shared portal controls retain their styling. */
.tp-register-form .tp-register-actions { justify-content: center; }
.tp-register-form, .tp-register-form .tp-register-fields { overflow: visible; }
/* Registration upload controls: the Application Portal document picker
   (.cp-file-drop: dashed field, upload icon, bold action line, filename line)
   compressed into the 44px control row. The native input stays inside the
   label, so the whole field opens the picker and keyboard focus still works. */
.tp-register-form .tp-register-upload { position: relative; display: flex; align-items: center; gap: 10px; min-width: 0; height: 44px; padding: 0 8px 0 11px; border: 1.5px dashed #93c5fd; border-radius: 9px; background: #f8fbff; color: #475569; cursor: pointer; transition: border-color .15s ease, background-color .15s ease; }
.tp-register-form .tp-register-upload:hover { border-color: var(--tp-blue); background: #eff6ff; }
.tp-register-form .tp-register-upload:focus-within { outline: 2px solid #2563eb; outline-offset: 2px; }
.tp-register-form .tp-register-upload svg { width: 22px; height: 22px; flex: 0 0 22px; fill: none; stroke: var(--tp-blue); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.tp-register-form .tp-register-upload input[type=file] { position: absolute; width: 1px; height: 1px; min-height: 0; margin: 0; padding: 0; border: 0; opacity: 0; pointer-events: none; }
.tp-register-form .tp-register-upload span,
.tp-register-form .tp-register-upload:hover span { min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; text-align: left; }
.tp-register-form .tp-register-upload .tp-upload-text { flex: 1 1 auto; min-width: 0; display: grid; gap: 1px; }
.tp-register-form .tp-register-upload .tp-upload-text b { display: block; overflow: hidden; color: #334155; font-size: 12px; font-weight: 750; line-height: 14px; white-space: nowrap; text-overflow: ellipsis; }
.tp-register-form .tp-register-upload .tp-upload-text small { display: block; min-height: 0; margin: 0; overflow: hidden; color: #64748b; font-size: 10px; line-height: 12px; white-space: nowrap; text-overflow: ellipsis; }
.tp-register-form .tp-register-upload .tp-upload-action { flex: 0 0 auto; padding: 5px 10px; border: 1px solid #bfdbfe; border-radius: 7px; background: #eff6ff; color: #1d4ed8; font-size: 11px; font-weight: 700; line-height: 1.2; white-space: nowrap; }
.tp-register-form .tp-register-upload:hover .tp-upload-action { background: #dbeafe; }
.tp-register-form .tp-register-upload.is-selected { border-style: solid; border-color: #86b7fb; background: #fff; }
.tp-register-form .tp-register-upload.is-selected .tp-upload-text b { color: #0f172a; }
.tp-register-form .tp-register-upload.is-selected .tp-upload-text small { color: #128a4b; }
.tp-register-form .tp-register-upload.is-invalid { border-style: solid; border-color: #f87171; background: #fff5f5; }
.tp-register-form .tp-register-upload.is-invalid .tp-upload-text small { color: #b91c1c; }
.tp-register-form .tp-register-upload.is-invalid svg { stroke: #dc2626; }
.tp-register-form input[type=file]::file-selector-button { padding: 9px 12px; margin-right: 10px; border: 1px solid #bfdbfe; border-radius: 7px; background: #eff6ff; color: #1d4ed8; font: inherit; font-weight: 600; cursor: pointer; }
.tp-register-form input[type=file]::file-selector-button:hover { background: #dbeafe; }
.tp-register-form .tp-district-menu { position: fixed; inset: auto; margin: 0; box-sizing: border-box; z-index: 1000; overflow: auto; }
.tp-register-form .tp-district-menu[hidden] { display: none; }
.tp-register-form .tp-district-menu .ss-list { overflow-y: auto; overscroll-behavior: contain; }
/* Top accent drawn inside the rounded border: a taller pseudo-element that inherits the card radius and paints only its top 3px, so the bar follows both corners without relying on overflow:hidden (the card stays overflow:visible for the District menu). */
.tp-register-form::before { inset: 0 0 auto; height: 18px; border-radius: inherit; border-bottom-left-radius: 0; border-bottom-right-radius: 0; background: linear-gradient(90deg, #1769ff 0%, #69a2ff 62%, rgba(105,162,255,0) 100%) top / 100% 3px no-repeat; pointer-events: none; }

/* TRAINER-PROFILE-VIEW-1 (owner, 2026-09-29): saved Education / Expertise are read-only with Edit. */
.tp-chip-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.tp-chip{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;font-size:12.5px;font-weight:700}
.tp-muted{color:#94a3b8;font-size:12.5px}
.tp-expertise-edit{grid-template-columns:1fr 1.4fr;margin-top:12px}
@media(max-width:760px){.tp-expertise-edit{grid-template-columns:1fr}}
/* Administrator Preview is read-only: no control that would change anything is shown. */
body.tp-preview-mode [data-toggle-panel],body.tp-preview-mode .tp-row-menu,body.tp-preview-mode .tp-photo-form,body.tp-preview-mode form[method="post"] .tp-form-actions,body.tp-preview-mode form[method="post"] button[type="submit"]{display:none!important}
