/* ══════════════════════════════════════════════════════
   WS Websites Dashboard — v2
   Palette: Warm white · Antique gold · Deep ink
   Font stack: DM Sans (body) — loaded by theme
   ══════════════════════════════════════════════════════ */

/* ── TOKENS ──────────────────────────────────────────── */

:root {
    --g: #c9a96e;
    /* gold  */
    --gl: #f7f0e2;
    /* gold light bg */
    --gd: #9a7a45;
    /* gold dark */
    --ink: #1c1917;
    /* near-black */
    --ink2: #57534e;
    /* muted text */
    --ink3: #a8a29e;
    /* faint text */
    --bg: #f5f5f4;
    /* page bg */
    --surface: #ffffff;
    /* card surface */
    --border: #e7e2d9;
    /* card border */
    --border2: #d6cfC5;
    /* stronger border */
    --r: 12px;
    /* card radius */
    --r-sm: 8px;
    /* inner radius */
    --pink: #e84d8a;
    /* CTA accent (payment) */
    --pink-bg: #fdf2f7;
    --red: #dc2626;
    --red-bg: #fef2f2;
    --red-banner: #f87171;
    /* expired banner */
    --green: #16a34a;
    --green-bg: #f0fdf4;
    --blue: #2563eb;
    --blue-bg: #eff6ff;
}

.ws-saas-websites {
    position: relative;
    min-height: calc(100vh - 120px);
    background: var(--bg);
    padding: 28px 0 48px;
    font-family: 'DM Sans', system-ui, -apple-system, sans-serif;
}

/* ── LAYOUT WRAPPER ──────────────────────────────────── */
.container.ws-websites-dash {
    margin: 0 auto;
    padding: 0 20px;
}

/* ── NOTICE BANNER ───────────────────────────────────── */
.ws-saas-websites__notice {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    margin-bottom: 20px;
    border-radius: var(--r-sm);
    border: 1px solid transparent;
    font-size: 13px;
    line-height: 1.5;
    transition: opacity .2s, transform .2s;
}

.ws-saas-websites__notice.is-hidden {
    opacity: 0;
    transform: translateY(-4px);
}

.ws-saas-websites__notice--success {
    background: var(--green-bg);
    color: var(--green);
    border-color: #bbf7d0;
}

.ws-saas-websites__notice--error {
    background: var(--red-bg);
    color: var(--red);
    border-color: #fecaca;
}

.ws-saas-websites__notice-text {
    flex: 1;
}

.ws-saas-websites__notice-text a {
    color: inherit;
    font-weight: 700;
    text-decoration: underline;
}

.ws-saas-websites__notice-close {
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    opacity: .65;
    padding: 0;
}

/* ── TOAST ───────────────────────────────────────────── */
.ws-saas-websites__toast-container {
    position: fixed;
    right: 16px;
    top: 16px;
    z-index: 9999;
    display: grid;
    gap: 8px;
}

.ws-saas-websites__toast-container--dashboard {
    right: 16px;
    top: 16px;
    bottom: auto;
}

.ws-saas-websites__toast {
    min-width: 220px;
    max-width: 320px;
    padding: 11px 14px;
    border-radius: var(--r-sm);
    color: #fff;
    font-size: 13px;
    line-height: 1.5;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .14);
    transition: opacity .2s, transform .2s;
}

.ws-saas-websites__toast-container--dashboard .ws-saas-websites__toast {
    color: #fff;
}

.ws-saas-websites__toast-container--dashboard .ws-saas-websites__toast--success {
    background: var(--green);
}

.ws-saas-websites__toast-container--dashboard .ws-saas-websites__toast--error {
    background: var(--red);
}

.ws-saas-websites__toast-text {
    color: inherit;
}

.ws-saas-websites__toast.is-hidden {
    opacity: 0;
    transform: translateY(6px);
}

/* ── DASHBOARD HEADER ────────────────────────────────── */
.ws-websites-dash__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 22px;
}

.ws-websites-dash__title {
    margin: 0;
    font-size: clamp(18px, 2.5vw, 24px);
    font-weight: 700;
    color: var(--ink);
    line-height: 1.2;
}

.ws-websites-dash__copy {
    margin: 4px 0 0;
    font-size: 13px;
    color: var(--ink2);
    line-height: 1.5;
}

.ws-websites-dash__count {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    height: 26px;
    padding: 0 10px;
    border-radius: 8px;
    border: 1px solid var(--ink);
    color: var(--ink);
    font-size: 11px;
    letter-spacing: .03em;
}

/* ── ADMIN FILTERS ───────────────────────────────────── */
.ws-websites-dash__filters {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}

.ws-websites-dash__search-form {
	display: flex;
	flex-wrap: wrap;
	flex: 1 1 320px;
	gap: 8px;
	min-width: 0;
}

.ws-websites-dash__admin-bar-form {
	display: contents;
}

