:root{
  --navy:#173a64;
  --navy-light:#1f6fb2;
  --gold:#418fde;
  --gold-light:#8fc1ec;
  --cream:#f4f8fb;
  --text:#1c2733;
  --muted:#5b6472;
  --green:#1f8a4c;
  --red:#c0392b;
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:'Georgia','Times New Roman',serif;
  background:var(--cream);
  color:var(--text);
  line-height:1.6;
}
header.app-header{
  background:linear-gradient(135deg,var(--navy),var(--navy-light));
  color:#fff;
  padding:1.4rem 5%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:.6rem;
}
header.app-header h1{margin:0;font-size:1.15rem;font-weight:normal;}
header.app-header nav a{
  color:#e8e8e8;
  text-decoration:none;
  font-family:Arial,sans-serif;
  font-size:.85rem;
  margin-left:1.2rem;
}
header.app-header nav a:hover{color:var(--gold-light);}
main{max-width:880px;margin:0 auto;padding:2rem 5% 4rem;}
main.wide{max-width:1180px;}
.card{
  background:#fff;
  border:1px solid #d4e3f3;
  border-radius:6px;
  padding:1.6rem 1.8rem;
  margin-bottom:1.6rem;
  box-shadow:0 2px 8px rgba(23,58,100,.06);
}
h2{color:var(--navy);margin-top:0;}
h3{color:var(--navy-light);}
label{
  display:block;
  font-family:Arial,sans-serif;
  font-size:.82rem;
  font-weight:bold;
  color:var(--navy);
  margin:1rem 0 .3rem;
}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=tel],input[type=file],textarea,select{
  width:100%;
  padding:.55rem .7rem;
  border:1px solid #c7d6e4;
  border-radius:4px;
  font-family:Arial,sans-serif;
  font-size:.92rem;
  background:#fff;
  color:var(--text);
}
textarea{min-height:90px;resize:vertical;}
fieldset{border:1px solid #d4e3f3;border-radius:6px;margin:1.2rem 0;padding:1rem 1.2rem;}
legend{font-family:Arial,sans-serif;font-weight:bold;color:var(--navy);padding:0 .4rem;}
.btn{
  display:inline-block;
  background:var(--gold);
  color:#fff;
  border:none;
  padding:.65rem 1.4rem;
  border-radius:4px;
  font-family:Arial,sans-serif;
  font-weight:bold;
  font-size:.9rem;
  cursor:pointer;
  text-decoration:none;
}
.btn:hover{background:var(--navy-light);}
.btn-outline{
  display:inline-block;
  background:none;
  border:2px solid var(--navy);
  color:var(--navy);
  padding:.55rem 1.3rem;
  border-radius:4px;
  font-family:Arial,sans-serif;
  font-weight:bold;
  font-size:.9rem;
  text-decoration:none;
  cursor:pointer;
}
.btn-danger{background:var(--red);}
.btn-danger:hover{background:#962d20;}
.btn-success{background:var(--green);}
.btn-success:hover{background:#166436;}
.alert{
  padding:.8rem 1rem;
  border-radius:4px;
  margin-bottom:1rem;
  font-family:Arial,sans-serif;
  font-size:.88rem;
}
.alert-success{background:#e6f4ea;color:#1f8a4c;border:1px solid #b9e0c5;}
.alert-error{background:#fdecea;color:#c0392b;border:1px solid #f3c2bd;}
.badge{
  display:inline-block;
  font-family:Arial,sans-serif;
  font-size:.72rem;
  font-weight:bold;
  letter-spacing:.03em;
  text-transform:uppercase;
  padding:.25rem .6rem;
  border-radius:20px;
}
.badge-draft{background:#e9edf1;color:var(--muted);}
.badge-submitted{background:#e3f0fb;color:var(--navy-light);}
.badge-admitted{background:#e6f4ea;color:var(--green);}
.badge-rejected{background:#fdecea;color:var(--red);}
.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
table.app-table{width:100%;min-width:920px;border-collapse:collapse;font-family:Arial,sans-serif;font-size:.88rem;table-layout:auto;}
table.app-table th, table.app-table td{padding:.75rem .85rem;border-bottom:1px solid #e2e9f0;text-align:left;vertical-align:top;}
table.app-table th{color:var(--navy);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;}
table.app-table td.col-candidate{min-width:11rem;}
table.app-table td.col-field{min-width:9rem;max-width:14rem;}
table.app-table td.col-thesis{min-width:10rem;}
table.app-table td.col-status{min-width:6.5rem;white-space:nowrap;}
table.app-table td.col-date{min-width:6rem;white-space:nowrap;}
table.app-table td.col-action{min-width:5.5rem;text-align:right;white-space:nowrap;}
table.app-table td .muted{display:block;font-size:.78rem;word-break:break-word;margin-top:.15rem;}
table.app-table .btn-outline{padding:.45rem .85rem;font-size:.82rem;white-space:nowrap;}
.filter-links{font-family:Arial,sans-serif;font-size:.85rem;margin:.6rem 0 1rem;}
.filter-links a{margin-right:.8rem;color:var(--navy-light);text-decoration:none;}
.filter-links a:hover{text-decoration:underline;}
.filter-links a.is-active{font-weight:bold;color:var(--navy);}
html[data-lang="en"] .fr{display:none;}
html[data-lang="fr"] .en{display:none;}
html:not([data-lang]) .en{display:none;}
.app-footer{background:var(--navy);color:#bbb;padding:1.8rem 5% 1rem;font-family:Arial,sans-serif;font-size:.85rem;margin-top:2rem;}
.app-footer .footer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;margin-bottom:1.2rem;padding-bottom:1.2rem;border-bottom:1px solid rgba(255,255,255,.15);text-align:left;}
.app-footer .footer-col h4{color:var(--gold-light);font-size:.75rem;letter-spacing:.07em;text-transform:uppercase;margin:0 0 .8rem;}
.app-footer .footer-col p{margin:0;line-height:1.6;color:#c7d4e0;}
.app-footer .footer-links ul{list-style:none;margin:0;padding:0;}
.app-footer .footer-links li{margin-bottom:.45rem;}
.app-footer .footer-links a{color:#c7d4e0;text-decoration:none;}
.app-footer .footer-links a:hover{color:var(--gold-light);text-decoration:underline;}
.app-footer .footer-bottom{text-align:center;font-size:.78rem;color:#9fb3c8;}
.app-footer .lang-switch{display:flex;gap:.3rem;padding:0;}
.app-footer .lang-switch button{
  display:inline-flex;align-items:center;gap:.35rem;
  background:none;border:1px solid var(--gold);color:#e8e8e8;
  padding:.3rem .6rem;border-radius:3px;cursor:pointer;
  font-size:.8rem;font-family:Arial,sans-serif;
}
.app-footer .lang-switch button:hover{background:var(--gold);color:#fff;}
.app-footer .lang-switch button.active-lang{background:var(--gold-light);color:var(--navy);font-weight:bold;border-color:var(--gold-light);}
.lang-flag{width:18px;height:12px;border-radius:1px;flex-shrink:0;box-shadow:0 0 0 1px rgba(255,255,255,.15);}
body.app-shell{display:flex;flex-direction:column;min-height:100vh;}
body.app-shell main{flex:1;}
.row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
@media (max-width:760px){
  .app-footer .footer-grid{grid-template-columns:1fr;text-align:center;}
  .app-footer .lang-switch{justify-content:center;}
}
@media (max-width:640px){.row{grid-template-columns:1fr;}}
.muted{color:var(--muted);font-size:.85rem;}
.step-list{
  margin:1rem 0 1.4rem;
  counter-reset:step;
  list-style:none;
  padding:0;
}
.step-list li{
  position:relative;
  padding:.65rem 0 .65rem 2.6rem;
  border-bottom:1px solid #d4e3f3;
  counter-increment:step;
}
.step-list li::before{
  content:counter(step);
  position:absolute;
  left:0;
  top:.55rem;
  width:1.8rem;
  height:1.8rem;
  background:var(--gold);
  color:#fff;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:Arial,sans-serif;
  font-weight:bold;
  font-size:.82rem;
}
.apply-cta{
  display:flex;
  gap:.8rem;
  flex-wrap:wrap;
  margin-top:1.4rem;
}
.hp-field{
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden;
}
.letter{
  background:#fff;
  border:1px solid #d4e3f3;
  padding:2.4rem;
  font-family:'Georgia',serif;
  max-width:680px;
  margin:0 auto;
}
.letter h2{text-align:center;border-bottom:2px solid var(--gold);padding-bottom:1rem;}
@media print{
  header.app-header, .no-print{display:none !important;}
  main{padding:0;max-width:none;}
  .app-footer{display:none !important;}
}
.card table:not(.app-table){
  width:100%;
  border-collapse:collapse;
  font-family:Arial,sans-serif;
  font-size:.88rem;
  margin:1rem 0;
}
.card table:not(.app-table) th,
.card table:not(.app-table) td{
  padding:.55rem .8rem;
  border-bottom:1px solid #e2e9f0;
  text-align:left;
  vertical-align:top;
}
.card table:not(.app-table) th{
  width:34%;
  color:var(--navy);
  font-size:.82rem;
}
