:root{
  color-scheme:dark;
  --bg:#0b1220;
  --panel:#121d30;
  --panel2:#18263d;
  --text:#eef4ff;
  --muted:#9db0cc;
  --line:#2b3d5b;
  --accent:#6d5dfc;
  --danger:#ffb4b4;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:linear-gradient(180deg,#0b1220 0%,#0f1728 100%);
  color:var(--text);
}
a{color:inherit;text-decoration:none}
.topbar{
  min-height:68px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:0 5vw;
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  background:rgba(11,18,32,.92);
  backdrop-filter:blur(10px);
  z-index:10;
}
.brand{font-size:1.35rem;font-weight:800}
nav,.header-user{display:flex;align-items:center;gap:18px}
main{width:min(1120px,90vw);margin:0 auto}
.hero{padding:96px 0 70px;max-width:820px}
.eyebrow{color:#a9a0ff;font-weight:700;margin:0 0 12px}
h1{font-size:clamp(2.2rem,6vw,4.8rem);line-height:1.05;margin:.2em 0}
.lead{font-size:1.15rem;color:var(--muted);line-height:1.8}
.actions{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.button{
  border:1px solid var(--line);
  border-radius:10px;
  padding:12px 18px;
  font-weight:700;
  color:var(--text);
  background:transparent;
  display:inline-block;
  cursor:pointer;
}
.button.primary{background:var(--accent);border-color:var(--accent)}
.button.compact{padding:8px 12px}
.button:disabled{opacity:.55;cursor:not-allowed}
.grid,.pricing{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin:30px 0 80px;
}
.pricing{grid-template-columns:repeat(2,1fr)}
.card{
  background:linear-gradient(180deg,var(--panel),var(--panel2));
  border:1px solid var(--line);
  border-radius:16px;
  padding:24px;
}
.card h2{margin-top:0}
.card p,.card li{color:var(--muted);line-height:1.7}
.featured{outline:2px solid var(--accent)}
footer{
  width:min(1120px,90vw);
  margin:0 auto;
  padding:30px 0 50px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:var(--muted);
  border-top:1px solid var(--line);
}
.badge{
  padding:6px 10px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--muted);
}
.status-line{margin-top:18px;color:var(--danger)}
.app-shell{
  width:min(1380px,96vw);
  display:grid;
  grid-template-columns:220px 1fr;
  gap:24px;
  padding:32px 0;
}
.sidebar{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:18px;
  border:1px solid var(--line);
  background:var(--panel);
  border-radius:14px;
  height:max-content;
}
.sidebar a{color:var(--muted);padding:8px 0}
.sidebar a.disabled-link{opacity:.45;cursor:not-allowed;text-decoration:none}
.sidebar a:not(.disabled-link):hover{color:var(--text)}

.workspace{min-width:0}
.section-head{display:flex;justify-content:space-between;align-items:center;gap:18px}
.section-head h1,.auth-panel h1{font-size:2rem}
.workspace-grid{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(320px,.8fr);
  gap:18px;
}
.player-placeholder{
  min-height:520px;
  display:grid;
  place-items:center;
  text-align:center;
  color:var(--muted);
}
.player-placeholder span{font-size:1.3rem;font-weight:700;color:var(--text);display:block}
.player-placeholder small{display:block;margin-top:8px}
.form-card{display:flex;flex-direction:column;gap:14px}
label{display:grid;gap:7px;font-weight:700}
input,textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:9px;
  padding:11px 12px;
  background:#0c1628;
  color:var(--text);
}
.muted{color:var(--muted)!important;font-size:.92rem}
.auth-panel{max-width:680px;margin-top:40px}
[hidden]{display:none!important}
@media(max-width:800px){
  nav>a:not(.button){display:none}
  .grid,.pricing,.workspace-grid{grid-template-columns:1fr}
  .app-shell{grid-template-columns:1fr}
  .sidebar{display:none}
  footer{flex-direction:column}
  .header-user{gap:8px}
}
.section-block{margin-bottom:24px}
.section-head.small h2{margin:.15em 0}
.compact-actions{margin-top:0}
.button.danger{border-color:#6b3440;background:#3a1b25;color:#ffd9df}
.project-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px}
.project-tab{border:1px solid var(--line);background:#0c1628;color:var(--muted);border-radius:999px;padding:8px 13px;cursor:pointer}
.project-tab.active{background:var(--accent);border-color:var(--accent);color:white}
.empty-state{text-align:center;padding:34px}
.vod-bar{margin-bottom:18px}
.vod-input-row{display:grid;grid-template-columns:1fr auto;gap:10px}
.video-frame{width:100%;aspect-ratio:16/9;border:0;border-radius:10px;background:#000}
#external-vod{display:grid;gap:14px;place-items:center}
.candidate-list{display:grid;gap:12px}
.candidate-item{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.candidate-item h3{margin:6px 0 4px}.candidate-item p{margin:.5em 0 0}
.candidate-time{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#bcb5ff;font-weight:700}
.candidate-meta{color:var(--muted);font-size:.92rem}
.dialog-card{border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--text);padding:0;min-width:min(460px,90vw)}
.dialog-card::backdrop{background:rgba(0,0,0,.65)}
.dialog-card form{padding:24px;display:grid;gap:18px}
.dialog-card h2{margin:0}
@media(max-width:800px){.vod-input-row{grid-template-columns:1fr}.candidate-item{flex-direction:column}.candidate-delete{align-self:flex-end}}

/* MVP v5: Pro multi-VOD + manual sync */
select{
  width:100%;
  border:1px solid var(--line);
  border-radius:9px;
  padding:11px 12px;
  background:#0c1628;
  color:var(--text);
}
.pro-badge{border-color:#786cff;color:#d7d3ff;background:rgba(109,93,252,.14)}
.vod-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 10px}
.vod-tab-wrap{display:flex;align-items:stretch}
.vod-tab{border:1px solid var(--line);background:#0c1628;color:var(--muted);padding:9px 12px;border-radius:9px 0 0 9px;cursor:pointer}
.vod-tab.active{background:var(--accent);border-color:var(--accent);color:white}
.vod-delete{border:1px solid var(--line);border-left:0;background:#261622;color:#ffbdc8;border-radius:0 9px 9px 0;padding:0 10px;cursor:pointer;font-weight:800}
.pro-lock{border-style:dashed}
.sync-panel{display:grid;gap:16px}
.sync-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sync-anchor-list{display:grid;gap:10px}
.sync-anchor{display:flex;justify-content:space-between;align-items:center;gap:14px;border:1px solid var(--line);border-radius:10px;padding:14px;background:#0c1628}
.sync-anchor-actions,.candidate-actions{display:flex;gap:8px;flex-wrap:wrap}
.status-line:empty{display:none}
@media(max-width:800px){.sync-grid{grid-template-columns:1fr}.sync-anchor{align-items:flex-start;flex-direction:column}}


/* MVP v6: Stripe test billing */
.billing-card{display:flex;justify-content:space-between;gap:24px;align-items:center;flex-wrap:wrap}
.billing-card p{margin:.45em 0}
.billing-actions{display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:800px){.billing-card{align-items:flex-start;flex-direction:column}}


/* MVP v8: account / data management */
.settings-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
.settings-card{display:grid;gap:10px;align-content:start}
.settings-card h3{margin:0}
.settings-card p{margin:.15em 0}
.settings-card.danger-zone{grid-column:1/-1;border-color:#6b3440}
.settings-card a{color:#bcb5ff}
@media(max-width:800px){.settings-grid{grid-template-columns:1fr}.settings-card.danger-zone{grid-column:auto}}


/* MVP v14: legal / privacy / commerce / contact */
.legal-links{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.legal-links a{color:var(--muted);font-size:.9rem}
.legal-links a:hover{color:var(--text)}
.legal-shell{width:min(940px,calc(100% - 40px));margin:0 auto;padding:48px 0 72px}
.legal-card{border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:clamp(24px,5vw,52px)}
.legal-card h1{font-size:clamp(2rem,5vw,3.2rem);margin:.2em 0}
.legal-card h2{font-size:1.25rem;margin:2em 0 .65em}
.legal-card p,.legal-card li{line-height:1.85;color:#c9d7ea}
.legal-card ul{padding-left:1.4em}
.legal-updated{color:var(--muted)!important;margin-bottom:2.2rem}
.notice-box{border:1px solid #806b2f;background:#2b2412;border-radius:12px;padding:16px 18px;margin:24px 0}
.notice-box p{margin:.45em 0 0}
.contact-box{padding:14px 0 4px}
.app-footer{width:100%;max-width:1200px;margin:24px auto 0;padding:20px 0 36px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;color:var(--muted)}
@media(max-width:800px){.legal-shell{width:min(100% - 24px,940px);padding-top:24px}.legal-card{padding:22px}.legal-links{gap:9px}.app-footer{padding-left:16px;padding-right:16px}}

.billing-consent{grid-column:1/-1;padding-top:4px}.consent-check{display:flex;gap:10px;align-items:flex-start;line-height:1.55}.consent-check input{margin-top:4px;flex:0 0 auto}.consent-check a{text-decoration:underline}.billing-card .billing-consent .muted{margin-top:8px}

/* MVP v17: billing legal-consent layout fix */
.billing-card .billing-consent{
  flex:1 1 100%;
  width:100%;
  min-width:0;
  padding-top:4px;
}
.billing-card .consent-check{
  display:flex;
  flex-direction:row;
  gap:10px;
  align-items:flex-start;
  width:100%;
  min-width:0;
  line-height:1.55;
}
.billing-card .consent-check input[type="checkbox"]{
  width:auto;
  min-width:16px;
  height:16px;
  margin:4px 0 0;
  padding:0;
  flex:0 0 auto;
}
.billing-card .consent-check span{
  display:block;
  min-width:0;
  white-space:normal;
  overflow-wrap:anywhere;
}
.billing-card .billing-actions{
  flex:0 0 auto;
}
.billing-card #billing-status{
  flex:1 1 100%;
  width:100%;
}
