/* /public/assets/app.css */

/* ============ Brand Tokens ============ */
:root{
  --font-base: "Segoe UI", "Noto Sans", Arial, sans-serif;
  --orange:#FF9502;
  --blue-ink:#05203C;   /* Logo Blue */
  --blue-sky:#0062E3;   /* Sky Blue */
  --brand-blue-dark:#05203C;

  --bg:#F6FAFF;         /* airy travel background */
  --card:#FFFFFF;
  --text:#0B1220;
  --muted:#556070;

  --line:#E6EEF7;
  --shadow: 0 10px 30px rgba(5,32,60,.10);

  --radius:10px;
  --radius-sm:8px;

  --container: 980px;
}

/* ============ Base / Reset-ish ============ */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--font-base);
  color:var(--text);
  background:
    radial-gradient(900px 450px at 15% -10%, rgba(0,98,227,.18), transparent 55%),
    radial-gradient(900px 450px at 85% 0%, rgba(255,149,2,.18), transparent 55%),
    linear-gradient(180deg, var(--bg), #FFFFFF 70%);
}

a{color:inherit}
img{max-width:100%;height:auto;display:block}
input,button,select,textarea{font:inherit}
/* Global BD date input UI (mask + picker button) */
.date-ui-wrap{
  position:relative;
  display:block;
  width:100%;
}
.date-ui-input{
  height:34px !important;
  min-height:34px !important;
  padding-right:34px !important;
  font-family:var(--font-base) !important;
  font-size:13px !important;
}
.date-ui-btn{
  position:absolute;
  right:6px;
  top:50%;
  transform:translateY(-50%);
  width:24px;
  height:24px;
  border:0;
  border-radius:8px;
  background:#eef5ff;
  color:#1b5cff;
  display:grid;
  place-items:center;
  cursor:pointer;
  pointer-events:auto;
  z-index:2;
}
.date-ui-btn svg{
  width:14px;
  height:14px;
}
.container{
  max-width:var(--container);
  margin:0 auto;
  padding:24px;
}

@media (max-width: 520px){
  .container{padding:16px}
}

/* ============ Topbar ============ */
.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:18px 0;
}

.brand{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
  text-decoration:none;
}

.brand-badge{
  width:38px;height:38px;border-radius:12px;
  background: linear-gradient(135deg, rgba(0,98,227,.14), rgba(255,149,2,.18));
  border:1px solid var(--line);
  box-shadow: 0 6px 18px rgba(5,32,60,.06);
}

.brand-logo{
  width:168px;
  height:52px;
  border-radius:10px;
  object-fit:contain;
  display:block;
  background:transparent;
  border:0;
  box-shadow:none;
}

.brand-tagline{
  font-size:12px;
  color:var(--muted);
  line-height:1.35;
  max-width:260px;
}

.brand-title{
  display:flex;flex-direction:column;gap:2px;
  line-height:1.1;
}
.brand-title strong{
  color:var(--blue-ink);
  font-size:15px;
  letter-spacing:.2px;
}
.brand-title span{
  color:var(--muted);
  font-size:12px;
}

.top-actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

/* ============ Cards / Surfaces ============ */
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow: var(--shadow);
}

.card-pad{padding:18px}

.card-title{
  margin:0 0 10px 0;
  font-size:20px;
  color:var(--blue-ink);
}

.card-subtitle{
  margin:0 0 14px 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.55;
}

.hr{
  border:none;
  border-top:1px solid var(--line);
  margin:16px 0;
}

/* ============ Buttons ============ */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:36px;
  padding:8px 12px;
  border-radius:10px;
  border:1px solid transparent;
  cursor:pointer;
  text-decoration:none;
  user-select:none;
  font-size:13px;
  line-height:1.2;
  transition: transform .08s ease, box-shadow .08s ease, background .12s ease, border-color .12s ease, opacity .12s ease;
  white-space:nowrap;
}

.btn:active{transform: translateY(1px)}
.btn:disabled{opacity:.6; cursor:not-allowed}

.btn-primary{
  background: linear-gradient(135deg, var(--blue-sky), #0B74FF);
  color:#fff;
  box-shadow: 0 7px 16px rgba(0,98,227,.16);
}

.btn-primary:hover{
  box-shadow: 0 9px 20px rgba(0,98,227,.2);
}

.btn-accent{
  background: linear-gradient(135deg, var(--orange), #FFB24D);
  color:#1b1207;
  box-shadow: 0 7px 16px rgba(255,149,2,.16);
}

.btn-accent:hover{
  box-shadow: 0 9px 20px rgba(255,149,2,.2);
}

.btn-ghost{
  background:#fff;
  color:var(--blue-ink);
  border-color: var(--line);
}

.btn-ghost:hover{
  border-color: rgba(0,98,227,.35);
  box-shadow: 0 7px 16px rgba(5,32,60,.08);
}

.btn-sm{
  min-height:28px;
  padding:0 9px;
  border-radius:8px;
  font-size:12px !important;
}

/* ============ Forms ============ */
.form{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.field label{
  display:block;
  margin:0 0 6px 0;
  font-size:13px;
  color:var(--blue-ink);
}

.input{
  width:100%;
  padding:11px 12px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#fff;
  outline:none;
  transition: border-color .12s ease, box-shadow .12s ease;
}

.input:focus{
  border-color: rgba(0,98,227,.45);
  box-shadow: 0 0 0 4px rgba(0,98,227,.12);
}

.help{
  font-size:12px;
  color:var(--muted);
  margin-top:6px;
  line-height:1.45;
}

/* ============ Alerts ============ */
.alert{
  padding:10px 12px;
  border-radius:12px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--text);
}

.alert-success{
  background: rgba(0,98,227,.08);
  border-color: rgba(0,98,227,.22);
}

.alert-error{
  background: rgba(255,149,2,.10);
  border-color: rgba(255,149,2,.32);
}

/* ============ Toasts (Global Flash) ============ */
.toast-stack{
  position:fixed;
  top:16px;
  right:16px;
  z-index:1200;
  display:grid;
  gap:10px;
  width:min(360px, calc(100vw - 24px));
}

.toast{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px 12px;
  border-radius:10px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--text);
  box-shadow:0 10px 24px rgba(5, 32, 60, .14);
  transition:opacity .2s ease, transform .2s ease;
}

.toast.is-hiding{
  opacity:0;
  transform:translateY(-6px);
}

.toast-success{
  border-color:rgba(30,132,73,.30);
  background:#f2fbf6;
}

.toast-error{
  border-color:rgba(192,57,43,.30);
  background:#fff5f3;
}

.toast-text{
  flex:1;
  font-size:13px;
  line-height:1.35;
  font-weight:600;
}

.toast-close{
  border:0;
  background:transparent;
  color:#6b7a90;
  font-size:18px;
  line-height:1;
  width:24px;
  height:24px;
  cursor:pointer;
  padding:0;
}

@media (max-width: 700px){
  .toast-stack{
    top:10px;
    right:10px;
    left:10px;
    width:auto;
  }
}

/* ============ Auth Page Layout Helpers ============ */
.auth-wrap{
  min-height: calc(100vh - 70px);
  display:grid;
  place-items:center;
  padding:24px 12px 18px;
}

.auth-card{
  width:100%;
  max-width:430px;
}

.auth-actions{
  display:grid;
  gap:10px;
  margin-top:8px;
}

.auth-layout{
  min-height:100vh;
  background:
    radial-gradient(1200px 520px at -12% -10%, rgba(0,98,227,.22), transparent 60%),
    radial-gradient(900px 420px at 110% 110%, rgba(255,149,2,.10), transparent 58%),
    var(--brand-blue-dark);
  padding:0 14px;
  display:flex;
  flex-direction:column;
}

.auth-card-modern{
  border-radius:10px;
  border:1px solid rgba(5,25,49,.20);
  box-shadow:0 18px 36px rgba(2, 14, 32, .28);
  padding:24px 24px 20px;
  background:#f3f4f6;
}

.auth-brand{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  text-decoration:none;
  margin-bottom:14px;
}

.auth-brand-logo{
  width:188px;
  height:56px;
  object-fit:contain;
  display:block;
}

.auth-brand-tagline{
  font-size:12px;
  color:#6f7e92;
  line-height:1.3;
  text-align:center;
}

.auth-card-modern .card-title{
  text-align:center;
  font-size:26px;
  margin:2px 0 6px;
  color:#0c1731;
  font-weight:700;
  letter-spacing:-.01em;
}

.auth-card-modern .card-subtitle{
  text-align:center;
  margin:0 0 16px;
  font-size:13px;
  color:#7a8799;
}

.auth-card-modern .field label{
  font-size:13px;
  font-weight:600;
  color:#1b2b42;
  margin-bottom:7px;
}

.auth-card-modern .input{
  min-height:42px;
  border-radius:10px;
  background:#dbe2ec;
  border-color:#d0d8e5;
  padding:10px 12px;
  font-size:14px;
}

.auth-card-modern .auth-actions .btn{
  width:100%;
  min-height:42px;
  border-radius:10px;
  font-size:14px;
  font-weight:700;
}

.auth-card-modern .auth-actions .btn-primary,
.auth-card-modern .auth-actions .btn-accent{
  background:linear-gradient(135deg, #ff9800, #f28c00);
  color:#fff;
  box-shadow:none;
  border:0;
}

.auth-card-modern .auth-actions .link{
  text-align:center;
  border:0;
  font-size:14px;
  color:#0d5bd3;
  text-decoration:none;
}

.auth-footer-note{
  text-align:center;
  color:#aac0dd;
  font-size:13px;
  padding:2px 0 16px;
  margin-top:auto;
}

.link{
  color: var(--blue-sky);
  text-decoration:none;
  border-bottom:1px solid rgba(0,98,227,.30);
}
.link:hover{border-bottom-color: rgba(0,98,227,.65)}

/* ============ Small Utility ============ */
.m0{margin:0}
.mt12{margin-top:12px}
.mt16{margin-top:16px}
.mt20{margin-top:20px}
.muted{color:var(--muted)}
.pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.72);
  color: var(--blue-ink);
  font-size:12px;
}

body,
input,
button,
select,
textarea,
h1,
h2,
h3,
h4,
h5,
h6{
  font-family:var(--font-base);
}

.summary-kv{display:grid;grid-template-columns:260px 1fr;gap:12px;align-items:start}
.summary-k{color:#444;font-weight:600}
.summary-v{color:#111}
@media (max-width:700px){.summary-kv{grid-template-columns:1fr}}

.step-summary{font-family:var(--font-base)}
.step-summary h1,
.step-summary h2,
.step-summary h3,
.step-summary h4,
.step-summary h5{font-family:inherit;letter-spacing:normal;line-height:1.25;margin:0 0 10px}
.step-summary h2{font-size:18px;font-weight:700}
.step-summary h3{font-size:16px;font-weight:700}
.step-summary h4{font-size:14px;font-weight:700}

/* ============ App Shell ============ */
.app-shell{
  display:grid;
  grid-template-columns:260px 1fr;
  min-height:100vh;
}

.sidebar{
  background:
    radial-gradient(620px 260px at -8% -6%, rgba(0,98,227,.22), transparent 62%),
    linear-gradient(180deg, var(--brand-blue-dark), var(--brand-blue-dark));
  color:#e9f0ff;
  padding:18px 14px;
  border-right:1px solid rgba(255,255,255,.08);
  display:flex;
  flex-direction:column;
  gap:14px;
  position:sticky;
  top:0;
  height:100vh;
  overflow:auto;
}

.sidebar-mobile-close{
  display:none;
  position:absolute;
  top:14px;
  right:12px;
  width:34px;
  height:34px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:9px;
  background:rgba(255,255,255,.08);
  color:#eef4ff;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:background .18s ease, border-color .18s ease;
  z-index:2;
}

.sidebar-mobile-close:hover{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.22);
}

.sidebar-mobile-close svg{
  width:16px;
  height:16px;
  display:block;
}

.sidebar-brand{
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  padding:2px 0 0;
}

.sidebar-logo,
.sidebar-logo-text{
  width:170px;
  height:58px;
  border-radius:10px;
  display:grid;
  place-items:center;
  font-weight:800;
  font-size:13px;
  color:#fff;
}

.sidebar-logo{
  object-fit:contain;
  display:block;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

.sidebar-logo-text{
  background:rgba(255,255,255,.12);
}

.sidebar-brand-meta{
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  border-radius:12px;
  padding:10px 12px;
  margin:2px 0 4px;
}

.sidebar-brand-meta strong{
  display:flex;
  align-items:center;
  font-size:14px;
  font-weight:700;
  color:#fff;
  line-height:1.2;
}

.sidebar-brand-meta span{
  display:block;
  margin-top:4px;
  font-size:12px;
  font-weight:500;
  line-height:1.35;
  color:#b9c8e0;
}

.sidebar-brand-text{display:flex;flex-direction:column;line-height:1.2}
.sidebar-brand-text strong{font-size:14px;font-weight:700;color:#fff;letter-spacing:.01em}
.sidebar-brand-text span{font-size:11px;font-weight:500;color:rgba(233,240,255,.72)}

.sidebar-role{
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#a7b8d6;
  padding:0 8px;
}

.sidebar-nav{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.side-link{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  text-decoration:none;
  color:#dbe6fb;
  padding:10px 12px 10px 14px;
  border-radius:10px;
  border:1px solid transparent;
  font-size:13px;
  font-weight:600;
  line-height:1.25;
  transition:background-color .18s ease,border-color .18s ease,transform .18s ease,color .18s ease;
}

.side-link-text{
  min-width:0;
}

.side-link-main{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
}

.side-link-icon{
  width:16px;
  height:16px;
  display:inline-grid;
  place-items:center;
  color:inherit;
  opacity:.95;
  flex:0 0 16px;
}

.side-link-icon svg{
  width:16px;
  height:16px;
  display:block;
}

.side-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  padding:0 6px;
  border-radius:999px;
  background:#ff5c35;
  color:#fff;
  font-size:11px;
  font-weight:800;
  line-height:1;
  border:1px solid rgba(255,255,255,.22);
  flex:0 0 auto;
}

.side-link:hover{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.16);
  color:#fff;
  transform:translateX(1px);
}

.side-link.is-active{
  background:linear-gradient(90deg, rgba(0,98,227,.46), rgba(0,98,227,.30));
  border-color:rgba(137,189,255,.42);
  color:#fff;
}

.side-link.is-active::before{
  content:"";
  position:absolute;
  left:7px;
  top:9px;
  bottom:9px;
  width:3px;
  border-radius:999px;
  background:#7fb1ff;
}

.sidebar-footer{
  margin-top:auto;
  padding:12px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04));
}

.sidebar-user-name{font-weight:700;font-size:13px;color:#fff;line-height:1.3}
.sidebar-user-email{font-size:12px;color:#c1cde2;word-break:break-all;margin-top:2px;line-height:1.35}
.sidebar-logout{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:10px;
  min-height:30px;
  padding:0 10px;
  border-radius:8px;
  border:1px solid rgba(255,184,96,.38);
  background:rgba(255,170,74,.08);
  font-size:12px;
  font-weight:700;
  text-decoration:none;
  color:#ffe0a8;
}
.sidebar-logout:hover{
  background:rgba(255,170,74,.14);
}

.main{
  background:
    radial-gradient(1200px 420px at 0% -10%, rgba(0,98,227,.10), transparent 50%),
    linear-gradient(180deg, #f6f9ff, #fff);
}

.main-container{
  max-width:1100px;
  margin:0 auto;
  padding:24px;
}

.page-head{margin-bottom:16px}
.page-head-title-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.page-head h1{
  margin:0;
  font-size:28px;
  color:var(--blue-ink);
}
.welcome-inline{
  font-size:12px;
  font-weight:600;
  color:#1b5cff;
  line-height:1.2;
  opacity:1;
  animation:welcomeFadeOut 5s ease forwards;
}
@keyframes welcomeFadeOut{
  0%,80%{opacity:1}
  100%{opacity:0;visibility:hidden}
}
.page-head p{
  margin:6px 0 0 0;
  font-size:13px;
  color:var(--muted);
}

.app-footer{
  margin-top:16px;
  color:var(--muted);
  font-size:12px;
}

/* ============ Admin Country Edit ============ */
.admin-country-edit,
.admin-country-edit *{
  font-family:var(--font-base) !important;
}

.admin-country-edit code,
.admin-country-edit kbd,
.admin-country-edit samp,
.admin-country-edit pre{
  font-family:var(--font-base) !important;
}

.admin-country-edit label{
  font-size:13px;
  font-weight:600;
  color:var(--blue-ink);
}

.admin-country-edit .input,
.admin-country-edit select,
.admin-country-edit textarea,
.admin-country-edit .btn{
  font-family:var(--font-base) !important;
  font-size:13px !important;
}

.admin-country-edit .input,
.admin-country-edit select{
  min-height:40px;
}

.admin-country-edit .mini-rte{
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  overflow:hidden;
}

.admin-country-edit .mini-rte-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding:8px;
  border-bottom:1px solid #e8eef8;
  background:#f8fbff;
}

.admin-country-edit .mini-rte-toolbar .mini-rte-btn{
  min-height:28px;
  padding:0 8px;
  border-radius:8px;
  font-size:12px !important;
}

.admin-country-edit .mini-rte-toolbar .mini-rte-btn.is-active{
  background:#eaf2ff;
  border-color:#bcd0f5;
  color:#0d4fb8;
}

.admin-country-edit .mini-rte-editor{
  min-height:130px;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:10px 12px;
  overflow:auto;
  line-height:1.45;
}

.admin-country-edit .mini-rte-editor:focus{
  box-shadow:none !important;
}

.admin-country-edit .mini-rte-link-pop{
  border-top:1px solid #e8eef8;
  background:#fff;
  padding:8px;
  display:grid;
  gap:8px;
}

.admin-country-edit .mini-rte-link-pop[hidden]{
  display:none !important;
}

.admin-country-edit .mini-rte-link-row .input{
  min-height:34px;
}

.admin-country-edit .mini-rte-link-check{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  color:#41536a;
}

.admin-country-edit .mini-rte-link-actions{
  display:flex;
  gap:8px;
  justify-content:flex-end;
}

.admin-settings-page,
.admin-settings-page *{
  font-family:var(--font-base) !important;
}

.admin-settings-page{
  max-width:980px;
}

.admin-settings-page .card-title{
  font-size:22px;
  color:var(--blue-ink);
}

.admin-settings-page .card-subtitle{
  max-width:760px;
  line-height:1.5;
}

.admin-settings-page label{
  font-size:13px;
  font-weight:600;
  color:var(--blue-ink);
}

.admin-settings-page .input,
.admin-settings-page textarea,
.admin-settings-page .btn{
  font-size:13px !important;
}

.admin-settings-page .input{
  min-height:40px;
}

.admin-settings-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:12px;
}

.admin-settings-currency-value{
  min-height:40px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#f5f8fe;
  display:flex;
  align-items:center;
  padding:0 12px;
  font-size:13px;
  font-weight:700;
  color:#1f2d3d;
}

.admin-settings-head-tags{
  resize:vertical;
  min-height:170px;
}

.admin-settings-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:8px;
}