.ws-websites-dash__filters .ws-websites-dash__icon-action { position: relative; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 36px; width: 36px; padding: 0; }
.ws-websites-dash__icon-action svg { width: 18px; height: 18px; }
.ws-websites-dash__icon-action::after { content: attr(data-tooltip); position: absolute; z-index: 20; top: calc(100% + 7px); right: 0; width: max-content; max-width: 220px; padding: 6px 8px; border-radius: 6px; background: var(--ink); color: #fff; font-size: 11px; font-weight: 600; line-height: 1.3; pointer-events: none; opacity: 0; transform: translateY(-3px); transition: opacity .15s, transform .15s; }
.ws-websites-dash__icon-action:hover::after, .ws-websites-dash__icon-action:focus-visible::after { opacity: 1; transform: translateY(0); }

.ws-websites-dash__filters input,
.ws-websites-dash__filters select {
    flex: 1 1 260px;
    height: 36px;
    padding: 0 12px;
    border: 1px solid var(--border2);
    border-radius: var(--r-sm);
    font-size: 13px;
    color: var(--ink);
    background: var(--surface);
    outline: none;
}

.ws-websites-dash__payment-filter {
	display: flex;
	flex: 0 1 190px;
	min-width: 160px;
}

.ws-websites-dash__payment-filter select {
	width: 100%;
	cursor: pointer;
}

.ws-websites-dash__filters input:focus,
.ws-websites-dash__filters select:focus {
    border-color: var(--g);
    box-shadow: 0 0 0 3px rgba(201, 169, 110, .15);
}

.ws-websites-dash__filters button {
    height: 36px;
    padding: 0 16px;
    border: 0;
    border-radius: var(--r-sm);
    background: var(--ink);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.ws-websites-dash__filters .ws-websites-dash__owner-toggle,
.ws-websites-dash__filters .ws-websites-dash__mail-toggle,
.ws-websites-dash__filters .ws-websites-dash__admin-bar-toggle,
.ws-websites-dash__filters .ws-websites-meta-fields__toggle {
	border: 1px solid var(--border2);
	background: var(--surface);
	color: var(--ink);
}

.ws-websites-dash__filters .ws-websites-dash__owner-toggle.is-active,
.ws-websites-dash__filters .ws-websites-dash__mail-toggle.is-active,
.ws-websites-dash__filters .ws-websites-dash__admin-bar-toggle:hover,
.ws-websites-dash__filters .ws-websites-meta-fields__toggle:hover,
.ws-websites-dash__filters .ws-websites-meta-fields__toggle.is-active {
	border-color: var(--ink);
	background: var(--ink);
	color: #fff;
}

/* ── CARD GRID ───────────────────────────────────────── */
.ws-websites-dash__cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.ws-websites-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 20px;
}

.ws-websites-pagination__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 34px;
	height: 34px;
	padding: 0 10px;
	border: 1px solid var(--border2);
	border-radius: var(--r-sm);
	background: var(--surface);
	color: var(--ink);
	font-size: 12px;
	font-weight: 700;
	text-decoration: none;
}

.ws-websites-pagination__item:hover,
.ws-websites-pagination__item.is-active {
	border-color: var(--ink);
	background: var(--ink);
	color: #fff;
}

.ws-websites-meta-fields {
	position: relative;
	display: inline-flex;
}

.ws-websites-meta-fields__panel {
	position: absolute;
	z-index: 30;
	top: calc(100% + 8px);
	right: 0;
	width: 238px;
	padding: 12px;
	border: 1px solid var(--border2);
	border-radius: 10px;
	background: var(--surface);
	box-shadow: 0 12px 30px rgba(35, 31, 27, .14);
}

.ws-websites-meta-fields__panel[hidden] {
	display: none;
}

.ws-websites-meta-fields__panel strong {
	display: block;
	margin-bottom: 8px;
	color: var(--ink);
	font-size: 12px;
}

.ws-websites-meta-fields__panel label {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 30px;
	color: var(--ink2);
	font-size: 12px;
	cursor: pointer;
}

.ws-websites-dash__filters .ws-websites-meta-fields__panel input[type="checkbox"] {
	flex: 0 0 15px;
	width: 15px;
	height: 15px;
	margin: 0;
	padding: 0;
	accent-color: var(--ink);
	box-shadow: none;
}

.ws-websites-dash [data-websites-meta-field].is-hidden-by-meta-filter {
	display: none !important;
}

.ws-websites-pagination__item--direction {
	padding-inline: 14px;
}

.ws-websites-pagination__ellipsis {
	color: var(--ink3);
	font-size: 13px;
}

/* ══════════════════════════════════════════════════════
   WEBSITE CARD
   ══════════════════════════════════════════════════════ */
.ws-websites-card {
    display: flex;
    flex-direction: column;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--r);
    overflow: hidden;
    transition: border-color .18s, box-shadow .18s;
}

.ws-websites-card:hover {
    border-color: var(--border2);
    box-shadow: 0 2px 12px rgba(0, 0, 0, .06);
}

/* ── CARD TOP STRIP (title + edit link) ──────────────── */
.ws-websites-card__head {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 16px 0;
}

