:root {
  --bg: #0f1117;
  --bg-soft: #151821;
  --surface: #191d27;
  --surface-2: #202531;
  --surface-3: #252b38;
  --line: #313847;
  --line-soft: rgba(255,255,255,.08);
  --text: #f4f6f8;
  --muted: #aab2c0;
  --dim: #747e8f;
  --accent: #c9a86a;
  --accent-2: #8fc7bd;
  --good: #58c58b;
  --warn: #e2b765;
  --bad: #e46f6f;
  --shadow: 0 18px 48px rgba(0,0,0,.34);
  --radius: 12px;
  --radius-sm: 8px;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); }
body {
  min-height: 100vh;
  margin: 0;
  color: var(--text);
  font-family: var(--sans);
  background:
    radial-gradient(circle at 18% -10%, rgba(201,168,106,.08), transparent 34%),
    linear-gradient(180deg, #11141b 0%, #0f1117 60%, #0c0e13 100%);
}
a { color: var(--accent-2); }
a:hover { color: #d9fff8; }

button, .small-button, .nav-button {
  min-height: 34px;
  padding: 7px 11px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  color: var(--text);
  background: #222836;
  box-shadow: 0 1px 0 rgba(255,255,255,.05) inset;
  font: 700 .78rem var(--sans);
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
}
button:hover, .small-button:hover, .nav-button:hover { background: #2b3242; border-color: #4b5568; }
button:active, .small-button:active, .nav-button:active { transform: translateY(1px); }
.primary-action { background: var(--accent); border-color: #dec48a; color: #111; }
.primary-action:hover { background: #d6b777; border-color: #edcf93; color: #111; }
.nav-button-muted { background: transparent; color: var(--muted); }
.danger-button { border-color: rgba(228,111,111,.45); color: #ffdada; background: rgba(124,45,45,.24); }
.warning-button { border-color: rgba(226,183,101,.42); color: #ffe9bc; background: rgba(130,89,35,.22); }

.top-nav {
  height: 54px;
  padding: 0 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  background: rgba(15,17,23,.94);
  backdrop-filter: blur(16px);
  position: sticky;
  top: 0;
  z-index: 20;
}
.nav-brand {
  color: var(--text);
  text-decoration: none;
  font-weight: 850;
  letter-spacing: -.02em;
}
.nav-actions { display: flex; align-items: center; gap: 8px; }

.dashboard-shell, .stats-shell {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 16px 18px 8px;
  display: grid;
  gap: 14px;
}

.dashboard-shell:not(.admin-shell) {
  height: calc(100vh - 54px);
  grid-template-rows: auto auto minmax(0, 1fr);
  overflow: hidden;
}
.page-shell, .auth-shell {
  width: min(1120px, calc(100% - 36px));
  margin: 0 auto;
  padding: 42px 0;
}
.page-shell { min-height: calc(100vh - 120px); display: grid; gap: 18px; align-content: center; }
.auth-shell { min-height: calc(100vh - 120px); display: grid; place-items: center; }

.dashboard-hero, .panel-card, .system-strip, .stats-page-header, .stats-card, .stats-tabs-card,
.hero-card, .account-card, .auth-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(25,29,39,.94);
  box-shadow: var(--shadow);
}
.dashboard-hero, .stats-page-header {
  min-height: 78px;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.dashboard-hero h1, .stats-page-header h1 {
  margin: 0 0 3px;
  font-size: 1.28rem;
  line-height: 1.2;
  letter-spacing: -.03em;
}
.dashboard-hero .intro, .stats-page-header .intro { margin: 0; color: var(--muted); font-size: .86rem; }
.eyebrow {
  margin: 0 0 5px;
  color: var(--accent);
  font: 800 .68rem var(--mono);
  letter-spacing: .12em;
  text-transform: uppercase;
}
.panel-card { overflow: hidden; }
.system-strip { padding: 10px; }

.list-heading {
  padding: 12px 14px;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(420px, 620px);
  gap: 16px;
  align-items: end;
  border-bottom: 1px solid var(--line);
  background: #171b24;
}
.list-heading h2, .stats-tabs-copy h2, .table-heading-row h2 { margin: 0; font-size: 1rem; letter-spacing: -.02em; }
.list-heading p { margin: 3px 0 0; color: var(--muted); font-size: .8rem; }
.filter-box { justify-self: end; width: min(620px, 100%); }
.filter-box label { margin: 0 0 6px; color: var(--dim); font-size: .72rem; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; }
.dashboard-filter-row, .filter-row { display: grid; grid-template-columns: minmax(180px, 280px) auto; gap: 8px; align-items: center; }
.dashboard-filter-actions { display: flex; gap: 8px; align-items: center; }
.reset-filter-button, .detailed-stats-button { background: #202633; }

input[type=url], input[type=text], input[type=email], input[type=password], input[type=search], input[type=color], textarea, select {
  width: 100%;
  min-height: 36px;
  border: 1px solid #394253;
  border-radius: var(--radius-sm);
  padding: 7px 10px;
  color: var(--text);
  background: #10131a;
  outline: none;
  font: 500 .88rem var(--sans);
}
input[type=color] {
  min-height: 40px;
  padding: 4px;
}
textarea { min-height: 86px; resize: vertical; }
input:focus, textarea:focus, select:focus { border-color: var(--accent-2); box-shadow: 0 0 0 3px rgba(143,199,189,.12); }
label { display: block; margin: 0 0 5px; color: var(--muted); font-size: .8rem; font-weight: 700; }
label span { color: var(--dim); font-weight: 500; }
.stack-form { display: grid; gap: 11px; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form-note { margin: 0; color: var(--dim); font-size: .76rem; line-height: 1.45; }
.hp-field { position: absolute; left: -9999px; }

.alert { margin-bottom: 8px; border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 9px 10px; background: #141821; }
.alert-error { border-color: rgba(228,111,111,.5); color: #ffe3e3; background: rgba(124,45,45,.18); }
.alert-success { border-color: rgba(88,197,139,.42); color: #dbffeb; background: rgba(36,98,67,.18); }
.result-card { border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 10px; background: #11151d; }
.result-label { margin: 0 0 6px; color: var(--accent); font: 800 .7rem var(--mono); text-transform: uppercase; letter-spacing: .08em; }
.result-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.copy-status { margin: 6px 0 0; color: var(--good); font-size: .76rem; }
.empty-state, .no-results { padding: 22px; color: var(--muted); }

.links-list { display: grid; }
.link-item {
  display: grid;
  grid-template-columns: minmax(380px, 1fr) minmax(540px, 44vw);
  border-bottom: 1px solid var(--line-soft);
  background: #151922;
}
.link-item:hover { background: #181d27; }
.link-main { min-width: 0; padding: 13px 14px; border-right: 1px solid var(--line-soft); }
.link-main h3 { margin: 0 0 6px; font-size: .96rem; }
.link-main a { color: var(--accent-2); font-family: var(--mono); font-size: .82rem; text-decoration: none; overflow-wrap: anywhere; }
.long-url { margin: 6px 0 0; color: var(--muted); font-size: .78rem; overflow-wrap: anywhere; }
.link-description { margin: 8px 0 0; padding-top: 8px; border-top: 1px dashed var(--line); color: var(--dim); font-size: .77rem; }
.link-group-line {
  margin: 8px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
  color: var(--muted);
  font-size: .76rem;
}
.link-group-line span {
  color: var(--dim);
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.link-group-line strong,
.group-label {
  font-weight: 850;
}
.link-group-line em,
.muted-group {
  color: var(--dim);
  font-style: normal;
}
.protected-badge { display: inline-flex; margin-left: 7px; padding: 2px 6px; border: 1px solid rgba(201,168,106,.45); border-radius: 999px; color: #efd8a4; background: rgba(201,168,106,.11); font-size: .62rem; font-weight: 800; text-transform: uppercase; }
.alert-toggle-form { margin-top: 10px; }
.checkbox-label { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: .74rem; }
.pending-alert-note { margin: 6px 0 0; color: var(--warn); font-size: .74rem; }
.link-stats { padding: 9px; display: grid; grid-template-columns: repeat(5, minmax(78px, 1fr)); gap: 7px; align-content: center; }
.stat-box { border: 1px solid var(--line-soft); border-radius: var(--radius-sm); padding: 8px; background: #11151d; }
.stat-box span { display: block; margin-bottom: 4px; color: var(--dim); font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.stat-box strong { display: block; color: var(--text); font-size: 1rem; }
.stat-box small { display: block; margin-top: 3px; color: var(--good); font-size: .68rem; }
.recent-click-box strong { font-size: .75rem; color: var(--muted); }
.link-actions { grid-column: 1/-1; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.link-actions form { margin: 0; }

.group-filter-panel {
  padding: 10px 14px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  background: #131720;
}
.group-filter-title {
  margin: 0 0 7px;
  color: var(--dim);
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.group-exclude-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.group-exclude-option {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 5px 9px 5px 6px;
  color: var(--muted);
  background: #10131a;
  cursor: pointer;
  user-select: none;
}
.group-exclude-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.group-x-box {
  width: 18px;
  height: 18px;
  border: 1px solid #465164;
  border-radius: 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: transparent;
  font-size: .75rem;
  font-weight: 900;
  line-height: 1;
  background: rgba(255,255,255,.03);
}
.group-exclude-option input:checked + .group-x-box {
  color: #ffdada;
  border-color: rgba(228,111,111,.6);
  background: rgba(124,45,45,.35);
}
.group-exclude-option:has(input:checked) {
  border-color: rgba(228,111,111,.5);
  background: rgba(124,45,45,.18);
}

section[aria-labelledby="saved-links-title"] {
  display: flex;
  flex-direction: column;
  min-height: 0;
  max-height: calc(100vh - 150px);
}

.dashboard-shell:not(.admin-shell) section[aria-labelledby="saved-links-title"] {
  height: 100%;
  max-height: none;
}

section[aria-labelledby="saved-links-title"] > .list-heading,
section[aria-labelledby="saved-links-title"] > .group-filter-panel {
  flex: 0 0 auto;
}

.links-table-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}

.saved-links-table {
  width: 100%;
  min-width: 1680px;
  border-collapse: collapse;
  table-layout: fixed;
  background: #11151d;
}

.saved-links-table th,
.saved-links-table td {
  padding: 9px 10px;
  border-bottom: 1px solid var(--line-soft);
  text-align: left;
  vertical-align: top;
}

.saved-links-table th {
  position: sticky;
  top: 0;
  z-index: 3;
  color: var(--dim);
  background: #171b24;
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.saved-links-table tbody tr {
  background: #141821;
}

.saved-links-table tbody tr:hover {
  background: #181d27;
}

.saved-links-table th:nth-child(1) { width: 170px; }
.saved-links-table th:nth-child(2) { width: 360px; }
.saved-links-table th:nth-child(3) { width: 120px; }
.saved-links-table th:nth-child(4) { width: 115px; }
.saved-links-table th:nth-child(5),
.saved-links-table th:nth-child(6),
.saved-links-table th:nth-child(7),
.saved-links-table th:nth-child(8) { width: 82px; }
.saved-links-table th:nth-child(9) { width: 135px; }
.saved-links-table th:nth-child(10) { width: 78px; }
.saved-links-table th:nth-child(11) { width: 95px; }
.saved-links-table th:nth-child(12) { width: 130px; }
.saved-links-table th:nth-child(13) { width: 125px; }
.saved-links-table th:nth-child(14) { width: 120px; }

.saved-link-title-cell strong,
.saved-link-destination-cell a,
.short-url-text,
.table-date,
.table-meta-line,
.saved-link-destination-cell small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.saved-link-title-cell strong {
  margin-bottom: 3px;
  color: var(--text);
  font-size: .88rem;
}

.short-url-text {
  color: var(--dim);
  font-family: var(--mono);
  font-size: .72rem;
}

.saved-link-destination-cell a {
  color: var(--accent-2);
  text-decoration: none;
  font-family: var(--mono);
  font-size: .78rem;
}

.saved-link-destination-cell a:hover {
  color: #d9fff8;
  text-decoration: underline;
}

.saved-link-destination-cell small,
.table-meta-line,
.saved-link-clicks-cell small,
.table-date {
  margin-top: 3px;
  color: var(--dim);
  font-size: .72rem;
}

.saved-link-clicks-cell strong {
  display: block;
  font-size: .95rem;
}

.saved-link-email-cell form {
  margin: 0;
}

.table-checkbox-label {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: .75rem;
}

.saved-link-copy-cell .small-button {
  min-height: 30px;
  padding-inline: 10px;
}

.saved-link-options-cell {
  overflow: visible;
}

.row-options-select {
  min-height: 30px;
  padding: 5px 8px;
  font-size: .76rem;
  font-weight: 800;
}

.row-option-actions[hidden] {
  display: none;
}

/* Dialogues */
dialog { border: 1px solid var(--line); border-radius: var(--radius); padding: 0; color: var(--text); background: var(--surface); box-shadow: 0 28px 90px rgba(0,0,0,.56); }
dialog::backdrop { background: rgba(0,0,0,.68); backdrop-filter: blur(4px); }
.edit-dialog, .qr-dialog, .create-dialog { width: min(680px, calc(100% - 28px)); }
.edit-dialog-card, .qr-dialog-card, .create-dialog-card { padding: 16px; display: grid; gap: 12px; }
.edit-dialog-header { display: flex; justify-content: space-between; align-items: center; gap: 12px; border-bottom: 1px solid var(--line); padding-bottom: 10px; }
.edit-dialog-header h2 { margin: 0; font-size: 1.02rem; letter-spacing: -.02em; }
.dialog-close-button { width: 32px; min-height: 32px; padding: 0; }
.edit-dialog-actions { display: flex; justify-content: flex-end; gap: 8px; }
.group-select-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
}
.group-select-row .small-button {
  margin-bottom: 0;
}
.group-colour-row {
  display: grid;
  gap: 6px;
  justify-items: start;
}
.group-colour-row input[type=color] {
  width: 76px;
  min-width: 76px;
}
.manage-groups-dialog {
  width: min(780px, calc(100% - 28px));
}
.manage-group-create-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 10px;
  align-items: end;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-sm);
  padding: 12px;
  background: rgba(255,255,255,.025);
}
.manage-group-list {
  display: grid;
  gap: 8px;
}
.manage-group-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-sm);
  padding: 10px;
  background: rgba(255,255,255,.02);
}
.manage-group-edit-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 76px auto;
  gap: 8px;
  align-items: center;
}
.manage-group-edit-form input[type=color] {
  width: 76px;
  min-width: 76px;
}
.manage-group-row form {
  margin: 0;
}
.qr-options { border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 10px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.qr-options legend { color: var(--accent); font: 800 .68rem var(--mono); text-transform: uppercase; }
.radio-card { border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 8px; display: flex; gap: 8px; align-items: center; color: var(--muted); background: #11151d; }
.radio-card input { accent-color: var(--accent); }

/* Detailed stats */
.stats-page-header { background: #151922; }
.summary-grid { display: grid; grid-template-columns: repeat(5, minmax(150px, 1fr)); gap: 10px; }
.big-stat { min-height: 86px; }
.big-stat strong { font-size: clamp(1.7rem, 3vw, 2.45rem); letter-spacing: -.04em; }
.stats-tabs-card { padding: 14px; }
.stats-tabs-copy { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.stats-tab-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #11151d;
  margin-bottom: 12px;
}
.stats-tab-button {
  min-height: 34px;
  border-radius: 9px;
  background: transparent;
  color: var(--muted);
  box-shadow: none;
}
.stats-tab-button.is-active {
  background: #2a3140;
  color: var(--text);
  border-color: #4a5568;
}
.stats-tab-panels {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #11151d;
  min-height: 340px;
  overflow: hidden;
}
.stats-tab-panel { display: none; padding: 18px; }
.stats-tab-panel.is-active { display: block; }
.tab-chart-stage { display: grid; grid-template-columns: minmax(220px, 300px) 1fr; gap: 24px; align-items: center; }
.pie-chart, .large-pie {
  width: min(290px, 100%);
  aspect-ratio: 1;
  border-radius: 50%;
  background: conic-gradient(var(--chart));
  box-shadow: 0 0 0 1px rgba(255,255,255,.08), 0 14px 36px rgba(0,0,0,.28);
}
.legend-list { display: grid; gap: 8px; }
.legend-row, .rich-row { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; padding: 9px; border: 1px solid var(--line-soft); border-radius: var(--radius-sm); background: #151922; }
.legend-row span, .rich-row span { color: var(--muted); }
.legend-row span i, .rich-row span i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 8px; vertical-align: -1px; background: var(--dot); }
.legend-row strong, .rich-row strong { white-space: nowrap; color: var(--text); }
.legend-row em, .rich-row em { color: var(--accent); font-style: normal; font-size: .76rem; }
.legend-row small, .rich-row small { grid-column: 1/-1; color: var(--dim); font-size: .74rem; }
.top-links-card { padding: 14px; }
.table-heading-row { display: flex; justify-content: space-between; align-items: end; margin-bottom: 10px; }
.table-heading-row span { color: var(--dim); font-size: .78rem; }
.stats-table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.stats-table { width: 100%; border-collapse: collapse; background: #11151d; }
.stats-table th, .stats-table td { padding: 10px 9px; border-bottom: 1px solid var(--line-soft); text-align: left; vertical-align: top; }
.stats-table th { position: sticky; top: 0; background: #1a1f2a; color: var(--muted); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.stats-table td small { display: block; color: var(--dim); overflow-wrap: anywhere; margin-top: 3px; }
.empty-chart { color: var(--muted); }

/* Website/auth pages */
.hero-card, .account-card, .auth-card { padding: clamp(22px, 4vw, 42px); }
.auth-card { width: min(520px, 100%); }
.hero-card h1 { margin: 0 0 14px; font-size: clamp(2.2rem, 7vw, 4.4rem); line-height: .98; letter-spacing: -.06em; }
.intro, .account-card p { color: var(--muted); line-height: 1.6; }
.benefit-list { margin: 0; padding-left: 18px; color: var(--muted); line-height: 1.8; }
.shrink-form { margin-top: 18px; }
.input-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.account-card { display: grid; gap: 14px; }
.auth-card h1 { margin-top: 0; font-size: 1.8rem; letter-spacing: -.04em; }
.auth-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.auth-form-actions button,
.auth-form-actions .small-button {
  width: auto;
}
.auth-link-row {
  margin: 14px 0 0;
}
.password-shell { width: min(520px, calc(100% - 32px)); min-height: calc(100vh - 76px); margin: 0 auto; display: grid; place-items: center; }
.password-card { border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; background: var(--surface); box-shadow: var(--shadow); }

.site-footer {
  min-height: 34px;
  padding: 4px 18px 12px;
  display: flex;
  justify-content: space-between;
  gap: 14px;
  color: var(--dim);
  font-size: .76rem;
}
.dashboard-shell + .site-footer, .stats-shell + .site-footer { justify-content: space-between; }
.site-footer a { color: var(--accent-2); text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }

@media (max-width: 1180px) {
  .link-item { grid-template-columns: 1fr; }
  .link-main { border-right: 0; border-bottom: 1px solid var(--line-soft); }
  .link-stats { grid-template-columns: repeat(3, 1fr); }
  .summary-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 860px) {
  .list-heading { grid-template-columns: 1fr; }
  .filter-box { justify-self: stretch; }
  .dashboard-filter-row, .input-row, .group-select-row, .group-filter-panel, .manage-group-create-form, .manage-group-row, .manage-group-edit-form { grid-template-columns: 1fr; }
  .group-filter-panel > .small-button,
  .manage-group-create-form .small-button,
  .manage-group-row .small-button {
    width: fit-content;
  }
  .tab-chart-stage { grid-template-columns: 1fr; justify-items: center; }
  .legend-list { width: 100%; }
}

@media (max-width: 760px) {
  .dashboard-shell:not(.admin-shell) {
    height: auto;
    overflow: visible;
  }

  section[aria-labelledby="saved-links-title"] {
    max-height: none;
  }

  .links-table-scroll {
    overflow: visible;
  }

  .saved-links-table,
  .saved-links-table thead,
  .saved-links-table tbody,
  .saved-links-table tr,
  .saved-links-table th,
  .saved-links-table td {
    display: block;
    width: 100%;
  }

  .saved-links-table {
    min-width: 0;
  }

  .saved-links-table thead {
    display: none;
  }

  .saved-links-table tbody {
    display: grid;
    gap: 10px;
    padding: 10px;
    background: #10131a;
  }

  .saved-links-table tbody tr {
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: #141821;
  }

  .saved-links-table td {
    border-bottom: 1px solid var(--line-soft);
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    padding: 8px 10px;
  }

  .saved-links-table td:last-child {
    border-bottom: 0;
  }

  .saved-links-table td::before {
    content: attr(data-label);
    color: var(--dim);
    font-size: .66rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .saved-link-destination-cell a,
  .short-url-text,
  .saved-link-destination-cell small {
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .options-menu-panel {
    grid-column: 1 / -1;
  }
}
@media (max-width: 640px) {
  .dashboard-shell, .stats-shell { padding: 10px; }
  .dashboard-hero, .stats-page-header { display: grid; }
  .dashboard-filter-actions, .link-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .dashboard-filter-actions a, .dashboard-filter-actions button, .link-actions button, .link-actions form { width: 100%; }
  .link-stats, .summary-grid { grid-template-columns: repeat(2, 1fr); }
  .two-col, .qr-options { grid-template-columns: 1fr; }
  .top-nav { padding: 0 10px; }
  .site-footer { display: grid; gap: 6px; }
}


/* Refinement: public footer credit + stats layout polish */
.analytics-main-layout {
  display: grid;
  grid-template-columns: minmax(220px, 300px) minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
}

.analytics-main-layout .summary-grid {
  display: grid;
  grid-template-columns: 1fr;
  align-content: start;
  gap: 10px;
}

.analytics-main-layout .stats-tabs-card {
  min-width: 0;
}

.stats-tabs-card {
  overflow: hidden;
}

.stats-tab-buttons {
  position: relative;
  z-index: 2;
  align-items: center;
}

.stats-tab-button {
  appearance: none;
}

.stats-tab-panels {
  position: relative;
  z-index: 1;
}

.stats-tab-panel {
  min-height: 340px;
}

.tab-chart-stage {
  grid-template-columns: minmax(220px, 300px) minmax(260px, 440px);
  justify-content: start;
}

.legend-list,
.rich-legend {
  width: min(100%, 440px);
  max-width: 440px;
}

.legend-row,
.rich-row {
  width: 100%;
}

.site-footer {
  align-items: center;
}

.site-footer span:last-child {
  text-align: right;
}

@media (max-width: 980px) {
  .analytics-main-layout {
    grid-template-columns: 1fr;
  }

  .analytics-main-layout .summary-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .tab-chart-stage {
    grid-template-columns: minmax(200px, 280px) minmax(240px, 420px);
  }
}

@media (max-width: 760px) {
  .analytics-main-layout .summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stats-tab-buttons {
    overflow-x: auto;
    flex-wrap: nowrap;
    scrollbar-width: thin;
  }

  .stats-tab-button {
    flex: 0 0 auto;
  }

  .tab-chart-stage {
    grid-template-columns: 1fr;
    justify-items: center;
  }

  .legend-list,
  .rich-legend {
    width: 100%;
    max-width: 520px;
  }
}

@media (max-width: 520px) {
  .analytics-main-layout .summary-grid {
    grid-template-columns: 1fr;
  }

  .site-footer span:last-child {
    text-align: left;
  }
}

/* Admin portal */
.admin-shell {
    gap: 18px;
}

.admin-grid,
.admin-user-layout {
    display: grid;
    gap: 18px;
}

.admin-grid {
    grid-template-columns: minmax(320px, 0.8fr) minmax(620px, 1.6fr);
    align-items: start;
}

.admin-user-layout {
    grid-template-columns: 320px minmax(0, 1fr);
    align-items: start;
}

.admin-main-stack {
    display: grid;
    gap: 18px;
}

.compact-heading h2 {
    margin-bottom: 4px;
}

.admin-form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.admin-domain-form {
    margin-bottom: 16px;
}

.admin-filter-box input {
    max-width: 320px;
}

.admin-table th,
.admin-table td {
    white-space: nowrap;
}

.admin-table td:first-child,
.admin-table td:nth-child(4) {
    white-space: normal;
}

.admin-actions-cell {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.admin-actions-cell form {
    margin: 0;
}

.admin-muted {
    color: var(--muted, #8a8f98);
    font-size: 0.85rem;
}

.admin-detail-list {
    display: grid;
    gap: 10px;
    margin: 14px 0 20px;
}

.admin-detail-list dt {
    color: var(--muted, #8a8f98);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.admin-detail-list dd {
    margin: -6px 0 0;
    color: var(--text, #f5f5f5);
    overflow-wrap: anywhere;
}

.admin-danger-zone,
.admin-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.admin-danger-zone form,
.admin-form-actions form {
    margin: 0;
}

.admin-summary-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.admin-link-list {
    display: grid;
    gap: 14px;
}

.admin-link-card {
    border: 1px solid var(--border, rgba(255,255,255,0.09));
    border-radius: 14px;
    padding: 14px;
    background: rgba(255,255,255,0.025);
}

.admin-link-card-head {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: start;
    margin-bottom: 12px;
}

.admin-link-card h3 {
    margin: 0 0 4px;
}

.admin-link-card a {
    overflow-wrap: anywhere;
}

.admin-link-mini-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    color: var(--muted, #8a8f98);
    font-size: 0.82rem;
}

select {
    width: 100%;
    min-height: 40px;
    border: 1px solid var(--border, rgba(255,255,255,0.12));
    border-radius: 10px;
    padding: 0 12px;
    color: var(--text, #f5f5f5);
    background: rgba(0,0,0,0.25);
    font: inherit;
}

@media (max-width: 1100px) {
    .admin-grid,
    .admin-user-layout {
        grid-template-columns: 1fr;
    }
}

/* Admin user links table: compact column layout with dropdown actions */
.admin-links-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow: auto;
}

.admin-links-table {
    min-width: 1480px;
    table-layout: fixed;
}

.admin-links-table th,
.admin-links-table td {
    padding: 9px 10px;
    vertical-align: top;
}

.admin-links-table th:nth-child(1) { width: 160px; }
.admin-links-table th:nth-child(2) { width: 330px; }
.admin-links-table th:nth-child(3) { width: 115px; }
.admin-links-table th:nth-child(4) { width: 115px; }
.admin-links-table th:nth-child(5),
.admin-links-table th:nth-child(6),
.admin-links-table th:nth-child(7),
.admin-links-table th:nth-child(8) { width: 82px; }
.admin-links-table th:nth-child(9) { width: 92px; }
.admin-links-table th:nth-child(10) { width: 125px; }
.admin-links-table th:nth-child(11) { width: 120px; }
.admin-links-table th:nth-child(12) { width: 76px; }
.admin-links-table th:nth-child(13) { width: 118px; }

.admin-link-cell,
.admin-destination-cell,
.admin-group-cell,
.admin-status-cell,
.admin-clicks-cell,
.admin-copy-cell,
.admin-options-cell {
    min-width: 0;
}

.admin-link-cell {
    display: table-cell;
}

.admin-link-cell strong,
.admin-link-cell small,
.admin-destination-cell a,
.admin-group-cell .group-label,
.admin-status-cell .status-badge,
.admin-links-table .table-date {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-link-cell small {
    margin-top: 3px;
}

.admin-destination-cell a {
    color: var(--accent-2, #8fc7bd);
    font-family: var(--mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace);
    font-size: .78rem;
    text-decoration: none;
}

.admin-destination-cell a:hover {
    text-decoration: underline;
}

.admin-clicks-cell strong {
    display: block;
    font-size: .95rem;
}

.admin-clicks-cell small {
    display: block;
    margin-top: 3px;
    color: var(--dim, #94a3b8);
    font-size: .72rem;
}

.admin-copy-cell .small-button {
    min-height: 30px;
    padding-inline: 10px;
}

.admin-options-cell {
    overflow: visible;
}

.admin-options-cell .row-options-select {
    width: 100%;
}

.admin-row-actions[hidden] {
    display: none;
}

@media (max-width: 980px) {
    .admin-links-table-wrap {
        overflow: visible;
    }

    .admin-links-table {
        min-width: 0;
    }

    .admin-links-table,
    .admin-links-table thead,
    .admin-links-table tbody,
    .admin-links-table th,
    .admin-links-table td,
    .admin-links-table tr {
        display: block;
        width: 100%;
    }

    .admin-links-table thead {
        display: none;
    }

    .admin-links-table tbody {
        display: grid;
        gap: 10px;
    }

    .admin-links-table tr {
        border: 1px solid var(--line, rgba(255,255,255,.1));
        border-radius: var(--radius-sm, 8px);
        padding: 0;
        overflow: hidden;
        background: #141821;
    }

    .admin-links-table td {
        display: grid;
        grid-template-columns: 100px minmax(0, 1fr);
        gap: 10px;
        border-bottom: 1px solid var(--line-soft, rgba(255,255,255,.08));
        padding: 8px 10px;
    }

    .admin-links-table td:last-child {
        border-bottom: 0;
    }

    .admin-links-table td::before {
        content: attr(data-label);
        color: var(--dim, #94a3b8);
        font-size: .66rem;
        font-weight: 850;
        letter-spacing: .08em;
        text-transform: uppercase;
    }

    .admin-link-cell {
        display: grid;
    }

    .admin-link-cell strong,
    .admin-link-cell small,
    .admin-destination-cell a {
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }
}

@media (max-width: 700px) {
    .admin-form-row,
    .admin-link-card-head {
        grid-template-columns: 1fr;
        display: grid;
    }

    .admin-link-mini-stats {
        justify-content: flex-start;
    }
}

/* Admin user link list refinement */
.admin-user-links-panel {
    overflow: hidden;
}

.admin-links-table-wrap {
    overflow-x: auto;
}

.admin-links-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.admin-links-table th,
.admin-links-table td {
    padding: 12px 10px;
    vertical-align: top;
    border-bottom: 1px solid var(--border, rgba(255,255,255,0.09));
    white-space: normal;
}

.admin-links-table th:nth-child(1) { width: 26%; }
.admin-links-table th:nth-child(2) { width: 30%; }
.admin-links-table th:nth-child(3) { width: 16%; }
.admin-links-table th:nth-child(4) { width: 14%; }
.admin-links-table th:nth-child(5) { width: 14%; }

.admin-link-cell {
    min-width: 220px;
}

.admin-link-cell strong,
.admin-link-cell a,
.admin-link-cell small,
.admin-destination-cell span {
    display: block;
    overflow-wrap: anywhere;
}

.admin-link-cell strong {
    margin-bottom: 4px;
    color: var(--text, #f5f5f5);
}

.admin-link-cell a {
    color: var(--accent, #62b3a9);
    font-size: 0.88rem;
    text-decoration: none;
}

.admin-link-cell small {
    margin-top: 7px;
    color: var(--muted, #8a8f98);
    line-height: 1.45;
}

.admin-destination-cell span {
    color: var(--muted, #8a8f98);
    line-height: 1.45;
}

.admin-stats-cell {
    display: grid;
    gap: 5px;
    color: var(--muted, #8a8f98);
    font-size: 0.86rem;
}

.admin-stats-cell strong {
    color: var(--text, #f5f5f5);
}

.admin-row-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.admin-row-actions form {
    margin: 0;
}

.admin-row-actions .small-button {
    min-width: auto;
    white-space: nowrap;
}

.admin-badge {
    display: inline-flex;
    width: fit-content;
    margin-top: 8px;
    padding: 3px 7px;
    border: 1px solid var(--border, rgba(255,255,255,0.12));
    border-radius: 999px;
    color: var(--accent, #62b3a9);
    background: rgba(98, 179, 169, 0.08);
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.admin-edit-dialog {
    width: min(620px, calc(100% - 28px));
}

.password-reset-dialog {
    width: min(760px, calc(100% - 28px));
}

.password-reset-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.password-reset-option {
    display: grid;
    gap: 10px;
    align-content: start;
    border: 1px solid var(--line-soft);
    border-radius: var(--radius-sm);
    padding: 14px;
    background: rgba(255,255,255,.025);
}

.password-reset-option h3 {
    margin: 0;
    font-size: .98rem;
}

.password-reset-option .small-button {
    width: fit-content;
    max-width: max-content;
}

@media (max-width: 920px) {
    .admin-links-table,
    .admin-links-table thead,
    .admin-links-table tbody,
    .admin-links-table tr,
    .admin-links-table th,
    .admin-links-table td {
        display: block;
        width: 100%;
    }

    .admin-links-table thead {
        display: none;
    }

    .admin-links-table tr {
        padding: 12px 0;
        border-bottom: 1px solid var(--border, rgba(255,255,255,0.09));
    }

    .admin-links-table td {
        border-bottom: 0;
        padding: 6px 0;
    }

    .admin-row-actions {
        justify-content: flex-start;
    }

    .password-reset-grid {
        grid-template-columns: 1fr;
    }
}

/* Admin user link live filter */
.admin-link-list-heading {
    align-items: end;
    gap: 16px;
}

.admin-link-filter-box {
    width: min(360px, 100%);
    display: grid;
    gap: 6px;
}

.admin-link-filter-box label {
    color: var(--muted, #8a8f98);
    font-size: 0.78rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.admin-link-filter-box input {
    width: 100%;
    min-height: 38px;
    padding: 0 12px;
    border: 1px solid var(--border, rgba(255,255,255,0.09));
    border-radius: var(--radius-sm, 8px);
    color: var(--text, #f5f5f5);
    background: rgba(0,0,0,0.18);
    outline: none;
}

.admin-link-filter-box input:focus {
    border-color: var(--accent, #62b3a9);
    box-shadow: 0 0 0 3px rgba(98,179,169,0.12);
}

.admin-link-no-results {
    margin: 14px 0 0;
    color: var(--muted, #8a8f98);
}

@media (max-width: 760px) {
    .admin-link-list-heading {
        align-items: stretch;
    }

    .admin-link-filter-box {
        width: 100%;
    }
}

/* Support, legal and ticket centre */
.footer-links {
    display: inline-flex;
    gap: 14px;
    align-items: center;
    flex-wrap: wrap;
}

.footer-links a {
    color: inherit;
    text-decoration: none;
}

.footer-links a:hover {
    color: var(--accent, #62b3a9);
}

.legal-shell,
.contact-shell {
    width: min(980px, calc(100% - 32px));
    margin: 0 auto;
}

.legal-card,
.contact-card {
    border: 1px solid var(--border, rgba(255,255,255,.12));
    border-radius: 18px;
    padding: clamp(24px, 4vw, 42px);
    background: var(--panel, #242424);
    box-shadow: var(--shadow, 0 18px 50px rgba(0,0,0,.18));
}

.legal-card h1,
.legal-card h2 {
    letter-spacing: -0.03em;
}

.legal-card h2 {
    margin-top: 28px;
    font-size: 1.05rem;
}

.legal-card p {
    line-height: 1.68;
    color: var(--muted, #b8bec8);
}

.legal-updated {
    font-size: .9rem;
    opacity: .78;
}

.support-layout {
    display: grid;
    grid-template-columns: minmax(280px, 390px) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.support-form textarea,
.admin-ticket-notes textarea {
    width: 100%;
    resize: vertical;
}

.support-ticket-card,
.admin-ticket-panel {
    min-width: 0;
}

.ticket-list,
.admin-ticket-list {
    display: grid;
    gap: 10px;
}

.ticket-row,
.admin-ticket-row {
    border: 1px solid var(--border, rgba(255,255,255,.12));
    border-radius: 14px;
    padding: 14px;
    background: rgba(255,255,255,.025);
}

.admin-ticket-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: start;
}

.ticket-title-line {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ticket-title-line strong {
    color: var(--text, #f7f7f7);
}

.ticket-meta,
.ticket-message {
    margin: 6px 0 0;
    color: var(--muted, #b8bec8);
    line-height: 1.55;
}

.ticket-message {
    color: var(--text, #f7f7f7);
}

.ticket-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 3px 8px;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.06);
}

.ticket-badge-open,
.ticket-type-support {
    color: #7dd3fc;
    border-color: rgba(125,211,252,.35);
    background: rgba(125,211,252,.1);
}

.ticket-badge-closed {
    color: #cbd5e1;
    border-color: rgba(203,213,225,.28);
    background: rgba(203,213,225,.08);
}

.ticket-type-abuse {
    color: #fca5a5;
    border-color: rgba(252,165,165,.36);
    background: rgba(252,165,165,.1);
}

.admin-ticket-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.admin-ticket-actions form {
    margin: 0;
}

.admin-ticket-notes {
    margin-top: 10px;
}

.admin-ticket-notes summary {
    cursor: pointer;
    color: var(--accent, #62b3a9);
    font-weight: 700;
}

.compact-stack-form {
    margin-top: 10px;
    gap: 8px;
}

.contact-choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 22px;
}

.choice-card {
    text-align: left;
    border: 1px solid var(--border, rgba(255,255,255,.12));
    border-radius: 16px;
    padding: 20px;
    background: rgba(255,255,255,.035);
    color: var(--text, #f7f7f7);
    cursor: pointer;
    box-shadow: none;
}

.choice-card strong,
.choice-card span {
    display: block;
}

.choice-card strong {
    margin-bottom: 8px;
    font-size: 1.05rem;
}

.choice-card span,
.support-login-prompt p {
    color: var(--muted, #b8bec8);
    line-height: 1.5;
}

.choice-card:hover {
    border-color: var(--accent, #62b3a9);
    transform: translateY(-1px);
}

.inline-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 16px;
}

.compact-filter-box input {
    max-width: 320px;
}

@media (max-width: 860px) {
    .support-layout,
    .admin-ticket-row,
    .contact-choice-grid {
        grid-template-columns: 1fr;
    }

    .admin-ticket-actions {
        justify-content: flex-start;
    }
}

/* Support/admin tidy-up */
.site-footer-public .footer-links {
    gap: 22px;
}

.contact-choice-card {
    display: grid;
    grid-template-rows: 1fr auto;
    gap: 16px;
    cursor: default;
}

.contact-choice-card .small-button,
.support-form .compact-submit,
.admin-ticket-reply .compact-submit,
.admin-ticket-notes .compact-submit {
    width: fit-content;
    min-width: 0;
    justify-self: start;
    align-self: start;
    padding-inline: 14px;
}

.support-form .compact-submit {
    margin-top: 4px;
}

.admin-ticket-reply {
    margin-top: 10px;
}

.admin-ticket-reply summary,
.admin-ticket-notes summary {
    cursor: pointer;
    color: var(--accent, #62b3a9);
    font-weight: 700;
}

.admin-ticket-reply textarea,
.admin-ticket-notes textarea {
    width: 100%;
    resize: vertical;
}

@media (max-width: 680px) {
    .contact-choice-card .small-button,
    .support-form .compact-submit,
    .admin-ticket-reply .compact-submit,
    .admin-ticket-notes .compact-submit {
        width: auto;
    }

    .site-footer-public .footer-links {
        gap: 14px 20px;
    }
}

/* Admin ticket management refinement */
.admin-open-ticket-card {
    align-self: start;
}

.admin-open-ticket-card > .list-heading,
.admin-guest-card > .list-heading {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
}

.admin-open-ticket-card > .list-heading .small-button,
.admin-guest-card > .list-heading .small-button {
    width: auto !important;
    max-width: max-content;
    min-width: 0;
    justify-self: end;
    padding-inline: 12px;
}

.guest-summary-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    padding: 12px;
}

.guest-summary-grid .big-stat {
    min-height: 64px;
    padding: 8px 10px;
}

.guest-summary-grid .big-stat strong {
    font-size: 1rem;
    line-height: 1.25;
    letter-spacing: 0;
}

.admin-open-ticket-list {
    display: grid;
    gap: 8px;
}

.admin-open-ticket-row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 4px 10px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid var(--border-soft, rgba(255,255,255,0.1));
    border-radius: 10px;
    text-decoration: none;
    background: rgba(255,255,255,0.025);
}

.admin-open-ticket-row:hover {
    background: rgba(255,255,255,0.055);
}

.admin-open-ticket-row strong {
    color: var(--text-strong, #f7f7f7);
    font-size: 0.92rem;
}

.admin-open-ticket-row small {
    grid-column: 1 / -1;
    color: var(--text-muted, #9ca3af);
    font-size: 0.78rem;
}

.admin-ticket-table td {
    vertical-align: middle;
}

.ticket-actions-cell {
    min-width: 150px;
}

.ticket-actions-cell,
.ticket-manage-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.ticket-actions-cell form,
.ticket-manage-actions form {
    margin: 0;
}

.ticket-manage-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    gap: 16px;
    align-items: start;
}

.ticket-manage-hero {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: end;
}

.ticket-thread-card,
.ticket-side-card {
    display: grid;
    gap: 16px;
}

.ticket-manage-title-line {
    align-items: center;
    flex-wrap: wrap;
}

.ticket-message-block,
.ticket-reply-box,
.ticket-notes-box {
    border: 1px solid var(--border-soft, rgba(255,255,255,0.1));
    border-radius: 12px;
    padding: 14px;
    background: rgba(255,255,255,0.025);
}

.ticket-message-full {
    margin-top: 12px;
    color: var(--text-strong, #f7f7f7);
    line-height: 1.65;
    white-space: normal;
}

.ticket-reply-box h2,
.ticket-notes-box h2,
.ticket-side-card h2 {
    margin: 0 0 10px;
    font-size: 0.98rem;
}

.admin-detail-list {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 8px 12px;
    margin: 0;
}

.admin-detail-list dt {
    color: var(--text-muted, #9ca3af);
    font-size: 0.8rem;
}

.admin-detail-list dd {
    margin: 0;
    color: var(--text-strong, #f7f7f7);
    overflow-wrap: anywhere;
}

.admin-detail-list dd small {
    display: block;
    margin-top: 2px;
    color: var(--text-muted, #9ca3af);
}

@media (max-width: 900px) {
    .ticket-manage-layout,
    .ticket-manage-hero {
        display: grid;
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .ticket-actions-cell,
    .ticket-manage-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .ticket-actions-cell .small-button,
    .ticket-actions-cell form,
    .ticket-manage-actions .small-button,
    .ticket-manage-actions form {
        width: 100%;
    }

    .admin-detail-list {
        grid-template-columns: 1fr;
    }
}


/* Admin layout/reply tidy fix */
.admin-dashboard-grid {
    grid-template-columns: minmax(320px, 0.85fr) minmax(640px, 1.65fr);
    align-items: start;
}

.admin-left-stack {
    display: grid;
    gap: 18px;
    align-items: start;
}

.admin-dashboard-grid > .admin-users-card {
    grid-column: 2;
    grid-row: 1;
}

.ticket-reply-box .compact-stack-form {
    align-items: start;
}

.ticket-reply-box .compact-submit,
.ticket-notes-box .compact-submit,
.ticket-manage-actions .small-button {
    width: fit-content !important;
    max-width: max-content;
    min-width: 0;
    justify-self: start;
    align-self: start;
    padding-inline: 14px;
}

.ticket-reply-box .primary-action.compact-submit {
    display: inline-flex;
}

@media (max-width: 1100px) {
    .admin-dashboard-grid {
        grid-template-columns: 1fr;
    }

    .admin-dashboard-grid > .admin-users-card {
        grid-column: auto;
        grid-row: auto;
    }
}

@media (max-width: 640px) {
    .ticket-reply-box .compact-submit,
    .ticket-notes-box .compact-submit,
    .ticket-manage-actions .small-button {
        width: auto !important;
        max-width: 100%;
    }
}

/* --------------------------------------------------------------------------
   Global sticky-footer shell, without stretching cards
-------------------------------------------------------------------------- */
html {
    min-height: 100%;
}

body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

body > main {
    flex: 1 0 auto;
    width: 100%;
}

.top-nav,
.site-footer {
    flex: 0 0 auto;
}

.site-footer {
    margin-top: auto;
}

.dashboard-shell,
.admin-shell,
.support-shell,
.stats-shell {
    align-content: start;
    align-items: start;
    padding-bottom: 22px;
}

.auth-shell,
.password-shell {
    flex: 1 0 auto;
    display: grid;
    place-items: center;
}

.panel-card,
.admin-card,
.stats-card,
.ticket-card,
.support-card,
.auth-card,
.password-card,
.ticket-thread-card,
.ticket-side-card,
.support-create-card,
.support-ticket-card,
.link-item,
.dashboard-card,
.app-card,
.card {
    align-self: start;
}

.admin-grid,
.admin-dashboard-grid,
.admin-layout,
.support-layout,
.support-grid,
.ticket-manage-layout,
.stats-overview-grid,
.dashboard-grid,
.summary-grid,
.stats-grid,
.two-col {
    align-items: start;
    align-content: start;
}

.site-footer-public .footer-links,
.footer-links {
    display: inline-flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}


/* Neater short-domain card */
.admin-domain-card {
    align-self: start;
}

.admin-domain-card .list-heading {
    align-items: start;
    gap: 14px;
}

.admin-domain-form-compact {
    margin: 0 0 14px;
    padding: 12px;
    border: 1px solid var(--line-soft);
    border-radius: var(--radius-sm);
    background: rgba(255,255,255,.025);
}

.admin-domain-fields {
    display: grid;
    grid-template-columns: minmax(180px, 1.5fr) minmax(130px, .8fr) auto auto;
    gap: 10px;
    align-items: end;
}

.admin-domain-fields label:not(.checkbox-label) {
    margin: 0 0 5px;
}

.admin-domain-fields input[type="text"] {
    min-height: 36px;
}

.admin-domain-default-check {
    min-height: 36px;
    margin: 0;
    padding: 0 4px 6px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    white-space: nowrap;
}

.admin-add-domain-button {
    width: auto !important;
    min-width: 0;
    justify-self: start;
    padding-inline: 13px;
}

.admin-domain-note {
    margin: 9px 0 0;
    line-height: 1.45;
}

.admin-domain-table-wrap {
    margin-top: 8px;
}

.admin-domain-table td,
.admin-domain-table th {
    vertical-align: middle;
}

.admin-domain-table .admin-actions-cell {
    justify-content: flex-start;
    align-items: center;
}

/* Ticket details card */
.ticket-side-card {
    align-self: start;
}

.ticket-side-card h2 {
    padding-bottom: 10px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--line-soft);
}

.ticket-side-card .admin-detail-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    margin: 0 0 16px;
    border: 1px solid var(--line-soft);
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: rgba(255,255,255,.02);
}

.ticket-side-card .admin-detail-list dt,
.ticket-side-card .admin-detail-list dd {
    margin: 0;
    padding: 9px 11px;
}

.ticket-side-card .admin-detail-list dt {
    padding-bottom: 2px;
    color: var(--dim);
    background: rgba(255,255,255,.018);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.ticket-side-card .admin-detail-list dd {
    padding-top: 2px;
    border-bottom: 1px solid var(--line-soft);
    color: var(--text);
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.ticket-side-card .admin-detail-list dd:last-child {
    border-bottom: 0;
}

.ticket-side-card .admin-detail-list dd small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
}

.ticket-manage-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.ticket-manage-actions form {
    margin: 0;
}

.ticket-reply-box .compact-submit,
.ticket-notes-box .compact-submit,
.ticket-manage-actions .small-button,
.support-form .compact-submit {
    width: auto !important;
    max-width: max-content;
    min-width: 0;
    justify-self: start;
    align-self: start;
    padding-inline: 14px;
}

.contact-choice-card {
    align-items: start;
}

.contact-choice-card .small-button {
    width: auto !important;
    max-width: max-content;
    min-width: 0;
}

@media (max-width: 980px) {
    .admin-domain-fields {
        grid-template-columns: 1fr 1fr;
    }

    .admin-domain-default-check,
    .admin-add-domain-button {
        align-self: end;
    }
}

@media (max-width: 620px) {
    .admin-domain-fields {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .admin-add-domain-button,
    .contact-choice-card .small-button,
    .support-form .compact-submit,
    .ticket-reply-box .compact-submit,
    .ticket-notes-box .compact-submit,
    .ticket-manage-actions .small-button {
        width: fit-content !important;
        max-width: 100%;
    }

    .site-footer-public .footer-links,
    .footer-links {
        justify-content: center;
        gap: 12px 20px;
    }

    .guest-summary-grid {
        grid-template-columns: 1fr;
    }
}


/* --------------------------------------------------------------------------
   Additive repairs for admin/support cards after footer shell change
-------------------------------------------------------------------------- */
.admin-domain-card,
.ticket-side-card,
.ticket-thread-card,
.support-create-card {
    height: auto !important;
    min-height: 0 !important;
}

.admin-domain-form-compact {
    margin: 0 0 14px !important;
    padding: 12px !important;
    border: 1px solid var(--line-soft) !important;
    border-radius: var(--radius-sm) !important;
    background: rgba(255,255,255,.025) !important;
}

.admin-domain-fields {
    display: grid !important;
    grid-template-columns: minmax(180px, 1.5fr) minmax(130px, .8fr) auto auto !important;
    gap: 10px !important;
    align-items: end !important;
}

.admin-domain-field-main,
.admin-domain-fields label:not(.checkbox-label) {
    min-width: 0;
}

.admin-domain-fields label:not(.checkbox-label) {
    display: grid;
    gap: 5px;
    margin: 0 !important;
}

.admin-domain-fields input[type="text"] {
    min-height: 36px !important;
    width: 100%;
}

.admin-domain-default-check {
    min-height: 36px !important;
    margin: 0 !important;
    padding: 0 4px 6px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    white-space: nowrap !important;
}

.admin-add-domain-button,
.ticket-reply-box .compact-submit,
.ticket-notes-box .compact-submit,
.support-form .compact-submit,
.support-form .primary-action,
.ticket-manage-actions .small-button {
    width: auto !important;
    max-width: max-content !important;
    min-width: 0 !important;
    justify-self: start !important;
    align-self: start !important;
    padding-inline: 14px !important;
}

.admin-domain-note {
    margin: 9px 0 0 !important;
    line-height: 1.45 !important;
}

.admin-domain-table-wrap {
    margin-top: 8px !important;
}

.admin-domain-table td,
.admin-domain-table th {
    vertical-align: middle !important;
}

.admin-domain-table .admin-actions-cell {
    justify-content: flex-start !important;
    align-items: center !important;
}

.ticket-side-card h2,
.ticket-thread-card h2,
.support-create-card h2 {
    padding-bottom: 10px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--line-soft);
}

.ticket-side-card .admin-detail-list {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    margin: 0 0 16px !important;
    border: 1px solid var(--line-soft) !important;
    border-radius: var(--radius-sm) !important;
    overflow: hidden !important;
    background: rgba(255,255,255,.02) !important;
}

.ticket-side-card .admin-detail-list dt,
.ticket-side-card .admin-detail-list dd {
    margin: 0 !important;
    padding: 9px 11px !important;
}

.ticket-side-card .admin-detail-list dt {
    padding-bottom: 2px !important;
    color: var(--dim) !important;
    background: rgba(255,255,255,.018) !important;
    font-size: .68rem !important;
    font-weight: 800 !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
}

.ticket-side-card .admin-detail-list dd {
    padding-top: 2px !important;
    border-bottom: 1px solid var(--line-soft) !important;
    color: var(--text) !important;
    line-height: 1.35 !important;
    overflow-wrap: anywhere !important;
}

.ticket-side-card .admin-detail-list dd:last-child {
    border-bottom: 0 !important;
}

.ticket-side-card .admin-detail-list dd small {
    display: block !important;
    margin-top: 3px !important;
    color: var(--muted) !important;
}

.ticket-thread-card .ticket-message-block,
.ticket-message-block {
    padding: 12px !important;
    border: 1px solid var(--line-soft) !important;
    border-radius: var(--radius-sm) !important;
    background: rgba(255,255,255,.02) !important;
}

.ticket-message-full,
.ticket-message,
.ticket-notes-box,
.ticket-reply-box {
    overflow-wrap: anywhere;
}

.ticket-reply-box,
.ticket-notes-box {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--line-soft);
}

.ticket-reply-box .compact-stack-form,
.ticket-notes-box .compact-stack-form,
.support-form {
    align-items: start !important;
}

.ticket-manage-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    align-items: center !important;
}

.ticket-manage-actions form {
    margin: 0 !important;
}

.support-create-card .support-form textarea,
.support-create-card .support-form input[type="text"],
.support-create-card .support-form input[type="email"],
.support-create-card .support-form select {
    max-width: 760px;
}

@media (max-width: 980px) {
    .admin-domain-fields {
        grid-template-columns: 1fr 1fr !important;
    }

    .admin-domain-default-check,
    .admin-add-domain-button {
        align-self: end !important;
    }
}

@media (max-width: 620px) {
    .admin-domain-fields {
        grid-template-columns: 1fr !important;
        align-items: stretch !important;
    }

    .admin-add-domain-button,
    .support-form .compact-submit,
    .support-form .primary-action,
    .ticket-reply-box .compact-submit,
    .ticket-notes-box .compact-submit,
    .ticket-manage-actions .small-button {
        width: fit-content !important;
        max-width: 100% !important;
    }

    .site-footer-public .footer-links,
    .footer-links {
        justify-content: center;
        gap: 12px 20px;
    }
}


/* Admin link disable/status refinements */
.admin-status-cell { min-width: 120px; }
.status-admin-disabled,
.status-user-disabled,
.status-disabled { color: #ef4444; }
.status-admin-disabled { border-color: rgba(239,68,68,.35); background: rgba(239,68,68,.08); }
.status-user-disabled { border-color: rgba(245,158,11,.35); background: rgba(245,158,11,.08); color: #f59e0b; }
.status-expired { border-color: rgba(148,163,184,.35); background: rgba(148,163,184,.08); color: #94a3b8; }
.status-live { border-color: rgba(34,197,94,.35); background: rgba(34,197,94,.08); color: #22c55e; }
.disabled-inline { opacity: .68; cursor: not-allowed; background: rgba(148,163,184,.08); border-color: rgba(148,163,184,.22); color: var(--muted, #94a3b8); }
.admin-row-actions { display:flex; gap:.45rem; align-items:center; flex-wrap:wrap; }
.admin-row-actions form { margin:0; }

/* --------------------------------------------------------------------------
   Admin user links responsive tidy
   Keeps long destination URLs inside the link column instead of forcing a wide table.
-------------------------------------------------------------------------- */

.admin-user-links-panel {
    min-width: 0;
}

.admin-links-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: visible;
}

.admin-links-table {
    width: 100%;
    table-layout: fixed;
}

.admin-links-table th:first-child,
.admin-links-table td.admin-link-cell {
    width: 38%;
}

.admin-links-table th:nth-child(2),
.admin-links-table td.admin-status-cell {
    width: 12%;
}

.admin-links-table th:nth-child(3),
.admin-links-table td.admin-group-cell {
    width: 12%;
}

.admin-links-table th:nth-child(4) {
    width: 14%;
}

.admin-links-table td.admin-stats-cell {
    width: 14%;
}

.admin-links-table th:nth-child(5) {
    width: 12%;
}

.admin-links-table th:nth-child(6) {
    width: 12%;
}

.admin-group-cell {
    overflow-wrap: anywhere;
}

.admin-link-cell,
.admin-destination-inline,
.admin-destination-inline a,
.admin-link-cell > a,
.admin-link-cell small {
    min-width: 0;
    max-width: 100%;
}

.admin-link-cell {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.admin-link-cell strong,
.admin-link-cell > a,
.admin-destination-inline a,
.admin-link-cell small {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.admin-destination-inline {
    display: grid;
    gap: 0.15rem;
    padding-top: 0.35rem;
    margin-top: 0.15rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.admin-destination-inline > span {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--muted, #64748b);
}

.admin-destination-inline a {
    color: inherit;
    opacity: 0.78;
    text-decoration: none;
}

.admin-destination-inline a:hover {
    opacity: 1;
    text-decoration: underline;
}

.admin-stats-cell {
    display: grid;
    gap: 0.2rem;
    white-space: nowrap;
}

.admin-row-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    justify-content: flex-start;
}

.admin-row-actions form {
    margin: 0;
}

.admin-row-actions .small-button {
    white-space: nowrap;
}

@media (max-width: 980px) {
    .admin-links-table-wrap {
        overflow-x: visible;
    }

    .admin-links-table,
    .admin-links-table thead,
    .admin-links-table tbody,
    .admin-links-table th,
    .admin-links-table td,
    .admin-links-table tr {
        display: block;
        width: 100%;
    }

    .admin-links-table thead {
        display: none;
    }

    .admin-links-table tbody {
        display: grid;
        gap: 0.8rem;
    }

    .admin-links-table tr {
        border: 1px solid rgba(15, 23, 42, 0.10);
        border-radius: 16px;
        padding: 0.85rem;
        background: rgba(255, 255, 255, 0.75);
    }

    .admin-links-table td {
        border: 0;
        padding: 0.35rem 0;
    }

    .admin-stats-cell {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
        white-space: normal;
    }
}
