/* Abstract deadline, attendance registration, organizer area and QR poster.
   Uses the design tokens from tokens.css and the components from site.css. */

/* site.css gives .btn, .form-column etc. an explicit display, which would beat the hidden attribute. */
[hidden]{display:none!important}

.deadline{display:inline-flex;align-items:center;flex-wrap:wrap;gap:12px;margin-block-start:var(--space-5);padding:8px 8px 8px 18px;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-card)}
.deadline__label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted)}
.deadline__date{font-family:var(--font-mono);font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--surface-page);background:var(--brand-primary);padding:8px 18px;border-radius:var(--radius-pill)}
.date-row__value a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.date-row__value a:hover{color:inherit}
.external-note{font-size:13px;color:var(--text-muted);margin-block-start:var(--space-3)}

/* Attendance registration */
.attend{max-inline-size:640px;margin-inline:auto}
.panel{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:16px;padding:32px;box-shadow:var(--shadow-sm)}
.status{display:flex;gap:14px;align-items:flex-start;padding:18px 20px;border-radius:12px;border:1px solid var(--border-subtle);background:var(--surface-sunken);margin-block-end:28px}
.status__icon{flex-shrink:0;inline-size:36px;block-size:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--ink-950);color:var(--text-on-dark)}
.status--open{background:#eef7f0;border-color:#b9dcc1}
.status--open .status__icon{background:#1d6b35}
.status--closed{background:var(--red-50);border-color:var(--red-100)}
.status--closed .status__icon{background:var(--brand-primary)}
.status__title{font-weight:var(--weight-semibold);color:var(--text-primary)}
.status__text{font-size:var(--text-sm);color:var(--text-secondary);margin-block-start:4px;line-height:1.5}
.status__count{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-primary);margin-block-start:8px}
.form-column fieldset{border:0;padding:0;margin:0;min-inline-size:0;display:flex;flex-direction:column;gap:20px}
fieldset:disabled .field input{background:var(--surface-sunken);color:var(--text-muted);cursor:not-allowed}
fieldset:disabled .btn{opacity:.45;cursor:not-allowed}
.field__hint{font-size:12.5px;color:var(--text-muted);line-height:1.45}
.field__error{font-size:13px;color:var(--brand-primary)}
.field__error:empty{display:none}
.field input[aria-invalid="true"]{border-color:var(--brand-primary);box-shadow:var(--shadow-ring)}
.hp{position:absolute;inset-inline-start:-10000px;inline-size:1px;block-size:1px;overflow:hidden}
.alert{padding:14px 18px;border-radius:10px;font-size:var(--text-sm);line-height:1.55}
.alert[hidden]{display:none}
.alert--error{background:var(--red-50);color:var(--red-800);border:1px solid var(--red-100)}
.alert--info{background:var(--surface-sunken);color:var(--text-secondary);border:1px solid var(--border-subtle)}
.btn[aria-busy="true"]{opacity:.6;cursor:progress}
.success{text-align:center}
.success[hidden]{display:none}
.success__mark{inline-size:56px;block-size:56px;border-radius:50%;margin:0 auto 18px;background:#1d6b35;color:#fff;display:flex;align-items:center;justify-content:center}
.success__title{font-family:var(--font-display);font-size:clamp(24px,3vw,30px);font-weight:var(--weight-semibold);color:var(--text-primary)}
.success__text{color:var(--text-secondary);line-height:1.6;margin-block-start:12px}
.success .btn-row{justify-content:center}
.attend-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-block-start:40px}
.attend-steps li{list-style:none;font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}
.attend-steps strong{display:block;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--brand-primary);margin-block-end:6px}
.attend-steps{padding:0}