.admin-settings-save-state{
  min-height:20px;
  font-size:12px;
  font-weight:700;
  color:#6a7b94;
}

.admin-settings-save-state.is-saving{
  color:#1f6fd6;
}

.admin-settings-save-state.is-saved{
  color:#20925a;
}

.admin-settings-save-state.is-error{
  color:#c04d3a;
}

.admin-settings-upload-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:12px;
}

.admin-settings-asset-preview{
  margin-top:8px;
  height:48px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:6px;
}

.admin-settings-asset-preview-dark{
  background:#05203C;
  border-color:#11355c;
}

.admin-settings-asset-preview img{
  max-width:100%;
  max-height:36px;
  object-fit:contain;
}

.admin-settings-favicon-preview{
  margin-top:8px;
  width:48px;
  height:48px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
}

.admin-settings-favicon-preview img{
  width:20px;
  height:20px;
  object-fit:contain;
}

.admin-users-page,
.admin-users-page *{
  font-family:var(--font-base) !important;
}

.admin-users-page{
  max-width:980px;
}

.admin-users-page .card-title{
  font-size:22px;
}

.admin-users-page .card-subtitle{
  font-size:13px;
  line-height:1.5;
}

.um-kpi-grid{
  display:grid;
  grid-template-columns:repeat(5, minmax(0,1fr));
  gap:10px;
  margin:12px 0 14px;
}

.um-kpi-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  padding:10px 12px;
  box-shadow:0 8px 22px rgba(15,23,42,.06);
}

.um-kpi-card h3{
  margin:0;
  color:#425a7a;
  font-size:12px;
  font-weight:700;
}

.um-kpi-card p{
  margin:8px 0 0;
  font-size:22px;
  line-height:1;
  font-weight:800;
  color:var(--blue-ink);
}

