:root{--bg:#020814;--panel:rgba(3,12,28,.88);--panel2:rgba(7,23,50,.72);--line:rgba(0,170,255,.2);--text:#f4f8ff;--muted:#aebfd5;--blue:#009dff;--blue2:#00c8ff;--danger:#ff5c7a;--good:#51ffb0;--warn:#d5b58c}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:"Segoe UI",Arial,sans-serif;color:var(--text);background:radial-gradient(circle at 15% 20%,rgba(0,180,255,.18),transparent 35%),radial-gradient(circle at 85% 80%,rgba(0,100,255,.18),transparent 40%),linear-gradient(135deg,#020814 0%,#04152d 50%,#071f49 100%)}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card,.panel{width:min(460px,100%);background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:0 0 60px rgba(0,130,255,.12);backdrop-filter:blur(10px)}.wide{width:100%;margin-top:18px}.brand-row{display:flex;gap:14px;align-items:center;margin-bottom:26px}.brand-row img{width:46px;height:46px;object-fit:contain}h1,h2,p{margin-top:0}h1{margin-bottom:4px;font-size:1.8rem}h2{font-size:1.15rem}p{color:var(--muted)}label{display:block;margin:12px 0 6px;color:var(--muted);font-weight:700;font-size:.82rem}input,select{width:100%;padding:11px 12px;border-radius:12px;border:1px solid var(--line);background:rgba(0,0,0,.24);color:var(--text);outline:none}option{background:#061b38;color:#fff}button,.header-actions a{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:12px;padding:11px 15px;margin-top:16px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#00111f;font-weight:900;cursor:pointer;text-decoration:none}button.secondary{background:rgba(255,255,255,.08);color:var(--text);border:1px solid var(--line)}button.danger{background:rgba(255,92,122,.16);color:var(--danger);border:1px solid rgba(255,92,122,.35)}.message{min-height:20px;margin-top:10px;color:var(--danger);font-weight:700}.portal-shell{width:min(1220px,calc(100% - 32px));margin:0 auto;padding:32px 0}.portal-header{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px}.eyebrow{color:var(--blue2);text-transform:uppercase;letter-spacing:4px;font-weight:900;font-size:.75rem;margin-bottom:6px}.header-actions{display:flex;gap:10px;flex-wrap:wrap}.header-actions button,.header-actions a{margin-top:0}.grid{display:grid;grid-template-columns:360px 1fr;gap:18px;align-items:start}.grid.two{grid-template-columns:1fr 1fr}.users-panel{width:100%}.users-list{display:grid;gap:12px}.user-card,.org-card{background:var(--panel2);border:1px solid var(--line);border-radius:16px;padding:16px}.user-top{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:rgba(0,157,255,.15);color:var(--blue2);font-weight:900;font-size:.72rem;text-transform:uppercase;white-space:nowrap}.badge.warn{background:rgba(213,181,140,.16);color:var(--warn)}.user-form,.org-form{display:grid;grid-template-columns:1.1fr 1.2fr 150px 130px 92px;gap:8px;align-items:end}.org-form{grid-template-columns:1.4fr 140px 92px auto}.user-form label,.org-form label{margin-top:0}.card-actions{display:flex;flex-wrap:wrap;gap:8px}.password-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px}.small-muted{font-size:.82rem;color:var(--muted);margin-bottom:0}@media(max-width:950px){.portal-header,.grid,.grid.two{grid-template-columns:1fr;display:grid}.user-form,.org-form{grid-template-columns:1fr}.password-row{grid-template-columns:1fr}}


.login-help {
  margin-top: 22px;
  padding: 16px;
  border-radius: 16px;
  border: 1px solid rgba(0, 170, 255, .18);
  background: rgba(0, 0, 0, .18);
}

.login-help h3 {
  margin: 0 0 8px;
  font-size: 1rem;
  color: var(--text);
}

.login-help p {
  margin: 0 0 10px;
  font-size: .88rem;
  line-height: 1.45;
}

.contact-lines {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: .88rem;
}

.contact-lines strong {
  color: var(--blue2);
}

/* Portal top navigation layout */
.portal-topbar {
  position: sticky;
  top: 0;
  z-index: 9999;
  width: 100%;
  border-bottom: 1px solid rgba(0, 170, 255, .18);
  background: rgba(3, 12, 28, .9);
  box-shadow: 0 10px 36px rgba(0, 0, 0, .22);
  backdrop-filter: blur(14px);
}

.portal-topbar__inner {
  width: min(1680px, calc(100% - 64px));
  min-height: 92px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 28px;
}

.portal-brand {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: var(--text);
  text-decoration: none;
  min-width: 230px;
}

.portal-brand img {
  width: 58px;
  height: 58px;
  object-fit: contain;
  filter: drop-shadow(0 0 14px rgba(0, 157, 255, .28));
}

.portal-brand__title {
  display: block;
  font-size: 1.35rem;
  line-height: 1;
  font-weight: 950;
  letter-spacing: .5px;
}

.portal-brand__sub {
  display: block;
  margin-top: 6px;
  color: var(--blue2);
  font-size: .78rem;
  font-weight: 950;
  letter-spacing: .8px;
  text-transform: uppercase;
}

.portal-nav {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.portal-nav a {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 50px;
  padding: 0 18px;
  border-radius: 12px;
  color: var(--text);
  text-decoration: none;
  font-weight: 900;
  border: 1px solid transparent;
}

.portal-nav a.active,
.portal-nav a:hover {
  border-color: rgba(0, 157, 255, .38);
  background: linear-gradient(135deg, rgba(0, 157, 255, .28), rgba(21, 93, 255, .24));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04), 0 0 24px rgba(0, 130, 255, .12);
}

.portal-topbar__user {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 360px;
}

.portal-shell {
  width: min(1680px, calc(100% - 64px));
  padding: 46px 0 64px;
}

.portal-header {
  align-items: flex-start;
  margin-bottom: 28px;
}

.portal-header h1 {
  font-size: clamp(2.1rem, 3vw, 3.1rem);
  letter-spacing: -1px;
}

.portal-header p:not(.eyebrow) {
  max-width: 560px;
  font-size: 1.05rem;
  line-height: 1.5;
}

.header-actions {
  padding-top: 12px;
}

.header-actions a,
.header-actions button {
  min-height: 54px;
  padding-inline: 24px;
  color: #f4f8ff;
  background: linear-gradient(135deg, rgba(0, 157, 255, .9), rgba(31, 102, 255, .9));
  border: 1px solid rgba(91, 185, 255, .35);
  box-shadow: 0 0 24px rgba(0, 130, 255, .16);
}

.header-actions button.secondary,
.header-actions .secondary-link {
  background: rgba(0,0,0,.16);
  border: 1px solid rgba(143, 196, 255, .26);
  color: var(--text);
}

.panel {
  width: 100%;
  border-radius: 18px;
  padding: 28px;
}

.grid.two {
  grid-template-columns: minmax(420px, .85fr) minmax(560px, 1.15fr);
  gap: 18px;
}

.grid {
  grid-template-columns: minmax(380px, 520px) 1fr;
  gap: 18px;
}

@media(max-width:1100px){
  .portal-topbar__inner {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 18px 0;
  }
  .portal-topbar__user,
  .portal-brand {
    min-width: 0;
  }
  .portal-nav {
    order: 3;
  }
}

@media(max-width:950px){
  .portal-topbar__inner,
  .portal-shell {
    width: min(100% - 28px, 760px);
  }
  .portal-header,
  .grid,
  .grid.two {
    grid-template-columns: 1fr;
    display: grid;
  }
  .header-actions {
    padding-top: 0;
  }
}

@media(max-width:620px){
  .portal-nav a,
  .header-actions a,
  .header-actions button {
    width: 100%;
  }
  .portal-nav,
  .header-actions {
    width: 100%;
  }
}


/* Portal header sizing fix v2 - hard override */
.portal-topbar {
  position: sticky !important;
  top: 0 !important;
  z-index: 9999 !important;
  width: 100% !important;
  min-height: 0 !important;
  overflow: visible !important;
  border-bottom: 1px solid rgba(0, 170, 255, .18) !important;
  background: rgba(3, 12, 28, .94) !important;
  box-shadow: 0 10px 36px rgba(0, 0, 0, .22) !important;
  backdrop-filter: blur(14px) !important;
}

.portal-topbar__inner {
  width: min(1680px, calc(100% - 64px)) !important;
  height: 96px !important;
  min-height: 96px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: 270px minmax(420px, 1fr) auto !important;
  align-items: center !important;
  gap: 28px !important;
}

.portal-brand {
  display: inline-flex !important;
  align-items: center !important;
  gap: 14px !important;
  min-width: 0 !important;
  height: 64px !important;
  color: var(--text) !important;
  text-decoration: none !important;
  overflow: hidden !important;
}

.portal-brand img,
.portal-brand__logo {
  width: 54px !important;
  height: 54px !important;
  max-width: 54px !important;
  max-height: 54px !important;
  min-width: 54px !important;
  object-fit: contain !important;
  display: block !important;
  flex: 0 0 54px !important;
  filter: drop-shadow(0 0 14px rgba(0, 157, 255, .28)) !important;
}

.portal-brand__title {
  display: block !important;
  font-size: 1.35rem !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  letter-spacing: .5px !important;
}

.portal-brand__sub {
  display: block !important;
  margin-top: 6px !important;
  color: var(--blue2) !important;
  font-size: .78rem !important;
  font-weight: 950 !important;
  letter-spacing: .8px !important;
  text-transform: uppercase !important;
}

.portal-nav {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 14px !important;
  flex-wrap: nowrap !important;
  min-width: 0 !important;
}

.portal-nav a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: 0 18px !important;
  border-radius: 12px !important;
  color: var(--text) !important;
  text-decoration: none !important;
  font-weight: 900 !important;
  border: 1px solid transparent !important;
  white-space: nowrap !important;
}