/* title-wrap: title on top, slug+edit-icon below */
.ws-websites-card__title-wrap {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ws-websites-card__title {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ws-websites-card__title a {
    color: inherit;
    text-decoration: none;
}

.ws-websites-card__title a:hover {
    text-decoration: underline;
}

/* slug + pencil on one tight row */
.ws-websites-card__sub-wrap {
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
}

/* Payment filter đặt thuộc tính hidden trên card; cần thắng display:flex của card. */
.ws-websites-card[hidden] {
	display: none;
}

.ws-websites-card__sub {
    margin: 0;
    font-size: 11px;
    color: var(--ink3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ws-websites-card__edit-slug-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--ink3);
    cursor: pointer;
    line-height: 0;
    border-radius: 4px;
    transition: color .15s, background .15s;
}

.ws-websites-card__edit-slug-btn:hover {
    color: var(--ink2);
    background: var(--bg);
}

.ws-websites-card__edit-slug-btn .ws-websites-card__action-icon {
    width: 11px;
    height: 11px;
}

/* "Chỉnh sửa thiệp ›" top-right link — smaller, quieter */
.ws-websites-card__head-edit-link {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 500;
    color: var(--ink3);
    text-decoration: none;
    white-space: nowrap;
    transition: color .15s;
}

.ws-websites-card__head-edit-link:hover {
    color: var(--ink2);
}

.ws-websites-card__head-edit-link::after {
    content: " ›";
}

/* ── BADGES ROW ──────────────────────────────────────── */
.ws-websites-card__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    padding: 10px 16px 6px;
}

.ws-websites-owner-form {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1fr) auto;
	align-items: flex-end;
	gap: 8px;
	min-width: 0;
}

.ws-websites-owner-form[hidden] {
	display: none;
}

.ws-websites-owner-form label {
	display: grid;
	gap: 5px;
	min-width: 0;
}

.ws-websites-owner-form span {
	font-size: 9px;
	font-weight: 650;
	color: var(--ink3);
	letter-spacing: .04em;
	text-transform: uppercase;
}

.ws-websites-owner-form input,
.ws-websites-owner-form select {
	width: 100%;
	min-width: 0;
	height: 32px;
	padding: 0 10px;
	border: 1px solid var(--border2);
	border-radius: 8px;
	background: var(--surface);
	color: var(--ink);
	font: inherit;
	font-size: 12px;
	outline: none;
	transition: border-color .15s, box-shadow .15s;
}

.ws-websites-owner-form input:focus,
.ws-websites-owner-form select:focus {
	border-color: #a1a1aa;
	box-shadow: 0 0 0 3px rgba(24, 24, 27, .06);
}

.ws-websites-owner-form input[aria-invalid="true"] {
	border-color: #ef4444;
}

