/* Pulse Moments — vendor registration / dashboard (dark luxury) */
.pm-vn{ max-width:1000px; margin:0 auto; padding:8px 0 60px; font-family:'Inter',sans-serif; color:#f5efe0; }
.pm-vn *{ box-sizing:border-box; }

.pm-vn-hero{ text-align:center; padding:10px 16px 30px; }
.pm-vn-eyebrow{ display:inline-block; font:700 12px 'Inter',sans-serif; letter-spacing:2px; text-transform:uppercase; color:#c9a24b; margin-bottom:10px; }
.pm-vn-hero h1{ font:700 40px/1.15 'Fraunces',serif; color:#f5efe0; margin:0 0 12px; }
.pm-vn-hero h1 em{ color:#e2c074; font-style:italic; }
.pm-vn-hero p{ color:#9aa3b2; font-size:16px; max-width:560px; margin:0 auto 18px; }
.pm-vn-perks{ list-style:none; display:flex; gap:18px; justify-content:center; flex-wrap:wrap; padding:0; margin:0; }
.pm-vn-perks li{ color:#c8cdd8; font-size:14px; }

.pm-vn-card{ background:linear-gradient(165deg,#1c2333,#141a27); border:1px solid rgba(201,162,75,.22); border-radius:20px; padding:30px 30px 28px; box-shadow:0 40px 90px -50px rgba(0,0,0,.9); }
.pm-vn-form h2{ font:700 24px 'Fraunces',serif; color:#f5efe0; margin:0 0 22px; display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.pm-vn-fee, .pm-vn-verified{ font:700 12px 'Inter',sans-serif; color:#11161f; background:linear-gradient(135deg,#c9a24b,#e2c074); padding:5px 12px; border-radius:999px; letter-spacing:.5px; }
.pm-vn-verified{ font-size:11px; vertical-align:middle; }

.pm-vn-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px 18px; }
.pm-vn-full{ grid-column:1 / -1; }
.pm-vn-form label{ display:flex; flex-direction:column; gap:7px; font:600 13px 'Inter',sans-serif; color:#aeb6c4; }
.pm-vn-form label small{ color:#6b7280; font-weight:400; }
.pm-vn-form input, .pm-vn-form select, .pm-vn-form textarea{
	background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.12); border-radius:11px;
	padding:12px 14px; color:#f5efe0; font-size:15px; outline:none; transition:.15s; font-family:inherit;
}
.pm-vn-form input::placeholder, .pm-vn-form textarea::placeholder{ color:#5d6577; }
.pm-vn-form input:focus, .pm-vn-form select:focus, .pm-vn-form textarea:focus{ border-color:#c9a24b; background:rgba(201,162,75,.06); }
.pm-vn-form select option{ background:#11161f; }

.pm-vn-check{ display:flex; flex-direction:row !important; align-items:flex-start; gap:10px; margin:20px 0 6px; font-size:13px; color:#9aa3b2; }
.pm-vn-check input{ width:18px; height:18px; margin-top:1px; accent-color:#c9a24b; }
.pm-vn-check a{ color:#e2c074; }

.pm-vn-msg{ min-height:18px; font-size:13.5px; margin:14px 0 0; text-align:center; }
.pm-vn-msg.err{ color:#ef6e6e; } .pm-vn-msg.ok{ color:#5fcf8e; }

.pm-vn-btn{ display:inline-block; cursor:pointer; border:none; text-decoration:none; text-align:center;
	font:800 15px 'Inter',sans-serif; padding:13px 24px; border-radius:12px;
	background:linear-gradient(135deg,#c9a24b,#e2c074); color:#11161f !important;
	box-shadow:0 14px 30px -14px rgba(201,162,75,.7); transition:transform .15s,filter .15s,opacity .15s; }
.pm-vn-btn:hover{ transform:translateY(-2px); filter:brightness(1.04); }
.pm-vn-btn--lg{ width:100%; margin-top:18px; padding:16px; font-size:16px; }
.pm-vn-btn:disabled{ opacity:.6; cursor:default; transform:none; }
.pm-vn-link{ color:#9aa3b2 !important; text-decoration:none; font-size:14px; align-self:center; }
.pm-vn-link:hover{ color:#e2c074 !important; }
.pm-vn-secure{ text-align:center; color:#6b7280; font-size:12px; margin:14px 0 0; }
.pm-vn-secure a{ color:#e2c074; }

.pm-vn-login{ max-width:420px; margin:20px auto; }

.pm-vn-note{ max-width:560px; margin:30px auto; text-align:center; background:linear-gradient(165deg,#1c2333,#141a27); border:1px solid rgba(201,162,75,.22); border-radius:20px; padding:40px 30px; }
.pm-vn-note h3{ font:700 24px 'Fraunces',serif; color:#f5efe0; margin:0 0 10px; }
.pm-vn-note p{ color:#9aa3b2; margin:0 0 18px; }
.pm-vn-note a{ color:#e2c074; }

/* ---------- Dashboard ---------- */
.pm-vn-dash{ max-width:1040px; }
.pm-vn-dashhead{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; margin:0 0 26px; }
.pm-vn-dashhead h1{ font:700 30px 'Fraunces',serif; color:#f5efe0; margin:6px 0 6px; }
.pm-vn-dashhead p{ color:#8a93a6; font-size:14px; margin:0; }
.pm-vn-dashhead__act{ display:flex; gap:14px; align-items:center; }
.pm-vn-success{ background:rgba(95,207,142,.12); border:1px solid rgba(95,207,142,.4); color:#7fe0a4; border-radius:12px; padding:14px 18px; margin:0 0 22px; font-weight:600; }

.pm-vn-myh{ font:700 22px 'Fraunces',serif; color:#f5efe0; margin:40px 0 18px; }
.pm-vn-events{ display:flex; flex-direction:column; gap:12px; }
.pm-vn-ev{ display:flex; align-items:center; gap:16px; background:linear-gradient(165deg,#1c2333,#141a27); border:1px solid rgba(255,255,255,.07); border-radius:14px; padding:12px 16px; }
.pm-vn-ev__img{ width:72px; height:54px; border-radius:9px; background:#0d1117 center/cover; flex:none; }
.pm-vn-ev__body{ flex:1; min-width:0; }
.pm-vn-ev__body h4{ margin:0 0 4px; font:600 16px 'Fraunces',serif; color:#f5efe0; }
.pm-vn-ev__meta{ color:#8a93a6; font-size:13px; }
.pm-vn-ev__status{ display:inline-block; margin-top:5px; font-size:12px; font-weight:700; }
.pm-vn-ev__status--publish{ color:#5fcf8e; }
.pm-vn-ev__status--pending, .pm-vn-ev__status--draft{ color:#e2c074; }
.pm-vn-ev__view{ color:#e2c074 !important; text-decoration:none; font-weight:700; font-size:14px; white-space:nowrap; }
.pm-vn-empty{ color:#8a93a6; text-align:center; padding:30px; }

/* ---------- Dashboard analytics ---------- */
.pm-vn-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:0 0 22px; }
.pm-vn-stat{ display:flex; align-items:center; gap:14px; background:linear-gradient(165deg,#1c2333,#141a27); border:1px solid rgba(255,255,255,.07); border-radius:14px; padding:16px 18px; }
.pm-vn-stat__ico{ font-size:26px; line-height:1; }
.pm-vn-stat b{ display:block; font:700 24px 'Fraunces',serif; color:#f5efe0; line-height:1.1; }
.pm-vn-stat small{ color:#8a93a6; font-size:12.5px; }
.pm-vn-stat--gold{ border-color:rgba(201,162,75,.45); background:linear-gradient(165deg,#2a2415,#1a1710); }
.pm-vn-stat--gold b{ color:#e2c074; }

.pm-vn-charts{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:16px; margin:0 0 14px; align-items:start; }
.pm-vn-chart{ background:linear-gradient(165deg,#1c2333,#141a27); border:1px solid rgba(255,255,255,.07); border-radius:16px; padding:18px 18px 16px; min-width:0; }
.pm-vn-chart h3{ font:700 15px 'Inter',sans-serif; color:#c8cdd8; margin:0 0 14px; }
.pm-vn-canvas{ position:relative; height:240px; }
.pm-vn-canvas canvas{ width:100% !important; height:100% !important; }
@media (max-width:1024px){
	.pm-vn-charts{ grid-template-columns:1fr 1fr; }
	.pm-vn-chart--wide{ grid-column:1 / -1; }
}
@media (max-width:880px){ .pm-vn-canvas{ height:230px; } }
@media (max-width:640px){ .pm-vn-charts{ grid-template-columns:1fr; } .pm-vn-chart--wide{ grid-column:auto; } }

/* Sales table */
.pm-vn-table-wrap{ overflow-x:auto; background:linear-gradient(165deg,#1c2333,#141a27); border:1px solid rgba(255,255,255,.07); border-radius:16px; }
.pm-vn-table{ width:100%; border-collapse:collapse; min-width:560px; }
.pm-vn-table th{ text-align:left; color:#8a93a6; font:700 12px 'Inter',sans-serif; letter-spacing:.5px; text-transform:uppercase; padding:14px 16px; border-bottom:1px solid rgba(255,255,255,.08); }
.pm-vn-table td{ padding:14px 16px; border-bottom:1px solid rgba(255,255,255,.05); color:#e8ecf3; font-size:14px; vertical-align:middle; }
.pm-vn-table tr:last-child td{ border-bottom:0; }
.pm-vn-table .r{ text-align:right; }
.pm-vn-table td b{ color:#f5efe0; font-weight:600; }
.pm-vn-td-sub{ display:block; color:#8a93a6; font-size:12px; margin-top:2px; }
.pm-vn-pill{ display:inline-block; font-size:11.5px; font-weight:700; padding:3px 10px; border-radius:999px; }
.pm-vn-pill--publish{ background:rgba(95,207,142,.14); color:#7fe0a4; }
.pm-vn-pill--pending,.pm-vn-pill--draft{ background:rgba(226,192,116,.14); color:#e2c074; }
.pm-vn-ev__sold{ display:block; margin-top:6px; color:#c8cdd8; font-size:12.5px; font-weight:600; }

@media (max-width:880px){
	.pm-vn-stats{ grid-template-columns:repeat(2,1fr); }
	.pm-vn-charts{ grid-template-columns:1fr; }
}
@media (max-width:680px){
	.pm-vn-grid{ grid-template-columns:1fr; }
	.pm-vn-hero h1{ font-size:30px; }
	.pm-vn-dashhead{ align-items:flex-start; }
	/* Stacked table → cards on mobile */
	.pm-vn-table thead{ display:none; }
	.pm-vn-table, .pm-vn-table tbody, .pm-vn-table tr, .pm-vn-table td{ display:block; width:100%; }
	.pm-vn-table{ min-width:0; }
	.pm-vn-table tr{ border-bottom:1px solid rgba(255,255,255,.08); padding:6px 0; }
	.pm-vn-table td{ display:flex; justify-content:space-between; align-items:center; border:0; padding:7px 16px; }
	.pm-vn-table td.r{ text-align:right; }
	.pm-vn-table td::before{ content:attr(data-l); color:#8a93a6; font-size:12px; font-weight:700; text-transform:uppercase; }
	.pm-vn-table td:first-child::before{ display:none; }
}

/* ---------- Dashboard: stat-card grid (auto-fit for 5 cards) ---------- */
.pm-vn-stats{ grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); }

/* ---------- Chart head + date range ---------- */
.pm-vn-chart__head{ display:flex; justify-content:space-between; align-items:center; margin:0 0 14px; }
.pm-vn-chart__head h3{ margin:0; }
.pm-vn-range{ display:flex; gap:4px; }
.pm-vn-range button{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); color:#8a93a6; font:700 11px 'Inter',sans-serif; padding:5px 9px; border-radius:8px; cursor:pointer; }
.pm-vn-range button.on{ background:linear-gradient(135deg,#c9a24b,#e2c074); color:#11161f; border-color:transparent; }

/* ---------- Sales table: filter row, capacity bar, actions ---------- */
.pm-vn-myh-row{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin:40px 0 18px; }
.pm-vn-myh-row .pm-vn-myh{ margin:0; }
.pm-vn-tablefilter{ display:flex; gap:8px; }
.pm-vn-tablefilter input, .pm-vn-tablefilter select{ background:#141a27; border:1px solid rgba(255,255,255,.1); color:#f5efe0; border-radius:9px; padding:8px 12px; font-size:13px; }
.pm-vn-bar{ display:block; height:5px; background:rgba(255,255,255,.08); border-radius:99px; margin-top:6px; overflow:hidden; }
.pm-vn-bar i{ display:block; height:100%; background:linear-gradient(90deg,#c9a24b,#e2c074); border-radius:99px; }
.pm-vn-soldout{ display:inline-block; margin-top:5px; font-size:10px; font-weight:800; letter-spacing:.5px; color:#ef6e6e; }
.pm-vn-actions{ white-space:nowrap; }
.pm-vn-act{ display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:8px; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.04); color:#f5efe0 !important; font-size:14px; cursor:pointer; text-decoration:none; margin:1px; transition:.15s; }
.pm-vn-act:hover{ border-color:#e2c074; background:rgba(226,192,116,.12); }
.pm-vn-act--del:hover{ border-color:#ef6e6e; background:rgba(239,110,110,.12); }

/* ---------- Modal ---------- */
.pm-vn-modal{ position:fixed; inset:0; z-index:99999; background:rgba(5,8,13,.78); backdrop-filter:blur(4px); display:flex; align-items:flex-start; justify-content:center; padding:40px 16px; overflow:auto; }
.pm-vn-modal[hidden]{ display:none; }
.pm-vn-modal__box{ position:relative; width:100%; max-width:760px; background:linear-gradient(165deg,#1c2333,#11161f); border:1px solid rgba(201,162,75,.3); border-radius:18px; padding:26px 26px 30px; box-shadow:0 50px 100px -40px #000; }
.pm-vn-modal__x{ position:absolute; top:14px; right:16px; background:none; border:none; color:#8a93a6; font-size:26px; line-height:1; cursor:pointer; }
.pm-vn-modal__x:hover{ color:#f5efe0; }
.pm-vn-modal__h{ font:700 21px 'Fraunces',serif; color:#f5efe0; margin:0 0 18px; }
.pm-vn-modal__h small{ display:block; font:600 13px 'Inter',sans-serif; color:#8a93a6; margin-top:4px; }
.pm-vn-modal__err{ color:#ef6e6e; padding:16px 0; }
.pm-vn-in{ color:#5fcf8e; font-weight:600; font-size:12px; }
.pm-vn-out{ color:#8a93a6; }

/* Promo manager */
.pm-vn-promo-row{ display:flex; align-items:center; gap:12px; padding:10px 14px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.07); border-radius:10px; margin-bottom:8px; }
.pm-vn-promo-row b{ color:#e2c074; font-size:15px; letter-spacing:1px; }
.pm-vn-promo-row span{ font-size:13px; color:#c8cdd8; }
.pm-vn-promo-row .pm-vn-td-sub{ margin-left:auto; }
.pm-vn-promo-add{ display:flex; gap:8px; margin:14px 0 6px; }
.pm-vn-promo-add input{ background:#141a27; border:1px solid rgba(255,255,255,.1); color:#f5efe0; border-radius:9px; padding:10px 12px; font-size:14px; }
.pm-vn-promo-add input:first-child{ flex:1; text-transform:uppercase; letter-spacing:1px; }
.pm-vn-promo-add input[type=number]{ width:90px; }

/* Check-in */
.pm-vn-checkin__hint{ color:#9aa3b2; font-size:14px; margin:0 0 18px; }
.pm-vn-checkin__grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.pm-vn-reader{ width:100%; max-width:320px; border-radius:14px; overflow:hidden; margin-bottom:12px; background:#0d1117; min-height:0; }
.pm-vn-reader:empty{ display:none; }
.pm-vn-checkin__manual{ display:flex; gap:8px; }
.pm-vn-checkin__manual input{ flex:1; background:#141a27; border:1px solid rgba(255,255,255,.12); color:#f5efe0; border-radius:10px; padding:12px 14px; font-size:16px; letter-spacing:2px; text-transform:uppercase; }
.pm-vn-checkin__result{ margin-top:16px; padding:0; font-size:14px; color:#c8cdd8; line-height:1.5; }
.pm-vn-checkin__result.ok{ color:#7fe0a4; } .pm-vn-checkin__result.err{ color:#ef6e6e; } .pm-vn-checkin__result.warn{ color:#e2c074; }
.pm-vn-checkin__result b{ font-size:16px; }
.pm-vn-btn--ghost{ background:rgba(255,255,255,.05); color:#f5efe0; border:1px solid rgba(201,162,75,.4); }
.pm-vn-lbl{ display:block; color:#8a93a6; font-size:13px; font-weight:600; margin:0 0 8px; }

@media (max-width:680px){
	.pm-vn-checkin__grid{ grid-template-columns:1fr; }
	.pm-vn-actions{ display:flex; flex-wrap:wrap; justify-content:flex-end; }
}