.portal-topbar__user {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  min-width: 340px !important;
  max-width: 560px !important;
  overflow: visible !important;
}

.portal-shell {
  width: min(1680px, calc(100% - 64px)) !important;
  margin: 0 auto !important;
  padding: 46px 0 64px !important;
}

.portal-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-start !important;
  gap: 18px !important;
  margin-bottom: 28px !important;
}

@media(max-width:1100px){
  .portal-topbar__inner {
    height: auto !important;
    min-height: 92px !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding: 14px 0 !important;
  }
  .portal-nav {
    flex-wrap: wrap !important;
  }
  .portal-topbar__user {
    min-width: 0 !important;
    max-width: none !important;
    width: 100% !important;
    justify-content: flex-start !important;
  }
}

@media(max-width:700px){
  .portal-topbar__inner,
  .portal-shell {
    width: min(100% - 28px, 760px) !important;
  }
  .portal-brand {
    height: 56px !important;
  }
  .portal-brand img,
  .portal-brand__logo {
    width: 46px !important;
    height: 46px !important;
    max-width: 46px !important;
    max-height: 46px !important;
    min-width: 46px !important;
    flex-basis: 46px !important;
  }
  .portal-nav a {
    width: 100% !important;
  }
}


.bug-admin-heading,
.bug-log-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}

