/*
 * NGWS Musician Portal component system
 * Loaded last so every authenticated panel receives the same readable,
 * responsive treatment, including components rendered later by JavaScript.
 */
:root {
  --portal-blue:#0878df;
  --portal-blue-hover:#0069c7;
  --portal-violet:#6f52ed;
  --portal-violet-soft:#f0edff;
  --portal-surface:#ffffff;
  --portal-surface-soft:#f7f7fa;
  --portal-text:#1d1d1f;
  --portal-muted:#646b76;
  --portal-border:#dfe3e9;
  --portal-shadow:0 14px 38px rgba(27,31,43,.075);
  --portal-radius:24px;
  --portal-control-radius:13px;
}

.portal-site .portal-panel {
  width:min(100%,1400px);
  scroll-margin-top:72px;
}

.portal-site .panel-heading {
  align-items:center;
  margin-bottom:clamp(1.5rem,3vw,2.4rem);
}

.portal-site .panel-heading>div:first-child {
  min-width:0;
}

.portal-site .panel-heading h2 {
  max-width:19ch;
  font-size:clamp(2.25rem,4.2vw,4.25rem);
  line-height:1.02;
  overflow-wrap:normal;
  word-break:normal;
}

.portal-site .panel-heading p,
.portal-site .card-heading p,
.portal-site .form-heading p {
  margin-bottom:.45rem;
  color:var(--portal-violet);
  font-size:14px!important;
  font-weight:750;
  line-height:1.35!important;
}

.portal-site .today-chip {
  flex:0 0 auto;
  max-width:220px;
  padding:.7rem 1rem;
  color:#59677a;
  font-size:14px!important;
  font-weight:700;
  line-height:1.35!important;
  text-align:center;
  white-space:normal;
}

/* Shared form controls and actions */
.portal-site .portal-panel label {
  color:#4e5968;
  font-size:15px!important;
  font-weight:700;
  line-height:1.4!important;
}

.portal-site .portal-panel input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.portal-site .portal-panel select,
.portal-site .portal-panel textarea {
  width:100%;
  min-width:0;
  min-height:48px;
  padding:.78rem .9rem;
  border:1px solid var(--portal-border);
  border-radius:var(--portal-control-radius);
  background:#fff;
  color:var(--portal-text);
  font-size:16px!important;
  line-height:1.4!important;
  outline:none;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}

.portal-site .portal-panel textarea {
  min-height:108px;
  resize:vertical;
}

.portal-site .portal-panel input:focus,
.portal-site .portal-panel select:focus,
.portal-site .portal-panel textarea:focus {
  border-color:var(--portal-violet);
  box-shadow:0 0 0 4px rgba(111,82,237,.13);
}

.portal-site .portal-panel button,
.portal-site .portal-panel .primary-action,
.portal-site .portal-panel .export-button {
  min-height:44px;
  border-radius:999px;
  font-size:14px!important;
  font-weight:750;
  line-height:1.3!important;
}

.portal-site .portal-panel button:disabled {
  opacity:.58;
  cursor:not-allowed;
}

/* Authentication states */
.role-choice {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.75rem;
  margin-top:1rem;
}

.role-choice button {
  min-height:76px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:.25rem;
  margin:0;
  padding:1rem 1.1rem;
  border:1px solid var(--portal-border);
  border-radius:16px;
  background:#fff;
  color:var(--portal-text);
  text-align:left;
}

.role-choice button:hover {
  border-color:var(--portal-violet);
  background:var(--portal-violet-soft);
}

.role-choice button span {
  color:var(--portal-muted);
  font-size:14px;
}

.auth-explainer {
  margin:0 0 1rem;
  padding:1rem;
  border-radius:14px;
  background:var(--portal-violet-soft);
  color:#4f4382;
}

.auth-setup-link {
  display:inline-flex;
  min-height:44px;
  align-items:center;
  padding:.7rem 1rem;
  border-radius:999px;
  background:var(--portal-violet);
  color:#fff;
  font-weight:750;
}

