/* Internal portal theme derived from the approved Home / Sign-In / Sign-Up UI.
   This file is intentionally not loaded by those three reference pages. */
:root {
  --portal-purple: #6361ce;
  --portal-purple-dark: #4d49ad;
  --portal-purple-soft: #efeeff;
  --portal-pink: #f3858a;
  --portal-pink-dark: #dc6c76;
  --portal-navy: #0b1f33;
  --portal-surface: #fff;
  --portal-background: #f7f6ff;
  --portal-text: #25234f;
  --portal-muted: #696887;
  --portal-border: #dedcf5;
  --portal-success: #23845a;
  --portal-warning: #9b6800;
  --portal-danger: #c94155;
  --portal-info: #4c63bd;
  --portal-radius-sm: 10px;
  --portal-radius-md: 16px;
  --portal-radius-lg: 22px;
  --portal-shadow-sm: 0 8px 24px rgba(49, 45, 128, 0.07);
  --portal-shadow-md: 0 18px 46px rgba(49, 45, 128, 0.12);
  --portal-space-xs: 8px;
  --portal-space-sm: 12px;
  --portal-space-md: 20px;
  --portal-space-lg: 30px;
  --ink: var(--portal-text);
  --ink-2: var(--portal-purple-dark);
  --paper: var(--portal-background);
  --surface: var(--portal-surface);
  --muted: var(--portal-muted);
  --line: var(--portal-border);
  --accent: var(--portal-pink);
  --accent-dark: var(--portal-pink-dark);
  --teal: var(--portal-purple);
  --coral: var(--portal-pink);
  --shadow: var(--portal-shadow-md);
  --radius: var(--portal-radius-md);
}

