:root{
  --bg:#0b1220;
  --bg2:#0f182b;
  --panel:#111a2e;
  --line:rgba(255,255,255,.08);
  --text:#edf3ff;
  --muted:#a7b6d4;
  --accent:#5aa8ff;
  --accent2:#7fe3c9;
  --good:#3ecf8e;
  --warn:#ffc857;
  --bad:#ff6b6b;
  --shadow:0 18px 40px rgba(0,0,0,.28);
}
*{box-sizing:border-box}
body{
  margin:0;color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:
    radial-gradient(circle at top left, rgba(90,168,255,.18), transparent 30%),
    radial-gradient(circle at top right, rgba(127,227,201,.12), transparent 24%),
    linear-gradient(180deg,#09111f 0%,#0d1629 100%);
}
a{text-decoration:none;color:inherit}
.shell{max-width:1320px;margin:0 auto;padding:24px}
.topbar{
  position:sticky;top:14px;z-index:20;
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding:14px 18px;border-radius:20px;
  background:rgba(17,26,46,.74);backdrop-filter:blur(12px);
  border:1px solid var(--line);box-shadow:var(--shadow);
}
.brand{display:flex;align-items:center;gap:14px}
.logo{
  width:42px;height:42px;border-radius:14px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--accent),var(--accent2));
  color:#07213d;font-weight:900
}
.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;margin-top:26px}
.card{
  background:linear-gradient(180deg,rgba(17,26,46,.88),rgba(13,22,41,.88));
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:var(--shadow);
}
.hero-copy{padding:30px}
.hero-copy h1,.section h1{font-size:clamp(2rem,3vw,3rem);line-height:1.05;margin:12px 0}
.hero-copy p{color:var(--muted);line-height:1.65}
.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:22px}
.feature,.ad-card,.stat,.profile-box,.item,.country-row,.map-link-card{
  background:rgba(255,255,255,.035);border:1px solid var(--line);border-radius:16px
}
.feature{padding:16px}
.feature strong{display:block;margin-bottom:6px}
.feature span,.helper,.muted,.small-note{color:var(--muted)}
.notice,.flash{margin-top:16px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.04)}
.flash-stack{display:grid;gap:10px;margin-top:18px}
.flash.success{border-color:rgba(62,207,142,.3)}
.flash.error{border-color:rgba(255,107,107,.3)}
.auth-card{padding:24px}
.auth-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.form{display:grid;gap:12px}
.form label{display:grid;gap:6px;color:var(--muted);font-size:.92rem}
input,select,textarea{
  width:100%;padding:12px 14px;border-radius:14px;border:1px solid var(--line);
  background:#0c1529;color:var(--text)
}
.btn,.lang-btn{
  border:0;cursor:pointer;border-radius:14px;padding:10px 14px;font-weight:700;
  display:inline-flex;align-items:center;justify-content:center;gap:8px
}
.btn.primary{background:linear-gradient(135deg,var(--accent),#3b82f6);color:white}
.btn.secondary,.lang-btn{background:rgba(255,255,255,.04);color:var(--text);border:1px solid var(--line)}
.btn.success{background:rgba(62,207,142,.14);color:#c2ffe4;border:1px solid rgba(62,207,142,.2)}
.btn.danger{background:rgba(255,107,107,.14);color:#ffd0d0;border:1px solid rgba(255,107,107,.2)}
.actions form,.left-actions form,.right-actions form{margin:0}
.lang-btn.active{background:white;color:#0d1d38}
.pill,.tag{
  display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;
  background:rgba(255,255,255,.04);border:1px solid var(--line);color:var(--muted);font-size:.84rem
}
.section{margin-top:22px}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:14px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.stat{padding:18px}
.stat span{display:block;color:var(--muted);font-size:.92rem}
.stat strong{display:block;font-size:2rem;margin-top:8px}
.two-col{display:grid;grid-template-columns:1.08fr .92fr;gap:18px}
.panel{padding:18px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.photo-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.profile-box{padding:14px}
.profile-box span{display:block;color:var(--muted);font-size:.88rem}
.profile-box strong{display:block;margin-top:6px}
.ads-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.ad-card{padding:18px}
.ad-media{margin:-18px -18px 14px;border-radius:18px 18px 14px 14px;overflow:hidden;border-bottom:1px solid var(--line);background:#eef4fb}
.ad-media img{display:block;width:100%;height:150px;object-fit:contain;background:#fff}
.ad-admin-preview{display:flex;align-items:center;gap:14px;padding:10px 0}
.ad-admin-preview img{width:140px;height:84px;object-fit:contain;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:linear-gradient(180deg,rgba(15,25,46,.96),rgba(8,14,28,.96));padding:10px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.03)}
.ad-admin-preview-left img,.ad-admin-preview-right img{width:92px;height:156px}
.stack{display:grid;gap:14px}
.item{padding:16px}
.compact-item{padding:14px}
.item-head{display:flex;justify-content:space-between;gap:12px}
.meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.status-confirmed{color:#c2ffe4;background:rgba(62,207,142,.12)}
.status-pending{color:#ffe7aa;background:rgba(255,200,87,.12)}
.status-declined{color:#ffd0d0;background:rgba(255,107,107,.12)}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.history-photo,.photo-tile img{
  width:100%;max-width:280px;border-radius:12px;border:1px solid var(--line);display:block;margin:10px 0
}
.history-photo-grid{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}
.history-photo-grid .history-photo{max-width:220px;margin:0}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.photo-tile{border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#0b1528;aspect-ratio:4/3}
.empty{text-align:center;padding:24px;color:var(--muted);border:1px dashed var(--line);border-radius:16px}
.map-link-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.map-link-card{padding:18px;display:grid;gap:10px}
.map-link-card em{font-style:normal;color:#d8e7ff}
.map-page-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:18px}
.map-panel-large{padding:16px}
.map-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.map-stage{position:relative;aspect-ratio:1.82 / 1;min-height:420px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:linear-gradient(180deg,#a9ddff 0%,#84c6f0 100%)}
.map-stage.improved-map{box-shadow:inset 0 0 0 1px rgba(255,255,255,.15), 0 18px 40px rgba(9,25,46,.12)}
.map-surface{position:absolute;inset:0;background:url('/static/img/world-map-light.svg') center/cover no-repeat, linear-gradient(180deg,#a9ddff 0%,#84c6f0 100%)}
.map-reference-layer{position:absolute;inset:0;background:url('/static/img/grid-reference.jpg') center/cover no-repeat;mix-blend-mode:multiply;opacity:.16;pointer-events:none}
.map-overlay{position:absolute;inset:0}
.map-rect,.map-dot{position:absolute;transform:translate(-50%,-50%);border-radius:4px;cursor:default}
.map-rect.confirmed{background:rgba(219,136,84,.52);border:1px solid rgba(173,102,49,.75)}
.map-rect.visited-confirmed{background:rgba(86,167,255,.48);border:1px solid rgba(55,120,205,.82)}
.map-rect.visited-pending{background:rgba(255,200,87,.42);border:1px solid rgba(213,160,42,.82)}
.map-rect.visited-declined{background:rgba(255,107,107,.38);border:1px solid rgba(198,76,76,.8)}
.map-dot{width:14px;height:14px;border-radius:999px;background:rgba(86,167,255,.92);border:2px solid rgba(255,255,255,.85);box-shadow:0 4px 14px rgba(0,0,0,.28)}
.map-dot.visited-pending{background:rgba(255,200,87,.95)}
.map-dot.visited-declined{background:rgba(255,107,107,.95)}
.map-rect::after,.map-dot::after{
  content:attr(data-tooltip);position:absolute;left:50%;bottom:100%;transform:translate(-50%,-8px);
  background:rgba(9,17,31,.92);color:#eef5ff;border:1px solid var(--line);padding:5px 8px;
  border-radius:999px;font-size:.74rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease
}
.map-rect:hover::after,.map-dot:hover::after{opacity:1}
.compact-list{max-height:720px;overflow:auto;padding-right:4px}
@media (max-width: 1100px){
  .hero,.two-col,.auth-columns,.ads-grid,.map-page-layout{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 760px){
  .shell{padding:16px}
  .feature-grid,.form-grid,.profile-grid,.photo-grid,.stats-grid,.map-link-grid{grid-template-columns:1fr}
  .topbar{flex-direction:column;align-items:flex-start}
  .map-stage{min-height:300px}
}

.btn.secondary.active-nav{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.18)}
.section-actions{margin-top:14px;display:flex;justify-content:flex-end}
.diploma-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.diploma-card{padding:18px;display:grid;gap:14px;position:relative;overflow:hidden}
.diploma-card::before{content:"";position:absolute;right:-36px;top:-36px;width:140px;height:140px;border-radius:999px;background:rgba(255,255,255,.09)}
.diploma-card h2,.diploma-card h3{margin:0 0 6px 0}
.diploma-card p{margin:0;color:var(--muted);line-height:1.55}
.diploma-card.compact{padding:16px}
.diploma-head{display:flex;justify-content:space-between;gap:12px;align-items:start;position:relative;z-index:1}
.diploma-metric-unit{color:var(--muted);font-size:.88rem;position:relative;z-index:1}
.diploma-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;position:relative;z-index:1}
.diploma-metrics div{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:14px;padding:12px}
.diploma-metrics span{display:block;color:var(--muted);font-size:.82rem}
.diploma-metrics strong{display:block;margin-top:8px;font-size:1.35rem}
.progress-track{height:12px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid var(--line);overflow:hidden;position:relative;z-index:1}
.progress-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent2))}
.diploma-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;position:relative;z-index:1;flex-wrap:wrap}
.diploma-stack .diploma-card p{font-size:.92rem}
.tone-bronze{background:linear-gradient(180deg,rgba(122,67,39,.34),rgba(17,26,46,.92))}
.tone-teal{background:linear-gradient(180deg,rgba(31,110,112,.28),rgba(17,26,46,.92))}
.tone-silver{background:linear-gradient(180deg,rgba(126,153,185,.24),rgba(17,26,46,.92))}
.tone-gold{background:linear-gradient(180deg,rgba(177,133,35,.28),rgba(17,26,46,.92))}
@media (max-width: 960px){.diploma-grid{grid-template-columns:1fr}}

.table-wrap{overflow:auto}
.data-table{width:100%;border-collapse:separate;border-spacing:0 10px}
.data-table th{color:var(--muted);font-size:.84rem;font-weight:700;text-align:left;padding:0 12px 8px}
.data-table td{padding:14px 12px;background:rgba(255,255,255,.035);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.data-table td:first-child{border-left:1px solid var(--line);border-radius:14px 0 0 14px}
.data-table td:last-child{border-right:1px solid var(--line);border-radius:0 14px 14px 0}
.table-awards{display:flex;flex-wrap:wrap;gap:8px}
.rank-badge{display:inline-flex;min-width:36px;height:36px;align-items:center;justify-content:center;border-radius:999px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#07213d;font-weight:900}
.empty-cell{text-align:center;color:var(--muted);border-radius:14px !important}
.honour-table tbody tr:nth-child(1) .rank-badge{background:linear-gradient(135deg,#f5d77a,#ffefb0)}
.honour-table tbody tr:nth-child(2) .rank-badge{background:linear-gradient(135deg,#aab8d0,#eef4fb)}
.honour-table tbody tr:nth-child(3) .rank-badge{background:linear-gradient(135deg,#c98352,#f0d1b7)}
@media (max-width:760px){
  .data-table{min-width:760px}
}

.about-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:18px}
.about-copy p{margin:0;color:var(--muted);line-height:1.72}
.about-signature{margin-top:8px;padding-top:14px;border-top:1px solid var(--line);font-weight:700;line-height:1.7}
.about-note-card{padding:18px;background:rgba(255,255,255,.035);border:1px solid var(--line);border-radius:16px;height:max-content}
.about-note-card strong{display:block;margin-bottom:8px}
@media (max-width:960px){.about-layout{grid-template-columns:1fr}}

.institutional-topbar{border-radius:22px}
.top-actions-wrap{justify-content:flex-end}
.institutional-hero{display:grid;grid-template-columns:1.12fr .88fr;gap:22px;align-items:stretch}
.compact-hero .hero-copy{padding:26px 30px}
.institutional-copy{background:
  linear-gradient(135deg, rgba(90,168,255,.10), transparent 40%),
  linear-gradient(180deg,rgba(17,26,46,.92),rgba(13,22,41,.88));
}
.institutional-lead{max-width:72ch;color:var(--muted);line-height:1.75;font-size:1.02rem}
.about-grid-refined{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:18px}
.about-main-panel{padding:26px}
.large-copy p{font-size:1rem;line-height:1.82}
.institutional-side-card{padding:18px}
.institutional-side-card strong{display:block;margin-bottom:8px}
.accent-card{background:linear-gradient(180deg,rgba(90,168,255,.12),rgba(255,255,255,.03));border-color:rgba(90,168,255,.18)}
.institutional-table-panel{padding:22px}
.institutional-table td,.institutional-table th{vertical-align:top}
.member-chip{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 12px;border-radius:999px;background:rgba(90,168,255,.12);border:1px solid rgba(90,168,255,.18);font-weight:800}
.honour-grid{display:grid;gap:14px}
.institutional-honour-card{padding:18px;display:grid;grid-template-columns:84px 96px 1fr;gap:16px;align-items:center}
.honour-rank-col{display:grid;justify-items:center;gap:8px}
.rank-badge.large{min-width:56px;height:56px;font-size:1.05rem}
.honour-avatar{width:82px;height:82px;border-radius:18px;object-fit:cover;border:1px solid var(--line);display:block;background:#0c1529}
.honour-avatar.placeholder,.profile-avatar-large.placeholder{display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#07213d;font-weight:900}
.honour-main-col{display:grid;gap:12px}
.honour-title-row{display:flex;justify-content:space-between;gap:12px;align-items:start}
.honour-title-row h3{margin:0 0 4px 0;font-size:1.14rem}
.honour-title-row p{margin:0}
.honour-score{min-width:120px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid var(--line);text-align:center}
.honour-score span{display:block;color:var(--muted);font-size:.8rem}
.honour-score strong{display:block;margin-top:8px;font-size:1.7rem}
.profile-private-layout{display:grid;grid-template-columns:220px 1fr;gap:16px;align-items:start}
.profile-photo-card{display:grid;gap:12px;justify-items:center}
.profile-avatar-large{width:180px;height:180px;border-radius:26px;object-fit:cover;border:1px solid var(--line);display:block;background:#0c1529}
.profile-edit-layout{display:grid;grid-template-columns:260px 1fr;gap:18px;align-items:start}
.subtle-panel{padding:18px;background:rgba(255,255,255,.02);border:1px solid var(--line);border-radius:18px}
.profile-photo-panel h2{margin:0 0 12px 0}
.vertical-actions{flex-direction:column;align-items:stretch;width:100%}
.vertical-actions .btn{width:100%}
.check-row{display:flex !important;align-items:center;gap:10px;color:var(--muted);font-size:.92rem}
.check-row input{width:auto}
.left-actions{justify-content:flex-start}
.single-right{grid-template-columns:1fr 1fr}
.single-right label:first-child{grid-column:1 / 2}
@media (max-width: 1100px){
  .about-grid-refined,.profile-edit-layout,.profile-private-layout{grid-template-columns:1fr}
}
@media (max-width: 760px){
  .institutional-honour-card{grid-template-columns:1fr;justify-items:start}
  .honour-rank-col{justify-items:start}
  .honour-title-row{flex-direction:column}
}


.history-card-item{
  position:relative;
  overflow:hidden;
  cursor:default;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
  background:linear-gradient(180deg,rgba(18,29,50,.94),rgba(11,20,38,.96));
  border-color:rgba(255,255,255,.07);
  box-shadow:none;
  transform:none;
  padding:16px 18px 15px 18px;
}
.history-card-item::before{display:none;content:none}
.history-card-item:hover,.history-card-item:focus-within{
  border-color:rgba(90,168,255,.20);
  box-shadow:0 10px 22px rgba(0,0,0,.14);
  outline:none;
  transform:none;
  background:linear-gradient(180deg,rgba(20,32,56,.96),rgba(12,22,42,.98));
}
.history-card-topline,
.history-card-main,
.history-card-footer{position:relative;z-index:1}
.history-card-topline{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  margin-bottom:8px;
}
.history-kicker{
  color:var(--muted);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.history-status-pill{white-space:nowrap}
.history-card-main{display:grid;gap:8px}
.history-card-item .item-title,
.history-callsign{
  display:block;
  font-size:1.12rem;
  font-weight:800;
  line-height:1.15;
  letter-spacing:.01em;
  color:#f5f8ff;
  text-shadow:none;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.history-meta-line{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:.9rem;
}
.history-meta-primary{color:#dfeaff;font-weight:700}
.history-meta-sep{opacity:.5}
.history-grid-pill{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);
  color:#d8e7ff;
}
.history-card-item .tag{background:rgba(255,255,255,.05)}
.history-card-footer{
  display:flex;
  justify-content:flex-end;
  gap:12px;
  align-items:center;
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.06);
}
.history-open-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  color:#e9f2ff;
  font-weight:800;
  font-size:.92rem;
  padding:7px 11px;
  border-radius:999px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.08);
}
.history-open-link::after{
  content:"→";
  color:var(--accent);
}
.history-open-link:hover,.history-open-link:focus{
  border-color:rgba(90,168,255,.28);
  background:rgba(90,168,255,.10);
  outline:none;
}

.btn.slim{padding:8px 12px;font-size:.9rem}
body.modal-open{overflow:hidden}
.modal-backdrop{position:fixed;inset:0;z-index:80;background:rgba(5,10,18,.72);backdrop-filter:blur(6px);display:grid;place-items:center;padding:18px}
.modal-backdrop[hidden]{display:none !important}
.institutional-modal{width:min(920px,100%);max-height:min(90vh,920px);overflow:auto;padding:22px}
.modal-head-tight{align-items:start}
.encounter-detail-body{margin-top:12px}
.detail-stack{display:grid;gap:16px}
.detail-panel{padding:16px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.03)}
.detail-panel h3{margin:0 0 12px 0}
.detail-panel p{margin:0;color:var(--muted);line-height:1.72}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.detail-row{padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid var(--line);display:grid;gap:6px}
.detail-row span{font-size:.85rem;color:var(--muted)}
.detail-row strong{font-size:1rem}
.modal-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:760px){
  .detail-grid,.modal-photo-grid{grid-template-columns:1fr}
  .history-card-topline{flex-direction:column;align-items:flex-start}
  .history-card-footer{justify-content:flex-start}
}


.stats-grid-five{grid-template-columns:repeat(5,1fr)}
.honour-score-grid{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:10px;align-items:start}
.honour-score.compact strong{font-size:1.35rem}
.points-rules-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:10px}
.points-rule-card{padding:16px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.03);display:grid;gap:8px}
.points-rule-card span{color:var(--muted);font-weight:700}
.points-note{margin-top:16px}
.member-card-panel{display:grid;gap:12px}
.member-card-preview-wrap{border:1px solid var(--line);border-radius:18px;padding:12px;background:rgba(255,255,255,.02)}
.member-card-preview{display:block;width:100%;border-radius:16px;background:#0c1529}
.labeled-photo{margin:0;display:grid;gap:8px}
.labeled-photo figcaption{font-size:.82rem;color:var(--muted);text-align:center}
.modal-photo-actions{margin-top:12px}
.right-actions{justify-content:flex-end}
@media (max-width:1100px){.stats-grid-five{grid-template-columns:repeat(2,1fr)} .points-rules-grid{grid-template-columns:1fr}}
@media (max-width:760px){.stats-grid-five{grid-template-columns:1fr} .honour-score-grid{grid-template-columns:1fr}}

.admin-link-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:18px}
.admin-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}
.data-table{width:100%;border-collapse:collapse;min-width:880px}
.data-table th,.data-table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.data-table th{font-size:.85rem;color:var(--muted);background:rgba(255,255,255,.03)}
.data-table tr:last-child td{border-bottom:0}
.admin-actions-inline{display:flex;flex-wrap:wrap;gap:8px}
.form-inline{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.form-inline input,.form-inline select{padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#0c1527;color:var(--text)}
.item-compact{padding:12px 14px}
.check-label{display:flex;align-items:center;gap:8px}
.admin-two-col{grid-template-columns:1.1fr .9fr}
.small-list{gap:10px}
@media (max-width:980px){.admin-two-col{grid-template-columns:1fr}.admin-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.admin-stats-grid{grid-template-columns:1fr}}

.map-overlay{position:absolute;inset:0}
.map-rect,.map-dot{position:absolute;transform:translate(-50%,-50%);border-radius:6px;cursor:default;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.map-dot{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.75)}
.map-rect.confirmed{background:rgba(214,119,47,.56);border:1px solid rgba(161,84,24,.9)}
.map-rect.visited-confirmed{background:rgba(52,128,230,.50);border:1px solid rgba(25,89,182,.92)}
.map-rect.visited-pending{background:rgba(255,196,66,.42);border:1px solid rgba(194,136,14,.92)}
.map-rect.visited-declined{background:rgba(223,95,95,.42);border:1px solid rgba(176,46,46,.88)}
.map-dot.visited-confirmed{background:#3783e4}
.map-dot.visited-pending{background:#f2b63f}
.map-dot.visited-declined{background:#d96565}


/* Mobile topbar refinement */
.topbar{transition:transform .22s ease,opacity .22s ease}
@media (max-width:860px){
  .topbar{top:8px;padding:12px 14px;gap:10px}
  .topbar-hidden{transform:translateY(calc(-100% - 18px));opacity:.22}
  .top-actions-wrap{width:100%;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;justify-content:flex-start;padding-bottom:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .top-actions-wrap::-webkit-scrollbar{display:none}
  .top-actions-wrap form,.top-actions-wrap a,.top-actions-wrap button{flex:0 0 auto}
  .top-actions-wrap .btn,.top-actions-wrap .lang-btn{white-space:nowrap}
}

/* Richer map UI */
.enhanced-map-layout{grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr)}
.rich-toolbar{align-items:flex-start}
.map-toolbar-left{display:grid;gap:8px}
.map-zoom-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.zoom-indicator{min-width:68px;text-align:center;padding:8px 12px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.04);font-weight:800}
.map-stage{cursor:grab}
.map-stage.is-dragging{cursor:grabbing}
.map-scene{position:absolute;inset:0;transform-origin:50% 50%;will-change:transform}
.map-drag-note{margin-top:12px}
.map-filter-panel,.map-legend-panel{padding-bottom:20px}

.map-filter-top{margin-bottom:18px}
.map-filter-inline{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(3,minmax(160px,1fr));gap:12px;align-items:end}
.map-filter-inline label{margin:0}
.map-filter-inline select,.map-filter-inline input{width:100%}
.map-filter-form{gap:12px}
.map-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:2px}
.map-summary-card{padding:14px;border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.03)}
.map-summary-card span{display:block;color:var(--muted);font-size:.82rem}
.map-summary-card strong{display:block;margin-top:8px;font-size:1.4rem}
.legend-rich{display:grid;gap:12px;margin-top:14px}
.legend-row-rich{display:grid;grid-template-columns:18px 1fr;gap:12px;align-items:start;padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.03)}
.legend-row-rich p{margin:4px 0 0 0;color:var(--muted);line-height:1.55;font-size:.9rem}
.legend-swatch{display:inline-block;width:18px;height:18px;border-radius:6px;border:1px solid rgba(255,255,255,.45);margin-top:2px}
.legend-swatch.confirmed{background:rgba(219,136,84,.75);border-color:rgba(173,102,49,.92)}
.legend-swatch.visited-confirmed{background:rgba(86,167,255,.8);border-color:rgba(55,120,205,.92)}
.legend-swatch.visited-pending{background:rgba(255,200,87,.75);border-color:rgba(213,160,42,.92)}
.legend-swatch.visited-declined{background:rgba(255,107,107,.72);border-color:rgba(198,76,76,.88)}
.legend-swatch.country-fallback{border-radius:999px;background:rgba(86,167,255,.95);border:2px solid rgba(255,255,255,.85)}
.map-rect,.map-dot{box-shadow:0 8px 18px rgba(0,0,0,.18)}
@media (max-width:1100px){.enhanced-map-layout{grid-template-columns:1fr}.map-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-filter-inline{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.map-summary-grid{grid-template-columns:1fr}.zoom-indicator{min-width:auto}.rich-toolbar{gap:10px}.map-filter-inline{grid-template-columns:1fr}}

/* Leaflet grid map style */
.mapbox-style-panel{padding:16px}
.leaflet-map-wrap{position:relative;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 18px 40px rgba(9,25,46,.12)}
.leaflet-mapbox-style{height:560px;background:#d9ecfa}
.leaflet-mapbox-style .leaflet-control-attribution{font-size:.72rem;background:rgba(255,255,255,.78)}
.leaflet-mapbox-style .leaflet-popup-content-wrapper{border-radius:14px}
.leaflet-mapbox-style .leaflet-popup-content{margin:10px 12px;min-width:160px}
.map-popup strong{display:block;margin-bottom:4px}
.grid-label-marker{background:none;border:none}
.grid-label-marker span{display:block;padding:1px 4px;border-radius:8px;background:rgba(255,255,255,.86);border:1px solid rgba(48,73,107,.18);font-size:.72rem;font-weight:700;color:#24364f;line-height:1.1;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.hide-grid-labels .grid-label-marker{display:none}
.leaflet-mapbox-style .leaflet-interactive:focus{outline:none}
.legend-swatch.confirmed{background:rgba(241,105,19,.8);border-color:#8f5a33}
.legend-swatch.visited-confirmed{background:rgba(52,128,230,.82);border-color:#1d5ec8}
.legend-swatch.visited-pending{background:rgba(242,182,63,.82);border-color:#b37b00}
.legend-swatch.visited-declined{background:rgba(217,101,101,.82);border-color:#b04a4a}
.legend-swatch.country-fallback{background:rgba(52,128,230,.82);border-radius:50%;border-color:#1454ad}
@media (max-width:760px){
  .leaflet-mapbox-style{height:380px}
}


.compact-global-nav{row-gap:8px}
.account-subnav{
  margin-top:14px;padding:10px 12px;border-radius:18px;border:1px solid var(--line);
  background:rgba(17,26,46,.54);display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;
  scrollbar-width:none;-webkit-overflow-scrolling:touch
}
.account-subnav::-webkit-scrollbar{display:none}
.subnav-link{
  flex:0 0 auto;padding:10px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.03);color:var(--muted);font-weight:700;white-space:nowrap
}
.subnav-link.active{background:rgba(90,168,255,.15);border-color:rgba(90,168,255,.24);color:var(--text)}
.content-with-side-ads{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}
.main-content-column{min-width:0}
.side-ads-column{display:none;gap:10px;align-self:start}
.side-ad-card,.footer-ad-card{
  display:flex;align-items:center;justify-content:center;overflow:hidden;padding:8px;border-radius:14px;
  border:1px solid var(--line);background:rgba(255,255,255,.03);box-shadow:var(--shadow)
}
.side-ad-card{min-height:86px}
.footer-ads-shell{margin:22px 0 8px}
.footer-ads-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.footer-ad-card{min-height:86px}
.footer-ad-card:hover,.side-ad-card:hover{border-color:rgba(90,168,255,.2);transform:translateY(-1px)}
.side-ad-image,.footer-ad-image{display:block;width:100%;height:70px;object-fit:contain;object-position:center;background:transparent}
.footer-ad-caption,.footer-ad-text{color:var(--muted);font-size:.88rem;line-height:1.5;text-align:center}
.footer-ad-text{font-weight:600;padding:14px}

.side-ad-card::before,.footer-ad-card::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.05),transparent 45%,rgba(90,168,255,.06));pointer-events:none}
.side-ad-card,.footer-ad-card{position:relative}
.side-ad-card > img,.footer-ad-card > img{position:relative;z-index:1}
@media (min-width:1280px){
  .content-with-side-ads.has-left-ads.has-right-ads{grid-template-columns:176px minmax(0,1fr) 176px}
  .content-with-side-ads.has-left-ads:not(.has-right-ads){grid-template-columns:176px minmax(0,1fr)}
  .content-with-side-ads.has-right-ads:not(.has-left-ads){grid-template-columns:minmax(0,1fr) 176px}
  .side-ads-column{display:grid}
}
@media (max-width:1100px){.footer-ads-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.account-subnav{margin-top:10px}}
@media (max-width:640px){.footer-ads-grid{grid-template-columns:1fr}}
.footer-ads-shell{margin:28px 0 10px}
.footer-ads-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.footer-ad-card{
  display:block;overflow:hidden;min-height:120px;padding:0;border-radius:16px;border:1px solid var(--line);
  background:rgba(255,255,255,.035);box-shadow:var(--shadow)
}
.footer-ad-card:hover{border-color:rgba(90,168,255,.2);transform:translateY(-1px)}
.footer-ad-image{display:block;width:100%;height:120px;object-fit:cover}
.footer-ad-caption,.footer-ad-text{color:var(--muted);font-size:.88rem;line-height:1.5;text-align:center}
.footer-ad-text{font-weight:600;padding:18px}
@media (max-width:1100px){.footer-ads-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.account-subnav{margin-top:10px}}
@media (max-width:640px){.footer-ads-grid{grid-template-columns:1fr}}


/* Production merge helpers */
.main-nav, .site-header, .site-footer { display:none; }
.section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:14px}
.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:22px}
.narrow-section{max-width:860px;margin-left:auto;margin-right:auto}
.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.stat-box{padding:18px}
.stat-number{font-size:2rem;font-weight:800}
.table-wrap{overflow:auto}
@media (max-width:860px){
  .feature-grid,.stats-grid{grid-template-columns:1fr}
}

.thumb{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#0c1529;min-height:180px;display:grid;place-items:center}
.thumb img{display:block;width:100%;height:100%;object-fit:cover}
.stat-box{padding:18px}
.stat-number{font-size:2rem;font-weight:800;margin-bottom:8px}


.home-side-auth{height:100%}
.compact-global-nav{align-items:center}
.narrow-section{max-width:760px;margin-inline:auto}
@media (max-width:1100px){
  .institutional-hero{grid-template-columns:1fr}
}


.form-help-row{display:flex;justify-content:flex-end;margin-top:-4px;margin-bottom:4px}.text-link{color:var(--accent,#2f6fed);text-decoration:none}.text-link:hover{text-decoration:underline}


/* Ad layout refresh 2026-04-18 */
.ad-admin-preview img{width:140px;height:84px;object-fit:contain;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:linear-gradient(180deg,rgba(15,25,46,.96),rgba(8,14,28,.96));padding:10px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.03)}
.ad-admin-preview-left img,.ad-admin-preview-right img{width:92px;height:156px}
.content-with-side-ads{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}
.main-content-column{min-width:0}
.side-ads-column{display:none;gap:12px;align-self:start}
.side-ad-card,.footer-ad-card{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:16px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(18,29,54,.92),rgba(9,16,31,.94));box-shadow:var(--shadow);transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.side-ad-card::before,.footer-ad-card::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.05),transparent 45%,rgba(90,168,255,.06));pointer-events:none}
.side-ad-card > img,.footer-ad-card > img{position:relative;z-index:1}
.side-ad-card{aspect-ratio:4/7;min-height:220px;padding:12px}
.footer-ads-shell{margin:26px 0 24px;padding-bottom:18px}
.footer-ads-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.footer-ad-card{aspect-ratio:10/3;min-height:98px;padding:12px}
.footer-ad-card:hover,.side-ad-card:hover{border-color:rgba(90,168,255,.28);transform:translateY(-1px);box-shadow:0 18px 34px rgba(0,0,0,.28)}
.side-ad-image,.footer-ad-image{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;background:transparent}
@media (min-width:1280px){
  .content-with-side-ads.has-left-ads.has-right-ads{grid-template-columns:176px minmax(0,1fr) 176px}
  .content-with-side-ads.has-left-ads:not(.has-right-ads){grid-template-columns:176px minmax(0,1fr)}
  .content-with-side-ads.has-right-ads:not(.has-left-ads){grid-template-columns:minmax(0,1fr) 176px}
  .side-ads-column{display:grid}
}
@media (max-width:1100px){.footer-ads-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.footer-ads-grid{grid-template-columns:1fr}}


/* Square ad layout refresh 2026-04-18 */
.ad-admin-preview img{width:132px !important;height:132px !important;object-fit:cover !important;padding:0 !important;border-radius:18px !important;background:linear-gradient(180deg,rgba(15,25,46,.96),rgba(8,14,28,.96)) !important}
.ad-admin-preview-left img,.ad-admin-preview-right img{width:132px !important;height:132px !important}
.side-ad-card,.footer-ad-card{aspect-ratio:1 / 1 !important;min-height:0 !important;padding:0 !important;border-radius:18px !important}
.side-ad-image,.footer-ad-image{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover !important;object-position:center;background:transparent}
.footer-ads-grid{grid-template-columns:repeat(auto-fit,minmax(148px,1fr)) !important;gap:14px !important}
@media (min-width:1280px){
  .content-with-side-ads.has-left-ads.has-right-ads{grid-template-columns:176px minmax(0,1fr) 176px}
  .content-with-side-ads.has-left-ads:not(.has-right-ads){grid-template-columns:176px minmax(0,1fr)}
  .content-with-side-ads.has-right-ads:not(.has-left-ads){grid-template-columns:minmax(0,1fr) 176px}
}


/* Admin ad safe-zone preview 2026-04-18 */
.ad-preview-guide-card{margin:14px 0 10px;padding:16px;border-radius:20px;background:linear-gradient(180deg,rgba(14,22,39,.9),rgba(8,14,28,.96));border:1px solid rgba(255,255,255,.08);box-shadow:0 18px 40px rgba(0,0,0,.18)}
.ad-preview-guide-card > strong{display:block;margin-bottom:12px}
.ad-safe-preview{position:relative;aspect-ratio:1 / 1;width:min(100%,320px);overflow:hidden;border-radius:22px;background:radial-gradient(circle at top,rgba(70,122,217,.28),rgba(12,18,33,.98) 60%);border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.03),0 18px 45px rgba(0,0,0,.22)}
.ad-safe-preview-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:1}
.ad-safe-preview-placeholder{position:absolute;inset:0;display:grid;place-items:center;padding:24px;text-align:center;color:rgba(255,255,255,.92);font-weight:700;letter-spacing:.02em;background:linear-gradient(135deg,rgba(255,255,255,.04),rgba(255,255,255,.01));z-index:1}
.ad-safe-preview-placeholder span{max-width:12ch}
.ad-safe-preview-overlay{position:absolute;inset:0;z-index:2;pointer-events:none}
.ad-safe-preview-overlay::before,.ad-safe-preview-overlay::after{content:"";position:absolute;background:rgba(255,255,255,.2)}
.ad-safe-preview-overlay::before{left:50%;top:18px;bottom:18px;width:1px;transform:translateX(-50%)}
.ad-safe-preview-overlay::after{top:50%;left:18px;right:18px;height:1px;transform:translateY(-50%)}
.ad-safe-preview-safezone{position:absolute;inset:10%;border:2px dashed rgba(255,255,255,.8);border-radius:18px;box-shadow:0 0 0 999px rgba(8,14,28,.18)}
.ad-safe-preview-badge{position:absolute;left:14px;top:14px;padding:6px 10px;border-radius:999px;background:rgba(7,12,24,.82);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);font-size:.78rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}
.ad-safe-guide-list{display:grid;gap:8px;margin-top:12px;font-size:.95rem;color:rgba(255,255,255,.84)}
.ad-safe-guide-list strong{color:#fff}
.ad-side-tip-stack{display:grid;gap:10px}
.ad-side-tip{padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);color:rgba(255,255,255,.84)}
.ad-side-tip .tag{margin-right:8px}
@media (max-width:900px){.ad-safe-preview{width:min(100%,280px)}}

/* Diploma signer admin / preview 2026-04-27 */
.diploma-signers-admin{margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08)}
.diploma-signer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.diploma-signer-card{padding:14px;border-radius:18px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08)}
.diploma-signer-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.diploma-signer-current{display:grid;gap:10px;margin-top:10px}
.diploma-signer-signature-box{min-height:86px;padding:12px;border-radius:16px;border:1px dashed rgba(255,255,255,.18);background:rgba(7,12,24,.35);display:grid;place-items:center}
.diploma-signer-signature-box img{max-width:100%;max-height:60px;display:block;object-fit:contain}
.inline-check{margin-top:0}
.diploma-signature-preview{margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}
.diploma-signature-preview-label{display:block;margin-bottom:10px;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.7);font-weight:800}
.diploma-signature-preview-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:end}
.diploma-signature-preview-row.single{grid-template-columns:minmax(0,1fr);max-width:220px;margin-inline:auto}
.diploma-signature-preview-row.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:460px;margin-inline:auto}
.diploma-signature-preview-item{text-align:center}
.diploma-signature-preview-scribble{min-height:46px;display:grid;place-items:center;margin-bottom:6px;color:rgba(255,255,255,.4);font-style:italic;letter-spacing:.08em;text-transform:uppercase}
.diploma-signature-preview-scribble img{max-width:120px;max-height:42px;display:block;object-fit:contain;filter:drop-shadow(0 8px 12px rgba(0,0,0,.25))}
.diploma-signature-preview-line{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);margin-bottom:10px}
.diploma-signature-preview-name{font-weight:800;color:#fff}
.diploma-signature-preview-callsign{font-size:.85rem;color:rgba(255,255,255,.72);font-weight:700;letter-spacing:.04em}
.diploma-signature-preview-empty{grid-column:1 / -1;padding:14px;border-radius:16px;border:1px dashed rgba(255,255,255,.16);text-align:center;color:rgba(255,255,255,.72)}
@media (max-width:980px){.diploma-signer-grid{grid-template-columns:1fr}.diploma-signature-preview-row,.diploma-signature-preview-row.two{grid-template-columns:1fr;max-width:none}}

.diploma-signer-input-wrap{display:grid;gap:8px;margin-top:10px}
.diploma-signature-pad-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.diploma-signature-canvas-shell{border:1px dashed rgba(255,255,255,.18);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(244,248,255,.98));padding:10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}
.diploma-signature-canvas{display:block;width:100%;height:180px;border-radius:12px;background:repeating-linear-gradient(180deg,rgba(255,255,255,0) 0,rgba(255,255,255,0) 28px,rgba(15,23,42,.07) 29px);touch-action:none;cursor:crosshair}
.diploma-signature-pad-actions{margin-top:8px}
.diploma-signer-card.is-draw-mode .diploma-signer-signature-box{background:rgba(255,255,255,.05)}
.diploma-signer-signature-box .js-signature-placeholder{color:rgba(255,255,255,.55);font-size:.92rem;text-align:center;padding:8px 12px}


.diploma-signer-card{position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.02));box-shadow:0 18px 36px rgba(4,9,20,.18)}
.diploma-signer-accent{position:absolute;inset:0 auto auto 0;width:100%;height:3px;background:linear-gradient(90deg,rgba(214,178,77,.95),rgba(255,255,255,.15),transparent)}
.diploma-signer-card .tag{background:rgba(214,178,77,.14);border-color:rgba(214,178,77,.34)}
.diploma-signature-canvas-shell{position:relative;padding:10px;border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(243,246,251,.95));border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px rgba(13,29,52,.05),0 12px 24px rgba(3,10,20,.10)}
.diploma-signature-canvas-shell::before{content:'';position:absolute;left:12px;right:12px;top:50%;border-top:1px dashed rgba(15,23,37,.14);transform:translateY(-50%)}
.diploma-signature-canvas{display:block;width:100%;height:180px;cursor:crosshair;touch-action:none;position:relative}
.diploma-signature-pad-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.diploma-signature-pad-actions{margin-top:4px}
.diploma-signer-current{padding:12px;border-radius:16px;background:rgba(7,12,24,.24);border:1px solid rgba(255,255,255,.07)}
.diploma-signer-signature-box{min-height:96px;background:radial-gradient(circle at top,rgba(255,255,255,.06),rgba(7,12,24,.32));border-style:solid}
.diploma-signer-signature-box img{max-height:68px}
.diploma-signer-card .js-signature-source{display:block;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);color:rgba(255,255,255,.7)}


.signer-mode-grid{align-items:end}
.diploma-signer-current-head{display:flex;align-items:center;justify-content:space-between;gap:10px;color:rgba(255,255,255,.76);font-size:.82rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}
.diploma-signature-ink-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
.diploma-signature-ink-dot,.diploma-signature-preview-swatch{display:inline-block;width:12px;height:12px;border-radius:999px;background:var(--signer-ink,#0f1725);box-shadow:0 0 0 2px rgba(255,255,255,.16)}
.diploma-signature-preview-swatch{width:14px;height:14px;margin-top:8px}
.diploma-signature-preview-scribble{position:relative}
.diploma-signature-preview-canvas{display:block;width:100%;height:auto;max-height:72px}
.diploma-signer-signature-box{position:relative;overflow:hidden}
.diploma-pdf-preview-panel{margin-top:18px;display:grid;gap:12px}
.diploma-pdf-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.diploma-pdf-preview-frame{width:100%;min-height:720px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:#fff;box-shadow:0 20px 40px rgba(3,10,20,.18)}
.diploma-pdf-preview-panel.is-loading .diploma-pdf-preview-frame{opacity:.72}
@media (max-width:980px){.diploma-pdf-preview-frame{min-height:560px}}

.site-legal-footer{margin-top:18px;padding:14px 18px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.03);display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap}
.site-legal-footer strong{display:block;margin-bottom:4px}
.site-legal-actions{display:flex;gap:10px;flex-wrap:wrap}
.cookie-banner{position:fixed;left:20px;right:20px;bottom:18px;z-index:1200;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:end;padding:18px;border-radius:22px;background:rgba(10,17,31,.96);border:1px solid rgba(255,255,255,.1);box-shadow:0 24px 60px rgba(0,0,0,.36)}
.cookie-banner[hidden],.cookie-modal[hidden]{display:none !important}
.cookie-banner-copy strong{display:block;margin-bottom:8px;font-size:1.02rem}
.cookie-banner-copy p{margin:0 0 8px 0;color:var(--muted);line-height:1.65}
.cookie-banner-copy a{font-weight:700}
.cookie-banner-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.cookie-modal{position:fixed;inset:0;z-index:1300;display:grid;place-items:center;padding:20px}
.cookie-modal-backdrop{position:absolute;inset:0;background:rgba(4,8,16,.68);backdrop-filter:blur(3px)}
.cookie-modal-card{position:relative;z-index:1;width:min(760px,100%);padding:22px;border-radius:24px}
.cookie-option-list{display:grid;gap:12px;margin-top:10px}
.cookie-option-row{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:16px 18px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.03)}
.cookie-option-row p{margin:6px 0 0 0;max-width:56ch}
.cookie-option-row.selectable{cursor:pointer}
.cookie-option-row input{width:20px;height:20px}
.cookie-option-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:110px;padding:10px 14px;border-radius:999px;border:1px solid rgba(90,168,255,.18);background:rgba(90,168,255,.1);font-weight:800;color:#d6e9ff}
.cookie-modal-open{overflow:hidden}
.legal-page{padding:22px}
.legal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.legal-card{height:100%}
.legal-table td{vertical-align:top}
@media (max-width: 820px){
  .cookie-banner{left:12px;right:12px;grid-template-columns:1fr}
  .cookie-banner-actions{justify-content:flex-start}
  .cookie-modal-card{padding:18px}
  .cookie-option-row{flex-direction:column;align-items:flex-start}
  .cookie-option-toggle,.cookie-option-row input{margin-top:6px}
  .legal-grid{grid-template-columns:1fr}
}


.pagination-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.03)}
.pagination-actions{display:flex;gap:8px;flex-wrap:wrap}