.ws-websites-support-form,
.ws-websites-payment-form { display: flex; align-items: center; justify-content: flex-end; min-width: 0; }
.ws-websites-support-form[hidden] { display: none; }
.ws-websites-support-form__recipient { display: none; }
.ws-websites-support-form button:disabled { cursor: not-allowed; opacity: .45; }
.ws-websites-support-status { display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 7px; border: 1px solid rgba(36, 130, 78, .2); border-radius: 6px; background: rgba(36, 130, 78, .08); color: #247d4c; font-size: 10px; font-weight: 700; line-height: 1; white-space: nowrap; }
.ws-websites-support-status svg { width: 13px; height: 13px; }

.ws-websites-owner-order-badge {
	justify-content: center;
	min-width: 22px;
	padding-inline: 6px;
	background: #fef3c7;
	color: #92400e;
}

.ws-badge.ws-websites-owner-badge {
	max-width: min(100%, 180px);
	border-color: transparent;
	background: #f4f4f5;
	color: #52525b;
}

button.ws-websites-owner-badge {
	cursor: pointer;
	transition: border-color .15s, background .15s, color .15s;
}

button.ws-websites-owner-badge:hover,
button.ws-websites-owner-badge.is-active {
	border-color: #d4d4d8;
	background: #e4e4e7;
	color: #3f3f46;
}

.ws-websites-owner-badge > svg:first-child {
	flex: 0 0 auto;
	width: 11px;
	height: 11px;
}

.ws-websites-owner-badge > span {
	overflow: hidden;
	text-overflow: ellipsis;
}

.ws-websites-owner-badge__chevron {
	flex: 0 0 auto;
	width: 10px;
	height: 10px;
	transition: transform .15s;
}

.ws-websites-owner-badge.is-active .ws-websites-owner-badge__chevron {
	transform: rotate(180deg);
}

.ws-websites-admin-actions {
	display: grid;
	flex: 1 0 100%;
	gap: 0;
	margin: 4px 0 2px;
	padding: 3px 12px;
	border: 1px solid var(--border);
	border-radius: 10px;
	background: var(--surface);
	box-shadow: 0 7px 22px rgba(24, 24, 27, .06);
}

.ws-websites-admin-actions[hidden] {
	display: none;
}

.ws-websites-admin-actions__row {
	display: grid;
	grid-template-columns: minmax(130px, .55fr) minmax(0, 1.45fr);
	align-items: center;
	gap: 14px;
	min-width: 0;
	padding: 10px 0;
}

.ws-websites-admin-actions__row + .ws-websites-admin-actions__row {
	border-top: 1px solid var(--border);
}

.ws-websites-admin-actions__row--owner {
	grid-template-columns: 1fr;
	gap: 8px;
}

.ws-websites-admin-actions__row--payment {
	display: flex;
	justify-content: flex-end;
	padding-block: 9px;
}

.ws-websites-admin-actions__owner-head {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
}

.ws-websites-admin-actions__owner-head .ws-websites-admin-actions__summary {
	flex: 1 1 auto;
}

.ws-websites-admin-actions__owner-head .ws-websites-support-form {
	flex: 0 0 auto;
	width: auto;
}

.ws-websites-admin-actions__summary {
	display: grid;
	gap: 3px;
	min-width: 0;
}

.ws-websites-admin-actions__summary > span {
	color: var(--ink3);
	font-size: 9px;
	font-weight: 650;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.ws-websites-admin-actions__summary > strong {
	overflow: hidden;
	color: var(--ink);
	font-size: 11px;
	font-weight: 600;
	line-height: 1.35;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ws-websites-admin-actions__button {
	height: 32px;
	padding: 0 12px;
	border: 1px solid var(--border2);
	border-radius: 8px;
	background: var(--surface);
	color: var(--ink2);
	font: inherit;
	font-size: 11px;
	font-weight: 650;
	white-space: nowrap;
	cursor: pointer;
	transition: background .15s, border-color .15s, color .15s;
}

.ws-websites-admin-actions__button:hover:not(:disabled) {
	border-color: #a1a1aa;
	background: #fafafa;
	color: var(--ink);
}

.ws-websites-admin-actions__button.is-primary {
	border-color: #18181b;
	background: #18181b;
	color: #fff;
}

.ws-websites-admin-actions__button.is-primary:hover:not(:disabled) {
	background: #3f3f46;
}

.ws-websites-admin-actions__button--icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	padding: 0;
}

.ws-websites-admin-actions__button--icon svg {
	width: 15px;
	height: 15px;
}

.ws-inline-switch {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-left: auto;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--ink2);
	font: inherit;
	font-size: 11px;
	font-weight: 700;
	cursor: pointer;
}

.ws-inline-switch:disabled {
	cursor: wait;
	opacity: .55;
}

.ws-inline-switch__track {
	position: relative;
	width: 34px;
	height: 20px;
	border-radius: 999px;
	background: #d9d4cc;
	transition: background .2s ease;
}

.ws-inline-switch__track.is-active {
	background: #1f1c19;
}

.ws-inline-switch__thumb {
	position: absolute;
	top: 2px;
	left: 2px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 2px rgba(0, 0, 0, .18);
	transition: transform .2s ease;
}

.ws-inline-switch__track.is-active .ws-inline-switch__thumb {
	transform: translateX(14px);
}

.ws-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 22px;
    padding: 0 8px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    border: 0;
    font-family: inherit;
    cursor: default;
    white-space: nowrap;
}

/* coloured dot inside badge */
.ws-badge__dot {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}

.ws-badge--trial {
    background: #e0f2fe;
    color: #0369a1;
}

.ws-badge--trial .ws-badge__dot {
    background: #38bdf8;
}

.ws-badge--draft {
    background: #f4f4f5;
    color: #52525b;
}

.ws-badge--draft .ws-badge__dot {
    background: #a1a1aa;
}

.ws-badge--locked {
    background: var(--red-bg);
    color: var(--red);
}

.ws-badge--locked .ws-badge__dot {
    background: #f87171;
}

.ws-badge--expired-trial {
    background: #fff0f6;
    color: #be185d;
}

.ws-badge--expired-trial .ws-badge__dot {
    background: #f472b6;
}

.ws-badge--live {
    background: var(--green-bg);
    color: var(--green);
}

.ws-badge--live .ws-badge__dot {
    background: #4ade80;
}

/* date pill — no dot */
.ws-badge--date {
    background: var(--blue-bg);
    color: var(--blue);
}

.ws-badge--template {
	max-width: 220px;
	overflow: hidden;
	background: #f3e8ff;
	color: #7e22ce;
	text-overflow: ellipsis;
}

/* ── TOGGLE BADGE (clickable visibility) ─────────────── */
.ws-badge--toggle {
    cursor: pointer;
    padding-right: 5px;
    /* tighter right for chevron */
    border: 1px solid transparent;
    transition: filter .15s, opacity .15s, box-shadow .15s;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .06);
}

.ws-badge--toggle:hover {
    filter: brightness(.92);
    box-shadow: 0 2px 6px rgba(0, 0, 0, .10);
}

.ws-badge--toggle:active {
    opacity: .75;
}

.ws-badge__chevron {
    width: 10px;
    height: 10px;
    flex-shrink: 0;
    opacity: .6;
    margin-left: 2px;
}

/* ── INFO ROWS ───────────────────────────────────────── */
.ws-websites-card__info {
    padding: 4px 16px 10px;
    display: grid;
    gap: 4px;
}

.ws-websites-card__info-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 12px;
    color: var(--ink2);
    line-height: 1.4;
}