body {
  background:
    radial-gradient(circle at 100% 0, rgba(99, 97, 206, 0.1), transparent 28rem),
    linear-gradient(180deg, #fbfaff 0, var(--portal-background) 100%);
  color: var(--portal-text);
}

.site-header {
  min-height: 76px;
  background: rgba(11, 31, 51, 0.98);
  border-bottom-color: rgba(243, 133, 138, 0.34);
  box-shadow: 0 8px 30px rgba(11, 31, 51, 0.14);
  backdrop-filter: blur(16px);
}

.nav-wrap { min-height: 76px; }

.nav-links a,
.nav-links button {
  color: #e9e8f7;
  border: 1px solid transparent;
  border-radius: 12px;
  font-weight: 700;
}

.nav-links a:hover,
.nav-links a:focus-visible,
.nav-links button:hover,
.nav-links [aria-current="page"] {
  background: rgba(243, 133, 138, 0.14);
  border-color: rgba(243, 133, 138, 0.38);
  color: #fff;
}

.page-shell {
  min-height: calc(100vh - 76px);
  background:
    radial-gradient(circle at 92% 8%, rgba(99, 97, 206, 0.12), transparent 24rem),
    radial-gradient(circle at 4% 80%, rgba(243, 133, 138, 0.08), transparent 22rem);
}

.page-heading {
  padding: 24px 26px;
  border: 1px solid rgba(99, 97, 206, 0.17);
  border-radius: var(--portal-radius-lg);
  background: rgba(255, 255, 255, 0.9);
  box-shadow: var(--portal-shadow-sm);
}

.page-heading h1,
.panel h1,
.panel h2,
.section-card h2,
.category-list-card h2,
.form-card h2 { color: var(--portal-text); }

.eyebrow,
.feature-number { color: var(--portal-pink); }

.panel,
.stat-card,
.feature-card,
.form-card,
.section-card,
.category-list-card,
.admin-user-list,
.project-card,
.table-wrap,
.action-card {
  border-color: var(--portal-border);
  border-radius: var(--portal-radius-md);
  background: rgba(255, 255, 255, 0.97);
  box-shadow: var(--portal-shadow-sm);
}

.stat-card,
.feature-card,
.action-card,
.project-card {
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.stat-card:hover,
.feature-card:hover,
.action-card:hover,
.project-card:hover {
  border-color: rgba(99, 97, 206, 0.5);
  box-shadow: 0 16px 38px rgba(49, 45, 128, 0.13);
  transform: translateY(-2px);
}

.btn {
  min-height: 46px;
  border-radius: 13px;
  padding: 11px 20px;
}

.btn-primary {
  border-color: var(--portal-pink);
  background: var(--portal-pink);
  color: #fff;
  box-shadow: 0 8px 20px rgba(243, 133, 138, 0.24);
}

.btn-primary:hover,
.btn-primary:focus-visible {
  border-color: var(--portal-pink-dark);
  background: var(--portal-pink-dark);
  box-shadow: 0 10px 24px rgba(221, 108, 118, 0.3);
  transform: translateY(-1px);
}

.btn-secondary,
.btn-outline {
  border-color: rgba(99, 97, 206, 0.42);
  background: #fff;
  color: var(--portal-purple-dark);
}

.btn-secondary:hover,
.btn-outline:hover {
  border-color: var(--portal-purple);
  background: var(--portal-purple-soft);
}

.btn-status-danger,
.btn-danger {
  border-color: #e9aab3;
  background: #fff2f4;
  color: var(--portal-danger);
}

.btn-status-success,
.btn-success {
  border-color: #a9dbc3;
  background: #f0fbf5;
  color: var(--portal-success);
}

.btn:disabled,
button:disabled {
  cursor: not-allowed;
  opacity: 0.6;
  box-shadow: none;
}

.field label,
.toolbar label { color: var(--portal-text); }

.field input,
.field select,
.field textarea,
.toolbar input,
.toolbar select,
.category-name,
.category-order,
.category-fee-control,
input[type="search"] {
  border-color: #cbc9e8;
  border-radius: 12px;
  background: #fff;
  color: var(--portal-text);
}

.field input:focus,
.field select:focus,
.field textarea:focus,
.toolbar input:focus,
.toolbar select:focus,
.category-name:focus,
.category-order:focus,
.category-fee-control:focus-within,
input[type="search"]:focus {
  outline: 3px solid rgba(99, 97, 206, 0.16);
  border-color: var(--portal-purple);
}

.field input:disabled,
.field select:disabled,
.field textarea:disabled,
.field input[readonly] {
  background: #f1f0f8;
  color: #77758d;
}

.auth-shell { background: var(--portal-background); }

.auth-aside {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 92% 10%, rgba(126, 180, 231, 0.35) 0 20%, transparent 20.5%),
    radial-gradient(circle at 94% 8%, transparent 0 33%, rgba(75, 105, 199, 0.42) 33.5% 46%, transparent 46.5%),
    linear-gradient(135deg, #6361ce 0%, #5654c3 100%);
  color: #fff;
}

.auth-aside p { color: #efefff; }

.auth-main {
  background:
    radial-gradient(circle at 100% 0, rgba(243, 133, 138, 0.1), transparent 22rem),
    #f7f6ff;
}

.form-card {
  border-color: rgba(99, 97, 206, 0.25);
  box-shadow: 0 24px 64px rgba(49, 45, 128, 0.14);
}

.form-card h2 { color: var(--portal-purple); }

.welcome-banner {
  overflow: hidden;
  background:
    radial-gradient(circle at 100% 0, rgba(243, 133, 138, 0.28), transparent 18rem),
    linear-gradient(125deg, var(--portal-purple-dark), var(--portal-purple));
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: 0 18px 42px rgba(71, 68, 168, 0.22);
}

.welcome-banner p { color: #efefff; }

.registration-chip {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.3);
}

.admin-nav,
.super-sidebar {
  background: linear-gradient(155deg, #302d78, var(--portal-purple));
  box-shadow: 0 16px 38px rgba(49, 45, 128, 0.22);
}

/* Grid children default to min-width:auto, which lets wide data tables expand
   the whole page instead of scrolling inside their table container. */
.admin-layout,
.super-layout {
  min-width: 0;
}

.admin-layout > *,
.super-layout > *,
.table-wrap {
  min-width: 0;
  max-width: 100%;
}

.toolbar {
  flex-wrap: wrap;
}

.admin-nav a,
.super-sidebar a {
  color: #efefff;
  border-radius: 10px;
}

.admin-nav a:hover,
.admin-nav a[aria-current="page"],
.super-sidebar a:hover,
.super-sidebar a[aria-current="page"] {
  background: rgba(243, 133, 138, 0.2);
  color: #fff;
}

th {
  background: #f0effb;
  color: #53516f;
}

tbody tr:hover td { background: #fbfaff; }

.badge {
  border: 1px solid rgba(99, 97, 206, 0.14);
  background: var(--portal-purple-soft);
  color: var(--portal-purple-dark);
}

.badge-confirmed,
.badge-captured,
.badge-active,
.badge-accepted {
  border-color: #b6e2cd;
  background: #e5f7ed;
  color: #176344;
}

.badge-payment_pending,
.badge-pending,
.badge-submitted,
.badge-under_review {
  border-color: #edd595;
  background: #fff6da;
  color: #805800;
}

.badge-payment_failed,
.badge-failed,
.badge-rejected,
.badge-disabled,
.badge-locked {
  border-color: #efbbc0;
  background: #ffeaed;
  color: #91243a;
}

.alert { border-radius: 13px; }
.alert-success { border-color: #a8dec7; background: #effbf5; color: #176344; }
.alert-error { border-color: #efb7bf; background: #fff3f5; color: #9f2940; }

.fee-preview,
.file-drop,
.fee-callout,
.upload-zone,
.fee-summary,
.registration-fee,
.review-card,
.project-metric,
.report-track {
  border-color: #cbc9e8;
  background: #f7f6ff;
}

.report-fill { background: linear-gradient(90deg, var(--portal-purple), var(--portal-pink)); }

.site-footer {
  background: var(--portal-navy);
  border-top: 1px solid rgba(243, 133, 138, 0.28);
  color: #deddec;
}

body[data-page="payment-success"] .panel,
body[data-page="payment-failed"] .panel {
  max-width: 760px;
  margin-inline: auto;
  text-align: center;
  border-top: 6px solid var(--portal-pink);
  box-shadow: var(--portal-shadow-md);
}

body[data-page="receipt"] .panel,
body[data-page="registration-preview"] .panel,
body[data-page="registration"] .panel,
body[data-page="profile"] .panel,
body[data-page="abstract-submission"] .panel {
  border-top: 4px solid var(--portal-purple);
}

body[data-page="abstract-document"] { background: #292746; }

.document-toolbar {
  border-bottom-color: rgba(243, 133, 138, 0.35);
  background: #fff;
}

@media (max-width: 900px) {
  .nav-toggle { display: block; margin-left: auto; }
  .nav-links {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 76px;
    padding: 14px 18px;
    flex-direction: column;
    align-items: stretch;
    background: var(--portal-navy);
    box-shadow: 0 20px 35px rgba(11, 31, 51, 0.22);
  }
  .nav-links.open { display: flex; }
  .brand { max-width: calc(100% - 90px); }
  .auth-aside { min-height: 300px; }
  .admin-nav,
  .super-sidebar { gap: 5px; overflow-x: auto; }
  .admin-nav a,
  .super-sidebar a { flex: 0 0 auto; white-space: nowrap; }
}

@media (max-width: 640px) {
  .nav-wrap { min-height: 72px; }
  .page-heading { padding: 20px; }
  .panel,
  .stat-card,
  .feature-card,
  .form-card { border-radius: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .stat-card,
  .feature-card,
  .action-card,
  .project-card,
  .btn { transition: none; }
}