/* Organizer area */
.admin-login{max-inline-size:420px;margin-inline:auto}
.admin-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-block-end:var(--space-5)}
.admin-toolbar .btn-row{margin:0}
.setup{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3);margin-block-end:var(--space-5)}
.setup__item{border:1px solid var(--border-subtle);border-radius:12px;padding:14px 16px;background:var(--surface-card)}
.setup__label{font-family:var(--font-mono);font-size:11px;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted)}
.setup__value{margin-block-start:6px;font-weight:var(--weight-semibold);color:var(--text-primary);font-size:var(--text-sm)}
.table-wrap{overflow-x:auto;border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface-card)}
.table{inline-size:100%;border-collapse:collapse;font-size:var(--text-sm)}
.table th{text-align:start;font-family:var(--font-mono);font-size:11px;font-weight:var(--weight-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted);padding:12px 14px;border-block-end:1px solid var(--border-subtle);background:var(--surface-sunken);white-space:nowrap}
.table td{padding:12px 14px;border-block-end:1px solid var(--border-subtle);vertical-align:top;color:var(--text-primary)}
.table tr:last-child td{border-block-end:0}
.table__actions{display:flex;flex-wrap:wrap;gap:6px 14px}
.table__empty{padding:32px;text-align:center;color:var(--text-muted)}
.link-btn{background:none;border:0;padding:0;color:var(--link);font-weight:var(--weight-semibold);font-size:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.link-btn:hover{color:var(--link-hover)}
.link-btn:disabled{color:var(--text-muted);cursor:progress}
.badge{display:inline-block;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;padding:3px 10px;border-radius:var(--radius-pill);white-space:nowrap}
.badge--ok{background:#eef7f0;color:#1d6b35}
.badge--warn{background:#fff4df;color:#7a5200}
.badge--bad{background:var(--red-50);color:var(--red-700)}
.badge-note{display:block;font-size:12px;color:var(--text-muted);margin-block-start:4px;max-inline-size:260px;overflow-wrap:anywhere}

.badge--muted{background:var(--surface-sunken);color:var(--text-muted)}
.admin-toolbar__text{font-size:var(--text-sm);color:var(--text-secondary);max-inline-size:620px;line-height:1.5}
.tabs{display:flex;flex-wrap:wrap;gap:8px;border-block-end:1px solid var(--border-subtle);margin-block-end:var(--space-5)}
.tabs__tab{font-weight:var(--weight-semibold);font-size:var(--text-base);color:var(--text-secondary);padding:12px 18px;border-block-end:3px solid transparent;margin-block-end:-1px}
.tabs__tab[aria-selected="true"]{color:var(--text-primary);border-block-end-color:var(--brand-primary)}
.tabs__count{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-muted)}
.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3);margin-block-end:var(--space-5)}
.summary__card{border:1px solid var(--border-subtle);border-radius:12px;padding:14px 16px;background:var(--surface-card)}
.summary__card--total{background:var(--ink-950);border-color:var(--ink-950)}
.summary__card--total .setup__label,.summary__card--total .summary__more{color:var(--slate-300)}
.summary__total{font-family:var(--font-display);font-size:44px;font-weight:var(--weight-semibold);color:var(--text-on-dark);line-height:1.1;margin-block-start:6px}
.summary__list{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:6px;font-size:var(--text-sm)}
.summary__list li{display:flex;justify-content:space-between;gap:12px;color:var(--text-secondary)}
.summary__list strong{font-family:var(--font-mono);color:var(--text-primary)}
.summary__more{font-size:12px;color:var(--text-muted);margin-block-start:8px}
.cert-cell{min-inline-size:210px}
.cert-cell__badges{display:flex;flex-wrap:wrap;gap:6px}
.cert-cell .table__actions{margin-block-start:8px}
.cert-cell--participation .badge--ok:first-child{background:#e8eef8;color:#33548f}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.notice{margin-block-start:28px;padding:18px 20px;border-inline-start:3px solid var(--brand-primary);background:var(--surface-sunken);border-radius:0 10px 10px 0;font-size:var(--text-sm);color:var(--text-secondary);line-height:1.6}
.notice p+p{margin-block-start:8px}
.notice__title{font-weight:var(--weight-semibold);color:var(--text-primary)}
@media (max-width:560px){.field-row{grid-template-columns:1fr}}

/* Pre-Registration above Registration in the header's right-hand area; both are
   also in the mobile menu. The header's Submit Abstract button stays hidden
   (Abstracts is in the nav, hero and mobile menu) so the nav fits on one row;
   that rule must not hide Registration. */
.header-actions .btn--secondary{display:none}
.header-reg{display:flex;flex-direction:column;gap:4px}
.header-actions .header-reg .btn{display:flex;padding:4px 14px;font-size:11px;line-height:1.35}
.mobile-nav a.mobile-nav__reg{color:var(--brand-primary);font-weight:var(--weight-semibold)}
@media (max-width:600px){.header-actions .header-reg{display:none}}

/* QR poster */
.qr-poster{max-inline-size:720px;margin:0 auto;padding:56px var(--space-6);text-align:center}
.qr-poster__brand{display:flex;align-items:center;justify-content:center;gap:14px}
.qr-poster__brand img{inline-size:64px;block-size:64px}
.qr-poster__eyebrow{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--brand-primary);margin-block-start:28px}
.qr-poster__title{font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:clamp(34px,5vw,52px);line-height:var(--leading-tight);margin-block-start:10px;color:var(--text-primary)}
.qr-poster__lede{font-size:var(--text-lg);color:var(--text-secondary);margin-block-start:14px;line-height:1.5}
.qr-poster__code{inline-size:min(360px,80vw);margin:32px auto 0;padding:18px;border:2px solid var(--ink-950);border-radius:16px;background:#fff}
.qr-poster__code img{inline-size:100%;block-size:auto}
.qr-poster__url{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:var(--weight-semibold);margin-block-start:20px;color:var(--text-primary)}
.qr-poster__steps{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 28px;margin-block-start:26px;padding:0;list-style:none;font-size:var(--text-base);color:var(--text-secondary)}
.qr-poster__steps strong{color:var(--brand-primary);font-family:var(--font-mono);margin-inline-end:6px}
.qr-poster__date{margin-block-start:28px;font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted)}