.ws-websites-card__info-row svg {
    width: 13px;
    height: 13px;
    flex-shrink: 0;
    opacity: .6;
}

.ws-websites-card__info-label {
    color: var(--ink3);
}

.ws-websites-card__info-template {
    font-weight: 600;
    color: var(--gd);
}

/* ── PUBLIC LIVE ROW — subtle inline, không tốn diện tích ── */
.ws-websites-card__public {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    padding: 0 16px 10px;
    margin-top: -2px;
}

.ws-websites-card__public-stat {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    /* color: var(--green); */
    font-weight: 600;
}

.ws-websites-card__public-stat svg {
    width: 13px;
    height: 13px;
    flex-shrink: 0;
    opacity: .75;
}

.ws-websites-card__public-stat-value {
    font-size: 12px;
    font-weight: 700;
    /* color: var(--green); */
}

.ws-websites-card__public-stat-label {
    font-size: 12px;
    font-weight: 400;
    /* color: #15803d; */
    opacity: .8;
}

.ws-websites-card__delete-controls {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ws-websites-card__delete-controls>[hidden] {
    display: none !important;
}

.ws-websites-card__delete-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--ink3);
    cursor: pointer;
    transition: background .14s, color .14s;
}

.ws-websites-card__delete-trigger:hover {
    background: var(--red-bg);
    color: var(--red);
}

.ws-websites-card__delete-trigger .ws-websites-card__action-icon {
    width: 13px;
    height: 13px;
}

.ws-websites-card__delete-trigger .ws-websites-card__action-icon--trash {
    color: inherit;
    opacity: .9;
}

.ws-websites-card__delete-form {
    margin: 0;
}

.ws-websites-card__delete-form[hidden] {
    display: none !important;
}

.ws-websites-card__delete-mini {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    padding: 0 8px;
    border-radius: 999px;
    border: 1px solid #d8d1c7;
    background: #fff;
    color: var(--ink2);
    font-size: 10px;
    font-weight: 700;
    font-family: inherit;
    line-height: 1;
    cursor: pointer;
}

.ws-websites-card__delete-mini--confirm {
    border-color: #fecaca;
    background: #fff1f2;
    color: #b42318;
}

.ws-websites-card__delete-controls--public {
    gap: 4px;
}

/* ── EXPIRED BANNER ──────────────────────────────────── */
.ws-websites-card__expired-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 12px 12px;
    padding: 12px 14px;
    background: #fde8e8;
    border: 1px solid #fca5a5;
    border-radius: var(--r-sm);
}

.ws-websites-card__expired-banner-body {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
}

.ws-websites-card__expired-banner-body svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    color: var(--red);
    margin-top: 1px;
}

.ws-websites-card__expired-banner-text strong {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: #991b1b;
    line-height: 1.3;
}

.ws-websites-card__expired-banner-text span {
    font-size: 11px;
    color: #b91c1c;
    line-height: 1.4;
}

.ws-websites-card__expired-banner-cta {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 14px;
    border-radius: 999px;
    border: 0;
    background: var(--surface);
    color: var(--pink);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .1);
    transition: box-shadow .15s, transform .15s;
}

.ws-websites-card__expired-banner-cta:hover {
    box-shadow: 0 3px 10px rgba(0, 0, 0, .14);
    transform: translateY(-1px);
}

.ws-websites-card__expired-banner-cta svg {
    width: 14px;
    height: 14px;
}

/* ── ACTION FOOTER ───────────────────────────────────── */
.ws-websites-card__foot {
    display: flex;
    align-items: stretch;
    border-top: 1px solid var(--border);
    margin-top: auto;
}

.ws-websites-card__foot-action {
    flex: 1 1 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 11px 6px;
    border: 0;
    border-right: 1px solid var(--border);
    background: transparent;
    color: var(--ink2);
    font-size: 12px;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
    transition: background .14s, color .14s;
    text-align: center;
}

.ws-websites-card__foot-action:last-child {
    border-right: 0;
}

.ws-websites-card__foot-action svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    opacity: .75;
}

.ws-websites-card__foot-action:hover {
    background: var(--bg);
    color: var(--ink);
}

.ws-websites-card__foot-action:hover svg {
    opacity: 1;
}

.ws-websites-card__foot-action.is-copied {
    background: var(--green-bg);
    color: var(--green);
}

.ws-websites-card__foot-action.is-copied svg {
    opacity: 1;
}

.ws-websites-card__foot-action.is-copied:hover {
    background: var(--green-bg);
    color: var(--green);
}

/* trash foot button */
.ws-websites-card__visibility-form {
    display: none;
}

/* ══════════════════════════════════════════════════════
   COMPOSER CARD (Create new)
   ══════════════════════════════════════════════════════ */
.ws-websites-card--composer {
    border-style: dashed;
    border-color: var(--border2);
    background: var(--surface);
    align-self: stretch;
}

.ws-websites-card--composer:not(.is-open):hover {
    border-color: var(--g);
    cursor: pointer;
}

.ws-websites-card--composer.is-open {
    border-style: solid;
    border-color: var(--g);
}