.setup-key,
.activation-result {
  display:grid;
  gap:.55rem;
  margin-top:1rem;
  padding:1rem;
  border:1px solid #dcd5ff;
  border-radius:16px;
  background:#f7f5ff;
}

.setup-key code {
  padding:.75rem;
  border-radius:10px;
  background:#1d1d1f;
  color:#fff;
  overflow-wrap:anywhere;
}

.sign-in-card .auth-secondary {
  justify-content:center;
  border:1px solid var(--portal-border);
  background:#f1f2f5;
  color:#3f4957;
}

/* People, roles and concert parts */
.tenancy-grid {
  display:grid;
  grid-template-columns:minmax(320px,.82fr) minmax(0,1.18fr);
  gap:1.25rem;
  align-items:start;
}

.tenancy-admin-card,
.tenancy-directory-card,
.membership-api-card {
  min-width:0;
  padding:clamp(1.35rem,2.5vw,2rem);
  border:1px solid rgba(25,32,46,.06);
  border-radius:var(--portal-radius);
  background:var(--portal-surface);
  box-shadow:var(--portal-shadow);
}

.tenancy-admin-card {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}

.tenancy-admin-card>span,
.tenancy-admin-card>h3,
.tenancy-admin-card>p,
.tenancy-admin-card>.guest-access-fields,
.tenancy-admin-card>.primary-action,
.tenancy-admin-card>.activation-result {
  grid-column:1/-1;
}

.tenancy-admin-card>span,
.security-admin-card>span {
  color:var(--portal-violet);
  font-size:14px!important;
  font-weight:800;
}

.tenancy-admin-card h3,
.tenancy-directory-card h3,
.membership-api-card h3 {
  margin:.15rem 0 0;
  font-size:clamp(1.35rem,2vw,1.75rem);
  line-height:1.2;
}

.tenancy-admin-card>p {
  margin:0;
  color:var(--portal-muted);
}

.tenancy-admin-card label,
.membership-review label,
.lifecycle-grid label {
  display:flex;
  flex-direction:column;
  gap:.5rem;
  min-width:0;
}

.tenancy-admin-card .primary-action {
  margin-top:.25rem;
}

.guest-access-fields {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  padding:1rem;
  border-radius:16px;
  background:#fff8e9;
}

.guest-access-fields>small {
  grid-column:1/-1;
  color:#715924;
  font-size:14px!important;
}

.tenancy-directory-card .card-heading,
.membership-api-head,
.tenant-person-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}

.tenancy-directory-card .card-heading {
  padding-bottom:1rem;
  border-bottom:1px solid var(--portal-border);
}

.tenancy-directory-card .card-heading button {
  flex:0 0 auto;
  padding:.65rem 1rem;
  border:0;
  background:#ececf1;
  color:#4d5664;
}

.tenancy-directory {
  display:grid;
  gap:1rem;
  margin-top:1rem;
}

.identity-strength-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.65rem;
  margin-top:1rem;
}

.identity-strength-grid article {
  min-width:0;
  padding:.9rem;
  border:1px solid var(--portal-border);
  border-radius:15px;
  background:var(--portal-surface-soft);
}

.identity-strength-grid span,
.identity-strength-grid small,
.identity-table-note,
.account-table-id {
  color:var(--portal-muted);
  font-size:12px!important;
  line-height:1.45;
}

.identity-strength-grid strong {
  display:block;
  margin:.35rem 0 .1rem;
  color:var(--portal-violet);
  font-size:1.55rem;
}

.identity-table-note {
  margin:1rem 0 0;
  padding:.8rem 1rem;
  border-radius:14px;
  background:#f4f1ff;
}