.bug-admin-heading p,
.bug-log-heading p {
  margin-bottom: 0;
}

.bug-admin-controls {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.bug-admin-controls select {
  min-width: 180px;
}

.bug-report-list {
  display: grid;
  gap: 14px;
}

.bug-report-card {
  padding: 16px;
  border-radius: 18px;
  border: 1px solid rgba(0, 170, 255, .18);
  background: rgba(7, 23, 50, .72);
}

.bug-report-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.bug-report-card h3 {
  margin: 8px 0 4px;
  font-size: 1.05rem;
}

.bug-thumb {
  display: block;
  flex: 0 0 170px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(0, 170, 255, .24);
  background: rgba(0,0,0,.22);
}

.bug-thumb img {
  width: 100%;
  height: 110px;
  object-fit: cover;
  display: block;
}

.bug-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0;
}

.bug-meta div {
  min-width: 0;
  padding: 10px;
  border-radius: 13px;
  background: rgba(0, 0, 0, .18);
  border: 1px solid rgba(0, 170, 255, .12);
}

.bug-meta dt {
  color: var(--blue2);
  font-size: .72rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .5px;
}

.bug-meta dd {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: .84rem;
  word-break: break-word;
}

.bug-meta a {
  color: var(--blue2);
}

.bug-details {
  margin-top: 12px;
  padding: 13px;
  border-radius: 14px;
  background: rgba(0, 0, 0, .2);
  border: 1px solid rgba(0, 170, 255, .12);
}

.bug-details strong {
  display: block;
  margin-bottom: 7px;
  color: var(--text);
}

.bug-details p {
  margin: 0;
  white-space: pre-wrap;
  line-height: 1.5;
}

.bug-details--note {
  border-color: rgba(81, 255, 176, .22);
}

.bug-admin-update {
  display: grid;
  grid-template-columns: 160px 1fr auto;
  gap: 10px;
  align-items: end;
  margin-top: 14px;
}

.bug-admin-update label {
  margin: 0 0 6px;
}

.bug-admin-update .message {
  grid-column: 1 / -1;
}

.badge.status-pending {
  background: rgba(213,181,140,.16);
  color: var(--warn);
}

.badge.status-acknowledged {
  background: rgba(0,157,255,.16);
  color: var(--blue2);
}

.badge.status-fixed {
  background: rgba(81,255,176,.14);
  color: var(--good);
}

