/* ==========================================================================
   Tapthru customer portal
   Design tokens adapted from a light admin-dashboard style: white sidebar,
   white top bar, bordered cards with soft layered shadows, blue accent.
   Weight scale is deliberately capped: 400 body / 500 UI / 600 headings.
   ========================================================================== */

.tp-root {
	/* Break out of the active theme's constrained content width — see
	   tapthru_print_full_page_reset_style() for the wrapper-level reset. */
	max-width: none !important;
	width: 100% !important;
	margin: 0 !important;

	--tp-font: "Geist", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--tp-mono: "Geist Mono", "SF Mono", Monaco, "Cascadia Code", Consolas, monospace;

	--tp-bg: #f4f7fb;
	--tp-surface: #ffffff;
	--tp-text: #273447;
	--tp-heading: #111827;
	--tp-muted: #687789;
	--tp-light: #9aa8b8;
	--tp-accent: #315cf6;
	--tp-accent-dark: #2549d6;
	--tp-accent-soft: #edf3ff;
	--tp-accent-ring: rgb(49 92 246 / 0.2);

	--tp-border: #dbe4ef;
	--tp-border-light: #eaf0f7;
	--tp-card-border: #e2e9f2;

	--tp-success: #0f9b7a;   --tp-success-soft: #dff8f0;
	--tp-warning: #c87914;   --tp-warning-soft: #fff0d7;
	--tp-danger: #e05264;    --tp-danger-soft: #fde5ea;
	--tp-info: #0c9dc8;      --tp-info-soft: #ddf4fb;

	--tp-radius-sm: 6px;
	--tp-radius: 8px;
	--tp-radius-lg: 10px;
	--tp-radius-xl: 14px;

	--tp-shadow-sm: 0 1px 2px 0 rgb(22 34 51 / 0.06), 0 1px 1px -1px rgb(22 34 51 / 0.08);
	--tp-shadow-md: 0 12px 28px -18px rgb(22 34 51 / 0.35), 0 2px 8px -4px rgb(22 34 51 / 0.12);
	--tp-shadow-lg: 0 22px 45px -24px rgb(22 34 51 / 0.42), 0 8px 18px -12px rgb(22 34 51 / 0.18);

	--tp-sidebar-w: 264px;
	--tp-topbar-h: 68px;
	--tp-transition: 180ms ease;

	font-family: var(--tp-font);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.6;
	color: var(--tp-text);
	background: var(--tp-bg);
	-webkit-font-smoothing: antialiased;
}

.tp-root *, .tp-root *::before, .tp-root *::after { box-sizing: border-box; }
.tp-root h1, .tp-root h2, .tp-root h3, .tp-root h4 { font-family: var(--tp-font); font-weight: 600; color: var(--tp-heading); line-height: 1.25; margin: 0; letter-spacing: -0.01em; }
.tp-root p { margin: 0; }
.tp-root strong, .tp-root b { font-weight: 500; }
.tp-root code { font-family: var(--tp-mono); }
.tp-root img { max-width: 100%; }
/* :where() keeps plain links at single-class specificity so every component
   class below (buttons, nav links, badges) wins on source order alone. */
.tp-root :where(a) { color: var(--tp-accent); text-decoration: none; transition: color var(--tp-transition); }
.tp-root :where(a):hover { color: var(--tp-accent-dark); }
.tp-root .bi { line-height: 1; vertical-align: -0.125em; }

/* ---------- Shell ---------- */
.tp-shell { display: flex; min-height: 100vh; background: var(--tp-bg); }
.tp-body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.tp-main { flex: 1; padding: 28px 32px 48px; }
.tp-page { max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 22px; }
.tp-page-narrow { max-width: 720px; }

/* ---------- Sidebar ---------- */
.tp-nav {
	width: var(--tp-sidebar-w); flex-shrink: 0;
	background: var(--tp-surface); border-right: 1px solid #d9e2ec;
	display: flex; flex-direction: column; padding: 18px 14px;
	position: sticky; top: 0; height: 100vh; overflow-y: auto;
}
.tp-brand { display: flex; align-items: center; gap: 10px; padding: 4px 8px 18px; text-decoration: none; }
.tt-mark { display: block; flex-shrink: 0; filter: drop-shadow(0 6px 10px rgb(49 92 246 / 0.28)); }
.tt-wordmark { font-size: 20px; font-weight: 600; letter-spacing: -0.03em; line-height: 1; color: var(--tp-heading); }
.tt-wordmark-accent { color: var(--tp-accent); }
.tp-brand-text { display: flex; flex-direction: column; gap: 4px; line-height: 1.2; }
.tp-brand-sub { font-size: 12px; color: var(--tp-muted); }