.identity-table-note b { color:#3f347f; }
.account-table-id { display:block; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; overflow-wrap:anywhere; }

.tenancy-loading {
  margin:0;
  padding:1.2rem;
  border-radius:16px;
  background:var(--portal-surface-soft);
  color:var(--portal-muted);
}

.tenant-person {
  min-width:0;
  padding:1.15rem;
  border:1px solid var(--portal-border);
  border-radius:18px;
  background:#fff;
}

.tenant-person-head>div {
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:.25rem;
}

.tenant-person-head b {
  font-size:18px;
  line-height:1.25;
}

.tenant-person-head span,
.tenant-person>p {
  color:var(--portal-muted);
  font-size:14px!important;
  overflow-wrap:anywhere;
}

.tenant-person-head i {
  flex:0 0 auto;
  padding:.38rem .65rem;
  border-radius:999px;
  background:#fff2d6;
  color:#7b5b16;
  font-size:14px;
  font-style:normal;
  font-weight:750;
  text-align:center;
}

.tenant-person-head i.ready {
  background:#e6f6ed;
  color:#23724d;
}

.assignment-chips {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin:.85rem 0;
}

.assignment-chips>span,
.leader-chip {
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  max-width:100%;
  padding:.45rem .7rem;
  border-radius:999px;
  background:var(--portal-violet-soft);
  color:#52429e;
  font-size:14px!important;
  line-height:1.35!important;
  overflow-wrap:anywhere;
}

.leader-chip button {
  width:26px;
  min-height:26px!important;
  padding:0;
  border:0;
  background:#ded7ff;
  color:#4d3c9c;
}

.part-chip button {
  display:grid;
  flex:0 0 auto;
  place-items:center;
  width:27px;
  min-height:27px!important;
  padding:0;
  border:0;
  border-radius:50%;
  background:#dcd5ff;
  color:#49388f;
  font-size:18px;
  font-weight:850;
  cursor:pointer;
}

.part-chip button:hover { background:#ffcfc9;color:#9b2f24 }

.part-assign-row,
.sl-assign-row,
.guest-access-summary>div {
  display:grid;
  grid-template-columns:minmax(150px,.9fr) minmax(190px,1.25fr) auto;
  gap:.6rem;
  margin-top:.75rem;
}

.part-assign-row button,
.sl-assign-row button,
.guest-access-summary button,
.lifecycle-grid button,
.membership-review button,
.activation-result button {
  padding:.7rem 1rem;
  border:0;
  background:var(--portal-blue);
  color:#fff;
  cursor:pointer;
}

.guest-access-summary {
  display:grid;
  gap:.35rem;
  padding:1rem;
  border-radius:15px;
  background:#fff7e8;
}

.guest-access-summary>span {
  color:#725c31;
  font-size:14px!important;
}

.account-lifecycle {
  margin-top:1rem;
  border-top:1px solid var(--portal-border);
}

.account-lifecycle summary {
  min-height:46px;
  display:flex;
  align-items:center;
  padding-top:.8rem;
  color:#4b3d91;
  cursor:pointer;
  font-size:15px;
  font-weight:750;
}

.lifecycle-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.75rem;
  padding-top:.75rem;
}

.lifecycle-grid>div {
  display:flex;
  align-items:end;
  gap:.5rem;
}

.lifecycle-grid>button {
  align-self:end;
}

.departure-explainer {
  display:grid!important;
  align-content:center;
  gap:.25rem!important;
  padding:.8rem;
  border-radius:14px;
  background:#fff4df;
  color:#6d4a16;
}

.departure-explainer span { font-size:14px!important;line-height:1.45!important }
.lifecycle-grid .depart-account { background:#8e3e36 }

/* Member lifecycle guide */
.lifecycle-intro {
  max-width:850px;
  margin:-.5rem 0 1.5rem;
  color:var(--portal-muted);
}

.lifecycle-path {
  display:grid;
  grid-template-columns:repeat(4,minmax(175px,1fr) auto) minmax(175px,1fr);
  align-items:stretch;
  gap:.6rem;
  overflow-x:auto;
  padding:.25rem .1rem 1rem;
  scrollbar-gutter:stable;
}

.lifecycle-path article,
.lifecycle-guide-grid article {
  min-width:0;
  padding:1.2rem;
  border:1px solid rgba(25,32,46,.06);
  border-radius:20px;
  background:#fff;
  box-shadow:0 8px 26px rgba(27,31,43,.055);
}

.lifecycle-path>i {
  align-self:center;
  color:#9a8ce9;
  font-size:1.35rem;
  font-style:normal;
}

.lifecycle-path article>span,
.lifecycle-guide-grid article>span {
  color:var(--portal-violet);
  font-size:14px!important;
  font-weight:800;
}

.lifecycle-path h3,
.lifecycle-guide-grid h3 {
  margin:.45rem 0;
  font-size:20px;
  line-height:1.2;
}

.lifecycle-path p,
.lifecycle-guide-grid p {
  margin:0;
  color:var(--portal-muted);
  font-size:15px!important;
  line-height:1.55!important;
}

.lifecycle-path .group-four { border-top:4px solid #ff9f0a; }
.lifecycle-path .group-three { border-top:4px solid #30a46c; }
.lifecycle-path .group-two { border-top:4px solid #32ade6; }
.lifecycle-path .group-one { border-top:4px solid #7657ff; }

.lifecycle-guide-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
  margin-top:1rem;
}

.lifecycle-approval {
  display:grid;
  grid-template-columns:auto 1fr;
  gap:1rem;
  align-items:start;
  margin-top:1rem;
  padding:1.2rem;
  border-radius:18px;
  background:#161822;
  color:#fff;
}

.lifecycle-approval b {
  color:#b7a6ff;
  font-size:16px;
}

.lifecycle-approval p {
  margin:0;
  color:#d5d8e1;
  font-size:15px!important;
}

/* Membership applications */
.membership-api-list {
  display:grid;
  gap:1rem;
}

.membership-api-head>div {
  min-width:0;
}

.membership-api-head span {
  color:var(--portal-violet);
  font-size:14px!important;
  font-weight:800;
}

.membership-api-head i {
  flex:0 0 auto;
  padding:.4rem .7rem;
  border-radius:999px;
  background:#fff2d6;
  color:#795915;
  font-size:14px;
  font-style:normal;
  font-weight:750;
  text-transform:capitalize;
}

.membership-api-card .application-details {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.75rem;
}

.membership-api-card .application-details>div {
  padding:.85rem;
  border-radius:14px;
  background:var(--portal-surface-soft);
}

.membership-api-card .application-details span {
  font-size:14px!important;
}

.membership-api-card .application-details b {
  font-size:15px;
}

.membership-api-card>p {
  color:var(--portal-muted);
  overflow-wrap:anywhere;
}

.membership-review {
  display:grid;
  grid-template-columns:minmax(180px,.8fr) minmax(240px,1.3fr) minmax(190px,.9fr) auto;
  gap:.75rem;
  align-items:end;
  margin-top:1rem;
  padding:1rem;
  border-radius:17px;
  background:#f2f1f8;
}

/* Security and empty states */
.security-admin-card,
.security-incident-card {
  border:1px solid rgba(25,32,46,.06);
}

.security-admin-card label {
  font-size:15px!important;
}

.security-admin-card>p,
.security-incident-card>p,
.security-incident-card dt,
.security-incident-card dd {
  font-size:14px!important;
}

.tickets-empty {
  padding:clamp(2rem,7vw,5rem);
  border-radius:var(--portal-radius);
  background:#fff;
}

.tickets-empty h3 {
  margin:.75rem 0 .4rem;
  font-size:clamp(1.5rem,3vw,2rem);
}

.tickets-empty p {
  margin:0;
  color:var(--portal-muted);
}

/* Existing portal panels receive the same form/card finish. */
.portal-site .dashboard-card,
.portal-site .pulse-card,
.portal-site .why-pulse,
.portal-site .bug-form,
.portal-site .bug-help,
.portal-site .broadcast-form,
.portal-site .message-preview,
.portal-site .api-explainer,
.portal-site .metric,
.portal-site .recommendation,
.portal-site .ticket-card,
.portal-site .register-toolbar,
.portal-site .register-table {
  border:1px solid rgba(25,32,46,.055);
}

.portal-site .card-heading h3,
.portal-site .form-heading h3,
.portal-site .bug-intro h3 {
  font-size:clamp(1.3rem,2vw,1.7rem);
  line-height:1.2;
}

.portal-site .primary-action:hover,
.portal-site .portal-panel button:not(:disabled):hover {
  filter:brightness(.97);
}

@media(max-width:1180px) {
  .tenancy-grid { grid-template-columns:1fr; }
  .membership-review { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .membership-review button { align-self:end; }
  .lifecycle-guide-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media(max-width:900px) {
  .portal-site .portal-panel { scroll-margin-top:118px; }
  .portal-site .panel-heading {
    align-items:flex-start;
    flex-direction:column;
    gap:1rem;
  }
  .portal-site .today-chip { max-width:100%; }
  .tenant-person-head { flex-direction:column; }
  .part-assign-row,.sl-assign-row,.guest-access-summary>div { grid-template-columns:1fr 1fr; }
  .part-assign-row button,.sl-assign-row button,.guest-access-summary button { width:100%; }
  .lifecycle-path { grid-template-columns:repeat(9,minmax(180px,220px)); }
  .identity-strength-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media(max-width:640px) {
  .portal-site .portal-panel { padding:1.4rem 1rem 2rem; }
  .portal-site .panel-heading h2 { max-width:100%; font-size:clamp(2rem,10vw,3rem); }
  .tenancy-admin-card,.tenancy-directory-card,.membership-api-card { padding:1.1rem; border-radius:20px; }
  .tenancy-admin-card,.guest-access-fields,.lifecycle-grid,.membership-review,.lifecycle-guide-grid { grid-template-columns:1fr; }
  .tenancy-admin-card>label,.guest-access-fields>label { grid-column:1; }
  .part-assign-row,.sl-assign-row,.guest-access-summary>div { grid-template-columns:1fr; }
  .tenant-person-head i,.membership-api-head i { align-self:flex-start; }
  .membership-api-head { flex-direction:column; }
  .membership-api-card .application-details { grid-template-columns:1fr; }
  .lifecycle-approval { grid-template-columns:1fr; }
  .role-choice { grid-template-columns:1fr; }
  .identity-strength-grid { grid-template-columns:1fr 1fr; }
}

@media(max-height:520px) and (orientation:landscape) {
  .portal-site .portal-panel { scroll-margin-top:112px; }
  .portal-site .portal-panel { padding-top:1rem; }
  .portal-site .panel-heading { margin-bottom:1rem; }
  .portal-site .panel-heading h2 { font-size:2.2rem; }
}

@media(prefers-reduced-motion:reduce) {
  .portal-site .portal-panel input,
  .portal-site .portal-panel select,
  .portal-site .portal-panel textarea { transition:none; }
}

/* Director dashboard: keep the short section table compact, then use a full row for review cards. */
.portal-site .attendance-analysis{grid-template-columns:1fr;align-items:start}
.portal-site .section-attendance-card{align-self:start}
.portal-site .danger-list{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.portal-site .danger-member{min-width:0}
.portal-site .danger-member>div{min-width:0}
.portal-site .danger-member small{overflow-wrap:anywhere}
.portal-site .danger-card .decision-note{grid-column:1/-1}
@media(max-width:1260px){.portal-site .danger-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.portal-site .danger-list{grid-template-columns:1fr}}

/* Compact evidence uploader and automatically captured device context. */
.portal-site .screenshot-drop{min-height:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;justify-content:stretch;gap:1rem;margin-top:1.4rem;padding:1rem;border:1px solid #d8dce5;border-radius:20px;background:linear-gradient(145deg,#fff,#f7f7fb);box-shadow:0 8px 26px rgba(31,39,57,.045);cursor:pointer;text-align:left;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.portal-site .screenshot-drop:hover,.portal-site .screenshot-drop:focus-within,.portal-site .screenshot-drop.dragging{border-color:#8065f6;box-shadow:0 10px 32px rgba(111,82,232,.12);transform:translateY(-1px)}
.portal-site .screenshot-drop.has-file{border-color:#62b58c;background:linear-gradient(145deg,#fff,#f2fbf6)}
.portal-site .screenshot-glyph{width:58px;height:58px;display:grid;place-items:center;border-radius:17px;background:linear-gradient(145deg,#7657ff,#a786ff);color:#fff;box-shadow:0 9px 22px rgba(118,87,255,.24)}
.portal-site .screenshot-glyph svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.portal-site .screenshot-copy{display:flex;min-width:0;flex-direction:column;gap:.28rem}
.portal-site .screenshot-copy b{margin:0;color:#22242a;font-family:inherit;font-size:16px;font-weight:800;line-height:1.3}
.portal-site .screenshot-copy small{color:#7b8492;font-size:13px;line-height:1.45}
.portal-site .screenshot-action{min-height:42px;display:inline-flex;align-items:center;justify-content:center;padding:.65rem .9rem;border-radius:999px;background:#171b24;color:#fff;font-size:13px;font-weight:800;white-space:nowrap}
.portal-site .screenshot-drop img{grid-column:1/-1;width:100%;max-height:320px;margin-top:.25rem;border-radius:14px;object-fit:contain;background:#eceef3;box-shadow:none}
.portal-site .device-capture{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;justify-content:stretch;gap:.85rem;margin-top:.8rem;padding:.85rem 1rem;border:1px solid #e0e3ea;border-radius:16px;background:#f2f3f7}
.portal-site .device-capture-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#fff;color:#6553c7;box-shadow:0 4px 12px rgba(31,39,57,.06)}
.portal-site .device-capture-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.portal-site .device-capture>div{min-width:0}
.portal-site .device-capture b{display:block;margin-bottom:.18rem;color:#505a69;font-size:12px;font-weight:850;letter-spacing:.05em;text-transform:uppercase}
.portal-site .device-capture p{margin:0;color:#687386;font-size:13px;line-height:1.45;text-align:left;overflow-wrap:anywhere}
@media(max-width:640px){.portal-site .screenshot-drop{grid-template-columns:auto minmax(0,1fr)}.portal-site .screenshot-action{grid-column:1/-1;width:100%}.portal-site .screenshot-glyph{width:52px;height:52px}.portal-site .device-capture{align-items:start}}

/* Personal IT history: resolution is reviewed by the requester before closure. */
.portal-site .ticket-refresh{border:0;cursor:pointer}
.portal-site .ticket-lifecycle-guide{display:flex;align-items:center;gap:.55rem;overflow-x:auto;margin:-.25rem 0 1rem;padding:.8rem 1rem;border-radius:18px;background:#171b24;color:#fff;scrollbar-width:none}
.portal-site .ticket-lifecycle-guide span{flex:0 0 auto;padding:.4rem .65rem;border-radius:999px;background:#292f3b;font-size:.72rem;font-weight:800}
.portal-site .ticket-lifecycle-guide i{color:#9b88ff;font-style:normal}
.portal-site .my-ticket-intro{max-width:850px;margin:0 0 1.4rem;color:#687386;font-size:.85rem;line-height:1.65}
.portal-site .my-ticket-list{display:grid;gap:1rem}
.portal-site .my-ticket-card{overflow:hidden;border:1px solid #dde1e8;border-radius:24px;background:#fff;box-shadow:0 10px 32px rgba(31,39,57,.055)}
.portal-site .my-ticket-card.awaiting-review{border-color:#9d86ff;box-shadow:0 14px 38px rgba(118,87,255,.12)}
.portal-site .my-ticket-card.archived{background:#f5f5f7;color:#555b66}
.portal-site .my-ticket-card>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;border-bottom:1px solid #eceef2}
.portal-site .my-ticket-card>header>div{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.portal-site .my-ticket-card>header span{color:#6650d6;font-size:.72rem;font-weight:850;letter-spacing:.06em}
.portal-site .my-ticket-card>header i{padding:.25rem .5rem;border-radius:999px;background:#eeeaff;color:#5e46c9;font-size:.68rem;font-style:normal;font-weight:800;text-transform:capitalize}
.portal-site .my-ticket-card>header b{padding:.4rem .65rem;border-radius:999px;background:#e9f7f0;color:#23724f;font-size:.72rem}
.portal-site .my-ticket-copy{padding:1.2rem}
.portal-site .my-ticket-copy h3{margin:.25rem 0 .55rem;font-size:1.25rem}
.portal-site .my-ticket-copy>p:not(.my-ticket-meta){margin:0;color:#515b69;line-height:1.6;white-space:pre-wrap}
.portal-site .my-ticket-meta{margin:0;color:#8993a0;font-size:.72rem}
.portal-site .my-ticket-resolution,.portal-site .my-ticket-review-record{margin-top:1rem;padding:1rem;border-radius:16px;background:#edf8f3}
.portal-site .my-ticket-review-record{background:#fff2df}
.portal-site .my-ticket-resolution span,.portal-site .my-ticket-review-record span{display:block;color:#267451;font-size:.68rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.portal-site .my-ticket-resolution p,.portal-site .my-ticket-review-record p{margin:.35rem 0;white-space:pre-wrap}
.portal-site .my-ticket-resolution small{color:#6f7a87}
.portal-site .my-ticket-evidence-button{min-height:44px;margin-top:1rem;padding:.65rem .85rem;border:0;border-radius:999px;background:#171b24;color:#fff;cursor:pointer;font-weight:800}
.portal-site .my-ticket-evidence{margin-top:1rem;padding:.6rem;border-radius:16px;background:#11151c}
.portal-site .my-ticket-evidence img{display:block;width:100%;max-height:520px;border-radius:10px;object-fit:contain}
.portal-site .requester-review{display:grid;grid-template-columns:.8fr 1fr;gap:1rem;padding:1.2rem;background:linear-gradient(135deg,#f0edff,#faf9ff)}
.portal-site .requester-review>div:first-child span{color:#6750d6;font-size:.68rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.portal-site .requester-review h4{margin:.35rem 0;font-size:1.05rem}
.portal-site .requester-review p{margin:0;color:#667181;font-size:.8rem;line-height:1.55}
.portal-site .requester-review label{display:flex;flex-direction:column;gap:.4rem;color:#515a68;font-size:.75rem;font-weight:800}
.portal-site .requester-review label span{color:#8992a0;font-weight:500}
.portal-site .requester-review textarea{width:100%;padding:.8rem;border:1px solid #d7d0f4;border-radius:12px;background:#fff;resize:vertical;font:inherit}
.portal-site .requester-review>div:last-child{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.6rem}
.portal-site .requester-review button{min-height:44px;padding:.65rem .9rem;border:0;border-radius:999px;cursor:pointer;font-weight:850}
.portal-site .requester-review .confirm{background:#16845b;color:#fff}
.portal-site .requester-review .reopen{background:#fff1cf;color:#785900}
.portal-site .my-ticket-card>footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;padding:.8rem 1.2rem;border-top:1px solid #eceef2;color:#7f8996;font-size:.7rem}
.portal-site .ticket-review-notice button{min-height:40px;padding:.5rem .75rem;border:0;border-radius:999px;background:#16845b;color:#fff;cursor:pointer;font-weight:800}
@media(max-width:720px){.portal-site .requester-review{grid-template-columns:1fr}.portal-site .ticket-lifecycle-guide{margin-inline:-.2rem}.portal-site .my-ticket-card>header{align-items:flex-start;flex-direction:column}.portal-site .requester-review button{width:100%}}
@media(max-width:520px){.portal-brand>span{max-width:116px;white-space:normal;line-height:1.05}.portal-brand .brand-name-full{display:block;font-size:11px;font-weight:750}.portal-brand b{display:block!important;margin:.2rem 0 0;font-size:9px!important;line-height:1.1}}