@media (max-width: 800px) {
  .bug-admin-heading,
  .bug-log-heading,
  .bug-report-card__top {
    display: grid;
  }

  .bug-thumb {
    width: 100%;
    flex-basis: auto;
  }

  .bug-meta,
  .bug-admin-update {
    grid-template-columns: 1fr;
  }
}


.auth-link-button {
  margin-top: 10px;
  border: 1px solid rgba(38, 198, 255, 0.35);
  background: rgba(8, 31, 58, 0.65);
  color: #7ddcff;
  cursor: pointer;
}

.auth-secondary-form {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(38, 198, 255, 0.18);
}

.auth-secondary-form h2 {
  margin: 0 0 8px;
}

.auth-secondary-form p {
  color: #a9c4df;
}

.auth-actions-row {
  display: grid;
  gap: 10px;
}


textarea{width:100%;padding:11px 12px;border-radius:12px;border:1px solid var(--line);background:rgba(0,0,0,.24);color:var(--text);outline:none;resize:vertical;font-family:inherit}.hidden{display:none!important}.portal-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:-8px 0 18px}.portal-tabs button{margin-top:0}.portal-tabs button.active{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#00111f}.org-settings-panel{width:100%}.logo-preview-row{display:grid;grid-template-columns:92px 1fr;gap:12px;align-items:center}.org-logo-preview{width:82px;height:82px;object-fit:contain;border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.05);padding:8px}.sponsor-editor{display:grid;gap:12px}.sponsor-editor-card{border:1px solid var(--line);border-radius:16px;padding:14px;background:rgba(0,0,0,.16)}.sponsor-editor-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.sponsor-editor-head button{margin-top:0}@media(max-width:700px){.logo-preview-row{grid-template-columns:1fr}.org-logo-preview{width:110px;height:110px}}

.sponsor-logo-preview-wrap{margin:8px 0;}
.sponsor-logo-preview{max-width:140px;max-height:70px;object-fit:contain;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.04);padding:8px;}

/* Organisation portal dashboard shell */
.org-portal-admin-shell{width:100%;align-items:stretch}
.org-portal-admin-shell .admin-content{min-width:0}
.org-portal-shell{width:100%;max-width:none;margin:0;padding:24px}
.org-portal-shell .grid{grid-template-columns:minmax(300px,420px) minmax(360px,1fr)}
@media (max-width:1100px){.org-portal-shell .grid{grid-template-columns:1fr}.org-portal-admin-shell{display:block}.org-portal-admin-shell .admin-sidebar{position:relative;width:auto;margin:12px 16px}.org-portal-shell{padding:16px}}


/* ORG portal settings layout refinement */
.org-settings-stack{
  display:grid;
  grid-template-columns:minmax(420px, 760px) minmax(320px, 1fr);
  gap:18px;
  align-items:start;
}
.org-settings-stack .org-settings-panel{
  width:100%;
}
.org-settings-stack #orgSettingsForm{
  grid-column:1 / 2;
}
.org-settings-stack .sponsor-settings-panel{
  grid-column:2 / 3;
}
.org-settings-stack #orgSettingsForm h3{
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid var(--line);
}
.org-settings-stack #orgSettingsForm input[name^="social"]{
  max-width:100%;
}
.sponsor-settings-panel{
  position:sticky;
  top:96px;
}
.sponsor-settings-panel .section-heading-row{
  align-items:flex-start;
}
.sponsor-settings-panel #saveSponsorCardsBtn{
  white-space:nowrap;
}
.sponsor-settings-panel .sponsor-editor-card{
  background:rgba(0,0,0,.18);
}
.sponsor-settings-panel .sponsor-editor-card img,
.sponsor-logo-preview{
  max-width:92px;
  max-height:72px;
  object-fit:contain;
}
@media (max-width:1100px){
  .org-settings-stack{
    grid-template-columns:1fr;
  }
  .org-settings-stack #orgSettingsForm,
  .org-settings-stack .sponsor-settings-panel{
    grid-column:auto;
  }
  .sponsor-settings-panel{
    position:static;
  }
}

.empty-state {
  border: 1px solid rgba(0, 194, 255, 0.22);
  border-radius: 18px;
  padding: 28px;
  background: rgba(5, 18, 36, 0.72);
  color: rgba(235, 247, 255, 0.86);
}
.empty-state h3 {
  margin: 0 0 8px;
  color: #fff;
}
.empty-state p {
  margin: 0;
  color: rgba(210, 228, 255, 0.72);
}


.bug-admin-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.bug-admin-update textarea {
  min-height: 72px;
}

.bug-admin-update select,
.bug-admin-update textarea {
  width: 100%;
}

.bug-admin-update button {
  margin-top: 0;
  white-space: nowrap;
}

.bug-report-card {
  position: relative;
}