.ws-websites-card--composer.is-open .ws-websites-card__create-trigger {
    display: none !important;
}

.ws-websites-card__create-trigger {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    flex: 1;
    padding: 24px 20px;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
    color: var(--ink);
}

.ws-websites-card__create-icon-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--gl);
    color: #684f3a;
    flex-shrink: 0;
}

.ws-websites-card__create-icon {
    width: 18px;
    height: 18px;
}

.ws-websites-card__create-copy strong {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: var(--ink);
}

.ws-websites-card__create-copy small {
    display: block;
    font-size: 12px;
    color: var(--ink2);
    margin-top: 2px;
}

/* ── COMPOSER FORM ───────────────────────────────────── */
.ws-websites-card__composer[hidden] {
    display: none !important;
}

.ws-websites-form {
    display: grid;
    gap: 12px;
    padding: 16px;
    border-top: 1px solid var(--border);
}

.ws-websites-card--composer.is-open .ws-websites-form {
    border-top: 0;
    padding-top: 14px;
}

.ws-websites-form__template {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px dashed var(--border2);
    border-radius: var(--r-sm);
    background: var(--bg);
}

.ws-websites-form__template-copy span {
    display: block;
    font-size: 10px;
    font-weight: 700;
    color: var(--ink3);
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 2px;
}

.ws-websites-form__template-copy strong {
    font-size: 12px;
    font-weight: 600;
    color: var(--ink);
}

.ws-websites-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.ws-websites-form__actions {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
    flex-wrap: wrap;
}

/* ── FIELDS ──────────────────────────────────────────── */
.ws-websites-field {
    display: grid;
    gap: 4px;
}

.ws-websites-field--full {
    grid-column: 1 / -1;
}

.ws-websites-field span {
    font-size: 11px;
    font-weight: 700;
    color: var(--ink2);
    letter-spacing: .02em;
}

.ws-websites-field input,
.ws-websites-field select {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    height: 34px;
    padding: 0 10px;
    border: 1px solid var(--border2);
    border-radius: var(--r-sm);
    background: var(--surface);
    color: var(--ink);
    font-size: 13px;
    outline: none;
    font-family: inherit;
    transition: border-color .15s, box-shadow .15s;
}

.ws-websites-field input:focus,
.ws-websites-field select:focus {
    border-color: var(--g);
    box-shadow: 0 0 0 3px rgba(201, 169, 110, .15);
}

.ws-websites-field small {
    font-size: 10px;
    color: var(--ink3);
    line-height: 1.4;
}

/* slug wrap */
.ws-websites-slug-wrap {
    display: flex;
    align-items: center;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--border2);
    border-radius: var(--r-sm);
    background: var(--surface);
    transition: border-color .15s, box-shadow .15s;
}

.ws-websites-slug-wrap:focus-within {
    border-color: var(--g);
    box-shadow: 0 0 0 3px rgba(201, 169, 110, .15);
}

.ws-websites-slug-wrap__prefix {
    flex-shrink: 0;
    padding: 0 8px;
    border-right: 1px solid var(--border);
    background: var(--bg);
    color: var(--ink3);
    font-size: 10px;
    white-space: nowrap;
    line-height: 34px;
}

.ws-websites-slug-wrap input {
    flex: 1;
    min-width: 0;
    height: 34px;
    border: 0;
    border-radius: 0;
    box-shadow: none !important;
}

/* ── INLINE BUTTONS ──────────────────────────────────── */
.ws-websites-inline-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0 14px;
    border: 1px solid var(--border2);
    border-radius: var(--r-sm);
    background: var(--surface);
    color: var(--ink);
    font-size: 12px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: background .14s, border-color .14s;
}

.ws-websites-inline-btn:hover {
    background: var(--bg);
}

.ws-websites-inline-btn--primary {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

.ws-websites-inline-btn--primary:hover {
    background: #2c2925;
}

.ws-websites-inline-btn:disabled {
    opacity: .5;
    cursor: not-allowed;
}

/* ── EDIT-SLUG INLINE FORM ───────────────────────────── */
.ws-websites-card.is-open-edit {
    border-color: var(--g);
}

.ws-websites-card__composer[data-websites-edit-form] {
    background: var(--bg);
}

/* ── TEMPLATE MODAL ──────────────────────────────────── */
.ws-websites-template-modal[hidden] {
    display: none !important;
}

.ws-websites-template-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
}

.ws-websites-template-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10, 10, 10, .45);
    backdrop-filter: blur(2px);
}

.ws-websites-template-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(1160px, calc(100vw - 24px));
    max-height: calc(100vh - 24px);
    margin: 12px auto;
    padding: 20px;
    border-radius: var(--r);
    background: var(--surface);
    overflow: auto;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .18);
}

.ws-websites-template-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
}

.ws-websites-template-modal__head h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: var(--ink);
}

.ws-websites-template-modal__head button {
    width: 32px;
    height: 32px;
    border: 1px solid var(--border);
    border-radius: 999px;
    color: var(--ink2);
    font-size: 16px;
    cursor: pointer;
    line-height: 1;
    background: none;
    border: none;
}

