:root{--teal:#0d837b;--teal2:#18b8aa;--dark:#126f69;--bg:#f4f7fb;--text:#13233a;--muted:#748198;--line:#e3e8f0;--danger:#cc4050}*{box-sizing:border-box}body{margin:0;font-family:"Sakkal Majalla","Traditional Arabic",Tahoma,Arial,sans-serif;background:var(--bg);color:var(--text)}a{text-decoration:none;color:var(--teal)}.app-shell{min-height:100vh}.sidebar{position:fixed;inset-block:0;inset-inline-end:0;width:290px;background:linear-gradient(180deg,#15998e,#126d68);padding:26px 18px;color:white;z-index:30;overflow:auto}.brand{text-align:center;padding:0 10px 24px;border-bottom:1px solid #ffffff33}.brand-mark,.logo-circle{width:72px;height:72px;border-radius:18px;display:grid;place-items:center;margin:0 auto 14px;background:#ffffff1f;border:1px solid #ffffff40;font-weight:bold}.sidebar nav{display:grid;gap:8px;margin-top:18px}.sidebar nav a,.side-logout{display:block;width:100%;padding:15px;border:0;border-radius:15px;background:#ffffff0e;color:white;text-align:start;font-weight:bold}.sidebar nav a:hover,.sidebar nav a:first-child{background:#ffffff1f;box-shadow:inset -4px 0 #86f1e7}.side-logout{margin-top:35px;cursor:pointer}.main{margin-inline-end:290px;min-height:100vh}.topbar{height:78px;background:white;display:flex;align-items:center;gap:20px;padding:0 35px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.topbar h1{font-size:25px;flex:1}.lang{background:#eef4f6;border-radius:30px;padding:6px;display:flex;gap:5px}.lang a{padding:7px 12px;border-radius:20px}.lang a:first-child{background:var(--teal);color:white}.menu-btn{display:none;border:0;background:transparent;font-size:25px}.content{padding:34px;max-width:1450px;margin:auto}.hero{background:linear-gradient(110deg,#0d7d76,#31ac9e);color:white;padding:38px 48px;border-radius:28px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 15px 30px #0f807529;margin-bottom:28px}.hero h2{font-size:38px;margin:0 0 8px}.hero p{opacity:.8}.hero-icon{font-size:65px;opacity:.6}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:22px 0}.stat,.card{background:white;border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 6px 18px #17223b0a}.stat strong{font-size:31px;color:var(--teal);display:block}.stat span{color:var(--muted)}.card{margin-bottom:20px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.row-link{display:grid;grid-template-columns:180px 1fr auto;gap:18px;padding:16px 8px;border-top:1px solid var(--line);align-items:center}.badge{background:#e2f7f4;color:#0b766e;border-radius:22px;padding:6px 12px;white-space:nowrap}.btn{display:inline-block;background:linear-gradient(90deg,var(--teal),var(--teal2));border:0;color:white;padding:13px 24px;border-radius:13px;font-weight:bold;cursor:pointer;text-align:center}.btn.secondary{background:#eef7f6;color:var(--teal);border:1px solid #b9e5e1}.btn.small{padding:8px 14px;font-size:13px}.danger-wide{width:100%;background:linear-gradient(90deg,#187d75,#0eaaa0)}.alert{padding:14px 18px;border-radius:12px;margin-bottom:18px}.success{background:#e6f8f2;color:#176348}.danger{background:#ffeded;color:#9a2534}.info{background:#e9f6fb;color:#246783}.muted,.note{color:var(--muted)}.guest{min-height:100vh;background:linear-gradient(120deg,#0e978d,#12665f);display:grid;place-items:center;padding:30px}.guest-lang{position:fixed;top:22px;inset-inline-start:22px;background:white;padding:8px;border-radius:30px}.guest-lang a{padding:6px 12px}.login-card{width:min(560px,94vw);background:white;border-radius:28px;padding:42px;box-shadow:0 20px 60px #002d2a4d;text-align:center}.login-card .logo-circle{background:#f1f7f7;color:var(--teal);border-color:#dcefee}.stack{display:grid;gap:14px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.form-grid .full{grid-column:1/-1}label{display:grid;gap:7px;text-align:start;color:#4c5870}input,select,textarea{width:100%;border:1px solid #dbe1eb;background:#f4f7fc;border-radius:12px;padding:13px;font:inherit;min-height:46px}textarea{min-height:90px}.inline{display:flex;align-items:center;gap:7px}.inline input{width:auto}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-bottom:22px}.choice{background:white;border:2px solid var(--line);border-radius:20px;padding:24px;cursor:pointer;position:relative}.choice input{position:absolute;opacity:0}.choice:has(input:checked){border-color:var(--teal);box-shadow:0 0 0 4px #0d837b18}.choice strong,.choice small{display:block;margin-top:8px}.choice-no{font-size:28px;font-weight:bold;color:var(--teal)}.steps{display:flex;gap:8px;margin-bottom:20px;overflow:auto}.steps span{background:white;border:1px solid var(--line);border-radius:20px;padding:10px 16px;white-space:nowrap}.steps .active{background:var(--teal);color:white}.academic-row,.review-item{display:grid;grid-template-columns:110px 1fr 1fr 1fr auto;gap:10px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.summary-grid div{background:#f7f9fc;border-radius:14px;padding:15px}.summary-grid b,.summary-grid span{display:block}.summary-grid span{font-size:20px;margin-top:6px;color:var(--teal)}.review-head{display:flex;justify-content:space-between;align-items:center;background:white;padding:20px;border-radius:20px;margin-bottom:20px}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.doc-review iframe{width:100%;height:480px;border:1px solid var(--line);border-radius:10px;margin:10px 0}.inline-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.inline-form input,.inline-form select{width:auto;flex:1}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:750px}th,td{padding:14px;border-bottom:1px solid var(--line);text-align:start}th{color:#59667b}.result.accepted{border-inline-start:6px solid #18a273}.result.rejected{border-inline-start:6px solid var(--danger)}@media(max-width:900px){.sidebar{transform:translateX(110%);transition:.2s;width:270px}.sidebar.open{transform:translateX(0)}[dir=ltr] .sidebar{transform:translateX(-110%)}[dir=ltr] .sidebar.open{transform:translateX(0)}.main{margin:0}.menu-btn{display:block}.content{padding:18px}.topbar{padding:0 16px}.topbar h1{font-size:19px}.stats{grid-template-columns:repeat(2,1fr)}.hero{padding:25px}.hero h2{font-size:27px}.form-grid,.choice-grid,.review-grid,.summary-grid{grid-template-columns:1fr}.academic-row,.review-item{grid-template-columns:1fr}.row-link{grid-template-columns:1fr}.doc-review iframe{height:70vh}.login-card{padding:26px}.form-grid .full{grid-column:auto}}.preference-item{display:grid;grid-template-columns:40px 1fr 40px 40px 40px;gap:8px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;margin:8px 0}.preference-item button{border:0;border-radius:8px;padding:8px;cursor:pointer}.preference-item input{display:none}
.education-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.verify-field{border:1px solid var(--line);border-radius:15px;padding:14px;background:#fbfcfe;display:grid;gap:7px}.verify-field small{color:var(--muted)}.verify-field-form{display:grid;gap:7px;margin-top:4px}.verify-wide{border-top:1px solid var(--line);margin-top:18px;padding-top:18px;display:flex;justify-content:space-between;gap:18px;align-items:center}.doc-review-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.compact-form{margin-top:12px}.top-gap{margin-top:14px}.audit-mini{padding:9px 0;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}.preference-summary{display:flex;flex-wrap:wrap;gap:8px}.result{padding:18px;border-radius:14px;background:#f6faf9}.review-item{grid-template-columns:minmax(100px,1fr) minmax(160px,1.5fr) minmax(120px,1fr) minmax(130px,1fr) minmax(110px,1fr) minmax(180px,1.4fr) auto}@media(max-width:1100px){.education-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.review-item{grid-template-columns:1fr 1fr}}@media(max-width:700px){.education-review-grid{grid-template-columns:1fr}.verify-wide{display:grid}.review-item{grid-template-columns:1fr}.preference-summary{display:grid}.preference-summary .badge{white-space:normal}}
.settings-block{border:1px solid var(--line);border-radius:14px;padding:14px;margin:12px 0;background:#fbfcfe}.settings-block summary{cursor:pointer}.danger-button{background:var(--danger)}.report-filters{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px}.report-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.report-table{min-width:1400px}.row-link small{display:block;margin-top:5px}@media(max-width:1050px){.report-filters{grid-template-columns:repeat(2,minmax(150px,1fr))}}@media(max-width:700px){.report-filters{grid-template-columns:1fr}.report-actions{display:grid;grid-template-columns:1fr 1fr}.report-actions .btn{width:100%}}

/* University visual identity */
.university-logo{display:block;object-fit:contain;height:auto}
.login-logo{width:180px;max-width:52vw;max-height:185px;margin:0 auto 18px}
.brand-logo{width:138px;max-width:78%;max-height:145px;margin:0 auto 14px;filter:drop-shadow(0 4px 8px #002d2a35)}
@media(max-width:900px){.login-logo{width:150px;max-height:155px}.brand-logo{width:120px;max-height:125px}}

/* Direct birth-date entry: avoids month-by-month navigation on mobile browsers */
.birth-date-fields{display:grid;grid-template-columns:minmax(90px,.8fr) minmax(170px,1.4fr) minmax(135px,1fr);gap:10px;direction:rtl}
.birth-date-fields input,.birth-date-fields select{margin:0}
.field-help{display:block;color:var(--muted);font-size:12px;margin-top:2px}
@media(max-width:600px){.birth-date-fields{grid-template-columns:1fr 1.35fr}.birth-date-fields input[name="birth_year"]{grid-column:1/-1}}

/* Deployment/version verification */
.version-badge{margin-top:14px;text-align:center;font-size:11px;color:#d7fffa;opacity:.85;direction:ltr}.guest-version{margin-top:18px;font-size:11px;color:var(--muted);direction:ltr}
.diagnostic-grid{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.warning-badge{background:#fff4d9;color:#8a6200}

/* ==========================================================
   UALK Admissions - Mobile UI hardening (v2.1.5 mobile patch)
   ========================================================== */
html,body{max-width:100%;overflow-x:hidden}
img,svg,video,canvas{max-width:100%}
.app-shell,.main,.content,.card,.hero,.topbar{min-width:0;max-width:100%}
.main{width:auto}
.content>*{min-width:0}
.card,.hero{overflow-wrap:anywhere}
.card-head>*{min-width:0}
.row-link>*{min-width:0;max-width:100%;overflow-wrap:anywhere}
.table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}

.sidebar-backdrop{display:none}
.sidebar-close{display:none}

@media(max-width:900px){
  body.mobile-menu-open{overflow:hidden;touch-action:none}

  .sidebar{
    inset-block:0;
    right:0;
    left:auto;
    width:min(84vw,320px);
    max-width:320px;
    padding:18px 14px 22px;
    transform:translateX(105%);
    transition:transform .22s ease;
    box-shadow:-16px 0 38px rgba(7,38,55,.22);
    z-index:1002;
    overscroll-behavior:contain;
  }
  .sidebar.open{transform:translateX(0)}
  [dir=ltr] .sidebar{
    left:0;
    right:auto;
    transform:translateX(-105%);
    box-shadow:16px 0 38px rgba(7,38,55,.22);
  }
  [dir=ltr] .sidebar.open{transform:translateX(0)}

  .sidebar-backdrop{
    display:block;
    position:fixed;
    inset:0;
    background:rgba(11,31,48,.42);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease,visibility .2s ease;
    z-index:1001;
  }
  .sidebar-backdrop.open{opacity:1;visibility:visible;pointer-events:auto}

  .sidebar-close{
    display:grid;
    place-items:center;
    position:absolute;
    top:10px;
    inset-inline-start:10px;
    width:40px;
    height:40px;
    border:1px solid rgba(255,255,255,.35);
    border-radius:12px;
    background:rgba(255,255,255,.14);
    color:#fff;
    font-size:25px;
    line-height:1;
    cursor:pointer;
  }

  .brand{padding-top:12px;padding-bottom:16px}
  .brand-logo{width:94px;max-height:105px;margin-bottom:8px}
  .sidebar nav{gap:6px;margin-top:13px}
  .sidebar nav a,.side-logout{padding:12px 13px;border-radius:12px;font-size:15px}
  .side-logout{margin-top:20px}

  .main{margin:0!important;width:100%;max-width:100vw;overflow-x:hidden}
  .topbar{
    min-height:66px;
    height:auto;
    padding:10px 12px;
    gap:10px;
    width:100%;
  }
  .topbar h1{
    margin:0;
    font-size:clamp(17px,4.5vw,21px);
    line-height:1.35;
    min-width:0;
    overflow-wrap:anywhere;
  }
  .menu-btn{
    display:grid;
    place-items:center;
    flex:0 0 42px;
    width:42px;
    height:42px;
    border-radius:12px;
    background:#eef7f6;
    color:var(--teal);
    cursor:pointer;
  }
  .lang{flex:0 0 auto;font-size:13px;padding:4px}
  .lang span,.lang a{padding:5px 7px}

  .content{width:100%;padding:14px 12px 28px;margin:0;overflow-x:hidden}
  .hero{
    width:100%;
    padding:22px 18px;
    border-radius:20px;
    gap:16px;
    margin-bottom:18px;
  }
  .hero h2{font-size:clamp(24px,7vw,31px);line-height:1.25;overflow-wrap:anywhere}
  .hero p{font-size:16px;margin-bottom:0}
  .hero-icon{font-size:48px;flex:0 0 auto}

  .card,.stat{width:100%;padding:18px 14px;border-radius:16px}
  .card-head{align-items:stretch;flex-wrap:wrap;gap:12px}
  .card-head h2,.card-head h3{margin:0;min-width:0;overflow-wrap:anywhere}

  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .stat strong{font-size:26px}

  .form-grid,.choice-grid,.review-grid,.summary-grid{grid-template-columns:minmax(0,1fr)}
  .form-grid>*,.choice-grid>*,.review-grid>*,.summary-grid>*{min-width:0}
  input,select,textarea{max-width:100%;min-width:0;font-size:16px}

  .academic-row,.review-item,.row-link{grid-template-columns:minmax(0,1fr);width:100%;gap:9px}
  .row-link{padding:14px 4px}
  .row-link .btn{justify-self:stretch;width:100%}
  .badge{white-space:normal;width:max-content;max-width:100%;overflow-wrap:anywhere}

  .preference-item{
    grid-template-columns:34px minmax(0,1fr) 36px 36px 36px;
    gap:5px;
    padding:8px;
  }
  .preference-item>*{min-width:0}

  .report-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .report-actions>*{min-width:0}

  .doc-review iframe{width:100%;max-width:100%;height:64vh}
}

@media(max-width:600px){
  .content{padding-inline:10px}
  .topbar{padding-inline:10px}
  .topbar h1{font-size:18px}
  .lang{font-size:12px}

  .hero{align-items:flex-start;padding:20px 16px}
  .hero-icon{font-size:42px}

  .stats{grid-template-columns:minmax(0,1fr)}
  .card,.stat{padding:16px 12px}
  .card-head{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}
  .card-head .btn{width:100%}

  .btn{width:100%;padding:13px 16px}
  .inline-form{display:grid;grid-template-columns:minmax(0,1fr);width:100%}
  .inline-form input,.inline-form select,.inline-form .btn{width:100%}

  .preference-item{grid-template-columns:30px minmax(0,1fr) 34px 34px;}
  .preference-item>*:nth-child(5){grid-column:1/-1;width:100%}

  .report-actions{grid-template-columns:minmax(0,1fr)}
  .birth-date-fields{grid-template-columns:minmax(0,1fr)}
  .birth-date-fields input[name="birth_year"]{grid-column:auto}
}


/* ==========================================================
   UALK Admissions - Global table readability guard (R1)
   Applies to every table in Candidate / Staff / Faculty / Super Admin.
   ========================================================== */
.table-wrap{
  position:relative;
  width:100%;
  max-width:100%;
  overflow-x:auto!important;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
}

.table-wrap > table,
table.ualk-responsive-table{
  width:max-content!important;
  min-width:100%!important;
  max-width:none!important;
  table-layout:auto!important;
  border-collapse:collapse;
}

.table-wrap th,
.table-wrap td{
  padding:13px 14px;
  vertical-align:middle;
  text-align:start;
  white-space:nowrap!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  hyphens:none!important;
  line-height:1.45;
  min-width:88px;
  max-width:none;
}

.table-wrap th{
  font-weight:700;
  color:#59667b;
  background:#fff;
}

.table-wrap tbody tr:hover td{
  background:#fbfdfd;
}

/* E-mail addresses and identifiers must never be broken character-by-character. */
.table-wrap .table-email{
  direction:ltr;
  unicode-bidi:plaintext;
  text-align:left;
  min-width:210px!important;
  white-space:nowrap!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}

/* Status/count/action columns stay compact but readable. */
.table-wrap .table-status{
  min-width:105px!important;
  text-align:center;
}
.table-wrap .table-number{
  min-width:78px!important;
  text-align:center;
  font-variant-numeric:tabular-nums;
}
.table-wrap .table-actions{
  min-width:115px!important;
  text-align:center;
}
.table-wrap .table-actions form{
  margin:0;
}

/* Only genuinely long prose is allowed to wrap. */
.table-wrap .table-long{
  white-space:normal!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
  hyphens:none!important;
  min-width:300px!important;
  width:380px;
  max-width:540px!important;
  line-height:1.55;
}
.table-wrap .table-long code,
.table-wrap .table-long pre{
  white-space:pre-wrap;
  overflow-wrap:break-word;
  word-break:break-word;
}

/* Forms embedded in table cells must not collapse to a few pixels. */
.table-wrap td .inline-form{
  min-width:260px;
}
.table-wrap td input,
.table-wrap td select{
  min-width:120px;
}
.table-wrap td .btn{
  white-space:nowrap;
  width:auto;
}

/* Report tables may be wider, but are always scrolled instead of compressed. */
.table-wrap .report-table{
  min-width:1400px!important;
}

/* Hint injected by app.js when a table is wider than its container. */
.table-scroll-hint{
  display:none;
  align-items:center;
  gap:7px;
  margin:0 0 8px;
  padding:8px 11px;
  border-radius:10px;
  background:#eef8f7;
  color:#0b766e;
  font-size:12px;
  font-weight:700;
}
.table-scroll-hint::before{
  content:"↔";
  font-size:17px;
  line-height:1;
}

.table-wrap::-webkit-scrollbar{height:10px}
.table-wrap::-webkit-scrollbar-track{background:#edf2f6;border-radius:999px}
.table-wrap::-webkit-scrollbar-thumb{background:#9bcac6;border-radius:999px}
.table-wrap::-webkit-scrollbar-thumb:hover{background:#6eb6b0}

@media(max-width:900px){
  .table-wrap{
    border:1px solid var(--line);
    border-radius:13px;
    background:#fff;
    padding-bottom:4px;
  }

  .table-wrap th,
  .table-wrap td{
    padding:11px 12px;
    font-size:13px;
    min-width:105px;
  }

  .table-wrap .table-email{
    min-width:205px!important;
  }

  .table-wrap .table-long{
    min-width:270px!important;
    width:320px;
    max-width:360px!important;
  }

  .table-wrap .table-actions{
    min-width:105px!important;
  }

  .table-wrap td .inline-form{
    min-width:245px;
  }

  .table-scroll-hint.is-visible{
    display:flex;
  }
}

@media(max-width:520px){
  .table-wrap th,
  .table-wrap td{
    padding:10px;
    font-size:12.5px;
  }
  .table-wrap .table-long{
    min-width:250px!important;
    width:280px;
    max-width:320px!important;
  }
}

/* ==========================================================
   Candidate required documents — explicit upload rows
   ========================================================== */
.documents-card{overflow:hidden}
.documents-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.documents-head h3{margin:0 0 7px}
.documents-head .note{margin:0}
.documents-progress{display:inline-flex;align-items:center;justify-content:center;min-width:110px;padding:8px 13px;border-radius:999px;background:#eef3f7;color:#526174;font-weight:700;white-space:nowrap}
.documents-progress.complete{background:#ddf7eb;color:#137550}
.document-requirements{display:grid;gap:12px}
.document-upload-row{display:grid;grid-template-columns:46px minmax(210px,1.15fr) minmax(330px,1.7fr) auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:15px;transition:background .2s,border-color .2s,box-shadow .2s}
.document-upload-row.is-missing{background:#fbfcfe;border-color:#dfe5ed}
.document-upload-row.is-uploaded{background:#eaf9f1;border-color:#8fd8b4;box-shadow:inset 4px 0 #24a56f}
[dir=ltr] .document-upload-row.is-uploaded{box-shadow:inset -4px 0 #24a56f}
.document-status-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:19px}
.is-missing .document-status-icon{background:#fff2d8;color:#a86b00}
.is-uploaded .document-status-icon{background:#1f9d68;color:white}
.document-label{display:grid;gap:4px;min-width:0}
.document-label strong{font-size:15px;color:#17263e}
.document-label small{color:#6e7b8f;overflow-wrap:anywhere}
.document-state{font-size:13px;font-weight:700}
.uploaded-state{color:#137550}
.missing-state{color:#a56a00}
.document-upload-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:9px;align-items:center;min-width:0}
.document-file-picker{display:flex;align-items:center;gap:10px;min-width:0;border:1px dashed #b9c5d2;background:white;border-radius:12px;padding:9px 11px;color:#526174;cursor:pointer}
.is-uploaded .document-file-picker{border-color:#91cdb0;background:#f8fffb}
.document-file-picker span{white-space:nowrap;font-size:13px;font-weight:700}
.document-file-picker input{min-width:0;min-height:auto;padding:0;border:0;background:transparent;border-radius:0}
.document-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.document-actions form{margin:0}
.document-actions .btn{white-space:nowrap}

@media(max-width:1100px){
  .document-upload-row{grid-template-columns:42px 1fr 1.35fr}
  .document-actions{grid-column:2/-1;justify-content:flex-start}
}
@media(max-width:760px){
  .documents-head{display:grid;grid-template-columns:1fr}
  .documents-progress{justify-self:start}
  .document-upload-row{grid-template-columns:38px 1fr;padding:13px}
  .document-upload-form,.document-actions{grid-column:1/-1}
  .document-upload-form{grid-template-columns:1fr}
  .document-upload-form .btn{width:100%}
  .document-file-picker{display:grid;grid-template-columns:1fr}
  .document-file-picker span{white-space:normal}
  .document-actions{display:grid;grid-template-columns:repeat(3,1fr)}
  .document-actions .btn{width:100%}
}
@media(max-width:430px){
  .document-actions{grid-template-columns:1fr 1fr}
  .document-actions form{grid-column:1/-1}
  .document-actions form .btn{width:100%}
}

/* ==========================================================
   Stable action labels and automatic document picker
   ========================================================== */
.btn,.side-logout{
  white-space:nowrap;
  word-break:normal;
  overflow-wrap:normal;
  line-height:1.35;
}
.document-upload-form{display:block;min-width:0}
.document-file-picker{
  position:relative;
  display:grid;
  justify-items:center;
  gap:3px;
  min-height:48px;
  overflow:hidden;
  text-align:center;
}
.document-file-picker input[type="file"]{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  min-height:0;
  opacity:0;
  cursor:pointer;
}
.document-picker-title{font-weight:800;color:var(--teal);white-space:nowrap}
.document-picker-note{font-size:12px;color:#6f7f8f}
.document-upload-form.is-uploading{pointer-events:none;opacity:.72}

/* ==========================================================
   Candidate dashboard: one application row + one action line
   ========================================================== */
.candidate-application-row{
  grid-template-columns:180px minmax(0,1fr) auto auto;
}
.candidate-application-actions{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:7px;
  flex-wrap:nowrap;
  white-space:nowrap;
}
.candidate-application-actions form{display:block;margin:0}
.candidate-application-actions .btn{width:auto;min-width:0}
@media(max-width:900px){
  .candidate-application-row{
    grid-template-columns:minmax(0,1fr);
  }
  .candidate-application-actions{
    width:100%;
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:minmax(0,1fr);
  }
  .candidate-application-row .candidate-application-actions .btn{
    width:100%;
    padding-inline:9px;
  }
}