.um-kpi-card.um-kpi-total{
  background:linear-gradient(180deg,#eaf5ff 0%,#dcedff 100%);
  border-color:#c7ddff;
}

.um-kpi-card.um-kpi-total p{ color:#174986; }

.um-kpi-card.um-kpi-admins{
  background:linear-gradient(180deg,#f2efff 0%,#e7e1ff 100%);
  border-color:#d8cdff;
}

.um-kpi-card.um-kpi-admins p{ color:#5b2bbf; }

.um-kpi-card.um-kpi-counselors{
  background:linear-gradient(180deg,#fff7ea 0%,#ffeacc 100%);
  border-color:#ffdcb2;
}

.um-kpi-card.um-kpi-counselors p{ color:#a55900; }

.um-kpi-card.um-kpi-applicants{
  background:linear-gradient(180deg,#edfbf2 0%,#ddf7e8 100%);
  border-color:#caedd9;
}

.um-kpi-card.um-kpi-applicants p{ color:#156f38; }

.um-kpi-card.um-kpi-partners{
  background:linear-gradient(180deg,#f4f6fb 0%,#e9edf6 100%);
  border-color:#dbe2ee;
}

.um-kpi-card.um-kpi-partners p{ color:#4f5c70; }

.um-kpi-card.js-um-kpi-filter{
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease;
}

.um-kpi-card.js-um-kpi-filter:hover{
  transform:translateY(-1px);
}

.um-kpi-card.js-um-kpi-filter.is-active{
  box-shadow:0 0 0 2px rgba(27,92,255,.2), 0 10px 24px rgba(15,23,42,.1);
}

.um-pager{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  margin-top:12px;
}

.um-pager-info{
  font-size:12px;
  color:#5f7088;
  font-weight:600;
}

.um-empty-note{
  text-align:center;
}

.applications-page .js-app-status-filter,
.payments-page .js-pay-status-filter{
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease;
}

.applications-page .js-app-status-filter:hover,
.payments-page .js-pay-status-filter:hover{
  transform:translateY(-1px);
}

.applications-page .js-app-status-filter.is-active,
.payments-page .js-pay-status-filter.is-active{
  box-shadow:0 0 0 2px rgba(27,92,255,.2), 0 10px 24px rgba(15,23,42,.1) !important;
}

/* Step 4 single-uploader document layout */
.doc-bulk-layout{
  display:grid;
  grid-template-columns:minmax(0,3fr) minmax(220px,1fr);
  gap:12px;
  align-items:start;
}

.doc-seq-col{
  min-width:0;
}

.doc-seq-list{
  display:grid;
  gap:8px;
}

.doc-seq-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) 30px 30px;
  grid-template-rows:auto auto;
  grid-template-areas:
    "head view download"
    "file view download";
  border:1px solid #e6edf8;
  background:#fff;
  border-radius:10px;
  padding:9px 10px;
  cursor:pointer;
  transition:border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

.doc-seq-item.is-uploaded{
  border-color:#cfe8da;
  background:#f7fcf9;
}

.doc-seq-item.is-current{
  border-color:#9ec1ff;
  box-shadow:0 0 0 2px rgba(27,92,255,.16);
  background:#f6f9ff;
}

.doc-seq-item:hover{
  border-color:#bfd4fb;
}

.doc-seq-head{
  grid-area:head;
  display:flex;
  align-items:flex-start;
  gap:8px;
}

.doc-seq-no{
  font-size:12px;
  font-weight:700;
  color:#5f7088;
  min-width:18px;
}

.doc-seq-label{
  font-size:13px;
  font-weight:600;
  color:#1f2d3d;
  line-height:1.35;
}

.doc-seq-file{
  display:contents;
}

.doc-seq-file .uploadbox-name{
  grid-area:file;
  margin-top:5px;
  margin-left:26px;
  max-width:none;
  min-width:0;
  width:calc(100% - 26px);
  display:block;
  font-size:12px;
  font-weight:600;
  color:#156f38;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.doc-seq-file .uploadbox-empty{
  grid-area:file;
  margin-top:5px;
  margin-left:26px;
  width:calc(100% - 26px);
  font-size:12px;
  font-weight:600;
  color:#6b7a90;
  line-height:1.25;
}

.doc-seq-file .uploadbox-ico{
  justify-self:center;
  align-self:center;
  width:26px;
  height:26px;
  display:inline-grid;
  place-items:center;
  border:1px solid #dbe7fb;
  border-radius:9px;
  background:#fff;
  color:#1f2d3d;
  text-decoration:none;
}

.doc-seq-file .js-doc-item-view{
  grid-area:view;
  justify-self:end;
}

.doc-seq-file .js-doc-item-download{
  grid-area:download;
  justify-self:end;
}

.doc-seq-file .uploadbox-ico svg{
  width:15px;
  height:15px;
  display:block;
}

.doc-serial-note{
  color:#1b5cff !important;
  font-weight:600;
}

.doc-upload-col .uploader{
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
}

.doc-upload-col .uploadbox{
  border:1px dashed #c9d7f2;
  border-radius:12px;
  background:#fbfdff;
  padding:10px;
}

.doc-upload-col .uploadbox-inner{
  gap:8px;
}

.doc-upload-col .uploadbox-top .uploadbox-title{
  font-size:12px;
  font-weight:700;
}

.doc-upload-col .uploadbox-controls{
  grid-template-columns:1fr !important;
}

.bulk-upload-target{
  font-size:12px;
  color:#51637b;
  font-weight:600;
}

@media (max-width: 1000px){
  .doc-bulk-layout{
    grid-template-columns:1fr;
  }
  .doc-bulk-layout .doc-upload-col{
    order:-1;
  }
}

@media (max-width: 640px){
  .doc-seq-item{
    grid-template-columns:minmax(0,1fr) 26px 26px;
    padding:8px 9px;
  }
  .doc-seq-no{
    min-width:16px;
  }
  .doc-seq-file .uploadbox-name,
  .doc-seq-file .uploadbox-empty{
    width:calc(100% - 22px);
    margin-left:22px;
    font-size:11px;
  }
  .doc-seq-file .uploadbox-ico{
    width:24px;
    height:24px;
  }
  .doc-seq-file .uploadbox-ico svg{
    width:13px;
    height:13px;
  }
}

.um-list-card{
  border-radius:12px;
  border:1px solid var(--line);
  padding:14px;
  box-shadow:none;
}

.um-list-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

.um-list-head h3{
  margin:0;
  color:var(--blue-ink);
  font-size:18px;
}

.um-search{
  width:100%;
  max-width:260px;
  min-height:34px;
  height:34px;
  font-size:13px !important;
}

.um-list-body{
  display:grid;
  gap:10px;
}

.um-row{
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:10px;
  padding:9px 10px;
  transition:border-color .15s ease, box-shadow .15s ease;
}

.um-row.is-saving{
  border-color:#8ab8ff;
  box-shadow:0 0 0 3px rgba(27,92,255,.08);
}

.um-row.is-error{
  border-color:#f3b6c0;
  box-shadow:0 0 0 3px rgba(212,65,89,.08);
}

.um-user-main{
  min-width:0;
}

.um-user-title{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}

.um-email-text{
  font-size:13px;
  font-weight:600;
  color:var(--blue-ink);
  line-height:1.2;
}

.um-user-meta{
  margin-top:6px;
  color:var(--muted);
  font-size:12px;
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:8px;
}

.um-user-meta span{
  white-space:nowrap;
}

.um-inline-input{
  min-height:34px;
  height:34px;
  font-size:13px !important;
  padding:6px 10px;
  border-radius:10px;
}

.um-user-title .um-inline-input{
  width:120px;
  max-width:100%;
}

.um-phone-input{
  width:140px;
}

.um-badge{
  border:1px solid var(--line);
  border-radius:999px;
  padding:3px 9px;
  font-size:11px;
  font-weight:700;
  line-height:1;
}

.um-role-badge{
  color:#123764;
  background:#eef5ff;
  border-color:#d5e5ff;
}

.um-badge.is-active{
  color:#0e7a38;
  background:#e9f9ef;
  border-color:#bceecb;
}

.um-badge.is-inactive{
  color:#6b7585;
  background:#f4f6f9;
  border-color:#e2e7f0;
}

.um-badge.is-verified{
  color:#0e7a38;
  background:#e9f9ef;
  border-color:#bceecb;
}

.um-self-tag{
  display:inline-flex;
  border:1px solid #d8e4ff;
  background:#f4f8ff;
  color:#1a4ea1;
  border-radius:999px;
  padding:2px 8px;
  font-size:11px;
  font-weight:700;
}

.um-row-actions{
  display:flex;
  align-items:flex-end;
  gap:8px;
}

.um-role-wrap,
.um-toggle-wrap{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.um-control-label{
  font-size:11px;
  font-weight:700;
  color:var(--muted);
  line-height:1;
}

.um-role-wrap select{
  min-width:122px;
  min-height:34px;
  height:34px;
  font-size:13px !important;
  padding:4px 8px;
}

.um-switch{
  position:relative;
  display:inline-flex;
  width:46px;
  height:26px;
}

.um-switch input{
  position:absolute;
  opacity:0;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  cursor:pointer;
  z-index:2;
}

.um-switch span{
  width:46px;
  height:26px;
  border-radius:999px;
  background:#dde4ef;
  position:relative;
  cursor:pointer;
  transition:background .2s ease;
}

.um-switch span::after{
  content:"";
  position:absolute;
  left:3px;
  top:3px;
  width:20px;
  height:20px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.2);
  transition:left .2s ease;
}

.um-switch input:checked + span{
  background:#37b566;
}

.um-switch input:checked + span::after{
  left:23px;
}

.um-switch input:disabled + span{
  opacity:.5;
  cursor:not-allowed;
}

.um-switch input:disabled{
  cursor:not-allowed;
}

.admin-country-top-grid{
  display:grid;
  grid-template-columns: minmax(0,1fr) 320px;
  gap:14px;
  align-items:start;
}

.admin-country-three-col{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:12px;
}

.admin-country-top-right .admin-cover-form{
  gap:10px !important;
}

.admin-country-top-right .admin-cover-preview-box{
  width:128px !important;
  height:88px !important;
}

.admin-country-top-right .admin-cover-input-col{
  min-width:0 !important;
}

.admin-section-nav{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:0 0 12px;
}

.admin-section-nav a,
.admin-tab-btn{
  text-decoration:none;
  font-size:12px;
  font-weight:700;
  color:var(--blue-ink);
  border:1px solid var(--line);
  background:#fff;
  border-radius:999px;
  padding:6px 10px;
  cursor:pointer;
}

.admin-tab-btn.is-active{
  background:#1b5cff;
  border-color:#1b5cff;
  color:#fff;
}

.admin-split-section{
  margin:0;
}

.admin-split-title{
  margin:0 0 12px;
  font-size:16px;
  font-weight:700;
  color:var(--blue-ink);
}

.admin-country-headline{
  display:flex;
  align-items:baseline;
  gap:10px;
  flex-wrap:wrap;
}

.admin-country-headline small{
  font-size:13px;
  font-weight:500;
  color:var(--muted);
}

.admin-tab-panel{
  display:none;
}

.admin-tab-panel.is-active{
  display:block;
}

.admin-country-status-radios{
  min-height:40px;
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  border:1px solid var(--line);
  border-radius:12px;
  padding:8px 12px;
  background:#fff;
}

.admin-country-status-radios label{
  display:grid;
  grid-auto-flow:column;
  align-items:center;
  gap:6px;
  margin:0;
  font-size:13px;
  font-weight:600;
  color:var(--blue-ink);
}

.admin-country-status-radios input[type="radio"]{
  accent-color:#1b5cff;
  margin:0;
}

.admin-inline-field{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.admin-inline-nowrap{
  flex-wrap:nowrap;
}

.admin-inline-field > label{
  margin:0;
  min-width:78px;
  line-height:1;
}

.admin-inline-radios{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

.admin-inline-radios-no-wrap{
  flex-wrap:nowrap !important;
  white-space:nowrap;
}

.admin-inline-radios label{
  margin:0;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:13px;
  font-weight:600;
  color:var(--blue-ink);
}

.admin-inline-radios input[type="radio"]{
  accent-color:#1b5cff;
  margin:0;
}

.admin-doc-controls-row{
  display:grid;
  grid-template-columns:minmax(210px,1fr) minmax(240px,1.15fr) minmax(130px,.75fr) minmax(130px,.75fr) minmax(120px,.6fr) auto;
  align-items:end;
  gap:10px;
}

.admin-doc-controls-row .admin-doc-ctl{
  margin-bottom:0 !important;
  min-width:0;
}

.admin-doc-controls-row .admin-doc-ctl-required{ min-width:0; }
.admin-doc-controls-row .admin-doc-ctl-scope{ min-width:0; }
.admin-doc-controls-row .admin-doc-ctl-adult{ min-width:0; }
.admin-doc-controls-row .admin-doc-ctl-child{ min-width:0; }
.admin-doc-controls-row .admin-doc-ctl-action{
  margin-left:0;
  justify-self:end;
}
.admin-doc-controls-row .admin-doc-ctl-action .btn{
  min-width:132px;
}

.admin-doc-head-grid{
  display:grid;
  grid-template-columns:minmax(180px,.78fr) minmax(320px,1.52fr);
  gap:12px;
}

.admin-doc-head-grid .field{
  margin-bottom:0 !important;
}

.admin-doc-controls-row .admin-inline-field{
  align-items:center;
}

.admin-doc-controls-row .admin-country-status-radios{
  min-height:34px;
  padding:6px 10px;
  gap:10px;
}

.xef-add-form{
  display:grid;
  gap:10px;
}

.xef-add-row1{
  display:grid;
  grid-template-columns:minmax(180px,.8fr) minmax(280px,1.4fr) minmax(150px,.7fr);
  gap:10px;
}

.xef-add-row2{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr) minmax(0,.75fr);
  gap:8px;
  align-items:end;
}

.xef-add-row2 .admin-inline-field{
  align-items:center;
  gap:8px;
}

.xef-add-row2 .admin-country-status-radios{
  min-height:34px;
  padding:6px 10px;
  gap:10px;
}

.xef-add-options-wrap{
  max-width:640px;
}

.xef-add-actions{
  display:flex;
  justify-content:flex-start;
}

.xef-add-form .field{
  display:flex;
  align-items:center;
  gap:8px;
}

.xef-edit-grid .field{
  display:flex;
  align-items:center;
  gap:8px;
}

.xef-add-form .field > label,
.xef-edit-grid .field > label{
  margin:0;
  min-width:78px;
  line-height:1;
  white-space:nowrap;
}

.xef-add-form .field > .input,
.xef-add-form .field > select,
.xef-edit-grid .field > .input,
.xef-edit-grid .field > select{
  flex:1;
  min-width:0;
}

.xef-add-row2 .field,
.xef-edit-grid .xef-add-row2 .field{
  display:block;
  min-width:0;
}

.xef-add-row2 .admin-inline-field,
.xef-edit-grid .xef-add-row2 .admin-inline-field{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:nowrap;
}

.xef-add-row2 .admin-inline-field > label,
.xef-edit-grid .xef-add-row2 .admin-inline-field > label{
  min-width:64px;
  margin:0;
}

.xef-add-row2 .admin-country-status-radios{
  flex-wrap:nowrap;
}

.yesno-toggle.admin-country-status-radios{
  min-height:30px;
  padding:3px;
  gap:4px;
  border-radius:999px;
}

.yesno-toggle.admin-country-status-radios label{
  position:relative;
  gap:0;
}

.yesno-toggle.admin-country-status-radios label input[type="radio"]{
  position:absolute;
  inset:0;
  opacity:0;
  width:100%;
  height:100%;
  cursor:pointer;
}

.yesno-toggle.admin-country-status-radios label span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  height:24px;
  padding:0 8px;
  border-radius:999px;
  border:1px solid transparent;
  font-size:12px;
  font-weight:700;
  color:#4b5d78;
  background:transparent;
  line-height:1;
}

.yesno-toggle.admin-country-status-radios label input[type="radio"]:checked + span{
  background:#1b5cff;
  color:#fff;
  border-color:#1b5cff;
}

.admin-country-modal,
.admin-country-modal *{
  font-family:var(--font-base) !important;
}

.admin-country-modal label{
  font-size:13px;
  font-weight:600;
  color:var(--blue-ink);
}

.admin-country-modal .input,
.admin-country-modal select,
.admin-country-modal textarea,
.admin-country-modal .btn{
  font-size:13px !important;
}

.admin-country-modal form{
  padding-left:8px;
}

.admin-country-modal .admin-doc-edit-grid{
  gap:14px !important;
}

.admin-country-modal .admin-edit-title-row{
  align-items:center;
  gap:10px;
}

.admin-country-modal .admin-edit-title-row > label{
  min-width:60px;
  margin:0;
}

.admin-country-modal .admin-edit-label-input{
  flex:1;
  min-width:0;
}

@media (max-width: 1100px){
  .admin-country-top-grid{
    grid-template-columns:1fr;
  }
  .admin-country-three-col{
    grid-template-columns:1fr;
  }
  .admin-doc-head-grid{
    grid-template-columns:1fr;
  }
  .xef-add-row1,
  .xef-add-row2{
    grid-template-columns:1fr;
  }
  .admin-settings-grid{
    grid-template-columns:1fr 1fr;
  }
  .admin-settings-upload-grid{
    grid-template-columns:1fr;
  }
  .um-kpi-grid{
    grid-template-columns:1fr;
  }
  .um-row{
    grid-template-columns:1fr;
  }
  .um-row-actions{
    align-items:center;
  }
  .um-search{
    max-width:100%;
  }
  .um-list-head{
    flex-direction:column;
    align-items:stretch;
  }
  .um-user-meta{
    flex-wrap:wrap;
  }
  .admin-doc-controls-row{
    grid-template-columns:1fr;
  }
  .admin-doc-controls-row .admin-doc-ctl-action{
    justify-self:stretch;
  }
  .admin-doc-controls-row .admin-doc-ctl-action .btn{
    width:100%;
  }
}

/* ============ Dashboard UI ============ */
.kpi-grid{
  display:grid;
  grid-template-columns:repeat(6, minmax(0,1fr));
  gap:12px;
}

.kpi-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 8px 24px rgba(5,32,60,.08);
  padding:14px;
}

.kpi-card.kpi-soft{
  border-color:#e8effb;
  background:linear-gradient(180deg,#ffffff 0%,#f9fbff 100%);
  box-shadow:0 8px 20px rgba(8,34,75,.05);
}

.kpi-soft-app{ background:linear-gradient(180deg,#ffffff 0%,#f5f9ff 100%); }
.kpi-soft-pending{ background:linear-gradient(180deg,#ffffff 0%,#fffaf0 100%); }
.kpi-soft-processing{ background:linear-gradient(180deg,#ffffff 0%,#f1f8ff 100%); }
.kpi-soft-users{ background:linear-gradient(180deg,#ffffff 0%,#f7f6ff 100%); }
.kpi-soft-pay-pending{ background:linear-gradient(180deg,#ffffff 0%,#fff8f2 100%); }
.kpi-soft-pay-paid{ background:linear-gradient(180deg,#ffffff 0%,#f2fbf5 100%); }

/* Stronger dashboard KPI colors (admin/counselor) */
.kpi-grid .kpi-card.kpi-soft{
  position:relative;
  overflow:hidden;
  border-width:1px;
}

.kpi-grid .kpi-card.kpi-soft::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  border-radius:14px 0 0 14px;
}

.kpi-grid .kpi-card.kpi-soft h3{
  font-weight:700;
  color:#44546b;
}

.kpi-grid .kpi-card.kpi-soft p{
  color:#13243b;
}

.kpi-grid .kpi-card.kpi-soft.kpi-soft-app{
  background:linear-gradient(135deg,#f3f9ff 0%,#e8f3ff 100%) !important;
  border-color:#cfe3ff !important;
}
.kpi-grid .kpi-card.kpi-soft.kpi-soft-app::before{ background:#1b5cff; }

.kpi-grid .kpi-card.kpi-soft.kpi-soft-pending{
  background:linear-gradient(135deg,#fffaf0 0%,#ffefcf 100%) !important;
  border-color:#f3db9d !important;
}
.kpi-grid .kpi-card.kpi-soft.kpi-soft-pending::before{ background:#cf7a00; }

.kpi-grid .kpi-card.kpi-soft.kpi-soft-processing{
  background:linear-gradient(135deg,#f1fbff 0%,#dcf3ff 100%) !important;
  border-color:#bde7fb !important;
}
.kpi-grid .kpi-card.kpi-soft.kpi-soft-processing::before{ background:#0b74c9; }

.kpi-grid .kpi-card.kpi-soft.kpi-soft-users{
  background:linear-gradient(135deg,#f7f4ff 0%,#ece4ff 100%) !important;
  border-color:#d9c8ff !important;
}
.kpi-grid .kpi-card.kpi-soft.kpi-soft-users::before{ background:#6f3fd6; }

.kpi-grid .kpi-card.kpi-soft.kpi-soft-pay-pending{
  background:linear-gradient(135deg,#fff7f2 0%,#ffe5d3 100%) !important;
  border-color:#ffd0ae !important;
}
.kpi-grid .kpi-card.kpi-soft.kpi-soft-pay-pending::before{ background:#df6a1d; }

.kpi-grid .kpi-card.kpi-soft.kpi-soft-pay-paid{
  background:linear-gradient(135deg,#f2fbf5 0%,#ddf5e4 100%) !important;
  border-color:#bde8cc !important;
}
.kpi-grid .kpi-card.kpi-soft.kpi-soft-pay-paid::before{ background:#1d8b48; }

.kpi-card h3{
  margin:0;
  font-size:12px;
  font-weight:600;
  color:var(--muted);
}

.kpi-card p{
  margin:8px 0 0 0;
  font-size:24px;
  font-weight:800;
  color:var(--blue-ink);
}

.section-head{margin-bottom:10px}
.empty-state{
  border:1px dashed var(--line);
  border-radius:12px;
  padding:14px;
  color:var(--muted);
  background:#fff;
}

.table-wrap{overflow:auto}
.data-table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}
.data-table th,
.data-table td{
  padding:10px 8px;
  border-bottom:1px solid var(--line);
  text-align:left;
  vertical-align:top;
}
.data-table th{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.03em;
  color:var(--muted);
}

.btn-sm{min-height:28px;padding:6px 9px;border-radius:8px;font-size:12px}

.status{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:4px 9px;
  font-size:12px;
  border:1px solid var(--line);
}
.status.success{background:#eaf8ef;color:#156f38;border-color:#c4e8cf}
.status.warning{background:#fff4df;color:#8a5a00;border-color:#f2dcab}
.status.info{background:#eaf3ff;color:#174986;border-color:#c5daf7}
.status.danger{background:#fdeceb;color:#972126;border-color:#efc3c1}
.status.muted{background:#f3f5f8;color:#4f5c70;border-color:#dce3ee}
.status.submitted{background:#eef2ff;color:#4338ca;border-color:#cfd5ff}
.status.cancelled{background:#f4efff;color:#6d28d9;border-color:#ddd0ff}

.app-cards-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:14px;
}

.app-card{
  border:1px solid #e5edf8;
  border-radius:10px;
  background:#fff;
  box-shadow:none;
  padding:12px;
}

.app-card.app-card-draft{
  background:#f6f8fb;
  border-color:#dde4ef;
}
.app-card.app-card-submitted{
  background:#eef2ff;
  border-color:#cfd5ff;
}
.app-card.app-card-processing{
  background:#eef6ff;
  border-color:#d2e5ff;
}
.app-card.app-card-embassy{
  background:#f4efff;
  border-color:#ddd0ff;
}
.app-card.app-card-completed{
  background:#effaf2;
  border-color:#cdeed7;
}
.app-card.app-card-cancelled{
  background:#fdeceb;
  border-color:#efc3c1;
}

.app-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}

.app-card-top h3{
  margin:0;
  font-size:16px;
  color:var(--blue-ink);
}

.app-meta{
  margin-top:4px;
  color:var(--muted);
  font-size:13px;
}

.progress-steps{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:5px;
  margin-top:10px;
}

.dot{
  height:8px;
  border-radius:999px;
  background:#d6dfef;
  border:1px solid #cdd7e8;
  transition: background-color 250ms ease, transform 250ms ease;
}

.dot.is-done{
  background:linear-gradient(90deg, #0068ee, #1d8aff);
  border-color:#1d7ff1;
  transform: scale(1.06);
  animation: stepPulse 350ms ease-out 1;
}

@keyframes stepPulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.10); }
  100% { transform: scale(1.06); }
}

/* Progress fill transitions (for bars using width updates) */
.progress-fill,
.progress-bar-fill,
.progress .fill {
  transition: width 350ms ease;
}

.progress-labels{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:5px;
  margin-top:5px;
  font-size:10px;
  color:var(--muted);
  line-height:1.2;
}

.app-stepper{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:6px;
  margin-top:10px;
}
.app-step{
  display:grid;
  justify-items:center;
  gap:5px;
  text-align:center;
}
.app-step-circle{
  width:34px;
  height:34px;
  border-radius:999px;
  border:1px solid #cfdae8;
  background:#e9eef5;
  color:#5f6e83;
  display:grid;
  place-items:center;
  font-size:13px;
  font-weight:800;
  line-height:1;
}
.app-step-label{
  font-size:11px;
  line-height:1.2;
  color:#5a6c83;
}
.app-step.is-done .app-step-circle{
  background:#1b69e8;
  border-color:#1b69e8;
  color:#fff;
}
.app-step.is-active .app-step-circle{
  background:#ff9f1a;
  border-color:#ff9f1a;
  color:#fff;
}
.app-step.is-active .app-step-label{
  color:#22344d;
  font-weight:700;
}
.app-progress-track{
  margin-top:8px;
  height:7px;
  border-radius:999px;
  background:#d9e1ed;
  overflow:hidden;
}
.app-progress-fill{
  display:block;
  height:100%;
  background:linear-gradient(90deg,#1b69e8,#1d8aff);
  transition:width 350ms ease;
}

.applicant-kpi-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.applicant-kpi-grid .pay-kpi{
  border-radius:10px;
  padding:11px 12px;
  border:1px solid #e5edf8;
  box-shadow:none;
}
.applicant-kpi-grid .pay-kpi h3{
  margin:0 0 4px;
  font-size:12px;
  color:#5e6f85;
  font-weight:700;
}
.applicant-kpi-grid .pay-kpi p{
  margin:0;
  font-size:22px;
  line-height:1.2;
  font-weight:800;
}
.applicant-kpi-grid .pay-kpi .muted{
  font-size:11px;
  margin-top:2px;
}
.applicant-kpi-grid .pay-kpi-due{
  background:#fff8ef;
  border-color:#ffe0b3;
}
.applicant-kpi-grid .pay-kpi-due h3,
.applicant-kpi-grid .pay-kpi-due p{
  color:#b26a00;
}
.applicant-kpi-grid .pay-kpi-pending{
  background:#eef6ff;
  border-color:#d2e5ff;
}
.applicant-kpi-grid .pay-kpi-pending h3,
.applicant-kpi-grid .pay-kpi-pending p{
  color:#1b5cff;
}
.applicant-kpi-grid .pay-kpi-paid{
  background:#effaf2;
  border-color:#cdeed7;
}
.applicant-kpi-grid .pay-kpi-paid h3,
.applicant-kpi-grid .pay-kpi-paid p{
  color:#1e8449;
}

.app-details{
  margin-top:10px;
  border-top:1px solid var(--line);
  padding-top:10px;
  display:grid;
  gap:6px;
}

.app-details div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:12px;
}

.app-details span{color:var(--muted)}
.app-details strong{color:var(--text)}

.app-actions{
  margin-top:10px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.apply-country-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:12px;
}

.apply-country-card h3{
  margin:0;
  color:var(--blue-ink);
  font-size:17px;
}

.apply-country-card{
  border-color:#dfe8f6;
  background:linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.apply-country-head{
  display:flex;
  align-items:center;
  gap:12px;
}

.apply-country-thumb{
  width:54px;
  height:54px;
  border-radius:12px;
  overflow:hidden;
  background:linear-gradient(135deg, #eaf3ff, #f6faff);
  border:1px solid #d9e6fb;
  display:grid;
  place-items:center;
  color:#1b5cff;
  font-weight:700;
  font-size:20px;
  flex:0 0 54px;
}

.apply-country-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.apply-country-head-text{
  min-width:0;
}

.apply-country-head-text h3{
  margin:0 0 3px;
  line-height:1.25;
}

.apply-country-head-text p{
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
}

.apply-country-meta{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:10px;
}

.apply-country-meta div{
  display:grid;
  gap:2px;
  font-size:13px;
  border:1px solid #e7edf8;
  background:#fff;
  border-radius:10px;
  padding:8px 10px;
}

.apply-country-meta span{color:var(--muted)}
.apply-country-meta strong{color:var(--text)}

.apply-country-card .app-actions{
  margin-top:12px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}

.apply-country-card .app-actions .btn{
  width:100%;
}

.apply-country-card .app-actions form{
  margin:0;
}

.apply-count-select{
  max-width:180px;
  height:38px;
  min-height:38px;
  padding:6px 34px 6px 10px;
  font-size:14px;
}

.app-top-summary-card{
  position:sticky;
  top:12px;
  z-index:15;
}

.app-top-summary-grid{
  display:grid;
  grid-template-columns:repeat(6, minmax(0,1fr));
  gap:8px;
}

.app-top-item{
  border:1px solid var(--line);
  border-radius:12px;
  padding:9px 10px;
  background:#fff;
}

.app-top-item span{
  display:block;
  color:var(--muted);
  font-size:11px;
}

.app-top-item strong{
  display:block;
  margin-top:2px;
  color:var(--blue-ink);
  font-size:14px;
}

.summary-applicants-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin-top:10px;
}

.summary-applicant-card{
  box-shadow:none;
  border:1px solid rgba(5,32,60,.10);
}

.summary-app-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  flex-wrap:wrap;
}

.summary-app-pills{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.summary-app-body{
  display:grid;
  grid-template-columns:150px 1fr;
  gap:12px;
  margin-top:10px;
}

.summary-app-photo img{
  width:150px;
  height:190px;
  object-fit:cover;
  border:1px solid var(--line);
  border-radius:10px;
}

.summary-app-photo-empty{
  width:150px;
  height:190px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fafafa;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#888;
  font-size:12px;
}

.summary-app-meta{min-width:0}

.summary-block-title{
  margin-top:8px;
  margin-bottom:6px;
  font-size:12px;
  color:var(--blue-ink);
  font-weight:700;
}

.summary-kv-grid{
  display:grid;
  grid-template-columns:200px 1fr;
  gap:6px 10px;
  font-size:13px;
}

.summary-doc-grid{
  display:grid;
  gap:6px;
}

.summary-doc-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
  padding:6px 8px;
  border:1px solid #eef3fa;
  border-radius:8px;
  background:#fbfdff;
  font-size:13px;
}
.summary-view-ico{
  width:24px;
  height:24px;
  display:inline-grid;
  place-items:center;
  border:1px solid #dbe7fb;
  border-radius:8px;
  background:#fff;
  color:#1f2d3d;
  vertical-align:middle;
}
.summary-view-ico svg{
  width:13px;
  height:13px;
}

.summary-app-level-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:10px;
}

.summary-compact-card{
  box-shadow:none;
}

.summary-compact-card h5{
  color:var(--blue-ink);
  font-size:14px;
}

@media (max-width: 1160px){
  .kpi-grid{grid-template-columns:repeat(3, minmax(0,1fr))}
  .app-cards-grid{grid-template-columns:repeat(2, minmax(0,1fr))}
}

@media (max-width: 900px){
  .app-shell{grid-template-columns:1fr}
  .sidebar{
    border-right:1px solid rgba(255,255,255,.12);
    border-bottom:none;
    position:fixed;
    left:0;
    top:0;
    bottom:0;
    width:272px;
    max-width:86vw;
    height:100vh;
    overflow:auto;
    z-index:1300;
    transform:translateX(-110%);
    transition:transform .22s ease;
  }
  .sidebar-mobile-close{
    display:inline-flex;
  }
  body.app-nav-open .sidebar{transform:translateX(0)}
  .sidebar-nav{flex-direction:column;flex-wrap:nowrap}
  .side-link{padding:9px 11px}
  .app-mobile-backdrop{
    position:fixed;
    inset:0;
    border:0;
    margin:0;
    padding:0;
    background:rgba(2,12,26,.45);
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease;
    z-index:1200;
  }
  body.app-nav-open .app-mobile-backdrop{
    opacity:1;
    pointer-events:auto;
  }
  .app-mobile-menu-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:34px;
    padding:0 12px;
    border-radius:8px;
    border:1px solid #d7e5fb;
    background:#fff;
    color:var(--blue-ink);
    font-size:12px;
    font-weight:700;
    cursor:pointer;
  }
  body.app-nav-open{overflow:hidden}
  .main-container{padding:16px}
  .kpi-grid{grid-template-columns:repeat(2, minmax(0,1fr))}
  .app-cards-grid{grid-template-columns:1fr}
  .applicant-kpi-grid{grid-template-columns:1fr}
  .apply-country-grid{grid-template-columns:1fr 1fr}
  .app-top-summary-card{position:static}
  .app-top-summary-grid{grid-template-columns:repeat(2, minmax(0,1fr))}
  .summary-app-body{grid-template-columns:1fr}
  .summary-app-photo img,.summary-app-photo-empty{width:100%;height:220px}
  .summary-kv-grid{grid-template-columns:1fr}
  .summary-doc-row{grid-template-columns:1fr}
  .summary-app-level-grid{grid-template-columns:1fr}
}

@media (max-width: 620px){
  .kpi-grid{grid-template-columns:1fr}
  .app-step-label{font-size:10px}
  .app-step-circle{width:30px;height:30px}
  .apply-country-grid{grid-template-columns:1fr}
  .app-top-summary-grid{grid-template-columns:1fr}
  .admin-settings-grid{grid-template-columns:1fr}
  .apply-country-meta{grid-template-columns:1fr}
  .apply-country-card .app-actions{grid-template-columns:1fr}
}

@media (min-width: 901px){
  .app-mobile-menu-btn,
  .app-mobile-backdrop{
    display:none !important;
  }
}

.main-container td,
.main-container th{
  word-break:break-word;
}

@media (max-width: 760px){
  .main-container table{
    width:100% !important;
  }
  .main-container table thead{
    display:none;
  }
  .main-container table tbody{
    display:grid;
    gap:10px;
  }
  .main-container table tbody tr{
    display:block;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fff;
    padding:8px 10px;
  }
  .main-container table tbody td{
    display:block !important;
    border-bottom:1px dashed var(--line) !important;
    padding:6px 0 !important;
    white-space:normal !important;
    text-align:left !important;
  }
  .main-container table tbody td:last-child{
    border-bottom:0 !important;
    padding-bottom:2px !important;
  }
  .applications-actions{
    justify-content:flex-start;
  }
  .applications-actions-th{
    width:auto;
    text-align:left !important;
  }
  .applications-search-input{
    width:100%;
    max-width:220px;
  }
}

/* ============ Application Uploads (Step 3/4 Compact) ============ */
.step-upload-list{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}

.step-upload-card{
  box-shadow:none;
  padding:12px;
}

.photo-upload-row{
  display:flex;
  gap:12px;
  align-items:flex-start;
  flex-wrap:wrap;
  margin-top:8px;
}

.photo-preview-col{
  width:120px;
  flex:0 0 120px;
}

.photo-preview-frame{
  width:120px;
  height:150px;
  border:1px solid #e6e6e6;
  border-radius:10px;
  overflow:hidden;
  background:#fafafa;
  display:flex;
  align-items:center;
  justify-content:center;
}

.photo-upload-form-col{
  min-width:220px;
  flex:1 1 220px;
}

.upload-section-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin-top:8px;
}

.upload-doc-card{
  box-shadow:none;
  border:1px solid rgba(5,32,60,.10);
  padding:10px;
}

.upload-doc-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,340px);
  align-items:start;
  gap:8px 12px;
}

.upload-doc-meta{
  min-width:0;
  font-family:var(--font-base) !important;
  font-size:13px;
}
.upload-doc-meta strong{
  font-family:var(--font-base) !important;
  font-size:13px;
  font-weight:500;
}

.upload-doc-form-wrap{
  min-width:0;
  width:100%;
  max-width:340px;
  justify-self:end;
}

.upload-doc-form-wrap .field{
  margin-bottom:6px;
}

.upload-doc-form-wrap .field label{
  font-size:12px;
  margin-bottom:4px;
}

.upload-doc-form-wrap .input{
  padding:8px 10px;
  border-radius:10px;
}

.btn-upload-compact{
  width:100%;
  justify-content:center;
  padding:8px 12px;
  border-radius:10px;
}

.inline-status{
  font-size:11px !important;
  margin-top:4px !important;
}

#custom-app-doc-list{
  gap:10px !important;
}

@media (max-width: 900px){
  .upload-doc-row{
    grid-template-columns:1fr;
    gap:8px;
  }
  .upload-doc-form-wrap{
    min-width:100%;
    max-width:none;
    justify-self:stretch;
  }
  .photo-preview-col{
    width:100px;
    flex:0 0 100px;
  }
  .photo-preview-frame{
    width:100px;
    height:126px;
  }
}

/* Uploaders */
.uploader {
  border: 1px solid #e6eefb;
  border-radius: 12px;
  padding: 10px;
  background: #fff;
  margin-bottom: 10px;
}

.uploader-row {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}

.uploader-row .field {
  flex: 0 0 auto !important;
  min-width: 140px !important;
  margin-bottom: 0 !important;
}

.uploader-row input[type="file"] {
  max-width: 200px;
  font-size: 12px;
}

.uploader-actions {
  margin-top: 6px;
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.uploader .btn,
.uploader button {
  height: 34px;
  padding: 0 12px;
  font-size: 13px;
  border-radius: 10px;
}

/* OCR details */
.ocr-details {
  display: grid;
  gap: 6px;
  margin-top: 6px;
}

.ocr-row {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 10px;
  line-height: 1.35;
}

.ocr-key {
  font-size: 13px;
  font-weight: 600;
  color: #6b7a90;
}

.ocr-val {
  font-size: 13px;
  font-weight: 700;
  color: #1f2d3d;
}

/* Kill default margins inside OCR */
.ocr-details p,
.ocr-details div {
  margin: 0;
}

/* Reduce general form vertical spacing */
.form-group,
.field-group {
  margin-bottom: 12px;
}

.section-head { display:flex; gap:10px; align-items:center; margin: 0 0 10px; }
.section-icon { width:32px; height:32px; border-radius:10px; display:grid; place-items:center; background:#eef5ff; color:#1b5cff; flex:0 0 auto; }
.section-icon svg { width:18px; height:18px; }
.section-title { font-weight:700; font-size:14px; line-height:1.2; }
.section-subtitle { font-size:12px; color:#6b7a90; margin-top:2px; }

.hint { font-size:12px; margin-top:6px; color:#6b7a90; }
.hint-error { color:#c0392b; }
.hint-ok { color:#1e8449; }

@media (max-width: 700px){
  .uploader-row {
    flex-direction: column;
    align-items: stretch;
  }

  .uploader-row input[type="file"] {
    max-width: 100%;
  }

  .uploader-actions {
    justify-content: stretch;
  }

  .uploader-actions .btn,
  .uploader-actions button {
    width: 100%;
  }

  .ocr-row {
    grid-template-columns: 1fr;
    gap: 2px;
  }
}

/* force compact two-column */
.upload-doc-card.upload-doc-card { padding: 12px !important; }
.upload-doc-card .upload-doc-row {
  display: grid !important;
  grid-template-columns: 1fr 360px !important;
  gap: 12px !important;
  align-items: start !important;
}
@media (max-width: 900px){
  .upload-doc-card .upload-doc-row { grid-template-columns: 1fr !important; }
}

.upload-doc-card .uploader { border:0 !important; padding:0 !important; background:transparent !important; }
.upload-doc-card .uploader-row,
.upload-doc-card .uploader-actions { margin:0 !important; }

.upload-doc-card .uploadbox{
  border: 1px dashed #c9d7f2;
  border-radius: 14px;
  padding: 12px;
  background: #fbfdff;
}
.upload-doc-card .uploadbox-inner{ display:flex; flex-direction:column; gap:10px; }

.upload-doc-card .uploadbox-top{ display:flex; justify-content:space-between; gap:12px; align-items:baseline; }
.upload-doc-card .uploadbox-title{ font-size:12px; font-weight:700; color:#1f2d3d; }
.upload-doc-card .uploadbox-hint{ font-size:11px; color:#6b7a90; white-space:nowrap; }

.upload-doc-card .uploadbox-controls{
  display:grid;
  grid-template-columns: 1fr auto;
  gap:10px;
  align-items:center;
}

.upload-doc-card .uploadbox-controls .field{
  flex: 0 0 auto !important;
  min-width: 0 !important;
}

.upload-doc-card .uploadbox-input[type="file"]{
  font-size:12px !important;
  max-width: 100% !important;
  width: 100% !important;
  padding: 8px !important;
  border-radius: 10px !important;
}

.upload-doc-card .btn-upload-compact{
  height: 36px !important;
  padding: 0 12px !important;
  font-size: 13px !important;
  border-radius: 10px !important;
  white-space: nowrap;
}

.upload-doc-card .uploadbox-file{
  display:flex;
  align-items:center;
  gap:10px;
  padding-top: 6px;
  border-top: 1px solid #eef3fb;
  flex-wrap: wrap;
}
.upload-doc-card .uploadbox-ok{
  font-size:11px;
  font-weight:700;
  color:#1e8449;
}
.upload-doc-card .uploadbox-name{
  font-size:12px;
  color:#1b5cff;
  font-weight:600;
  text-decoration:none;
  max-width: 220px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  display:inline-block;
}
.upload-doc-card .uploadbox-ico{
  width:28px;
  height:28px;
  display:inline-grid;
  place-items:center;
  border:1px solid #dbe7fb;
  border-radius:10px;
  background:#fff;
  color:#1f2d3d;
}
.upload-doc-card .uploadbox-ico svg{
  width:15px;
  height:15px;
}

@media (max-width: 900px){
  .upload-doc-card .uploadbox-controls{ grid-template-columns: 1fr; }
  .upload-doc-card .btn-upload-compact{ width: 100%; }
  .upload-doc-card .uploadbox-top{ flex-direction:column; align-items:flex-start; }
  .upload-doc-card .uploadbox-hint{ white-space:normal; }
}

/* Final doc-uploader polish */
.upload-doc-card {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 10px 0 !important;
}

.upload-doc-card .upload-doc-row{
  grid-template-columns: 1fr !important;
  gap: 8px !important;
}

.upload-doc-card .upload-doc-form-wrap{
  max-width: none !important;
  width: 100% !important;
  justify-self: stretch !important;
}

.doc-grid{
  display:grid;
  grid-template-columns: 1fr 1fr !important;
  gap: 14px;
  align-items:start;
}

@media (max-width: 1000px){
  .doc-grid{ grid-template-columns: 1fr !important; }
}

.upload-doc-card .pill { display:none !important; }
.upload-doc-card .uploadbox-ok { display:none !important; }

/* Final uploadbox behavior (doc cards only) */
.upload-doc-card .btn-upload-compact { display:none !important; }
.upload-doc-card button[type="submit"] { display:none !important; }

.upload-doc-card .upload-doc-form-wrap .help.mt8 { display:none !important; }
.upload-doc-card .ready-to-upload,
.upload-doc-card .upload-ready,
.upload-doc-card .uploader-ready,
.upload-doc-card .js-upload-validation-hint.hint-ok { display:none !important; }

.upload-doc-card .uploadbox-empty{
  font-size:12px;
  color:#6b7a90;
}

/* Photo uploader: dashed uploadbox with thumbnail on right */
.photo-upload-row{
  display:grid !important;
  grid-template-columns:240px minmax(0,1fr) 170px;
  gap:12px;
  align-items:stretch;
}

.photo-meta-col{
  min-width:0;
}

.photo-meta-col .section-head{
  margin-bottom:6px;
}

.photo-note-compact{
  margin-top:4px !important;
  font-size:12px;
  line-height:1.35;
}

.photo-upload-form-col .uploader{
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
  margin:0 !important;
  height:100%;
}

.photo-upload-form-col .uploadbox{
  border: 1px dashed #c9d7f2;
  border-radius: 14px;
  padding: 12px;
  background: #fbfdff;
  min-height: 210px;
  height: 100%;
}

.photo-upload-form-col .uploadbox-inner{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:10px;
}

.photo-upload-form-col .uploadbox-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:baseline;
}

.photo-upload-form-col .uploadbox-title{
  font-size:12px;
  font-weight:700;
  color:#1f2d3d;
  line-height:1.2;
}

.photo-upload-form-col .uploadbox-hint{
  font-size:11px;
  color:#6b7a90;
  white-space:nowrap;
}
.photo-upload-form-col .uploadbox-top .uploadbox-hint{
  display:none;
}

.photo-upload-form-col .uploadbox-controls{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  align-items:center;
}

.photo-upload-form-col .uploadbox-input[type="file"]{
  font-size:12px;
  max-width:100%;
  width:100%;
  padding:8px;
  border-radius:10px;
}

.photo-upload-form-col .uploadbox-file{
  display:flex;
  align-items:center;
  gap:10px;
  padding-top:6px;
  border-top:1px solid #eef3fb;
  flex-wrap:wrap;
}

.photo-upload-form-col .uploadbox-name{
  font-size:12px;
  color:#1b5cff;
  font-weight:600;
  text-decoration:none;
  max-width:220px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  display:inline-block;
}

.photo-upload-form-col .uploadbox-ico{
  width:28px;
  height:28px;
  display:inline-grid;
  place-items:center;
  border:1px solid #dbe7fb;
  border-radius:10px;
  background:#fff;
  color:#1f2d3d;
}

.photo-upload-form-col .uploadbox-ico svg{
  width:15px;
  height:15px;
}

.photo-upload-form-col .uploadbox-empty{
  font-size:12px;
  color:#6b7a90;
}

.photo-upload-form-col .hint{
  font-size:12px;
  color:#6b7a90;
  margin-top:6px;
}

.photo-preview-col{
  width:170px;
  flex:0 0 170px;
}

.photo-preview-frame{
  width:170px;
  height:210px;
}

@media (max-width: 900px){
  .photo-upload-row{
    grid-template-columns:1fr;
  }
  .photo-upload-form-col{ order:1; }
  .photo-preview-col{ order:2; }
  .photo-meta-col{ order:3; }
  .photo-upload-form-col .uploadbox-hint{
    white-space:normal;
  }
}

/* Passport uploader: dashed uploadbox with preview on left */
.passport-upload-row{
  display:grid;
  grid-template-columns: 208px minmax(0,1fr);
  gap:14px;
  align-items:stretch;
}

.passport-preview-col{
  width:208px;
  flex:0 0 208px;
  display:flex;
  gap:8px;
  align-items:flex-start;
}

.passport-preview-frame{
  width:170px;
  height:214px;
  border:1px solid #e6e6e6;
  border-radius:10px;
  overflow:hidden;
  background:#fafafa;
  display:flex;
  align-items:center;
  justify-content:center;
}

.passport-upload-form-col .uploader{
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
  margin:0 !important;
  height:100%;
}

.passport-upload-form-col .uploadbox{
  border: 1px dashed #c9d7f2;
  border-radius: 14px;
  padding: 10px;
  background: #fbfdff;
  min-height:214px;
  height:100%;
  box-sizing:border-box;
}

.passport-upload-form-col .uploadbox-inner{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:8px;
  min-height:100%;
}

.passport-upload-form-col .uploadbox-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:baseline;
}

.passport-upload-form-col .uploadbox-title{
  font-size:12px;
  font-weight:700;
  color:#1f2d3d;
  line-height:1.2;
}

.passport-upload-form-col .uploadbox-hint{
  font-size:11px;
  color:#6b7a90;
  white-space:nowrap;
}

.passport-upload-form-col .uploadbox-controls{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  align-items:center;
}

.passport-upload-form-col .uploadbox-input[type="file"]{
  font-size:12px;
  max-width:100%;
  width:100%;
  padding:8px;
  border-radius:10px;
}

.passport-upload-form-col .uploadbox-file{
  display:flex;
  align-items:center;
  gap:8px;
  padding-top:4px;
  border-top:1px solid #eef3fb;
  flex-wrap:wrap;
}

.passport-upload-form-col .uploadbox-name{
  font-size:12px;
  color:#1b5cff;
  font-weight:600;
  text-decoration:none;
  max-width:220px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  display:inline-block;
}

.passport-upload-form-col .uploadbox-ico{
  width:28px;
  height:28px;
  display:inline-grid;
  place-items:center;
  border:1px solid #dbe7fb;
  border-radius:10px;
  background:#fff;
  color:#1f2d3d;
}

.passport-upload-form-col .uploadbox-ico svg{
  width:15px;
  height:15px;
}

.passport-upload-form-col .uploadbox-empty{
  font-size:12px;
  color:#6b7a90;
}

.passport-preview-actions{
  display:flex;
  flex-direction:column;
  gap:8px;
  justify-content:flex-start;
}

.passport-preview-actions .uploadbox-ico{
  width:28px;
  height:28px;
  display:inline-grid;
  place-items:center;
  border:1px solid #dbe7fb;
  border-radius:10px;
  background:#fff;
  color:#1f2d3d;
}

.passport-preview-actions .uploadbox-ico svg{
  width:15px;
  height:15px;
}

.passport-upload-form-col .js-upload-validation-hint.hint-ok{
  display:none !important;
}
.uploadbox .inline-status{
  font-weight:700;
}
.wizard-step .uploadbox-top .uploadbox-hint{
  display:none !important;
}
.custom-doc-file-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  align-items:center;
  gap:8px;
  margin-top:8px;
  font-family:var(--font-base);
}
.custom-doc-file-name{
  min-width:0;
  font-family:var(--font-base);
  font-size:13px;
  color:#1f2d3d;
  font-weight:500;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.custom-doc-delete-ico{
  border-color:#f0c9b0 !important;
  color:var(--orange) !important;
  cursor:pointer;
}
.custom-doc-delete-ico svg{
  width:15px;
  height:15px;
}
.js-custom-app-doc-form .additional-doc-uploader{
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
  margin:0 !important;
}
.js-custom-app-doc-form .uploadbox{
  border:1px dashed #c9d7f2;
  border-radius:14px;
  padding:12px;
  background:#fbfdff;
}
.js-custom-app-doc-form .uploadbox-inner{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.additional-doc-controls{
  display:grid;
  grid-template-columns:minmax(320px,1.45fr) minmax(220px,.9fr) auto;
  gap:10px;
  align-items:end;
}
.additional-doc-controls .field{
  margin:0 !important;
  min-width:0 !important;
}
.additional-doc-title-field .input,
.additional-doc-file-field .input{
  height:38px;
  font-family:var(--font-base);
  font-size:13px;
}
.additional-doc-title-field .input{
  min-width:0;
}
.additional-doc-file-field .input[type="file"]{
  height:34px;
  font-size:12px;
  padding:5px 8px;
}
.additional-doc-file-label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-family:var(--font-base);
  font-size:13px;
}
.additional-doc-file-meta{
  font-family:var(--font-base);
  font-size:11px;
  color:#6b7a90;
  font-weight:500;
}
.additional-doc-submit{
  height:38px !important;
  padding:0 14px !important;
  min-width:96px;
  border-radius:10px !important;
  font-family:var(--font-base);
  font-size:13px !important;
  white-space:nowrap;
}
.js-custom-app-doc-form .js-custom-app-doc-status{
  font-family:var(--font-base);
  font-size:12px !important;
  font-weight:700;
}
.js-custom-app-doc-form .js-upload-validation-hint{
  display:none !important;
}
@media (max-width: 1000px){
  .additional-doc-controls{
    grid-template-columns:1fr;
    align-items:stretch;
  }
  .additional-doc-submit{
    width:100%;
  }
}

@media (max-width: 900px){
  .passport-upload-row{
    grid-template-columns:1fr;
  }
  .passport-preview-col{
    width:auto;
    flex:1 1 auto;
  }
  .passport-upload-form-col .uploadbox-hint{
    white-space:normal;
  }
}

/* Application view: moved from inline <style> in application_view.php */
.wizard-steps{
  display:grid;
  grid-template-columns:repeat(var(--wizard-steps-count,5),minmax(0,1fr));
  gap:8px;
  margin-top:12px;
  position:relative;
  --wizard-progress:0%;
  --wizard-steps-count:5;
}

.wizard-steps::before{
  content:'';
  position:absolute;
  left:calc((100% / var(--wizard-steps-count,5)) / 2);
  right:calc((100% / var(--wizard-steps-count,5)) / 2);
  top:50%;
  transform:translateY(-50%);
  height:6px;
  border-radius:999px;
  background:#d7e1f0;
  z-index:0;
}

.wizard-steps::after{
  content:'';
  position:absolute;
  left:calc((100% / var(--wizard-steps-count,5)) / 2);
  top:50%;
  transform:translateY(-50%);
  height:6px;
  border-radius:999px;
  background:linear-gradient(90deg,#1e8449,#27ae60);
  width:calc((100% - (100% / var(--wizard-steps-count,5))) * var(--wizard-progress));
  z-index:0;
}

.wizard-step-link{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px 6px;
  text-align:center;
  text-decoration:none;
  color:var(--blue-ink);
  position:relative;
  z-index:1;
}

.wizard-step-track{display:none}

.wizard-step-dot{
  width:28px;
  height:28px;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-family:var(--font-base);
  font-size:12px;
  font-weight:700;
  background:#eef3fb;
  color:#5c6e86;
  border:1px solid #d2ddec;
  transition:background-color 250ms ease,transform 250ms ease,color 250ms ease,border-color 250ms ease;
}

.wizard-step-link.is-done .wizard-step-dot{
  background:linear-gradient(180deg,#1e8449,#27ae60);
  border-color:#1f8f4b;
  color:#fff;
}

.wizard-step-link.is-active .wizard-step-dot{
  background:linear-gradient(180deg,#1e8449,#27ae60);
  border-color:#1f8f4b;
  color:#fff;
  transform:scale(1.06);
  animation:stepPulse 350ms ease-out 1;
}

.wizard-step-label{display:none}

.app-top-summary-inline{
  display:flex;
  gap:16px;
  align-items:center;
  flex-wrap:wrap;
  font-family:var(--font-base);
  font-size:14px;
  color:#1f2d3d;
}
.app-top-summary-inline .app-id-inline{
  margin-left:auto;
  font-family:var(--font-base);
  font-weight:700;
  letter-spacing:0;
}

.app-top-summary-inline-item strong{
  font-family:var(--font-base);
  color:#6b7a90;
  font-size:12px;
  font-weight:700;
}

.wizard-step{display:none}
.wizard-step.is-active{display:block}
.wizard-nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.wizard-step .card.card-pad{padding:14px}
.wizard-step .field{margin-bottom:10px}
.wizard-step .field label{
  font-family:var(--font-base);
  font-size:13px;
}
.extra-info-form{
  margin-top:4px;
}
.extra-section-head{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  margin:0 0 8px;
}
.extra-section-head .js-extra-status{
  margin-left:auto !important;
  margin:0 !important;
  min-height:16px;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
}
.extra-info-form .extra-info-field{
  margin-bottom:8px !important;
}
.extra-info-form .extra-info-field > label{
  font-family:var(--font-base);
  font-size:13px;
  font-weight:600;
  color:#1f2d3d;
  margin-bottom:6px;
}
.extra-info-form .extra-info-field[data-field-type="date"],
.extra-info-form .extra-info-field[data-field-type="radio"]{
  display:grid;
  grid-template-columns:minmax(260px,340px) minmax(0,1fr);
  align-items:center;
  gap:10px;
}
.extra-info-form .extra-info-field[data-field-type="date"] > label,
.extra-info-form .extra-info-field[data-field-type="radio"] > label{
  margin-bottom:0;
  white-space:nowrap;
}
.extra-info-form .extra-info-field[data-field-type="date"] .date-ui-wrap{
  width:170px;
  max-width:100%;
}
.extra-info-form .extra-info-field[data-field-type="radio"] > div{
  display:flex !important;
  align-items:center;
  gap:12px !important;
  flex-wrap:wrap;
}
.extra-info-form .extra-info-field[data-field-type="radio"] > div > label{
  margin:0;
}
.extra-info-form .input,
.extra-info-form select,
.extra-info-form textarea{
  font-family:var(--font-base) !important;
  font-size:13px;
}
.extra-info-form textarea.input{
  min-height:86px;
  resize:vertical;
}
.extra-info-form .extra-date-input{
  height:32px !important;
  min-height:32px !important;
  max-width:170px;
  line-height:1.2;
}
.extra-info-form .inline-status{
  font-family:var(--font-base);
  font-size:12px !important;
  font-weight:700;
}
.extra-info-form input[type="radio"],
.extra-info-form input[type="checkbox"]{
  accent-color:#1b5cff;
}
.extra-info-form label span{
  font-family:var(--font-base);
  font-size:13px;
}
@media (max-width: 900px){
  .extra-info-form .extra-info-field[data-field-type="date"],
  .extra-info-form .extra-info-field[data-field-type="radio"]{
    grid-template-columns:1fr;
    align-items:start;
    gap:6px;
  }
}
.step1-country-value{
  font-family:var(--font-base);
  font-size:15px;
  font-weight:700;
  color:var(--blue-ink);
  line-height:1.3;
  padding:10px 0 6px;
}
.step1-applicant-select{
  width:170px;
  max-width:100%;
  min-height:38px;
  height:38px;
  padding:6px 32px 6px 10px;
  font-family:var(--font-base);
  font-size:14px;
  line-height:1.2;
}
.ocr-card{margin-bottom:16px}
.ocr-card .ocr-edit-panel{width:100%;box-sizing:border-box}
.ocr-inline-edit-btn{
  padding:3px 9px !important;
  font-size:12px !important;
  line-height:1.2 !important;
  border-radius:8px !important;
  min-height:auto !important;
  border-color:var(--orange) !important;
  color:var(--orange) !important;
}
.ocr-inline-edit-btn.is-hidden{display:none !important}
.ocr-inline-edit-btn.is-inactive{opacity:.55;pointer-events:none}
.ocr-inline-form .js-ocr-edit{display:none}
.ocr-inline-form.is-editing .js-ocr-view{display:none}
.ocr-inline-form.is-editing .js-ocr-edit{display:block}
.ocr-inline-form .js-ocr-edit-wrap{display:none}
.ocr-inline-form.is-editing .js-ocr-edit-wrap{display:block;width:100%;max-width:300px}
.ocr-inline-form .js-ocr-edit-wrap .js-ocr-edit{display:block;width:100%;max-width:none}
.ocr-inline-form .ocr-details{gap:4px}
.ocr-inline-form .ocr-row{
  grid-template-columns:120px 1fr;
  align-items:center;
  gap:6px;
  min-height:26px;
  line-height:1.25;
}
.ocr-inline-form .js-ocr-edit{
  width:100%;
  max-width:300px;
  font-family:var(--font-base);
  font-size:13px;
  line-height:1.3;
  padding:6px 10px;
  min-height:34px;
  border-radius:10px;
}
.ocr-inline-form select.js-ocr-edit{
  padding-top:5px;
  padding-bottom:5px;
}
.ocr-inline-form .inline-status{
  font-size:11px !important;
  margin-top:4px !important;
}

.ocr-upload-layout{
  display:grid;
  grid-template-columns:minmax(340px, 460px) minmax(430px, 520px);
  justify-content:start;
  gap:8px;
  align-items:start;
}
.ocr-upload-layout > .ocr-pane{
  min-width:0 !important;
}
.ocr-upload-layout > .upload-pane{
  min-width:0 !important;
  max-width:none !important;
}

@media (max-width: 1100px){
  .ocr-upload-layout{
    grid-template-columns:1fr;
  }
  .ocr-upload-layout > .upload-pane{
    order:-1;
  }
}

@media (max-width:760px){
  .wizard-steps{gap:6px}
  .wizard-step-dot{width:26px;height:26px;font-size:11px}
  .app-top-summary-inline{gap:10px;font-size:13px}
  .app-top-summary-inline .app-id-inline{margin-left:0}
  .extra-section-head{
    flex-wrap:wrap;
    align-items:flex-start;
  }
  .extra-section-head .js-extra-status{
    white-space:normal;
  }
}

.profile-page,
.profile-page *{
  font-family:var(--font-base) !important;
}

.profile-page{
  max-width:760px;
}

.profile-page label{
  font-size:13px;
  font-weight:600;
  color:var(--blue-ink);
}

/* Staff application view: match Move to Draft to OCR Edit Details style */
#btnMoveToDraft{
  padding:3px 9px !important;
  font-size:12px !important;
  line-height:1.2 !important;
  border-radius:8px !important;
  min-height:auto !important;
  border:1px solid var(--orange) !important;
  color:var(--orange) !important;
  background:#fff !important;
}
#btnMoveToDraft:hover{
  background:rgba(255,149,2,.08) !important;
}

/* Public layout */
.is-public{overflow-x:hidden}
.is-public .container{max-width:1180px}
.is-public .public-topbar{
  border-bottom:1px solid var(--line);
  margin-bottom:16px;
  padding-bottom:14px;
  position:relative;
  align-items:center;
}
.is-public .public-nav-toggle{
  display:none;
  width:44px;
  height:44px;
  min-height:44px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--blue-ink);
  padding:0;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:4px;
}
.is-public .public-nav-toggle span{
  display:block;
  width:18px;
  height:2px;
  background:currentColor;
  border-radius:2px;
}
.is-public .public-menu-panel{display:block}
.is-public .public-menu{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.is-public .public-menu-link{
  text-decoration:none;
  font-size:14px;
  color:var(--blue-ink);
  padding:6px 0;
}
.is-public .public-menu-link.is-active{
  color:var(--blue-sky);
  font-weight:600;
}
.is-public .public-dropdown{position:relative}
.is-public .public-dropdown .public-menu-link{
  display:inline-flex;
  align-items:center;
}
.is-public .public-dropdown::after{
  content:"";
  position:absolute;
  left:0;
  top:100%;
  width:100%;
  height:10px;
}
.is-public .public-dropdown-list{
  display:none;
  position:absolute;
  left:0;
  right:auto;
  top:calc(100% + 1px);
  min-width:260px;
  max-height:340px;
  overflow:auto;
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  box-shadow:var(--shadow);
  padding:8px;
  z-index:40;
}
.is-public .public-dropdown:hover .public-dropdown-list,
.is-public .public-dropdown:focus-within .public-dropdown-list{
  display:grid;
}
.is-public .public-dropdown-list a{
  text-decoration:none;
  color:var(--text);
  font-size:13px;
  padding:8px 10px;
  border-radius:8px;
}
.is-public .public-dropdown-list a:hover{background:#f5f8ff}
.is-public .public-dropdown-empty{padding:8px 10px;font-size:13px;color:var(--muted)}
.is-public .public-footer{
  margin-top:24px;
  padding:16px 0 10px 0;
  border-top:1px solid var(--line);
  font-size:13px;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:start;
  gap:10px;
}
.is-public .public-footer .muted{
  text-align:right;
  word-break:break-word;
}

.public-hero-title{margin:0;font-size:34px;color:var(--blue-ink);line-height:1.15}
.public-hero-sub{margin:10px 0 0 0;color:var(--muted);font-size:15px;line-height:1.6}
.public-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;align-items:start}
.public-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.public-hero-points{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:start}

.public-section{margin-top:20px}
.public-section-head h2{margin:0;color:var(--blue-ink);font-size:22px}
.public-section-head p{margin:6px 0 0 0;color:var(--muted);font-size:14px}

.public-country-grid{margin-top:14px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.public-country-card{text-decoration:none;color:inherit;overflow:hidden}
.public-country-cover{height:150px;background:#f3f7ff;border-bottom:1px solid var(--line)}
.public-country-cover img{width:100%;height:100%;object-fit:cover}
.public-country-body{padding:12px}
.public-country-body h3{margin:0;color:var(--blue-ink);font-size:17px}
.public-country-body p{
  margin:8px 0 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  height:2.9em;
  min-height:2.9em;
  max-height:2.9em;
}
.public-country-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}

.public-step-grid{margin-top:14px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.public-step-grid h3{margin:0 0 6px 0;font-size:16px;color:var(--blue-ink)}
.public-step-grid p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}
.public-why-grid{margin-top:14px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.public-why-grid strong{display:block;margin-bottom:6px;color:var(--blue-ink)}
.public-why-grid p{margin:0;color:var(--muted);font-size:13px}

.public-country-grid h1{margin:0;color:var(--blue-ink);font-size:30px}
.public-country-cover-wide{margin-bottom:12px;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.public-country-cover-wide img{width:100%;height:260px;object-fit:cover}
.public-doc-list{margin:0;padding-left:18px}
.public-doc-list li{margin:6px 0;font-size:14px}

.public-track-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.public-track-result{
  background:#fbfdff;
  border:1px solid #e6eef9;
}
.public-track-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding-bottom:10px;
  border-bottom:1px dashed #dbe6f8;
}
.public-track-id{
  font-size:13px;
  color:#5a6a80;
}
.public-track-id strong{
  font-size:15px;
  color:var(--blue-ink);
}
.public-track-status{
  font-size:15px;
  font-weight:800;
  padding:8px 12px;
  border-radius:10px;
  text-transform:capitalize;
}
.public-track-info-grid{
  margin-top:12px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.public-track-info-item{
  border:1px solid #e5edf9;
  border-radius:10px;
  background:#fff;
  padding:10px;
  display:grid;
  gap:4px;
}
.public-track-label{
  font-size:12px;
  color:#6d7d93;
  font-weight:600;
}
.public-track-value{
  font-size:14px;
  color:#1f2d3d;
  font-weight:700;
}

.public-contact-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:14px}
.public-contact-info{display:grid;gap:8px;font-size:14px}
.public-map-wrap{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.public-map-wrap iframe{width:100%;height:280px;border:0;display:block}

@media (max-width: 1199px){
  .public-country-grid,
  .public-step-grid,
  .public-why-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width: 992px){
  .is-public .public-topbar{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    column-gap:10px;
    row-gap:8px;
    align-items:center;
  }
  .is-public .public-topbar .brand{
    min-width:0;
    align-self:center;
  }
  .is-public .public-topbar .brand-tagline{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:100%;
  }
  .is-public .public-nav-toggle{display:inline-flex}
  .is-public .public-menu-panel{
    grid-column:1 / -1;
    width:100%;
    max-height:0;
    overflow:hidden;
    opacity:0;
    transform:translateY(-4px);
    transition:max-height .25s ease, opacity .2s ease, transform .2s ease;
    pointer-events:none;
    background:rgba(255,255,255,.95);
    border:1px solid var(--line);
    border-radius:10px;
    padding:6px;
    box-shadow:0 10px 24px rgba(5,32,60,.12);
    backdrop-filter:saturate(140%) blur(2px);
  }
  .is-public.nav-open .public-menu-panel{
    max-height:85vh;
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
  }
  .is-public .public-menu{
    flex-direction:column;
    align-items:stretch;
    gap:4px;
    padding-top:10px;
    background:transparent;
  }
  .is-public .public-menu-link{
    display:block;
    width:100%;
    padding:12px 10px;
    border-radius:10px;
    background:transparent;
    font-size:14px;
    font-weight:600;
    color:var(--blue-ink);
  }
  .is-public .public-menu-link:hover{background:#f5f8ff}
  .is-public .public-dropdown{width:100%}
  .is-public .public-dropdown-list{
    display:grid !important;
    position:static;
    top:auto;
    right:auto;
    min-width:0;
    width:100%;
    max-height:260px;
    box-shadow:none;
    border:1px solid #e4edf9;
    background:#f9fbff;
    margin-top:4px;
    border-radius:10px;
  }
  .is-public .public-dropdown-list a{
    width:100%;
    display:block;
    padding:10px 10px;
    background:transparent;
    color:var(--text);
    font-size:13px;
    font-weight:500;
  }
  .is-public .public-dropdown-list a:hover{background:#eef5ff}
}
@media (max-width: 991px){
  .public-country-grid,
  .public-step-grid,
  .public-why-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 767px){
  .public-hero-grid{grid-template-columns:1fr}
  .public-country-grid,
  .public-step-grid,
  .public-why-grid{grid-template-columns:1fr}
  .public-contact-grid{grid-template-columns:1fr}
  .is-public .public-footer{
    grid-template-columns:1fr;
  }
  .is-public .public-footer .muted{
    text-align:left;
  }
}
@media (max-width: 575px){
  .is-public .btn{
    width:100%;
    min-height:44px;
  }
  .is-public .input{
    width:100%;
  }
  .public-hero-title{font-size:28px}
  .public-track-grid{grid-template-columns:1fr}
  .public-track-head{flex-direction:column;align-items:flex-start}
  .public-track-info-grid{grid-template-columns:1fr}
}

.profile-page .input,
.profile-page .btn{
  font-size:13px !important;
  font-family:var(--font-base) !important;
}

.profile-page .input{
  min-height:40px;
}

.profile-page .card-title{
  font-size:22px;
}

.profile-page .card-subtitle{
  max-width:640px;
  font-size:13px;
  line-height:1.5;
}

.profile-grid,
.profile-password-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:12px;
}

.profile-password-grid{
  grid-template-columns:repeat(3, minmax(0,1fr));
}

.profile-email-field{
  grid-column:1 / -1;
}

.profile-password-toggle{
  margin-bottom:8px;
}

.profile-password-toggle .btn{
  min-height:34px;
  padding:0 12px;
  border-radius:10px;
  font-size:13px !important;
}

.profile-password-panel{
  margin-top:2px;
}

.profile-password-panel[hidden]{
  display:none !important;
}

.profile-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:6px;
}

.applications-page,
.applications-page *{
  font-family:var(--font-base) !important;
}

.applications-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}

.applications-table th,
.applications-table td{
  padding:9px 8px;
  border-bottom:1px solid var(--line);
  vertical-align:middle;
}

.applications-table th{
  text-align:left;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}

.applications-table .col-check{
  width:34px;
}

.applications-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
}

.applications-actions form{
  margin:0;
}

.admin-requests-page .contact-requests-table{
  table-layout:fixed;
}

.admin-requests-page .contact-requests-table th:nth-child(1),
.admin-requests-page .contact-requests-table td:nth-child(1){
  width:7%;
}

.admin-requests-page .contact-requests-table th:nth-child(2),
.admin-requests-page .contact-requests-table td:nth-child(2){
  width:22%;
}

.admin-requests-page .contact-requests-table th:nth-child(3),
.admin-requests-page .contact-requests-table td:nth-child(3){
  width:29%;
}

.admin-requests-page .contact-requests-table th:nth-child(4),
.admin-requests-page .contact-requests-table td:nth-child(4){
  width:17%;
}

.admin-requests-page .contact-requests-table th:nth-child(5),
.admin-requests-page .contact-requests-table td:nth-child(5){
  width:25%;
}

.app-delete-btn{
  border-color:rgba(255,149,2,.45);
  color:#b26a00;
}

.applications-bulk-actions{
  margin-top:10px;
}

.applications-search-input{
  width:170px;
  min-height:30px !important;
  height:30px !important;
  padding:4px 9px !important;
  font-size:12px !important;
}
.applications-actions-th{
  width:190px;
  text-align:right !important;
}
.applications-actions-th .applications-search-input{
  margin-left:auto;
}
.app-icon-btn{
  width:30px;
  min-width:30px;
  height:30px;
  min-height:30px;
  padding:0 !important;
  border-radius:9px;
}
.app-icon-btn svg{
  width:15px;
  height:15px;
}
.app-icon-delete{
  border-color:rgba(192,57,43,.35);
  color:#c0392b;
}
.app-icon-delete:hover{
  border-color:rgba(192,57,43,.55);
  color:#b12d20;
}
.app-icon-edit{
  border-color:rgba(27,92,255,.32);
  color:#1b5cff;
}
.app-icon-edit:hover{
  border-color:rgba(27,92,255,.52);
  color:#0f49c5;
}

.applications-empty-row{
  padding:14px 8px !important;
  color:var(--muted);
}

.applications-empty-note{
  padding:14px 8px;
  color:var(--muted);
  font-size:13px;
}

.applications-pager{
  margin-top:10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}

.applications-page-info{
  font-size:12px;
  color:var(--muted);
}

.applications-pager-links{
  display:flex;
  align-items:center;
  gap:6px;
}

.applications-table .col-check input[type="checkbox"]{
  width:14px;
  height:14px;
}

.applications-table .apps-fee-amount{
  font-weight:700;
  margin-right:7px;
}

.applications-table .apps-status-text{
  font-size:12px;
  font-weight:700;
}

.applications-table .apps-status-text.is-success{ color:#137333; }
.applications-table .apps-status-text.is-info{ color:#1b5cff; }
.applications-table .apps-status-text.is-warning{ color:#b26a00; }
.applications-table .apps-status-text.is-danger{ color:#c0392b; }
.applications-table .apps-status-text.is-muted{ color:#6b7a90; }

.payments-topbar{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  margin:0 0 10px;
}

.payments-admin-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}

.payments-search-input{
  width:220px;
  min-height:32px !important;
  height:32px !important;
  padding:5px 10px !important;
  font-size:12px !important;
}

@media (max-width: 700px){
  .payments-admin-toolbar{
    align-items:stretch;
  }
  .payments-topbar{
    justify-content:stretch;
  }
  .payments-search-input{
    width:100%;
  }
}

.staff-app-view,
.staff-app-view *{
  font-family:var(--font-base) !important;
}

.staff-app-head{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:8px 12px;
  font-size:13px;
}

.staff-app-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:12px;
}

.staff-app-grid.is-single{
  grid-template-columns:minmax(0,1fr);
  max-width:980px;
}

.staff-two-col{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}

.staff-app-card{
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  padding:10px;
}

.staff-bundle{
  border:1px solid #edf2fb;
  border-radius:10px;
  background:#fcfdff;
  padding:8px;
}

.staff-app-card-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  align-items:start;
}

.staff-app-card-grid.is-single{
  grid-template-columns:1fr;
}

.staff-app-level-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.staff-app-level-grid.is-single{
  grid-template-columns:1fr;
}

.staff-app-card-title{
  font-size:14px;
  font-weight:700;
  color:var(--blue-ink);
  margin-bottom:8px;
}

.staff-mini-title{
  font-size:12px;
  font-weight:700;
  color:var(--muted);
  margin:6px 0 6px;
}

.staff-copy-grid{
  display:grid;
  gap:6px;
}

.staff-copy-row{
  display:grid;
  grid-template-columns:120px 1fr auto;
  align-items:center;
  gap:8px;
  border:0;
  border-bottom:1px dashed #dbe6f8;
  border-radius:0;
  background:transparent;
  padding:6px 0;
}

.staff-copy-key{
  font-size:12px;
  color:var(--muted);
  font-weight:600;
}

.staff-copy-val{
  font-size:13px;
  color:#1f2d3d;
  font-weight:600;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.staff-copy-btn{
  min-height:26px !important;
  height:26px !important;
  border-radius:8px !important;
}

.staff-copy-grid-stack .staff-copy-row{
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:start;
}

.staff-copy-grid-stack .staff-copy-key{
  grid-column:1;
  grid-row:1;
}

.staff-copy-grid-stack .staff-copy-val{
  grid-column:1;
  grid-row:2;
  overflow-wrap:anywhere;
  word-break:break-word;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
}

.staff-copy-grid-stack .staff-copy-btn{
  grid-column:2;
  grid-row:1 / span 2;
  align-self:start;
}

.staff-file-grid{
  display:grid;
  gap:6px;
}

.staff-file-row{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:8px;
  border:0;
  border-bottom:1px dashed #dbe6f8;
  border-radius:0;
  background:transparent;
  padding:6px 0;
  font-size:13px;
}

.staff-copy-grid .staff-copy-row:last-child,
.staff-file-grid .staff-file-row:last-child{
  border-bottom:0;
}

.staff-file-actions{
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.staff-file-actions .uploadbox-ico{
  width:28px;
  height:28px;
  min-width:28px;
  min-height:28px;
  display:inline-grid !important;
  place-items:center;
  border:1px solid #dbe7fb;
  border-radius:10px;
  background:#fff;
  color:#1f2d3d;
  text-decoration:none;
}

.staff-file-actions .uploadbox-ico svg{
  width:15px !important;
  height:15px !important;
  display:block !important;
}

.staff-file-actions .uploadbox-ico.is-disabled{
  opacity:.42;
  pointer-events:none;
}

.decision-letter-actions{
  display:inline-flex;
  align-items:center;
  gap:4px;
}

.decision-letter-actions .uploadbox-ico{
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  min-height:24px !important;
  border-radius:8px !important;
}

.decision-letter-actions .uploadbox-ico svg{
  width:13px !important;
  height:13px !important;
}

.app-icon-letter svg{
  width:14px;
  height:14px;
}

.app-card-status-tools{
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.app-letter-dl{
  width:22px;
  height:22px;
  display:inline-grid;
  place-items:center;
  border:1px solid #dbe7fb;
  border-radius:7px;
  background:#fff;
  color:#1f2d3d;
  text-decoration:none;
}

.app-letter-dl svg{
  width:12px;
  height:12px;
}

/* Keep decision-letter icons compact only inside change-status modal */
#changeStatusModal .js-decision-letter-form .uploadbox-ico{
  width:22px !important;
  height:22px !important;
  min-width:22px !important;
  min-height:22px !important;
  border-radius:7px !important;
}

#changeStatusModal .js-decision-letter-form .uploadbox-ico svg{
  width:12px !important;
  height:12px !important;
}

.decision-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border:1px solid #e6eefb;
  border-radius:10px;
  background:#fbfdff;
}

.decision-row-main{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  flex:1 1 auto;
}

.decision-applicant-name{
  font-size:13px;
  font-weight:600;
  color:#1f2d3d;
}

.decision-page .summary-doc-list{
  gap:8px;
}

.decision-page .card-title,
.decision-page .card-subtitle,
.decision-page .status,
.decision-page .muted,
.decision-page .decision-applicant-name{
  font-family:var(--font-base) !important;
}

.decision-page .status{
  font-size:11px;
  padding:3px 8px;
  border-radius:999px;
}

.decision-page .decision-letter-actions{
  flex:0 0 auto;
}

/* Staff view decision letters: keep same font/size as rest of staff page */
.staff-app-view #decision-letters,
.staff-app-view #decision-letters *{
  font-family:var(--font-base) !important;
}

.staff-app-view #decision-letters .summary-doc-item{
  font-size:13px;
}

.staff-app-view #decision-letters .section-title{
  font-size:14px;
  font-weight:700;
}

.staff-app-view #decision-letters .summary-doc-list{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}

.decision-page .summary-doc-list{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
}

@media (max-width: 900px){
  .staff-app-view #decision-letters .summary-doc-list,
  .decision-page .summary-doc-list{
    grid-template-columns:1fr;
  }
  .decision-row{
    flex-wrap:nowrap;
  }
  .decision-page .decision-applicant-name{
    max-width:58vw;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}

.decision-row-main strong{
  font-size:13px;
  color:#1f2d3d;
}

@media (max-width: 1100px){
  .staff-app-grid,
  .staff-two-col{
    grid-template-columns:1fr;
  }
  .staff-app-level-grid{
    grid-template-columns:1fr;
  }
  .staff-app-card-grid{
    grid-template-columns:1fr;
  }
  .staff-app-head{
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width: 700px){
  .staff-app-head{
    grid-template-columns:1fr;
  }
  .staff-copy-row{
    grid-template-columns:1fr;
    align-items:start;
  }
}

.child-doc-note{
  font-family:var(--font-base) !important;
  font-size:13px !important;
  font-weight:600;
  line-height:1.4;
  color:#1f2d3d;
}

@media (max-width: 620px){
  .profile-grid,
  .profile-password-grid{
    grid-template-columns:1fr;
  }
  .applications-pager{
    justify-content:flex-start;
  }
}

.admin-requests-page,
.admin-requests-page *{
  font-family:var(--font-base) !important;
}

.admin-requests-tabs{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.admin-requests-tabs-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}

.admin-req-unread td{
  background:#eefaf0;
}

.countries-sortable-row[draggable="true"]{
  cursor:move;
}

.countries-sortable-row.is-dragging{
  opacity:.55;
}

.help-contact-wrap{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  color:var(--muted);
}

.help-contact-wrap input[type="checkbox"]{
  width:14px;
  height:14px;
}

.help-contact-by{
  font-weight:600;
  color:#2f4b73;
}

/* Public frontend polish (scoped) */
body.is-public{
  overflow-x:hidden;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

.is-public .container{
  max-width:1240px;
  width:100%;
  flex:1 0 auto;
  display:flex;
  flex-direction:column;
}

.is-public .public-container{
  width:100%;
  flex:1 0 auto;
}

.is-public .public-footer{
  margin-top:28px;
  padding:18px 0 0;
  border-top:1px solid var(--line);
}

.is-public .public-footer-top{
  display:grid;
  grid-template-columns:1.1fr .9fr 1fr;
  gap:18px;
  align-items:start;
}

.is-public .public-footer-menu{
  display:grid;
  gap:8px;
}

.is-public .public-footer-menu a{
  text-decoration:none;
  font-size:13px;
  color:var(--blue-ink);
}

.is-public .public-footer-menu a:hover{
  color:var(--blue-sky);
}

.is-public .public-footer-support{
  display:grid;
  gap:4px;
  font-size:13px;
  color:var(--muted);
  line-height:1.45;
}

.is-public .public-footer-bottom{
  margin-top:14px;
  padding:10px 0 12px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:8px;
  font-size:12px;
}

.is-public .country-page{
  margin-top:4px;
}

.is-public .country-grid{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 360px;
  gap:16px;
  align-items:start;
}

.is-public .country-main{
  min-width:0;
}

.is-public .country-side{
  position:sticky;
  top:16px;
}

.is-public .country-title{
  margin:0;
  font-size:30px;
  color:var(--blue-ink);
  line-height:1.18;
}

.is-public .country-subtitle{
  margin:8px 0 0;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}

.is-public .country-sec-title{
  margin:0;
  font-size:18px;
  color:var(--blue-ink);
}

.is-public .country-sec-title + .doc-checklist,
.is-public .country-sec-title + .country-info-box,
.is-public .country-sec-title + .country-steps,
.is-public .country-sec-title + .help{
  margin-top:12px;
}

.is-public .doc-checklist{
  display:grid;
  gap:8px;
}

.is-public .doc-check-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 10px;
  background:#fbfdff;
  border:1px solid #e8f0fb;
  border-radius:10px;
}

.is-public .doc-check-mark{
  width:20px;
  height:20px;
  border-radius:999px;
  display:inline-grid;
  place-items:center;
  font-size:12px;
  font-weight:700;
  color:#1e8449;
  background:#eaf8f0;
  border:1px solid #cdeedb;
  flex:0 0 auto;
}

.is-public .doc-check-label{
  font-size:14px;
  color:var(--text);
  line-height:1.35;
}

.is-public .doc-check-tag{
  margin-left:auto;
  font-size:11px;
  color:#6b7a90;
  background:#f2f6fc;
  border:1px solid #e3ecfb;
  border-radius:999px;
  padding:2px 8px;
}

.is-public .country-info-box{
  background:#f9fcff;
  border:1px solid #e2eefc;
  border-radius:10px;
  padding:10px 12px;
  font-size:13px;
  line-height:1.45;
  color:#24384a;
}

.is-public .country-steps{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:10px;
}

.is-public .country-step{
  border:1px solid #e5eefb;
  border-radius:10px;
  padding:10px;
  background:#fbfdff;
  display:grid;
  gap:4px;
}

.is-public .country-step strong{
  font-size:13px;
  color:var(--blue-ink);
}

.is-public .country-step span{
  font-size:12px;
  color:var(--muted);
  line-height:1.4;
}

.is-public .apply-card{
  box-shadow:0 10px 26px rgba(5,32,60,.10);
}

.is-public .apply-meta{
  display:grid;
  gap:8px;
}

.is-public .apply-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  font-size:13px;
  padding-bottom:8px;
  border-bottom:1px dashed #dbe6f8;
}

.is-public .apply-row:last-child{
  border-bottom:0;
  padding-bottom:0;
}

.is-public .apply-row span{
  color:var(--muted);
}

.is-public .apply-row strong{
  color:var(--text);
  text-align:right;
}

.is-public .apply-actions{
  display:grid;
  gap:8px;
}

.is-public .ask-help-card .form{
  gap:10px;
}

.is-public .ask-help-card .field{
  margin:0;
}

.is-public .ask-help-card .field label{
  font-size:12px;
  font-weight:700;
  color:var(--blue-ink);
}

.is-public .ask-help-card .input{
  min-height:36px;
  font-size:13px;
  padding:9px 10px;
}

.is-public .ask-help-card textarea.input{
  min-height:90px;
  resize:vertical;
}

.is-public .ask-help-card .btn{
  width:100%;
  min-height:42px;
}

@media (max-width: 1100px){
  .is-public .country-grid{
    grid-template-columns:minmax(0,1fr) 320px;
  }
}

@media (max-width: 991px){
  .is-public .country-grid{
    grid-template-columns:1fr;
  }
  .is-public .country-side{
    position:static;
    top:auto;
  }
  .is-public .country-steps{
    grid-template-columns:1fr;
  }
  .is-public .apply-actions .btn{
    width:100%;
    min-height:44px;
  }
  .is-public .public-footer-top{
    grid-template-columns:1fr;
    text-align:center;
  }
  .is-public .public-footer-menu{
    justify-items:center;
  }
  .is-public .public-footer-support{
    justify-items:center;
  }
  .is-public .public-footer-bottom{
    flex-direction:column;
    align-items:center;
    text-align:center;
  }
}

/* Public footer: full-width dark brand section */
.is-public .public-footer{
  margin-top:28px;
  padding:0;
  border-top:0;
  background:var(--brand-blue-dark);
  color:#d9e6ff;
}

.is-public .public-footer .public-footer-inner{
  padding-top:18px;
  padding-bottom:12px;
}

.is-public .public-footer .brand-tagline{
  color:#a9bedf;
}

.is-public .public-footer .public-footer-menu a{
  color:#d9e6ff;
}

.is-public .public-footer .public-footer-menu a:hover{
  color:#ffffff;
}

.is-public .public-footer .public-footer-support{
  color:#b8cae8;
}

.is-public .public-footer .public-footer-support strong{
  color:#ffffff;
}

.is-public .public-footer .public-footer-bottom{
  border-top:1px solid rgba(255,255,255,.16);
  color:#b8cae8;
}

.is-public .public-footer-social{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
  font-size:12px;
}

.is-public .public-footer-social a{
  width:26px;
  height:26px;
  display:inline-grid;
  place-items:center;
  color:#d9e6ff;
  text-decoration:none;
  border:1px solid rgba(255,255,255,.22);
  border-radius:8px;
  background:rgba(255,255,255,.06);
  line-height:1.2;
  transition:all .14s ease;
}

.is-public .public-footer-social a svg{
  width:14px;
  height:14px;
}

.is-public .public-footer-social a:hover{
  color:#fff;
  border-color:rgba(255,255,255,.45);
  background:rgba(255,255,255,.12);
  transform:translateY(-1px);
}

.is-public .public-whatsapp-float{
  position:fixed;
  right:16px;
  bottom:14px;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  background:transparent;
  border:0;
  box-shadow:none;
  z-index:1400;
}

.is-public .public-whatsapp-float img{
  width:40px;
  height:40px;
  object-fit:contain;
}

.is-public .public-whatsapp-float:hover{
  transform:translateY(-1px);
}

.is-public .public-back-top{
  position:fixed;
  right:16px;
  bottom:60px;
  width:40px;
  height:40px;
  border:0;
  border-radius:4px;
  background:var(--orange);
  color:#fff;
  font-size:24px;
  font-weight:900;
  -webkit-text-stroke:0.6px #fff;
  text-shadow:0 0 1px rgba(255,255,255,.95);
  line-height:1;
  display:grid;
  place-items:center;
  cursor:pointer;
  box-shadow:0 8px 16px rgba(255,149,2,.35);
  z-index:1399;
  opacity:0;
  visibility:hidden;
  transform:translateY(6px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}

.is-public .public-back-top.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

@media (max-width: 520px){
  .is-public .public-whatsapp-float,
  .is-public .public-back-top{
    right:16px;
  }
}

/* Public topbar compact + hero redesign */
.is-public .public-topbar{
  padding:8px 0 !important;
  margin-bottom:10px !important;
}

.is-public .public-topbar .brand{
  gap:2px;
}

.is-public .public-topbar .brand-logo{
  width:154px;
  height:44px;
}

.is-public .public-topbar .brand-tagline{
  margin-top:0;
  font-size:11px;
  line-height:1.25;
}

.is-public .public-footer .brand{
  gap:2px;
}

.is-public .public-footer .brand-logo{
  width:156px;
  height:44px;
}

.is-public .public-footer .brand-tagline{
  margin-top:0;
  line-height:1.25;
}

.is-public .public-hero{
  min-height:380px;
  border:0;
  box-shadow:0 16px 36px rgba(5,32,60,.22);
  background:
    radial-gradient(900px 320px at 50% -20%, rgba(255,149,2,.20), transparent 65%),
    linear-gradient(180deg, var(--brand-blue-dark), #042447);
  display:grid;
  align-items:center;
  text-align:center;
}

.is-public .public-hero-grid{
  grid-template-columns:1fr;
  gap:16px;
  justify-items:center;
  max-width:860px;
  margin:0 auto;
}

.is-public .public-hero-title{
  color:#ffffff;
  font-size:42px;
}

.is-public .public-hero-sub{
  color:#c9d7ef;
  max-width:720px;
}

.is-public .public-hero-actions{
  justify-content:center;
}

.is-public .public-hero .btn-ghost{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.30);
  color:#ffffff;
}

.is-public .public-hero .btn-ghost:hover{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.44);
}

.is-public .public-hero-points{
  grid-template-columns:repeat(4, minmax(0,1fr));
  width:100%;
  max-width:760px;
}

.is-public .public-hero .pill{
  justify-content:center;
  border-color:rgba(255,149,2,.34);
  background:rgba(255,149,2,.12);
  color:#ffe4bf;
}

@media (max-width: 991px){
  .is-public .public-hero{
    min-height:330px;
  }
  .is-public .public-hero-title{
    font-size:34px;
  }
  .is-public .public-hero-points{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
}

@media (max-width: 575px){
  .is-public .public-hero{
    min-height:300px;
    padding:22px 14px;
  }
  .is-public .public-hero-title{
    font-size:28px;
  }
  .is-public .public-hero-points{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
}

/* Hard override: keep Add Document controls inside card border */
.admin-country-edit .admin-doc-controls-row{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  gap:20px !important;
  width:100% !important;
  justify-content:flex-start !important;
}

.admin-country-edit .admin-doc-controls-row .admin-doc-ctl{
  flex:1 1 180px !important;
  min-width:0 !important;
  max-width:100% !important;
}

.admin-country-edit .admin-doc-controls-row .admin-doc-ctl-required,
.admin-country-edit .admin-doc-controls-row .admin-doc-ctl-scope,
.admin-country-edit .admin-doc-controls-row .admin-doc-ctl-adult,
.admin-country-edit .admin-doc-controls-row .admin-doc-ctl-child{
  flex:0 1 auto !important;
}

.admin-country-edit .admin-doc-controls-row .admin-doc-ctl-scope{
  flex:0 1 auto !important;
}

.admin-country-edit .admin-doc-controls-row .admin-doc-ctl-action{
  flex:0 0 auto !important;
  margin-left:auto !important;
  max-width:100% !important;
}

.admin-country-edit .admin-doc-controls-row .admin-doc-ctl-action .btn{
  width:auto !important;
  max-width:100% !important;
  white-space:nowrap !important;
}

.admin-country-edit .admin-doc-controls-row .admin-inline-field{
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
  flex-wrap:nowrap !important;
}

.admin-country-edit .admin-doc-controls-row .admin-inline-field > label{
  min-width:0 !important;
  margin-right:0 !important;
  white-space:nowrap !important;
}

.admin-country-edit .admin-doc-controls-row .admin-inline-radios{
  gap:8px !important;
}

.admin-country-edit .admin-doc-controls-row .admin-inline-radios-no-wrap{
  flex-wrap:nowrap !important;
  white-space:nowrap !important;
}

@media (max-width: 900px){
  .admin-country-edit .admin-doc-controls-row .admin-doc-ctl{
    flex:1 1 100% !important;
  }
  .admin-country-edit .admin-doc-controls-row .admin-inline-field{
    flex-wrap:wrap !important;
  }
  .admin-country-edit .admin-doc-controls-row .admin-inline-radios-no-wrap{
    flex-wrap:wrap !important;
    white-space:normal !important;
  }
  .admin-country-edit .admin-doc-controls-row .admin-doc-ctl-action{
    margin-left:0 !important;
  }
  .admin-country-edit .admin-doc-controls-row .admin-doc-ctl-action .btn{
    width:100% !important;
  }
}

.staff-app-id-row{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.staff-app-id-links{
  display:inline-flex;
  align-items:center;
  gap:10px;
}

.staff-applicant-status-grid{
  display:grid;
  grid-template-columns:150px 300px;
  gap:12px;
  align-items:start;
  justify-content:start;
}

#applicantStatusModal .uploadbox{
  border:1px dashed #c9d7f2;
  border-radius:12px;
  background:#fbfdff;
  font-family:var(--font-base) !important;
  width:300px;
  max-width:300px;
  justify-self:start;
}

#applicantStatusModal{
  max-width:500px !important;
}

#applicantStatusModal .uploadbox-input[type="file"]{
  font-size:12px;
  max-width:100%;
  width:100%;
}

#applicantStatusModal .uploadbox-file{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  padding-top:6px;
  border-top:1px solid #eef3fb;
}

#applicantStatusModal .uploadbox-name{
  font-size:12px;
  font-weight:600;
  font-family:var(--font-base) !important;
}

#applicantStatusModal .uploadbox-title{
  font-size:13px;
  font-weight:700;
  color:#1f2d3d;
  font-family:var(--font-base) !important;
}

#applicantStatusModal .uploadbox-hint{
  font-size:12px;
  color:#6b7a90;
  font-weight:500;
  font-family:var(--font-base) !important;
}

#applicantStatusModal .uploadbox-ico{
  width:20px;
  height:20px;
  min-width:20px;
  min-height:20px;
  border-radius:6px;
}

#applicantStatusModal .uploadbox-ico svg{
  width:10px;
  height:10px;
}

/* Popup action buttons align with updated global button look */
#applicantStatusModal .btn,
#moveDraftModal .btn,
#contactViewModal .btn,
#docEditModal .btn{
  min-height:36px;
  padding:8px 12px;
  border-radius:10px;
  font-size:13px !important;
  line-height:1.2;
}

@media (max-width: 900px){
  .staff-applicant-status-grid{
    grid-template-columns:1fr;
  }
}

/* Admin Settings: Payment Methods */
.admin-settings-page .admin-pay-form-wrap{
  box-shadow:none;
}

.admin-settings-page .payment-type-radios{
  display:inline-flex;
  flex-wrap:wrap;
  gap:6px;
}

.admin-settings-page .admin-pay-type-fields{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}

.admin-settings-page .admin-pay-layout{
  display:grid;
  grid-template-columns:minmax(360px,1.15fr) minmax(360px,1.25fr);
  gap:14px;
  align-items:start;
}

.admin-settings-page .admin-pay-left,
.admin-settings-page .admin-pay-right{
  display:grid;
  gap:10px;
}

.admin-settings-page .admin-pay-left .field{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:0 !important;
}

.admin-settings-page .admin-pay-left .field > label{
  margin:0;
  min-width:98px;
  white-space:nowrap;
}

.admin-settings-page .admin-pay-left .payment-type-radios,
.admin-settings-page .admin-pay-left .admin-pay-checks,
.admin-settings-page .admin-pay-left .admin-country-status-radios{
  flex:1 1 auto;
  min-width:0;
}

.admin-settings-page .admin-pay-row-bottom{
  display:grid;
  grid-template-columns:minmax(165px,1fr) minmax(140px,1fr) auto;
  gap:10px;
  align-items:end;
}

.admin-settings-page .admin-pay-left-stack{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}

.admin-settings-page .admin-pay-inline{
  margin-bottom:0 !important;
}

.admin-settings-page .admin-pay-checks{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:34px;
  padding:0 2px;
}

.admin-settings-page .admin-pay-checks label{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:0;
  font-size:13px;
  font-weight:500;
}

.admin-settings-page .admin-pay-action{
  margin-bottom:0 !important;
  align-self:end;
  display:flex !important;
  justify-content:flex-start;
}

.admin-settings-page .admin-pay-action .btn{
  min-width:120px;
}

.admin-settings-page .admin-pay-field-details textarea{
  min-height:88px;
}

.admin-settings-page .admin-payment-table .settings-pay-row[draggable="true"]{
  cursor:move;
}

.admin-settings-page .admin-payment-table{
  table-layout:fixed;
}

.admin-settings-page .admin-payment-table th{
  text-transform:none !important;
  letter-spacing:0;
}

.admin-settings-page .admin-payment-table th:nth-child(1),
.admin-settings-page .admin-payment-table td:nth-child(1){
  width:58px;
}

.admin-settings-page .admin-payment-table th:nth-child(2),
.admin-settings-page .admin-payment-table td:nth-child(2){
  width:120px;
}

.admin-settings-page .admin-payment-table th:nth-child(4),
.admin-settings-page .admin-payment-table td:nth-child(4){
  width:150px;
}

.admin-settings-page .admin-payment-table th:nth-child(5),
.admin-settings-page .admin-payment-table td:nth-child(5){
  width:90px;
}

.admin-settings-page .admin-payment-table th:nth-child(6),
.admin-settings-page .admin-payment-table td:nth-child(6){
  width:95px;
}

.admin-settings-page .admin-payment-table .settings-pay-row.is-dragging{
  opacity:.55;
  background:#f3f8ff;
}

.admin-settings-page .admin-pay-method-name{
  font-size:13px;
  font-weight:600;
  color:#1f2d3d;
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}

.admin-settings-page .admin-pay-method-name-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-width:0;
}

.admin-settings-page .admin-pay-copy-ico{
  width:16px;
  height:16px;
  display:inline-grid;
  place-items:center;
  color:#6c7f99;
  text-decoration:none;
  flex:0 0 auto;
}

.admin-settings-page .admin-pay-copy-ico svg{
  width:16px;
  height:16px;
  display:block;
}

.admin-settings-page .admin-pay-copy-ico .ico-check{
  display:none;
}

.admin-settings-page .admin-pay-copy-ico:hover{
  color:#1b5cff;
}

.admin-settings-page .admin-pay-copy-ico.is-copied{
  color:#1e8449;
}

.admin-settings-page .admin-pay-copy-ico.is-copied .ico-copy{
  display:none;
}

.admin-settings-page .admin-pay-copy-ico.is-copied .ico-check{
  display:block;
}

.admin-settings-page .admin-pay-method-details{
  margin-top:2px;
  font-size:12px;
  color:#6b7a90;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  word-break:break-word;
}

.admin-settings-page .admin-pay-modal .card-title{
  font-size:16px !important;
}

.admin-settings-page .admin-pay-modal .admin-pay-type-fields{
  grid-template-columns:1fr;
}

.admin-settings-page .admin-pay-modal .admin-pay-row-bottom{
  grid-template-columns:minmax(170px,1fr) minmax(140px,1fr);
}

/* Partners admin page */
.partners-page .partners-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}

.partners-page .partners-search-input{
  width:260px;
  max-width:100%;
  height:36px;
  font-family:inherit;
  font-size:13px;
  font-weight:500;
  line-height:1.2;
}

.partners-page .partners-individual-search{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
}

.partners-page .partners-individual-search .input{
  max-width:360px;
  height:36px;
  font-family:inherit;
  font-size:13px;
}

.partners-page .partner-summary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 12px;
}

.partners-page .partner-summary-grid > div{
  display:grid;
  gap:2px;
}

.partners-page .partner-summary-grid span{
  font-size:12px;
  color:#6b7a90;
}

.partners-page .partner-summary-grid strong{
  font-size:13px;
  font-weight:700;
  color:#1f2d3d;
}

.partners-page .partner-summary-grid .partner-summary-wide{
  grid-column:1 / -1;
}

/* Application top summary: enforce uniform typography */
.app-top-summary-card,
.app-top-summary-card *{
  font-family:var(--font-base) !important;
}

.app-top-summary-card .app-top-summary-inline{
  font-size:14px !important;
  font-weight:500;
  line-height:1.35;
}

.app-top-summary-card .app-top-summary-inline-item strong,
.app-top-summary-card .app-id-inline strong{
  font-size:13px !important;
  font-weight:700 !important;
  letter-spacing:0 !important;
}

.app-top-summary-card .wizard-step-dot{
  font-size:12px !important;
  font-weight:700 !important;
}

.partners-page .admin-section-nav{
  margin-bottom:0;
}

.partners-page .table-wrap{
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
}

.partners-page .data-table th{
  text-transform:none !important;
  letter-spacing:0 !important;
}

.partners-page .data-table th,
.partners-page .data-table td{
  padding:8px 8px;
  vertical-align:middle !important;
}

.partners-page .partners-table td,
.partners-page .partners-pricing-table td{
  font-size:13px;
}

.partners-page .partners-pricing-table th,
.partners-page .partners-pricing-table td{
  padding:6px 8px !important;
  line-height:1.25;
}

.partners-page .partners-pricing-table .apps-status-text{
  font-size:12px;
  font-weight:700;
}

.partners-page .partner-price-input{
  max-width:150px;
  height:32px;
  min-height:32px;
  padding:4px 8px;
  font-size:13px;
}

.partners-page .partner-save-state{
  display:inline-block;
  min-height:0;
  margin-top:0;
  margin-left:6px;
  font-size:11px;
  font-weight:600;
  color:#6b7a90;
  white-space:nowrap;
}

.partners-page .partner-country-cell{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
}

#partnerEditModal,
#partnerEditModal .field label,
#partnerEditModal .input,
#partnerEditModal .btn{
  font-family:inherit;
}

#partnerEditModal .field{
  margin-bottom:10px;
}

#partnerEditModal .field label{
  font-size:13px;
  font-weight:600;
}

#partnerEditModal .input{
  font-size:13px;
  min-height:38px;
}

#partnerEditModal textarea.input{
  min-height:84px;
}

#partnerMemberModal,
#partnerMemberModal .field label,
#partnerMemberModal .input,
#partnerMemberModal .btn,
#partnerMemberModal select{
  font-family:inherit;
}

#partnerMemberModal .field{
  margin-bottom:10px;
}

#partnerMemberModal .field label{
  font-size:13px;
  font-weight:600;
}

#partnerMemberModal .input,
#partnerMemberModal select{
  font-size:13px;
  min-height:38px;
}

.user-purge-page{
  display:flex;
  flex-direction:column;
  gap:16px;
  font-family:inherit;
}

.user-purge-warning{
  border:1px solid #f4c7b5;
  background:#fff7f3;
  border-radius:10px;
  padding:16px 18px;
  font-family:inherit;
}

.user-purge-warning h3{
  margin:0 0 6px;
  font-size:16px;
  font-family:inherit;
  font-weight:700;
  color:#21314d;
}

.user-purge-warning p{
  margin:0;
  font-size:13px;
  color:#7b4f3b;
  line-height:1.55;
  font-family:inherit;
}

.user-purge-warning p + p{
  margin-top:6px;
}

.user-purge-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  padding:2px 0;
}

.user-purge-filters{
  display:flex;
  align-items:center;
  gap:10px;
  flex:1 1 420px;
}

.user-purge-search{
  flex:1 1 280px;
}

.user-purge-role{
  width:180px;
  max-width:100%;
}

.user-purge-actions{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
  flex:0 0 auto;
}

.user-purge-delete-filtered{
  border-color:#f4c7b5;
  color:#b14f2c;
}

.user-purge-search,
.user-purge-role,
.user-purge-actions .btn{
  font-family:inherit;
  font-size:13px;
}

.user-purge-name{
  font-weight:600;
}

.user-purge-protected{
  margin-top:3px;
  font-size:12px;
  color:#9a7a17;
}

.user-purge-inline-form{
  margin:0;
}

@media (max-width: 768px){
  .user-purge-filters,
  .user-purge-actions{
    width:100%;
  }

  .user-purge-filters{
    flex-direction:column;
  }

  .user-purge-role{
    width:100%;
  }
}

.partners-page .partners-pricing-table td:nth-child(5){
  display:flex;
  align-items:center;
}

@media (max-width: 900px){
  .partners-page .partners-topbar{
    flex-direction:column;
    align-items:stretch;
  }
  .partners-page .partners-search-input{
    width:100%;
  }
  .partners-page .partner-price-input{
    max-width:100%;
  }
}

@media (max-width: 1100px){
  .admin-settings-page .admin-pay-layout{
    grid-template-columns:1fr;
  }
  .admin-settings-page .admin-pay-type-fields{
    grid-template-columns:1fr;
  }
  .admin-settings-page .admin-pay-row-bottom{
    grid-template-columns:1fr;
  }
  .admin-settings-page .admin-pay-action .btn{
    width:100%;
  }
}

/* Payments page */
.payments-page{
  font-size:13px;
}

.payments-page .table-wrap .data-table th,
.payments-page .table-wrap .data-table td{
  font-size:13px;
}

.payments-page .table-wrap .data-table th{
  text-transform:none;
  letter-spacing:0;
}

.payments-page .kpi-grid{
  gap:10px;
}

.payments-page .pay-kpi{
  border-radius:10px;
  padding:11px 12px;
  border:1px solid #e5edf8;
  box-shadow:none;
}

.payments-page .pay-kpi h3{
  margin:0 0 4px;
  font-size:12px;
  letter-spacing:.01em;
  text-transform:none;
}

.payments-page .pay-kpi p{
  margin:0;
  font-size:18px;
  line-height:1.2;
  font-weight:700;
}

.payments-page .pay-kpi .muted{
  margin-top:3px;
  font-size:12px;
}

.payments-page .pay-kpi-due{
  background:#fff8f1;
  border-color:#f8dcc0;
}

.payments-page .pay-kpi-due h3,
.payments-page .pay-kpi-due p{
  color:#a35a00;
}

.payments-page .pay-kpi-pending{
  background:#f4f9ff;
  border-color:#d9e8ff;
}

.payments-page .pay-kpi-pending h3,
.payments-page .pay-kpi-pending p{
  color:#1f5eab;
}

.payments-page .pay-kpi-paid{
  background:#f4fff8;
  border-color:#d4f0df;
}

.payments-page .pay-kpi-paid h3,
.payments-page .pay-kpi-paid p{
  color:#1d7a4b;
}

.payments-methods-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}

.payments-method-item{
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  padding:8px 9px;
  display:grid;
  gap:3px;
  font-size:12px;
}

.payments-page .payments-method-item strong{
  font-size:12px;
  font-weight:700;
}

.payments-page .payments-method-item .muted{
  font-size:11px;
  line-height:1.35;
}

.pay-proof-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.pay-row-delete-form{
  display:inline-block;
  margin:0;
}

.nat-charge-note{
  font-size:12px;
  font-weight:700;
  color:#c0392b;
}

.ocr-nationality-view{
  display:inline-flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.payments-page .pay-row-highlight{
  animation: payRowFlash 2s ease-in-out 1;
}

@keyframes payRowFlash{
  0%{ background:#fff9d6; }
  20%{ background:#fff4b8; }
  45%{ background:#fffbe5; }
  70%{ background:#fff4b8; }
  100%{ background:transparent; }
}

#payReviewModal{
  max-width:560px !important;
}

#payReviewModal .pay-review-row{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:10px;
  align-items:center;
  margin-bottom:8px;
}

#payReviewModal .pay-review-row > label{
  margin:0;
  font-size:12px;
  color:#5f7088;
  font-weight:700;
}

#payReviewModal .pay-review-row .admin-settings-currency-value{
  font-size:13px;
  padding:8px 10px;
}

#payReviewModal .pay-review-proof-links{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}

#payReviewModal .pay-review-row-note{
  align-items:start;
}

#payReviewModal .pay-review-row-note .admin-settings-currency-value{
  min-height:60px;
}

@media (max-width: 900px){
  .payments-methods-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (max-width: 640px){
  .payments-page .kpi-grid{
    grid-template-columns:1fr !important;
  }
  .payments-methods-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #payReviewModal .pay-review-row{
    grid-template-columns:1fr;
    gap:5px;
  }
}

@media (max-width: 420px){
  .payments-methods-grid{
    grid-template-columns:1fr;
  }
}

/* Applications page: stronger status KPI colors (match payment-style visibility) */
.applications-page .applications-kpi-grid .kpi-card{
  border:1px solid transparent;
  box-shadow:0 8px 22px rgba(17,28,45,.06);
}

.applications-page .applications-kpi-grid .kpi-card h3{
  font-size:13px;
  font-weight:700;
}

.applications-page .applications-kpi-grid .kpi-card p{
  font-size:22px;
  font-weight:800;
}

.applications-page .applications-kpi-grid .kpi-soft-users{
  background:linear-gradient(180deg,#f0ecff 0%,#e6dfff 100%) !important;
  border-color:#d7ccff;
}

.applications-page .applications-kpi-grid .kpi-soft-users::before{
  background:#6f3fd6 !important;
}

.applications-page .applications-kpi-grid .kpi-soft-pending{
  background:linear-gradient(180deg,#fff6e8 0%,#ffe8c7 100%) !important;
  border-color:#ffd9a2;
}

.applications-page .applications-kpi-grid .kpi-soft-pending::before{
  background:#cf7a00 !important;
}

.applications-page .applications-kpi-grid .kpi-soft-processing{
  background:linear-gradient(180deg,#eaf5ff 0%,#dcedff 100%) !important;
  border-color:#c7ddff;
}

.applications-page .applications-kpi-grid .kpi-soft-processing::before{
  background:#0b74c9 !important;
}

.applications-page .applications-kpi-grid .kpi-soft-app{
  background:linear-gradient(180deg,#edf4ff 0%,#dce8ff 100%) !important;
  border-color:#c6d8ff;
}

.applications-page .applications-kpi-grid .kpi-soft-app::before{
  background:#1b5cff !important;
}

.applications-page .applications-kpi-grid .kpi-soft-pay-paid{
  background:linear-gradient(180deg,#ecfbf2 0%,#daf5e6 100%) !important;
  border-color:#c2ebd6;
}

.applications-page .applications-kpi-grid .kpi-soft-pay-paid::before{
  background:#1d8b48 !important;
}

/* Applications page dedicated status cards */
.applications-page .applications-kpi-grid .app-kpi{
  border:1px solid transparent !important;
  box-shadow:0 8px 20px rgba(15,23,42,.06) !important;
}

.applications-page .applications-kpi-grid{
  grid-template-columns:repeat(5, minmax(0,1fr)) !important;
  width:100%;
}

.applications-page .applications-kpi-grid .app-kpi h3{
  font-size:13px !important;
  font-weight:700 !important;
  margin-bottom:4px !important;
  color:#344861 !important;
}

.applications-page .applications-kpi-grid .app-kpi p{
  font-size:22px !important;
  font-weight:800 !important;
}

.applications-page .applications-kpi-grid .app-kpi-draft{
  background:#f6f8fb !important;
  border-color:#dde4ef !important;
}
.applications-page .applications-kpi-grid .app-kpi-draft p{
  color:#4f5c70 !important;
}

.applications-page .applications-kpi-grid .app-kpi-submitted{
  background:#eef2ff !important;
  border-color:#cfd5ff !important;
}
.applications-page .applications-kpi-grid .app-kpi-submitted p{
  color:#4338ca !important;
}

.applications-page .applications-kpi-grid .app-kpi-processing{
  background:#eef6ff !important;
  border-color:#d2e5ff !important;
}
.applications-page .applications-kpi-grid .app-kpi-processing p{
  color:#174986 !important;
}

.applications-page .applications-kpi-grid .app-kpi-embassy{
  background:#f4efff !important;
  border-color:#ddd0ff !important;
}
.applications-page .applications-kpi-grid .app-kpi-embassy p{
  color:#6d28d9 !important;
}

.applications-page .applications-kpi-grid .app-kpi-completed{
  background:#effaf2 !important;
  border-color:#cdeed7 !important;
}
.applications-page .applications-kpi-grid .app-kpi-completed p{
  color:#156f38 !important;
}

@media (max-width: 1280px){
  .applications-page .applications-kpi-grid{
    grid-template-columns:repeat(3, minmax(0,1fr)) !important;
  }
}

@media (max-width: 900px){
  .applications-page .applications-kpi-grid{
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
  }
}

@media (max-width: 640px){
  .applications-page .applications-kpi-grid{
    grid-template-columns:1fr !important;
  }
}
.applications-id-wrap{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.applications-booking-input{
  max-width:140px;
  height:30px;
  font-size:12px;
  padding:4px 8px;
}
.applications-booking-text{
  font-size:12px;
  font-weight:600;
  color:#475569;
}
.payments-partner-app-grid{
  max-height:220px;
  overflow:auto;
  border:1px solid #e3ebf8;
  border-radius:10px;
  padding:8px;
  display:grid;
  gap:8px;
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.payments-partner-app-item{
  display:flex;
  align-items:flex-start;
  gap:8px;
  font-size:13px;
  color:#1f2d3d;
  border:1px solid #eef3fb;
  border-radius:8px;
  padding:8px;
  background:#fff;
}
.payments-partner-app-item input{
  margin-top:2px;
}

.partner-users-page,
.partner-users-page *{
  font-family:var(--font-base) !important;
}

.partner-users-page{
  max-width:980px;
}

.partner-users-overview{
  display:grid;
  grid-template-columns:1.35fr .85fr;
  gap:14px;
  margin-bottom:14px;
}

.partner-users-overview-card{
  border:1px solid #dce7fb;
  border-radius:12px;
  background:linear-gradient(180deg,#f8fbff 0%,#ffffff 100%);
  padding:16px 18px;
  box-shadow:0 10px 24px rgba(15,23,42,.04);
}

.partner-users-overview-card-accent{
  border-color:#d7e9dd;
  background:linear-gradient(180deg,#f6fcf8 0%,#ffffff 100%);
}

.partner-users-overview-label{
  font-size:12px;
  font-weight:700;
  color:#6b7a90;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:6px;
}

.partner-users-overview-value{
  font-size:22px;
  line-height:1.2;
  font-weight:700;
  color:var(--blue-ink);
}

.partner-users-overview-sub{
  margin-top:6px;
  font-size:12px;
  color:#72829a;
}

.partner-users-page .card-title{
  font-size:22px;
}

.partner-users-page .card-subtitle,
.partner-users-page .help{
  font-size:13px;
  line-height:1.45;
}

.partner-users-page .input,
.partner-users-page select,
.partner-users-page textarea,
.partner-users-page .btn{
  font-family:var(--font-base) !important;
  font-size:13px !important;
}

.partner-users-page .input,
.partner-users-page select{
  min-height:38px;
}

.partner-users-page .um-list-head h3{
  font-size:18px;
  font-weight:700;
  letter-spacing:0;
}

.partner-users-list-card{
  border-radius:14px;
  border:1px solid #dce7fb;
  box-shadow:0 14px 34px rgba(15,23,42,.05);
  background:#fff;
}

.partner-users-list-head{
  gap:14px;
  padding-bottom:12px;
  margin-bottom:0;
}

.partner-users-list-help{
  margin-top:4px;
}

.partner-users-tools{
  display:flex;
  align-items:center;
  gap:10px;
}

.partner-users-search{
  width:220px;
  min-height:36px !important;
}

.partner-users-page .data-table th{
  text-transform:none;
  letter-spacing:0;
  font-size:13px;
  color:#51627b;
}

.partner-users-page .data-table td{
  font-size:13px;
}

.partner-users-table td:first-child,
.partner-users-table th:first-child{
  width:72px;
}

.partner-users-table tr:hover td{
  background:#fbfdff;
}

.partner-users-role{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 9px;
  border-radius:999px;
  font-size:11px;
  font-weight:700;
  color:#33557a;
  background:#eef5ff;
  border:1px solid #d7e5fb;
}

#partnerUserModal,
#partnerUserModal .field label,
#partnerUserModal .input,
#partnerUserModal select,
#partnerUserModal textarea,
#partnerUserModal .btn,
#partnerUserModal .help{
  font-family:var(--font-base) !important;
}

#partnerUserModal .field label{
  font-size:13px;
  font-weight:600;
  color:var(--blue-ink);
}

#partnerUserModal .card-title{
  font-size:16px !important;
  font-weight:700;
  color:var(--blue-ink);
}

#partnerUserModal .input,
#partnerUserModal select{
  font-size:13px !important;
  min-height:38px;
}

#partnerUserModal .help{
  font-size:12px;
}

#partnerUserModal{
  border-radius:14px;
  border:1px solid #dce7fb;
  box-shadow:0 24px 60px rgba(15,23,42,.16);
}

#partnerUserModal .form{
  display:grid;
  gap:12px;
}

#partnerUserModal .field{
  margin-bottom:0;
}

@media (max-width: 900px){
  .partner-users-overview{
    grid-template-columns:1fr;
  }
}

@media (max-width: 700px){
  .partner-users-tools{
    width:100%;
    flex-direction:column;
    align-items:stretch;
  }

  .partner-users-search{
    width:100%;
  }
}
@media (max-width: 1024px){
  .payments-partner-app-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 640px){
  .payments-partner-app-grid{ grid-template-columns:1fr; }
}

.onboarding-overlay{
  position:fixed;
  inset:0;
  z-index:1200;
  background:rgba(10, 24, 43, .48);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  animation:onboardingFadeIn .22s ease;
}

.onboarding-overlay.is-closing{
  opacity:0;
  transition:opacity .2s ease;
}

.sidebar-tour-icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  margin-left:8px;
  border:0;
  border-radius:6px;
  background:rgba(255,255,255,.08);
  color:#dfe9fb;
  cursor:pointer;
  transition:background .18s ease, color .18s ease;
}

.sidebar-tour-icon-btn:hover{
  background:rgba(255,255,255,.14);
  color:#fff;
}

.sidebar-tour-icon-btn svg{
  width:14px;
  height:14px;
  display:block;
}

.onboarding-overlay[hidden],
.onboarding-side-tip[hidden]{
  display:none !important;
}

.side-link.is-tour-target{
  position:relative;
  background:rgba(255,255,255,.13);
  border-color:rgba(255,255,255,.18);
  box-shadow:0 0 0 2px rgba(56, 189, 120, .24);
  z-index:1210;
}

.onboarding-focus-mask{
  position:fixed;
  inset:0;
  z-index:1180;
  background:rgba(10, 24, 43, .18);
}

.onboarding-side-tip{
  position:fixed;
  z-index:1210;
  width:min(380px, calc(100vw - 320px));
}

.onboarding-side-card{
  background:#fff;
  border-radius:16px;
  box-shadow:0 24px 60px rgba(17, 35, 67, .18);
  border:1px solid #dfe8f5;
  padding:18px;
  position:relative;
  font-family:var(--font-base) !important;
}

body.onboarding-desktop-active .main{
  filter:blur(5px);
  opacity:.42;
  transition:filter .18s ease, opacity .18s ease;
}

body.onboarding-desktop-active .sidebar-brand,
body.onboarding-desktop-active .sidebar-brand-meta,
body.onboarding-desktop-active .sidebar-role,
body.onboarding-desktop-active .sidebar-footer,
body.onboarding-desktop-active .sidebar-tour-icon-btn,
body.onboarding-desktop-active .sidebar-nav .side-link:not(.is-tour-target){
  filter:blur(4px);
  opacity:.42;
  transition:filter .18s ease, opacity .18s ease;
}

body.onboarding-desktop-active .sidebar-nav .side-link.is-tour-target,
body.onboarding-desktop-active .onboarding-side-tip{
  filter:none !important;
  opacity:1 !important;
}

.onboarding-side-card::before{
  content:"";
  position:absolute;
  left:-10px;
  top:var(--onboarding-arrow-top, 36px);
  width:20px;
  height:20px;
  background:#fff;
  border-left:1px solid #dfe8f5;
  border-bottom:1px solid #dfe8f5;
  transform:rotate(45deg);
}

.onboarding-side-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}

.onboarding-modal{
  width:min(640px, 100%);
  background:#fff;
  border-radius:16px;
  box-shadow:0 28px 70px rgba(17, 35, 67, .22);
  padding:22px 22px 18px;
  font-family:var(--font-base) !important;
}

.onboarding-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}

.onboarding-eyebrow{
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#2b6cb0;
  margin-bottom:6px;
}

.onboarding-modal-head h3{
  margin:0;
  font-size:22px;
  line-height:1.25;
  font-family:var(--font-base) !important;
}

.onboarding-progress{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:14px;
}

.onboarding-progress-bar{
  flex:1 1 auto;
  height:8px;
  background:#e7edf6;
  border-radius:999px;
  overflow:hidden;
}

.onboarding-progress-bar span{
  display:block;
  height:100%;
  width:0;
  background:linear-gradient(90deg, #1f9d55 0%, #2fb878 100%);
  transition:width .2s ease;
}

.onboarding-progress-label{
  font-size:12px;
  font-weight:700;
  color:#5c6b82;
  white-space:nowrap;
}

.onboarding-card{
  margin-top:16px;
  border:1px solid #e6edf7;
  border-radius:14px;
  padding:18px;
  background:linear-gradient(180deg, #fbfdff 0%, #f7fafe 100%);
}

.onboarding-menu-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:30px;
  padding:0 12px;
  border-radius:999px;
  background:#e9f2ff;
  color:#1e4f91;
  font-size:12px;
  font-weight:700;
}

.onboarding-copy{
  margin:14px 0 0;
  font-size:15px;
  line-height:1.7;
  color:#2e3f58;
}

.onboarding-dots{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:16px;
}

.onboarding-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  border:0;
  background:#cad6e6;
  padding:0;
  cursor:pointer;
  transition:transform .18s ease, background .18s ease;
}

.onboarding-dot.is-active{
  background:#1f9d55;
  transform:scale(1.2);
}

.onboarding-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  margin-top:18px;
  flex-wrap:wrap;
}

@keyframes onboardingFadeIn{
  from{opacity:0}
  to{opacity:1}
}

@media (max-width: 768px){
  .onboarding-focus-mask{
    display:none !important;
  }

  .onboarding-side-tip{
    display:none !important;
  }

  .onboarding-overlay{
    padding:14px;
  }

  .onboarding-modal{
    padding:18px 16px 16px;
    border-radius:14px;
  }

  .onboarding-modal-head,
  .onboarding-progress,
  .onboarding-actions{
    flex-direction:column;
    align-items:stretch;
  }
}