.ws-websites-duplicate-modal .ws-websites-template-modal__dialog {
    width: min(560px, calc(100vw - 24px));
}

.ws-websites-duplicate-modal__form {
    display: grid;
    gap: 18px;
}

.ws-websites-duplicate-modal__copy {
    margin: 0;
    color: var(--ink2);
    font-size: 13px;
    line-height: 1.55;
}

body.ws-websites-modal-open {
    overflow: hidden;
}

/* ── WS-MODAL (generic) ──────────────────────────────── */
.ws-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s;
}

.ws-modal.is-open {
    opacity: 1;
    pointer-events: auto;
}

.ws-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(10, 10, 10, .45);
}

.ws-modal__content {
    position: relative;
    z-index: 1;
    width: min(540px, 92vw);
    max-height: calc(100vh - 48px);
    overflow: auto;
    background: var(--surface);
    border-radius: var(--r);
    box-shadow: 0 16px 48px rgba(0, 0, 0, .18);
    padding: 22px;
}

/* ══════════════════════════════════════════════════════
   MANAGE / TABS / GUEST TABLE (preserved)
   ══════════════════════════════════════════════════════ */
.ws-saas-websites--dashboard .container.ws-websites-dash {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.ws-saas-websites__manage-block {
    margin-top: 18px;
    padding: 20px;
    border: 1px solid var(--border);
    border-radius: var(--r);
    background: var(--surface);
}

.ws-saas-websites__tab-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 22px;
}

.ws-saas-websites__tab-btn {
    min-height: 32px;
    padding: 0 14px;
    border: 1px solid var(--border2);
    border-radius: 999px;
    background: var(--surface);
    color: var(--ink2);
    font-size: 12px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
}

.ws-saas-websites__tab-btn:hover {
    background: var(--bg);
}

.ws-saas-websites__tab-btn.is-active {
    background: var(--gl);
    border-color: var(--g);
    color: var(--gd);
}

.ws-saas-websites__tab-panel {
    display: none;
}

.ws-saas-websites__tab-panel.is-active {
    display: block;
}

.ws-saas-websites__guest-list-head,
.ws-saas-websites__group-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
}

.ws-saas-websites__group-header h2 {
    margin: 0;
    color: var(--ink);
    font-size: 17px;
    font-weight: 700;
}

.ws-saas-websites__group-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.ws-saas-websites__hint {
    margin: 8px 0 0;
    color: var(--ink2);
    font-size: 13px;
    line-height: 1.6;
}

.ws-saas-websites__hint--error {
    color: var(--red);
}

.ws-saas-websites__guest-filters__wrapper {
    margin-top: 14px;
}

.ws-saas-websites__guest-filters {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: var(--r);
    background: var(--bg);
}

.ws-saas-websites__guest-filter-field {
    display: grid;
    gap: 5px;
}

.ws-saas-websites__guest-filter-field span {
    font-size: 11px;
    font-weight: 700;
    color: var(--ink2);
}

.ws-saas-websites__guest-filter-field input,
.ws-saas-websites__guest-filter-field select,
.ws-saas-websites__guest-grid input,
.ws-saas-websites__guest-grid select,
.ws-saas-websites__group-row input {
    width: 100%;
    min-height: 36px;
    padding: 0 10px;
    border: 1px solid var(--border2);
    border-radius: var(--r-sm);
    background: var(--surface);
    color: var(--ink);
    font-size: 13px;
    box-sizing: border-box;
    outline: none;
    font-family: inherit;
    transition: border-color .15s, box-shadow .15s;
}

.ws-saas-websites__guest-filter-field input:focus,
.ws-saas-websites__guest-filter-field select:focus,
.ws-saas-websites__guest-grid input:focus,
.ws-saas-websites__guest-grid select:focus,
.ws-saas-websites__group-row input:focus {
    border-color: var(--g);
    box-shadow: 0 0 0 3px rgba(201, 169, 110, .15);
}

.ws-saas-websites__table-wrap {
    margin-top: 14px;
    overflow-x: auto;
}

.ws-saas-websites__guest-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 720px;
}

.ws-saas-websites__guest-table th,
.ws-saas-websites__guest-table td {
    padding: 10px;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: top;
    font-size: 13px;
}

.ws-saas-websites__guest-table th {
    color: var(--ink);
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
    letter-spacing: .04em;
    background: var(--bg);
}

.ws-saas-websites__guest-table td {
    color: var(--ink2);
}

.ws-saas-websites__table-empty td {
    color: var(--ink3);
    text-align: center;
    padding: 28px;
}

.ws-saas-websites__table-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.ws-saas-websites__group-form {
    margin-top: 14px;
}

.ws-saas-websites__group-list {
    display: grid;
    gap: 8px;
}

.ws-saas-websites__group-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
}

.ws-saas-websites__group-row input[readonly] {
    background: var(--bg);
}

.ws-saas-websites__group-row-actions {
    display: flex;
    align-items: center;
    gap: 6px;
}

.ws-saas-websites__guest-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.ws-saas-websites__guest-grid label {
    display: grid;
    gap: 5px;
    color: var(--ink);
    font-size: 11px;
    font-weight: 700;
}