.tp-nav-section { font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.08em; color: #8190a2; padding: 10px 10px 6px; }
.tp-nav-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; flex: 1; }
.tp-nav-link {
	display: flex; align-items: center; gap: 12px;
	padding: 9px 12px; border-radius: var(--tp-radius-lg);
	font-size: 14px; font-weight: 500; color: #324152;
	border: 1px solid transparent; text-decoration: none;
	transition: background var(--tp-transition), color var(--tp-transition);
}
.tp-nav-link .bi { font-size: 17px; color: #8190a2; transition: color var(--tp-transition); }
.tp-nav-link:hover { background: var(--tp-accent-soft); color: var(--tp-accent); }
.tp-nav-link:hover .bi { color: var(--tp-accent); }
.tp-nav-link.is-active { background: var(--tp-accent); color: #fff; border-color: #2d55e2; box-shadow: 0 14px 26px -18px #203ca0; }
.tp-nav-link.is-active .bi { color: #fff; }

.tp-nav-plan { margin-top: 16px; padding: 14px; border: 1px solid var(--tp-card-border); border-radius: var(--tp-radius-lg); background: #f7f9fc; display: flex; flex-direction: column; gap: 10px; }
.tp-nav-plan-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.tp-nav-plan-name { font-size: 13px; font-weight: 500; color: var(--tp-heading); }
.tp-nav-plan-usage { font-size: 12px; color: var(--tp-muted); }

.tp-progress { height: 6px; border-radius: 999px; background: var(--tp-border-light); overflow: hidden; }
.tp-progress span { display: block; height: 100%; background: var(--tp-accent); border-radius: inherit; }

/* ---------- Top bar ---------- */
.tp-topbar {
	height: var(--tp-topbar-h); position: sticky; top: 0; z-index: 30;
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	padding: 0 32px; background: rgb(255 255 255 / 0.96); backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--tp-border);
	box-shadow: 0 10px 35px -28px rgb(22 34 51 / 0.45);
}
.tp-topbar-left, .tp-topbar-right { display: flex; align-items: center; gap: 12px; }
.tp-topbar-title { font-size: 15px; font-weight: 500; color: var(--tp-heading); }
.tp-topbar .tp-nav-toggle { display: none; }

.tp-icon-btn {
	width: 36px; height: 36px; display: inline-grid; place-items: center;
	border-radius: var(--tp-radius); border: 1px solid var(--tp-border);
	background: var(--tp-surface); color: var(--tp-muted); font-size: 16px;
	cursor: pointer; text-decoration: none; transition: all var(--tp-transition);
}
.tp-icon-btn:hover { color: var(--tp-accent); border-color: var(--tp-accent); background: var(--tp-accent-soft); }
.tp-icon-btn.is-danger:hover { color: var(--tp-danger); border-color: var(--tp-danger); background: var(--tp-danger-soft); }

.tp-user { display: flex; align-items: center; gap: 10px; padding: 4px 10px 4px 4px; border-radius: 999px; text-decoration: none; transition: background var(--tp-transition); }
.tp-user:hover { background: var(--tp-accent-soft); }
.tp-avatar { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--tp-accent-soft); color: var(--tp-accent); font-size: 13px; font-weight: 500; flex-shrink: 0; }
.tp-avatar-lg { width: 64px; height: 64px; font-size: 22px; }
.tp-user-meta { display: flex; flex-direction: column; line-height: 1.25; }
.tp-user-name { font-size: 13px; font-weight: 500; color: var(--tp-heading); }
.tp-user-email { font-size: 12px; color: var(--tp-muted); }

/* ---------- Page header ---------- */
.tp-page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.tp-page-title { font-size: 26px; }
.tp-page-sub { margin-top: 6px; color: var(--tp-muted); font-size: 14px; display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.tp-back { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; color: var(--tp-muted) !important; margin-bottom: 8px; }
.tp-back:hover { color: var(--tp-accent) !important; }

/* ---------- Panels (cards) ---------- */
.tp-panel, .tp-card {
	background: var(--tp-surface); border: 1px solid var(--tp-card-border);
	border-radius: var(--tp-radius-lg); box-shadow: var(--tp-shadow-md);
}
.tp-card { padding: 22px; }
.tp-panel-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 18px 22px; border-bottom: 1px solid var(--tp-border-light); }
.tp-panel-title { font-size: 16px; }
.tp-panel-sub { margin-top: 2px; font-size: 13px; color: var(--tp-muted); }
.tp-panel-body { padding: 22px; }

/* ---------- KPI cards ---------- */
.tp-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 18px; }
.tp-kpi { display: flex; align-items: center; gap: 14px; padding: 20px; background: var(--tp-surface); border: 1px solid var(--tp-card-border); border-radius: var(--tp-radius-lg); box-shadow: var(--tp-shadow-md); }
.tp-kpi-icon { width: 44px; height: 44px; flex-shrink: 0; border-radius: var(--tp-radius-lg); display: grid; place-items: center; font-size: 19px; }
.tp-kpi-icon.is-primary { background: rgb(49 92 246 / 0.12); color: var(--tp-accent); }
.tp-kpi-icon.is-success { background: var(--tp-success-soft); color: var(--tp-success); }
.tp-kpi-icon.is-warning { background: var(--tp-warning-soft); color: var(--tp-warning); }
.tp-kpi-icon.is-info { background: var(--tp-info-soft); color: var(--tp-info); }
.tp-kpi-icon.is-muted { background: #eef1f6; color: var(--tp-muted); }
.tp-kpi-body { display: flex; flex-direction: column; min-width: 0; }
.tp-kpi-body span { font-size: 13px; color: var(--tp-muted); }
.tp-kpi-body strong { font-size: 22px; font-weight: 600; color: var(--tp-heading); line-height: 1.3; }

/* ---------- Buttons ---------- */
.tp-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 7px;
	padding: 9px 18px; border-radius: var(--tp-radius); border: 1px solid transparent;
	font-family: inherit; font-size: 14px; font-weight: 500; line-height: 1.4;
	cursor: pointer; text-decoration: none; white-space: nowrap;
	transition: background var(--tp-transition), border-color var(--tp-transition), color var(--tp-transition), box-shadow var(--tp-transition);
}
.tp-btn:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--tp-accent-ring); }
.tp-btn-primary { background: var(--tp-accent); border-color: var(--tp-accent); color: #fff; }
.tp-btn-primary:hover { background: var(--tp-accent-dark); border-color: var(--tp-accent-dark); color: #fff; }
.tp-btn-light, .tp-btn-secondary { background: var(--tp-bg); border-color: var(--tp-border); color: var(--tp-text); }
.tp-btn-light:hover, .tp-btn-secondary:hover { background: var(--tp-accent-soft); border-color: #c6d4f6; color: var(--tp-accent); }
.tp-btn-warning { background: var(--tp-warning-soft); border-color: #f6dcb0; color: #9a5b0b; }
.tp-btn-warning:hover { background: #ffe6bd; color: #9a5b0b; }
.tp-btn-sm { padding: 6px 12px; font-size: 13px; }
.tp-btn-lg { padding: 12px 22px; font-size: 15px; }
.tp-btn-block { width: 100%; }
.tp-btn.is-disabled { pointer-events: none; opacity: 0.7; }

/* ---------- Badges ---------- */
.tp-badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: var(--tp-radius-sm); font-size: 12px; font-weight: 500; line-height: 1.4; background: #eef1f6; color: var(--tp-muted); text-decoration: none; }
.tp-badge-accent { background: var(--tp-accent-soft); color: var(--tp-accent); }
.tp-badge-success { background: var(--tp-success-soft); color: var(--tp-success); }
.tp-badge-warning { background: var(--tp-warning-soft); color: var(--tp-warning); }
.tp-badge-info { background: var(--tp-info-soft); color: var(--tp-info); }
.tp-badge-danger { background: var(--tp-danger-soft); color: var(--tp-danger); }
a.tp-badge:hover { filter: brightness(0.97); }

/* ---------- Tables ---------- */
.tp-table-wrap { overflow-x: auto; }
.tp-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.tp-table th {
	background: #f7f9fc; padding: 12px 22px; text-align: left; white-space: nowrap;
	font-size: 12px; font-weight: 500; color: var(--tp-muted); text-transform: uppercase; letter-spacing: 0.05em;
	border-bottom: 1px solid var(--tp-border-light);
}
.tp-table td { padding: 14px 22px; border-bottom: 1px solid var(--tp-border-light); vertical-align: middle; }
.tp-table tbody tr { transition: background var(--tp-transition); }
.tp-table tbody tr:hover { background: #f6f9ff; }
.tp-table tbody tr:last-child td { border-bottom: none; }
.tp-table .tp-num { text-align: right; font-variant-numeric: tabular-nums; }
.tp-table .tp-actions-col { text-align: right; width: 1%; white-space: nowrap; }
.tp-cell-title { display: block; font-weight: 500; color: var(--tp-heading) !important; }
a.tp-cell-title:hover { color: var(--tp-accent) !important; }
.tp-cell-sub { display: block; font-size: 12px; color: var(--tp-muted); }
.tp-row-actions { display: inline-flex; gap: 6px; }
.tp-share { display: flex; align-items: center; gap: 10px; min-width: 120px; }
.tp-share .tp-progress { flex: 1; }
.tp-share span { font-size: 13px; color: var(--tp-muted); font-variant-numeric: tabular-nums; }

/* ---------- Smart link ---------- */
.tp-link { font-size: 13px; color: var(--tp-text); background: #f3f6fb; border: 1px solid var(--tp-border-light); padding: 3px 8px; border-radius: var(--tp-radius-sm); word-break: break-all; }
.tp-table .tp-link { white-space: nowrap; word-break: normal; }
.tp-link-big { display: block; margin-top: 6px; font-size: 15px; padding: 10px 14px; color: var(--tp-accent); background: var(--tp-accent-soft); border-color: #d6e2ff; }
.tp-link-card { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.tp-link-main { flex: 1; min-width: 260px; }
.tp-link-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

/* ---------- Chart ---------- */
.tp-bars { display: flex; align-items: flex-end; gap: 4px; height: 180px; padding-top: 8px; border-bottom: 1px solid var(--tp-border-light); }
.tp-bar { flex: 1; height: 100%; display: flex; align-items: flex-end; }
.tp-bar-fill { width: 100%; min-height: 2px; border-radius: 4px 4px 0 0; background: linear-gradient(180deg, #5b7ef8 0%, var(--tp-accent) 100%); opacity: 0.85; transition: opacity var(--tp-transition); }
.tp-bar:hover .tp-bar-fill { opacity: 1; }

/* ---------- Forms ---------- */
.tp-form { margin: 0; display: flex; flex-direction: column; gap: 22px; }
.tp-fields { display: flex; flex-direction: column; gap: 16px; }
.tp-field { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.tp-field-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }
.tp-label { font-size: 13px; font-weight: 500; color: var(--tp-heading); display: inline-flex; align-items: center; gap: 6px; }
.tp-label-row { display: flex; justify-content: space-between; align-items: center; font-size: 13px; }
.tp-help { font-size: 12px; color: var(--tp-muted); }
.tp-root input[type=text], .tp-root input[type=email], .tp-root input[type=password], .tp-root input[type=url], .tp-root select, .tp-root textarea {
	width: 100%; padding: 10px 12px; font-family: inherit; font-size: 14px; font-weight: 400; color: var(--tp-text);
	background: #fff; border: 1px solid var(--tp-border); border-radius: var(--tp-radius);
	transition: border-color var(--tp-transition), box-shadow var(--tp-transition);
	box-shadow: none; margin: 0;
}
.tp-root input:focus, .tp-root select:focus, .tp-root textarea:focus { outline: none; border-color: var(--tp-accent); box-shadow: 0 0 0 3px var(--tp-accent-ring); }
.tp-root input:disabled { background: #f7f9fc; color: var(--tp-muted); }
.tp-root input[type=color] { width: 100%; height: 42px; padding: 4px; border: 1px solid var(--tp-border); border-radius: var(--tp-radius); background: #fff; cursor: pointer; }
.tp-form-actions { display: flex; justify-content: flex-end; gap: 10px; }
.tp-inline-form { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.tp-inline-form input[type=text] { flex: 1; min-width: 220px; width: auto; }
.tp-details summary { cursor: pointer; font-size: 13px; font-weight: 500; color: var(--tp-accent); list-style: none; display: inline-flex; align-items: center; gap: 6px; }
.tp-details summary::-webkit-details-marker { display: none; }
.tp-details summary::before { content: "+"; display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 4px; background: var(--tp-accent-soft); }
.tp-details[open] summary::before { content: "–"; }
.tp-details[open] summary { margin-bottom: 16px; }

.tp-grid { display: grid; gap: 22px; align-items: start; }
.tp-grid > div, .tp-grid > form { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.tp-grid-main-side { grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); }

/* ---------- Alerts / locked / empty ---------- */
.tp-alert { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: var(--tp-radius); font-size: 14px; border: 1px solid transparent; }
.tp-alert-success { background: var(--tp-success-soft); color: #0b7a60; border-color: #bcebdc; }
.tp-alert-error { background: var(--tp-danger-soft); color: #b8394a; border-color: #f7c6d0; }

.tp-locked { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border-radius: var(--tp-radius); background: #f7f9fc; border: 1px dashed var(--tp-border); font-size: 13px; color: var(--tp-muted); }
.tp-locked > .bi { color: var(--tp-warning); margin-top: 2px; }

.tp-empty { text-align: center; padding: 52px 24px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.tp-empty-sm { padding: 36px 24px; }
.tp-empty-icon { width: 56px; height: 56px; border-radius: 14px; display: grid; place-items: center; font-size: 26px; background: var(--tp-accent-soft); color: var(--tp-accent); margin-bottom: 6px; }
.tp-empty h3 { font-size: 18px; }
.tp-empty p { max-width: 460px; color: var(--tp-muted); font-size: 14px; margin-bottom: 8px; }

.tp-upsell { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding: 20px 22px; border-radius: var(--tp-radius-lg); border: 1px solid #f6dcb0; background: linear-gradient(90deg, #fffaf0, #fff); }
.tp-upsell > div:nth-child(2) { flex: 1; min-width: 220px; }
.tp-upsell h3 { font-size: 15px; }
.tp-upsell p { font-size: 13px; color: var(--tp-muted); }

.tp-domain-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; padding: 14px 0; border-bottom: 1px solid var(--tp-border-light); }
.tp-domain-row .tp-cell-title { display: inline; margin-right: 8px; }
.tp-domain-row .tp-help { margin: 8px 0 6px; }
.tp-code-block { display: block; font-size: 12px; padding: 10px 12px; background: #f7f9fc; border: 1px solid var(--tp-border-light); border-radius: var(--tp-radius-sm); word-break: break-all; }

.tp-center { text-align: center; justify-content: center; }
.tp-muted { color: var(--tp-muted); font-size: 14px; }

/* ---------- Billing ---------- */
.tp-current-plan { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.tp-current-plan-text { flex: 1; display: flex; flex-direction: column; }
.tp-current-plan-name { font-size: 20px; font-weight: 600; color: var(--tp-heading); }

.tp-pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 18px; }
.tp-price-card { display: flex; flex-direction: column; padding: 24px; background: var(--tp-surface); border: 1px solid var(--tp-card-border); border-radius: var(--tp-radius-lg); box-shadow: var(--tp-shadow-md); transition: transform var(--tp-transition), box-shadow var(--tp-transition); }
.tp-price-card:hover { transform: translateY(-2px); box-shadow: var(--tp-shadow-lg); }
.tp-price-card.is-featured { border-color: #b9c9fb; }
.tp-price-card.is-current { border-color: var(--tp-accent); box-shadow: 0 0 0 3px var(--tp-accent-ring), var(--tp-shadow-md); }
.tp-price-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.tp-price-head h3 { font-size: 16px; }
.tp-price { margin: 14px 0 18px; font-size: 30px; font-weight: 600; color: var(--tp-heading); letter-spacing: -0.02em; }
.tp-price span { font-size: 14px; font-weight: 400; color: var(--tp-muted); letter-spacing: 0; }
.tp-price-features { list-style: none; margin: 0 0 22px; padding: 18px 0 0; border-top: 1px solid var(--tp-border-light); display: flex; flex-direction: column; gap: 10px; flex: 1; font-size: 14px; }
.tp-price-features li { display: flex; align-items: center; gap: 8px; }
.tp-price-features .bi-check2 { color: var(--tp-success); }
.tp-price-features li.is-off { color: var(--tp-light); }
.tp-price-cta { min-height: 42px; display: flex; align-items: center; }

/* ---------- Settings ---------- */
.tp-profile-card { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; }
.tp-profile-card .tp-badge { margin: 6px 0 10px; }

/* ---------- Auth ---------- */
.tp-auth { display: grid; grid-template-columns: minmax(320px, 0.9fr) 1.1fr; min-height: 100vh; }
.tp-auth-aside { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; padding: 40px; color: #fff; background-color: #2549d6; background-image: radial-gradient(circle at 20% 10%, #4a72ff 0%, transparent 45%), linear-gradient(160deg, #315cf6 0%, #1d3cb8 100%); }
.tp-brand-light .tt-mark { filter: drop-shadow(0 8px 16px rgb(10 25 90 / 0.35)); }
.tp-brand-light .tt-wordmark { color: #fff; }
.tp-brand-light .tt-wordmark-accent { color: #c9d6ff; }
.tp-auth-pitch h2 { color: #fff; font-size: 28px; max-width: 420px; margin-bottom: 24px; }
.tp-auth-pitch ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.tp-auth-pitch li { display: flex; gap: 10px; align-items: flex-start; color: rgb(255 255 255 / 0.88); font-size: 15px; }
.tp-auth-pitch .bi { margin-top: 3px; }
.tp-auth-foot { font-size: 13px; color: rgb(255 255 255 / 0.6); }
.tp-auth-main { display: grid; place-items: center; padding: 40px 24px; background: var(--tp-bg); }
.tp-auth-card { width: 100%; max-width: 420px; background: var(--tp-surface); border: 1px solid var(--tp-card-border); border-radius: var(--tp-radius-xl); box-shadow: var(--tp-shadow-lg); padding: 36px; display: flex; flex-direction: column; gap: 18px; }
.tp-auth-title { font-size: 24px; }
.tp-auth-card .tp-page-sub { margin-top: -10px; }

/* ---------- Responsive ---------- */
.tp-nav-backdrop { display: none; }
@media (max-width: 1100px) {
	.tp-grid-main-side { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
	.tp-nav { position: fixed; left: 0; top: 0; z-index: 50; transform: translateX(-100%); transition: transform 240ms ease; box-shadow: var(--tp-shadow-lg); }
	.tp-nav.is-open { transform: translateX(0); }
	.tp-nav-backdrop.is-open { display: block; position: fixed; inset: 0; z-index: 40; background: rgb(17 24 39 / 0.35); }
	.tp-topbar .tp-nav-toggle { display: inline-grid; }
	.tp-topbar { padding: 0 16px; }
	.tp-main { padding: 20px 16px 40px; }
	.tp-auth { grid-template-columns: 1fr; }
	.tp-auth-aside { display: none; }
}
@media (max-width: 600px) {
	.tp-hide-sm { display: none !important; }
	.tp-page-title { font-size: 22px; }
	.tp-kpis { grid-template-columns: 1fr 1fr; gap: 12px; }
	.tp-kpi { flex-direction: column; align-items: flex-start; gap: 10px; padding: 16px; }
	.tp-kpi-icon { width: 38px; height: 38px; font-size: 17px; }
	.tp-kpi-body strong { font-size: 19px; }
	.tp-table th, .tp-table td { padding-left: 14px; padding-right: 14px; }
	.tp-panel-header, .tp-panel-body { padding: 16px; }
	.tp-auth-card { padding: 24px; }
	.tp-form-actions .tp-btn { flex: 1; }
}