@media (max-width:640px){
  .panel{padding:22px}
  .attend-steps{grid-template-columns:1fr}
}

@media print{
  .site-header,.footer--slim,.no-print{display:none!important}
  body{background:#fff}
  .qr-poster{padding:0}
}

/* Arabic on the inner pages. The Latin display and mono faces have no Arabic
   glyphs, and letter-spacing pulls joined Arabic letters apart. Scoped to the
   inner-page blocks, so the homepage is untouched. */
html[lang="ar"] :is(.page-hero,.page-body,.footer--slim),
html[lang="ar"] :is(.page-hero,.page-body,.footer--slim) *{font-family:var(--font-arabic);letter-spacing:normal}
/* Committee names and official affiliations stay in English: keep them
   left-to-right, but aligned with the Arabic around them. */
html[dir="rtl"] .member [dir="ltr"]{text-align:right}
/* The two physical shorthands, mirrored. */
html[dir="rtl"] .page-body .deadline{padding:8px 18px 8px 8px}
html[dir="rtl"] .page-body .notice{border-radius:10px 0 0 10px}
/* Inputs are wider by default in the Arabic face; let the paired fields shrink to their column. */
html[lang="ar"] .field-row .field{min-inline-size:0}

/* Contact form message field: the same look and states as the inputs above and in site.css. */
.field textarea{font-family:inherit;font-size:var(--text-base);line-height:1.5;padding:14px var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--white);color:var(--text-primary);resize:vertical;min-block-size:140px}
.field textarea[aria-invalid="true"]{border-color:var(--brand-primary);box-shadow:var(--shadow-ring)}
fieldset:disabled .field textarea,fieldset:disabled .field select{background:var(--surface-sunken);color:var(--text-muted);cursor:not-allowed}