.ws-saas-websites__guest-actions {
    margin-top: 16px;
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.ws-saas-websites__guest-columns details {
    position: relative;
}

.ws-saas-websites__guest-columns summary {
    list-style: none;
    cursor: pointer;
}

.ws-saas-websites__guest-columns summary::-webkit-details-marker {
    display: none;
}

.ws-saas-websites__guest-columns-menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 10;
    min-width: 190px;
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: var(--r);
    background: var(--surface);
    box-shadow: 0 8px 20px rgba(0, 0, 0, .1);
    display: grid;
    gap: 6px;
}

.ws-saas-websites__guest-columns-menu label {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--ink);
    font-size: 12px;
}

.ws-saas-websites__guest-columns-menu input[type="checkbox"] {
    width: 14px;
    height: 14px;
    min-height: 14px;
    padding: 0;
}

.ws-manage__empty {
    padding: 20px;
    border: 1px dashed var(--border2);
    border-radius: var(--r);
    background: var(--bg);
}

.ws-manage__empty p {
    margin: 0 0 10px;
    color: var(--ink);
}

.ws-manage__site-list {
    margin: 0;
    padding-left: 16px;
}

.ws-manage__site-list li+li {
    margin-top: 6px;
}

.ws-manage__site-list small {
    display: block;
    color: var(--ink2);
}

.ws-manage__setting--full {
    grid-column: 1 / -1;
}

/* ── RESPONSIVE ──────────────────────────────────────── */
@media (max-width: 820px) {

    .ws-websites-dash__cards,
    .ws-websites-form__grid {
        grid-template-columns: 1fr;
    }

	.ws-websites-owner-form {
		grid-template-columns: minmax(0, .8fr) minmax(0, 1fr) auto;
		align-items: stretch;
		width: 100%;
	}

	.ws-websites-admin-actions__row {
		grid-template-columns: 1fr;
		gap: 8px;
	}

	.ws-websites-admin-actions__summary {
		grid-template-columns: auto minmax(0, 1fr);
		align-items: center;
		gap: 8px;
	}

	.ws-websites-payment-form {
		justify-content: flex-start;
		width: 100%;
	}

    .ws-websites-form__template {
        flex-direction: column;
        align-items: stretch;
    }
}

@media (max-width: 560px) {
	.ws-websites-admin-actions {
		padding-inline: 10px;
	}

	.ws-websites-owner-form {
		grid-template-columns: 1fr;
	}

	.ws-websites-admin-actions__button {
		width: 100%;
	}

	.ws-websites-admin-actions__button--icon {
		width: 32px;
	}
}

@media (max-width: 991px) {
    .ws-saas-websites__guest-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .ws-saas-websites {
        padding-inline: 0;
    }

    .ws-websites-dash__head {
        flex-wrap: wrap;
    }

	.ws-websites-dash__filters {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 36px;
		gap: 8px;
	}

	.ws-websites-dash__search-form {
		display: contents;
	}

	.ws-websites-dash__search-form > input[type=search] {
		grid-column: 1;
		grid-row: 1;
		width: 100%;
		min-width: 0;
	}

	.ws-websites-dash__admin-bar-form .ws-websites-dash__admin-bar-toggle {
		grid-column: 2;
		grid-row: 1;
	}

	.ws-websites-dash__payment-filter {
		grid-column: 1;
		grid-row: 2;
		min-width: 0;
	}

	.ws-websites-meta-fields {
		grid-column: 2;
		grid-row: 2;
	}

    .ws-websites-card__foot-action {
        gap: 5px;
        padding: 11px 8px;
        font-size: 11px;
    }

    .ws-saas-websites__toast-container {
        left: 10px;
        right: 10px;
        top: 10px;
        bottom: auto;
    }

    .ws-saas-websites__toast {
        min-width: 0;
        max-width: none;
    }

    .ws-saas-websites__guest-list-head,
    .ws-saas-websites__group-header,
    .ws-saas-websites__group-row,
    .ws-saas-websites__guest-grid,
    .ws-saas-websites__guest-filters {
        grid-template-columns: 1fr;
        display: grid;
    }

    .ws-saas-websites__tab-btn,
    .ws-saas-websites__group-actions .ws-button,
    .ws-saas-websites__group-row-actions .ws-button,
    .ws-saas-websites__guest-actions .ws-button {
        width: 100%;
    }

    .ws-saas-websites__guest-table {
        min-width: 600px;
    }

    .ws-modal__content {
        width: min(100% - 20px, 540px);
        padding: 16px;
    }

    .ws-websites-form__actions .ws-websites-inline-btn {
        flex: 1;
    }

    .ws-websites-slug-wrap {
        flex-wrap: wrap;
    }

    .ws-websites-slug-wrap__prefix {
        width: 100%;
        border-right: 0;
        border-bottom: 1px solid var(--border);
        line-height: 28px;
    }

    .ws-websites-card__expired-banner {
        flex-direction: column;
        align-items: stretch;
    }

    .ws-websites-card__expired-banner-cta {
        justify-content: center;
    }
}