/* Paid registration, confirmation page and staff check-in */
.choice{display:flex;align-items:center;gap:12px;padding:14px 16px;margin-block-start:10px;border:1px solid var(--border-default,#d8d7d5);border-radius:10px;cursor:pointer;background:#fff}
.choice:has(input:checked){border-color:var(--brand-primary);box-shadow:inset 0 0 0 1px var(--brand-primary)}
.choice input{inline-size:18px;block-size:18px;flex:none;margin:0}
.choice__text{flex:1;color:var(--text-primary)}
.choice__price{font-weight:var(--weight-semibold);color:var(--text-primary);white-space:nowrap}
.confirmation{text-align:center}
.confirmation__name{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--text-primary);margin-block-start:14px}
.confirmation__label{font-size:var(--text-sm);color:var(--text-secondary);margin-block-start:14px}
.confirmation__number{font-family:var(--font-mono);font-size:clamp(22px,4vw,28px);font-weight:var(--weight-semibold);color:var(--text-primary)}
.confirmation__payment{color:#1d6b35;font-weight:var(--weight-semibold);margin-block-start:8px}
.confirmation__qr{display:block;inline-size:min(360px,100%);block-size:auto;margin:20px auto 0;background:#fff}
.qr-notice{margin-block-start:20px;padding:16px 18px;border:2px solid var(--brand-primary);border-radius:10px;font-weight:var(--weight-semibold);line-height:1.7;color:var(--text-primary);text-align:start}
.qr-notice p+p{margin-block-start:10px}
.confirmation .btn-row{justify-content:center;margin-block-start:20px}
.checkin{max-inline-size:560px;margin-inline:auto;display:grid;grid-template-columns:minmax(0,1fr);gap:16px;overflow-wrap:anywhere}
.checkin input,.checkin video{max-inline-size:100%;min-inline-size:0}
.checkin__video{inline-size:100%;border-radius:10px;background:#000}
.checkin__manual{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.checkin__manual .field{flex:1 1 220px}
.checkin-card{padding:18px 20px;border-radius:10px;border:2px solid;background:#fff}
.checkin-card--ok{border-color:#1d6b35}
.checkin-card--warn{border-color:#b7791f}
.checkin-card--bad{border-color:#c6202b}
.checkin-card__title{font-size:var(--text-xl);font-weight:var(--weight-semibold)}
.checkin-card--ok .checkin-card__title{color:#1d6b35}
.checkin-card--warn .checkin-card__title{color:#975a16}
.checkin-card--bad .checkin-card__title{color:#c6202b}
.checkin-card__text{color:var(--text-secondary);margin-block-start:6px;line-height:1.5}
.checkin-card__list{margin-block:14px;display:grid;gap:8px}
.checkin-card__row{display:grid;grid-template-columns:minmax(120px,40%) 1fr;gap:12px}
.checkin-card__row dt{color:var(--text-secondary)}
.checkin-card__row dd{font-weight:var(--weight-semibold);margin:0;overflow-wrap:anywhere}
@media print{.site-header,.footer--slim,.skip-link{display:none}.page-body,.panel{padding:0;border:0;box-shadow:none}}

/* Manual card transfer */
.test-banner{padding:12px 16px;margin-block-end:16px;border-radius:10px;background:#fff4df;border:2px solid #b7791f;color:#7a5200;font-weight:var(--weight-semibold);line-height:1.5}
.transfer{text-align:start}
.transfer__amount{font-size:clamp(26px,5vw,34px);font-weight:var(--weight-bold);color:var(--text-primary);margin-block-start:6px}
.transfer__rows{display:grid;gap:12px;margin-block:18px}
.transfer__row{padding:12px 14px;border:1px solid var(--border-subtle);border-radius:10px;background:var(--surface-sunken)}
.transfer__label{font-size:var(--text-sm);color:var(--text-secondary)}
.transfer__value{font-family:var(--font-mono);font-size:clamp(17px,3.6vw,21px);font-weight:var(--weight-semibold);color:var(--text-primary);overflow-wrap:anywhere;direction:ltr;text-align:start}
.transfer__steps{padding-inline-start:20px;line-height:1.7;color:var(--text-secondary);list-style:decimal}
.transfer__rejected{margin-block-end:16px}
.review-list{display:grid;gap:18px}
.review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-block-start:14px}
.review-box{display:grid;gap:12px;align-content:start;padding:14px;border:1px solid var(--border-subtle);border-radius:10px}
.review-box__title{font-weight:var(--weight-semibold)}
.review-box__check{display:flex;gap:10px;align-items:flex-start;line-height:1.45}
.review-box__check input{margin-block-start:3px;flex:none}

/* Final registration screens */
.support-box{margin-block-start:18px;padding:14px 16px;border:1px solid var(--border-default);border-radius:10px;background:var(--surface-card);text-align:center;line-height:1.6;overflow-wrap:anywhere}
.support-box a{font-weight:var(--weight-semibold)}
.confirmation__help{margin-block-start:16px;line-height:1.7;color:var(--text-secondary);text-align:start}
.certificate-box{margin-block-start:18px;padding:16px;border:2px solid #1d6b35;border-radius:10px;display:grid;grid-template-columns:minmax(0,1fr);gap:10px;justify-items:center;text-align:center;overflow-wrap:anywhere}
.certificate-box .btn{max-inline-size:100%;white-space:normal}
.review-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-block-end:14px}
.review-tabs button[aria-pressed="true"]{background:var(--ink-950);color:#fff;border-color:var(--ink-950)}
.receipt-preview{display:block;max-inline-size:100%;max-block-size:520px;margin-block-start:10px;border:1px solid var(--border-subtle);border-radius:8px}
.admin-search{max-inline-size:360px;margin-block-end:14px}
.checkin__upload{display:grid;gap:6px}
@media print{.support-box,.certificate-box,.confirmation__help{display:none}}

.transfer__row .btn{margin-block-start:8px}
.transfer__methods{padding-inline-start:20px;list-style:disc;line-height:1.7;color:var(--text-secondary);margin-block:6px 12px}

.review-summary{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;cursor:pointer;list-style:none}
.review-summary::-webkit-details-marker{display:none}
.review-summary__meta{color:var(--text-secondary);overflow-wrap:anywhere;min-inline-size:0}
.review-summary__open{margin-inline-start:auto;font-weight:var(--weight-semibold);text-decoration:underline}
details.checkin-card[open] .review-summary{margin-block-end:6px}
.review-grid{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}
.review-box{min-inline-size:0}
.review-box select,.review-box input:not([type=checkbox]){inline-size:100%;max-inline-size:100%;min-inline-size:0;box-sizing:border-box}
