/* ─── RESET ─── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;overflow:hidden;font-family:'Inter',sans-serif;background:#1a1a1a;}
button{cursor:pointer;font-family:inherit;border:none;background:none;color:inherit;}
button:focus-visible,input:focus-visible,textarea:focus-visible,[contenteditable]:focus-visible{outline:2px solid rgba(255,248,229,0.55);outline-offset:2px;}

/* ─── TOKENS ─── */
:root{
--d-blue:#4B6093; --d-blue-dk:#374970; --d-blue-lt:#6478aa;
--p-terra:#934B4B; --p-terra-dk:#6d3535; --p-terra-lt:#b06565;
--p-green:#567B58; --p-green-dk:#3f5c41; --p-green-lt:#6e9970;
--hub-yellow:#E6CD6B;
--cream:#FFF8E5; --d-cream:#FFF8E5; --p-cream:#FFF8E5;
--sidebar-w:228px; --sidebar-sm:68px; --radius:10px;
--p-green:#567B58; --p-green-dk:#3f5c41; --p-green-lt:#6e9970;
--ease:cubic-bezier(.4,0,.2,1);
}

.shell{ display:flex; height:100vh; width:100vw; }

/* ══════════════════════════════════════════════════════
  HUB STATE — top-bar layout, no sidebar
══════════════════════════════════════════════════════ */
.hub-state .sidebar{ display:none; }
.hub-state .content{ background-color:var(--hub-yellow); background-image:url('../assets/ify-suite-texture.jpg'); color:rgba(30,28,20,0.9); }
.hub-state .page-title{ color:rgba(30,28,20,0.9); }
.hub-state .page-sub{ color:rgba(30,28,20,0.6); }
.hub-state .glass{ background:rgba(30,28,20,0.06); border:1px solid rgba(30,28,20,0.12); }
.hub-state .glass:hover{ background:rgba(30,28,20,0.1); }

.hub-topbar{
display:none; align-items:center; height:60px; padding:0 32px; flex-shrink:0;
background-color:#c8b450; background-image:url('../assets/ify-suite-texture.jpg');
background-size:cover; background-position:center; background-blend-mode:multiply;
border-bottom:1px solid rgba(0,0,0,0.1);
}
.hub-state .hub-topbar{ display:flex; }
.hub-logo{ width:38px; height:38px; object-fit:cover; display:block; border-radius:6px; }
.hub-suite-name{ font-family:'League Spartan',sans-serif; font-size:16px; font-weight:800; letter-spacing:0.2px; color:rgba(30,28,20,0.85); margin-left:12px; }
.hub-topbar-right{ margin-left:auto; display:flex; align-items:center; gap:10px; }
.hub-topbar-btn{ padding:8px 16px; border-radius:8px; background:rgba(30,28,20,0.1); border:1.5px solid rgba(30,28,20,0.18); color:rgba(30,28,20,0.75); font-family:'League Spartan',sans-serif; font-size:10px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; transition:background 0.15s; }
.hub-topbar-btn:hover{ background:rgba(30,28,20,0.18); }

/* Hub tool cards */
.hub-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.hub-card{
display:flex; flex-direction:column; align-items:flex-start; gap:14px; padding:28px 24px 24px;
border-radius:var(--radius); cursor:pointer; text-align:left;
background:rgba(30,28,20,0.06); border:1px solid rgba(30,28,20,0.12);
backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
transition:transform 0.12s, background 0.18s, border-color 0.18s;
}
.hub-card:hover{ transform:translateY(-2px); background:rgba(30,28,20,0.12); border-color:rgba(30,28,20,0.22); }
.hub-card-badge{ width:52px; height:52px; border-radius:10px; object-fit:cover; display:block; }
.hub-card-name{ font-family:'League Spartan',sans-serif; font-size:21px; font-weight:800; letter-spacing:-0.2px; color:rgba(30,28,20,0.88); }
.hub-card-desc{ font-size:12.5px; line-height:1.6; color:rgba(30,28,20,0.52); font-weight:300; flex:1; }
.hub-card-tag{ font-size:9px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:rgba(30,28,20,0.35); margin-top:auto; }
.hub-card-arrow{ color:rgba(30,28,20,0.3); transition:transform 0.2s, color 0.2s; align-self:flex-end; }
.hub-card:hover .hub-card-arrow{ transform:translateX(4px); color:rgba(30,28,20,0.6); }
.hub-card.coming-soon{ opacity:0.55; pointer-events:none; }

/* ══════════════════════════════════════════════════════
  SIDEBAR
══════════════════════════════════════════════════════ */
.sidebar{
width:var(--sidebar-w); min-width:var(--sidebar-w); height:100%;
display:flex; flex-direction:column; position:relative; z-index:20; overflow:visible;
background-color:#f5f0e8; background-image:url('../assets/crumpled-paper-card.jpg');
background-size:cover; background-position:center; background-blend-mode:multiply;
border-right:1px solid rgba(0,0,0,0.09);
transition:width 0.28s var(--ease), min-width 0.28s var(--ease);
}
.sidebar.sm{ width:var(--sidebar-sm); min-width:var(--sidebar-sm); }

.collapse-btn{
position:absolute; top:50%; right:-14px; transform:translateY(-50%);
width:28px; height:28px; border-radius:50%;
background:#fff; border:1.5px solid rgba(0,0,0,0.10);
box-shadow:0 2px 8px rgba(0,0,0,0.13),0 0 0 0.5px rgba(0,0,0,0.05);
display:flex; align-items:center; justify-content:center; z-index:600;
transition:box-shadow 0.18s,background 0.18s; flex-shrink:0;
}
.collapse-btn:hover{ box-shadow:0 3px 12px rgba(0,0,0,0.18); background:#f8f8f8; }
.collapse-btn svg{ width:12px; height:12px; transition:transform 0.28s var(--ease); }
.sidebar.sm .collapse-btn svg{ transform:rotate(180deg); }

.sidebar-top{ padding:24px 0 0; display:flex; align-items:center; justify-content:center; flex-shrink:0; width:100%; }
.logo-badge{ width:58px; height:58px; flex-shrink:0; display:flex; align-items:center; justify-content:center; position:relative; transition:width 0.28s var(--ease), height 0.28s var(--ease); }
.logo-badge img{ transition:opacity 0.25s; }
.logo-cog{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; opacity:0; border-radius:8px; background:rgba(0,0,0,0.05); transition:opacity 0.25s; }
.logo-cog svg{ width:55%; height:55%; }
.draftify-state .logo-cog{ color:var(--d-blue); }
.postify-state  .logo-cog{ color:var(--p-terra); }
.pitchify-state .logo-cog{ color:var(--p-green); }
.logo-badge:hover img{ opacity:0; }
.logo-badge:hover .logo-cog{ opacity:1; }
.logo-badge:hover .logo-cog svg{ animation:spin 3s linear infinite; }
.sidebar.sm .logo-badge img{ opacity:0; }
.sidebar.sm .logo-cog{ opacity:1; }
.logo-badge::after{ content:attr(data-tip); position:absolute; left:calc(100% + 12px); top:50%; transform:translateY(-50%) translateX(-4px); padding:5px 10px; border-radius:6px; background:rgba(30,30,30,0.92); color:#fff8e5; font-family:'League Spartan',sans-serif; font-size:10.5px; font-weight:700; letter-spacing:0.8px; text-transform:uppercase; white-space:nowrap; opacity:0; pointer-events:none; transition:opacity 0.18s, transform 0.18s; z-index:30; }
.logo-badge:hover::after{ opacity:1; transform:translateY(-50%) translateX(0); }
.sidebar.sm .logo-badge{ width:44px; height:44px; }
.logo-badge img{ width:100%; height:100%; object-fit:cover; display:block; }

.sidebar-divider{ height:2px; border-radius:1px; margin:14px 18px 16px; flex-shrink:0; transition:margin 0.28s var(--ease); }
.sidebar-divider.inner{ margin:6px 8px; }
.sidebar.sm .sidebar-divider{ margin:10px 12px; }
.sidebar.sm .sidebar-divider.inner{ margin:6px 12px; }
.draftify-state .sidebar-divider{ background:var(--d-blue); }
.postify-state  .sidebar-divider{ background:var(--p-terra); }
.pitchify-state .sidebar-divider{ background:var(--p-green); }

.sidebar-nav{ flex:1; padding:0 10px; display:flex; flex-direction:column; gap:2px; overflow-y:auto; overflow-x:hidden; scrollbar-width:none; transition:opacity 0.2s; }
.sidebar-nav::-webkit-scrollbar{ display:none; }
.sidebar-nav.switching{ opacity:0; }

.nav-item{
display:flex; align-items:center; gap:13px; padding:9px 11px; border-radius:8px; cursor:pointer;
transition:background 0.15s; white-space:nowrap; position:relative; user-select:none;
}
.nav-item:hover{ background:rgba(0,0,0,0.05); }
.nav-item.active{ background:rgba(0,0,0,0.07); }
.nav-item.active::before{ content:''; position:absolute; left:0; top:20%; width:3px; height:60%; border-radius:2px; }
.draftify-state .nav-item.active::before{ background:var(--d-blue); }
.postify-state  .nav-item.active::before{ background:var(--p-terra); }
.pitchify-state .nav-item.active::before{ background:var(--p-green); }
.nav-icon{ width:20px; height:20px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.sidebar.sm .nav-icon{ margin:0 auto; }
.nav-icon svg{ width:17px; height:17px; }
.draftify-state .nav-icon svg{ stroke:var(--d-blue-dk); }
.draftify-state .nav-item.active .nav-icon svg{ stroke:var(--d-blue); }
.postify-state  .nav-icon svg{ stroke:var(--p-terra-dk); }
.postify-state  .nav-item.active .nav-icon svg{ stroke:var(--p-terra); }
.pitchify-state .nav-icon svg{ stroke:var(--p-green-dk); }
.pitchify-state .nav-item.active .nav-icon svg{ stroke:var(--p-green); }
.nav-label{
font-family:'League Spartan',sans-serif; font-size:14px; font-weight:500; letter-spacing:0.1px;
flex-shrink:0; overflow:hidden; transition:opacity 0.16s, transform 0.28s var(--ease);
}
.sidebar.sm .nav-label{ opacity:0; width:0; transform:translateX(-6px); pointer-events:none; }
.draftify-state .nav-label{ color:#3a4a6e; }
.draftify-state .nav-item.active .nav-label{ color:var(--d-blue); font-weight:600; }
.postify-state  .nav-label{ color:#6d3535; }
.postify-state  .nav-item.active .nav-label{ color:var(--p-terra); font-weight:600; }
.pitchify-state .nav-label{ color:#3f5c41; }
.pitchify-state .nav-item.active .nav-label{ color:var(--p-green); font-weight:600; }

/* ── Sidebar bottom ── */
.sidebar-bottom{ padding:0 10px 18px; flex-shrink:0; display:flex; flex-direction:column; gap:4px; margin-top:auto; }
.sidebar-bottom::before{ content:''; display:block; height:2px; border-radius:1px; margin:0 8px 10px; align-self:stretch; }
.draftify-state .sidebar-bottom::before{ background:var(--p-terra); }
.postify-state  .sidebar-bottom::before{ background:var(--p-green); }
.pitchify-state .sidebar-bottom::before{ background:var(--d-blue); }
.sidebar-thin-divider{ height:1px; margin:4px 10px; flex-shrink:0; }
.draftify-state .sidebar-thin-divider{ background:rgba(147,75,75,0.3); }
.postify-state  .sidebar-thin-divider{ background:rgba(86,123,88,0.3); }
.pitchify-state .sidebar-thin-divider{ background:rgba(75,96,147,0.3); }
.sidebar.sm .sidebar-bottom{ padding:0 0 18px; align-items:center; }
.sidebar.sm .sidebar-bottom::before{ margin:0 12px 10px; }
.sidebar.sm .sidebar-thin-divider{ margin:4px 8px; width:calc(100% - 16px); }

.plan-anchor{
width:100%; display:flex; align-items:center; gap:10px; padding:9px 11px; border-radius:9px;
border:1.5px solid transparent; transition:background 0.15s, border-color 0.15s; text-align:left;
}
.plan-anchor:hover{ background:rgba(0,0,0,0.04); }
.draftify-state .plan-anchor:hover{ border-color:rgba(147,75,75,0.18); }
.postify-state  .plan-anchor:hover{ border-color:rgba(75,96,147,0.18); }
.pitchify-state .plan-anchor:hover{ border-color:rgba(86,123,88,0.18); }
.plan-anchor-icon{ width:40px; height:40px; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.plan-anchor-icon svg{ width:24px; height:24px; }
.draftify-state .plan-anchor-icon{ color:var(--p-terra); }
.postify-state  .plan-anchor-icon{ color:var(--p-green); }
.pitchify-state .plan-anchor-icon{ color:var(--d-blue); }
.plan-anchor-info{ display:flex; flex-direction:column; gap:3px; overflow:hidden; transition:opacity 0.16s; }
.sidebar.sm .plan-anchor{ padding:6px; width:auto; gap:0; }
.sidebar.sm .plan-anchor-icon{ width:36px; height:36px; }
.sidebar.sm .plan-anchor-info{ opacity:0; width:0; pointer-events:none; }
.plan-anchor-label{ font-family:'Inter',sans-serif; font-size:9.5px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; opacity:0.4; }
.plan-anchor-name{ font-family:'League Spartan',sans-serif; font-size:15px; font-weight:800; letter-spacing:0.1px; white-space:nowrap; }
.draftify-state .plan-anchor-label, .draftify-state .plan-anchor-name{ color:var(--p-terra); }
.postify-state  .plan-anchor-label, .postify-state  .plan-anchor-name{ color:var(--p-green); }
.pitchify-state .plan-anchor-label, .pitchify-state .plan-anchor-name{ color:var(--d-blue); }

/* ── Suite switcher (replaces old two-app switcher) ── */
.suite-switcher{
display:flex; align-items:center; gap:10px; padding:9px 11px; border-radius:9px; cursor:pointer;
border:1.5px solid transparent; transition:background 0.15s, border-color 0.15s;
}
.suite-switcher:hover{ background:rgba(0,0,0,0.04); }
.draftify-state .suite-switcher:hover{ border-color:rgba(147,75,75,0.18); }
.postify-state  .suite-switcher:hover{ border-color:rgba(75,96,147,0.18); }
.pitchify-state .suite-switcher:hover{ border-color:rgba(86,123,88,0.18); }
.suite-switcher-icon{
width:40px; height:40px; flex-shrink:0; display:flex; align-items:center; justify-content:center;
border-radius:8px; background:rgba(0,0,0,0.06);
}
.suite-switcher-icon svg{ width:18px; height:18px; }
.draftify-state .suite-switcher-icon svg{ stroke:var(--p-terra); }
.postify-state  .suite-switcher-icon svg{ stroke:var(--p-green); }
.pitchify-state .suite-switcher-icon svg{ stroke:var(--d-blue); }
.sidebar.sm .suite-switcher{ padding:6px; gap:0; width:auto; justify-content:center; }
.sidebar.sm .suite-switcher-icon{ width:36px; height:36px; margin:0 auto; }
.suite-switcher-info{ display:flex; flex-direction:column; gap:3px; overflow:hidden; transition:opacity 0.16s; }
.sidebar.sm .suite-switcher-info{ opacity:0; width:0; pointer-events:none; }
.suite-switcher-label{ font-family:'Inter',sans-serif; font-size:9.5px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; opacity:0.4; }
.draftify-state .suite-switcher-label{ color:var(--p-terra); }
.postify-state  .suite-switcher-label{ color:var(--p-green); }
.pitchify-state .suite-switcher-label{ color:var(--d-blue); }
.suite-switcher-name{ font-family:'League Spartan',sans-serif; font-size:15px; font-weight:800; letter-spacing:0.1px; white-space:nowrap; }
.draftify-state .suite-switcher-name{ color:var(--p-terra); }
.postify-state  .suite-switcher-name{ color:var(--p-green); }
.pitchify-state .suite-switcher-name{ color:var(--d-blue); }

/* ── Suite switcher overlay ── */
.suite-overlay{ position:fixed; inset:0; z-index:700; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,0.35); backdrop-filter:blur(4px); }
.suite-overlay.hidden{ display:none!important; }
.suite-overlay-box{
width:min(420px,92vw); padding:20px 22px; border-radius:var(--radius);
border:1px solid rgba(255,248,229,0.16); box-shadow:0 20px 60px rgba(0,0,0,0.4);
animation:fadeSlideIn 0.2s cubic-bezier(0,0,.3,1);
}
.draftify-state .suite-overlay-box{ background:rgba(55,73,112,0.97); }
.postify-state  .suite-overlay-box{ background:rgba(109,53,53,0.97); }
.pitchify-state .suite-overlay-box{ background:rgba(63,92,65,0.97); }
.suite-overlay-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.suite-overlay-label{ font-size:9px; font-weight:700; letter-spacing:1.8px; text-transform:uppercase; color:rgba(255,248,229,0.38); }
.suite-overlay-close{ color:rgba(255,248,229,0.5); font-size:14px; padding:4px 8px; border-radius:6px; }
.suite-overlay-close:hover{ background:rgba(255,248,229,0.1); color:var(--cream); }
.suite-tools{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.suite-tool-btn{
display:flex; flex-direction:column; align-items:center; gap:9px; padding:16px 12px;
border-radius:10px; background:rgba(255,248,229,0.06); border:1px solid rgba(255,248,229,0.12);
transition:background 0.15s, border-color 0.15s; cursor:pointer;
}
.suite-tool-btn:hover{ background:rgba(255,248,229,0.14); border-color:rgba(255,248,229,0.26); }
.suite-tool-btn.current{ background:rgba(255,248,229,0.16); border-color:rgba(255,248,229,0.32); }
.suite-tool-btn.soon{ opacity:0.45; pointer-events:none; }
.suite-tool-badge{ width:44px; height:44px; border-radius:8px; object-fit:cover; display:block; }
.suite-tool-name{ font-family:'League Spartan',sans-serif; font-size:13px; font-weight:700; color:var(--cream); letter-spacing:0.1px; }
.suite-tool-tag{ font-size:9px; color:rgba(255,248,229,0.4); font-weight:300; }
.suite-hub-link{
display:flex; align-items:center; justify-content:center; gap:8px; margin-top:12px;
padding:10px; border-radius:8px; background:rgba(255,248,229,0.06);
border:1px solid rgba(255,248,229,0.1); font-family:'League Spartan',sans-serif;
font-size:10px; font-weight:700; letter-spacing:1px; text-transform:uppercase;
color:rgba(255,248,229,0.5); transition:background 0.15s, color 0.15s; cursor:pointer;
}
.suite-hub-link:hover{ background:rgba(255,248,229,0.12); color:var(--cream); }

/* ══════════════════════════════════════════════════════
  CONTENT AREA
══════════════════════════════════════════════════════ */
.content{ flex:1; min-width:0; height:100%; overflow-y:auto; overflow-x:hidden; display:flex; flex-direction:column; position:relative; background-size:cover; background-position:center; color:var(--cream); }
.draftify-state .content{ background-color:var(--d-blue); background-image:url('../assets/slate-blue-texture.jpg'); }
.postify-state  .content{ background-color:var(--p-terra); background-image:url('../assets/terracotta-texture.jpg'); }
.pitchify-state .content{ background-color:var(--p-green); background-image:url('../assets/pitchify-texture.jpg'); }

.topbar{ padding:30px 40px 0; flex-shrink:0; }
.subbar{ display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:12px 40px 0; flex-shrink:0; }
.page-title{ font-family:'League Spartan',sans-serif; font-size:44px; font-weight:800; line-height:1.04; letter-spacing:-0.5px; max-width:560px; color:var(--cream); }
.action-btn-back{
display:inline-flex; align-items:center; gap:7px; padding:7px 16px 7px 12px; border-radius:50px; margin-top:2px; flex-shrink:0;
font-family:'League Spartan',sans-serif; font-size:11px; font-weight:700; letter-spacing:0.5px; text-transform:uppercase;
background:rgba(255,248,229,0.10); border:1.5px solid rgba(255,248,229,0.18); color:var(--cream); transition:background 0.15s;
}
.action-btn-back:hover{ background:rgba(255,248,229,0.18); }
.page-sub{ font-size:14px; line-height:1.65; opacity:0.55; font-weight:300; max-width:560px; }
.content-inner{ flex:1; padding:22px 40px 36px; display:flex; flex-direction:column; gap:20px; }

/* ── Glass surface ── */
.glass{ border-radius:var(--radius); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); transition:background 0.2s, border-color 0.2s; }
.draftify-state .glass{ background:rgba(255,248,229,0.04); border:1px solid rgba(255,248,229,0.09); }
.draftify-state .glass:hover{ background:rgba(255,248,229,0.07); }
.postify-state  .glass{ background:rgba(255,248,229,0.06); border:1px solid rgba(255,248,229,0.11); }
.postify-state  .glass:hover{ background:rgba(255,248,229,0.09); }
.pitchify-state .glass{ background:rgba(255,248,229,0.05); border:1px solid rgba(255,248,229,0.10); }
.pitchify-state .glass:hover{ background:rgba(255,248,229,0.08); }

.d-panel{ display:flex; flex-direction:column; gap:18px; animation:fadeSlideIn 0.25s cubic-bezier(0,0,.3,1); }
.d-panel.hidden{ display:none!important; }

/* ══════════════════════════════════════════════════════
  DASHBOARD CARDS (shared by all apps)
══════════════════════════════════════════════════════ */
.dash-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.dash-nav-card{ display:flex; flex-direction:column; gap:14px; padding:24px 22px 20px; text-align:left; transition:background 0.18s, border-color 0.18s, transform 0.12s; }
.dash-nav-card:hover{ transform:translateY(-1px); }
.draftify-state .dash-nav-card:hover{ background:rgba(255,248,229,0.09); }
.postify-state  .dash-nav-card:hover{ background:rgba(255,248,229,0.11); }
.pitchify-state .dash-nav-card:hover{ background:rgba(255,248,229,0.09); }
.dash-nav-card-icon{ width:44px; height:44px; border-radius:10px; flex-shrink:0; background:rgba(255,248,229,0.08); border:1px solid rgba(255,248,229,0.16); display:flex; align-items:center; justify-content:center; color:var(--cream); }
.dash-nav-card-body{ flex:1; }
.dash-nav-card-title{ font-family:'League Spartan',sans-serif; font-size:16px; font-weight:800; letter-spacing:-0.1px; margin-bottom:6px; color:var(--cream); }
.dash-nav-card-desc{ font-size:12px; opacity:0.48; line-height:1.58; font-weight:300; }
.dash-nav-card-arrow{ opacity:0.35; color:var(--cream); transition:transform 0.2s, opacity 0.2s; display:flex; align-items:center; align-self:flex-end; }
.dash-nav-card:hover .dash-nav-card-arrow{ transform:translateX(3px); opacity:0.65; }

/* ── Dashboard tips carousel ── */
.dash-tips{ padding:30px 40px 24px; text-align:center; border-style:dashed!important; border-width:1.5px!important; display:flex; flex-direction:column; align-items:center; gap:14px; min-height:150px; justify-content:center; }
.dash-tips-label{ font-size:9.5px; font-weight:700; letter-spacing:1.8px; text-transform:uppercase; opacity:0.38; }
.dash-tips-text{ font-family:'League Spartan',sans-serif; font-size:19px; font-weight:700; line-height:1.3; color:var(--cream); max-width:620px; opacity:0; transform:translateY(4px); transition:opacity 0.35s ease, transform 0.35s ease; }
.dash-tips-text.show{ opacity:0.9; transform:translateY(0); }
.dash-tips-dots{ display:flex; gap:7px; margin-top:4px; }
.dash-tips-dot{ width:7px; height:7px; border-radius:50%; background:rgba(255,248,229,0.18); border:none; padding:0; transition:background 0.25s, transform 0.25s; }
.dash-tips-dot:hover{ background:rgba(255,248,229,0.4); }
.dash-tips-dot.on{ background:rgba(255,248,229,0.85); transform:scale(1.15); }

/* ══════════════════════════════════════════════════════
  PLANS PAGE
══════════════════════════════════════════════════════ */
.plans-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:stretch; }
.plan-col{ padding:24px 26px 28px; display:flex; flex-direction:column; position:relative; height:100%; }
.plan-col-badge.ghost{ visibility:hidden; }
.plan-col-featured{ border:1.5px solid rgba(255,248,229,0.32)!important; background:rgba(255,248,229,0.08)!important; }
.plan-col-badge{ display:inline-flex; align-items:center; background:rgba(255,248,229,0.14); border:1px solid rgba(255,248,229,0.25); border-radius:20px; padding:4px 12px; font-size:9px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:rgba(255,248,229,0.85); margin-bottom:14px; align-self:flex-start; }
.plan-col-tier{ font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; opacity:0.45; margin-bottom:8px; }
.plan-col-price{ font-family:'League Spartan',sans-serif; font-size:36px; font-weight:800; letter-spacing:-0.5px; color:var(--cream); line-height:1; margin-bottom:4px; }
.plan-col-per{ font-size:14px; font-weight:400; opacity:0.5; letter-spacing:0; }
.plan-col-note{ font-size:11px; opacity:0.35; font-weight:300; margin-bottom:22px; }
.plan-features{ list-style:none; display:flex; flex-direction:column; gap:9px; margin-bottom:22px; }
.plan-features li{ font-size:12.5px; font-weight:300; display:flex; align-items:center; gap:10px; line-height:1.3; }
.feat-yes{ color:rgba(255,248,229,0.82); }
.feat-no { color:rgba(255,248,229,0.3); }
.feat-yes::before{ content:''; width:14px; height:14px; flex-shrink:0; border-radius:50%; background:rgba(110,200,140,0.2); border:1px solid rgba(110,200,140,0.45); background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 12 12' fill='none' stroke='%2378c490' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolyline points='2,6 5,9 10,3'/%3E%3C/svg%3E"); background-size:10px; background-repeat:no-repeat; background-position:center; }
.feat-no::before{ content:''; width:14px; height:14px; flex-shrink:0; border-radius:50%; background:rgba(255,248,229,0.04); border:1px solid rgba(255,248,229,0.12); background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 12 12' fill='none' stroke='rgba(255,248,229,0.25)' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cline x1='3' y1='3' x2='9' y2='9'/%3E%3Cline x1='9' y1='3' x2='3' y2='9'/%3E%3C/svg%3E"); background-size:9px; background-repeat:no-repeat; background-position:center; }
.plan-col-current{ padding:10px 0; text-align:center; font-size:11px; opacity:0.28; border-top:1px solid rgba(255,248,229,0.08); margin-top:auto; }
.plan-col-upgrade{ width:100%; padding:13px 20px; margin-top:auto; border-radius:8px; background:rgba(255,248,229,0.18); border:1.5px solid rgba(255,248,229,0.35); color:var(--cream); font-family:'League Spartan',sans-serif; font-weight:800; font-size:11.5px; letter-spacing:1.2px; text-transform:uppercase; transition:background 0.15s, transform 0.1s; }
.plan-col-upgrade:hover{ background:rgba(255,248,229,0.26); }
.plan-col-upgrade:active{ transform:scale(0.985); }
.topup-strip{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 22px; flex-wrap:wrap; }
.topup-info{ flex:1; min-width:0; }
.topup-title{ font-family:'League Spartan',sans-serif; font-size:14px; font-weight:700; color:var(--cream); margin-bottom:4px; }
.topup-desc{ font-size:12px; opacity:0.45; font-weight:300; line-height:1.5; }
.topup-btn{ flex-shrink:0; padding:10px 18px; border-radius:8px; background:rgba(255,248,229,0.10); border:1.5px solid rgba(255,248,229,0.22); color:var(--cream); font-family:'League Spartan',sans-serif; font-weight:800; font-size:11px; letter-spacing:1.2px; text-transform:uppercase; transition:background 0.15s; }
.topup-btn:hover{ background:rgba(255,248,229,0.18); }
.plans-footnote{ font-size:10.5px; opacity:0.25; text-align:center; line-height:1.5; font-weight:300; }

/* ══════════════════════════════════════════════════════
  VISUAL LAB + THUMBNAIL TEST DETAIL
══════════════════════════════════════════════════════ */
.vl-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.vl-opt{ padding:22px 24px 24px; position:relative; }
.vl-opt.winner{ border-color:rgba(255,248,229,0.32)!important; }
.tl-win-badge{ position:absolute; top:16px; right:18px; padding:4px 11px; border-radius:20px; background:rgba(255,248,229,0.16); border:1px solid rgba(255,248,229,0.3); font-size:9px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:var(--cream); }
.vl-drop input[type=file]{ position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.vl-drop{
display:flex; align-items:center; justify-content:center; aspect-ratio:16/9; border-radius:8px; cursor:pointer; overflow:hidden; position:relative;
border:1.5px dashed rgba(255,248,229,0.22); background:rgba(0,0,0,0.14); margin-bottom:16px; transition:border-color 0.2s, background 0.2s;
}
.vl-drop:hover{ border-color:rgba(255,248,229,0.4); background:rgba(0,0,0,0.18); }
.vl-drop-empty{ display:flex; flex-direction:column; align-items:center; gap:10px; font-size:12px; color:rgba(255,248,229,0.4); }
.vl-drop-empty svg{ opacity:0.5; }
.vl-drop-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.vl-drop-swap{ position:absolute; bottom:10px; right:10px; display:none; background:rgba(0,0,0,0.55); border:1px solid rgba(255,255,255,0.18); border-radius:6px; padding:5px 10px; font-family:'League Spartan',sans-serif; font-size:9.5px; font-weight:700; letter-spacing:0.8px; text-transform:uppercase; color:rgba(255,255,255,0.85); }
.vl-drop.has-img{ border-style:solid; border-color:rgba(255,248,229,0.25); }
.vl-drop.has-img .vl-drop-empty{ display:none; }
.vl-drop.has-img:hover .vl-drop-swap{ display:block; }
.vl-still{ aspect-ratio:16/9; border-radius:8px; overflow:hidden; background:rgba(0,0,0,0.14); margin-bottom:12px; }
.vl-still img{ width:100%; height:100%; object-fit:cover; display:block; }
.vl-still-title{ font-size:13px; line-height:1.5; color:rgba(255,248,229,0.85); }
.vl-title-card{ padding:18px 22px 20px; }
.vl-title-row{ display:flex; gap:8px; align-items:stretch; }
.vl-niche-inp{ width:auto; max-width:200px; padding:6px 11px; font-size:11px; flex-shrink:0; }
.vl-title-row .studio-inp{ flex:1; }
.vl-pick{ flex-shrink:0; white-space:nowrap; padding:9px 14px; font-size:10.5px; }
.vl-optim{ display:flex; align-items:center; gap:10px; padding:16px 22px; flex-wrap:wrap; }
.vl-chips{ display:flex; gap:6px; flex-wrap:wrap; flex:1; }
.vl-chip{ padding:6px 13px; border-radius:20px; background:rgba(255,248,229,0.06); border:1px solid rgba(255,248,229,0.13); color:rgba(255,248,229,0.55); font-size:11px; transition:background 0.15s, color 0.15s; }
.vl-chip:hover{ background:rgba(255,248,229,0.1); color:rgba(255,248,229,0.8); }
.vl-chip.on{ background:rgba(255,248,229,0.16); border-color:rgba(255,248,229,0.3); color:var(--cream); font-weight:500; }
.vl-empty{ display:flex; flex-direction:column; align-items:center; text-align:center; padding:36px 30px; }
.vl-notes-card{ padding:18px 22px 20px; }
.vl-notes-inp{ min-height:76px; resize:vertical; }
.vl-run-btn{ width:100%; }

/* results */
.vl-results{ display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:16px; align-items:stretch; }
.vl-verdict{ padding:22px 24px; display:flex; flex-direction:column; }
.vl-vhead{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; flex-wrap:wrap; }
.vl-pill{ padding:3px 10px; border-radius:20px; background:rgba(255,248,229,0.14); border:1px solid rgba(255,248,229,0.25); font-size:9px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:rgba(255,248,229,0.85); }
.vl-pill.muted{ background:transparent; border-color:rgba(255,248,229,0.16); color:rgba(255,248,229,0.45); }
.vl-pick-title{ font-family:'League Spartan',sans-serif; font-size:22px; font-weight:800; margin-bottom:10px; letter-spacing:-0.2px; color:var(--cream); }
.vl-why{ font-size:12.5px; line-height:1.65; font-weight:300; color:rgba(255,248,229,0.68); margin-bottom:18px; max-width:62ch; }
.vl-scores{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:16px; }
.vl-score{ background:rgba(255,255,255,0.04); border:1px solid rgba(255,248,229,0.1); border-radius:8px; padding:12px 14px; }
.vl-score-lbl{ font-size:9px; letter-spacing:1.4px; text-transform:uppercase; opacity:0.38; font-weight:700; margin-bottom:8px; }
.vl-bar{ height:3px; background:rgba(255,248,229,0.1); border-radius:2px; margin-bottom:6px; overflow:hidden; }
.vl-bar i{ display:block; height:100%; border-radius:2px; background:rgba(255,248,229,0.75); transition:width 0.6s var(--ease); }
.vl-bar.lo i{ background:rgba(255,248,229,0.4); }
.vl-score span{ font-size:11px; color:rgba(255,248,229,0.6); }
.vl-score span b{ color:var(--cream); font-weight:600; }
.vl-acts{ display:flex; gap:8px; flex-wrap:wrap; margin-top:auto; }
.vl-feed{ padding:14px; }
.vl-feed .studio-card-label{ margin-bottom:10px; }
.yt-card{ background:#0f0f0f; border-radius:8px; overflow:hidden; }
.yt-thumb{ aspect-ratio:16/9; background:linear-gradient(135deg,#1e2d50,#374970); position:relative; overflow:hidden; }
.yt-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.yt-dur{ position:absolute; bottom:5px; right:6px; background:rgba(0,0,0,0.8); color:#fff; font-size:8.5px; padding:2px 5px; border-radius:3px; font-weight:600; }
.yt-meta{ padding:9px 10px; display:flex; gap:8px; }
.yt-av{ width:22px; height:22px; border-radius:50%; background:var(--d-blue); flex-shrink:0; }
.yt-title{ font-family:'Roboto',sans-serif; font-size:14px; font-weight:500; color:#fff; line-height:1.35; margin-bottom:3px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.yt-ch{ font-size:9.5px; color:rgba(255,255,255,0.4); }
.yt-disc{ margin-top:12px; font-size:8.5px; opacity:0.2; text-align:center; line-height:1.4; }

/* picker modal */
.vl-picker{ position:fixed; inset:0; z-index:700; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,0.35); backdrop-filter:blur(4px); }
.vl-picker.hidden{ display:none!important; }
.vl-picker-box{ width:min(560px,92vw); max-height:70vh; display:flex; flex-direction:column; padding:18px 20px; border-radius:var(--radius); border:1px solid rgba(255,248,229,0.16); box-shadow:0 20px 60px rgba(0,0,0,0.4); }
.draftify-state .vl-picker-box{ background:rgba(75,96,147,0.97); }
.postify-state  .vl-picker-box{ background:rgba(147,75,75,0.97); }
.pitchify-state .vl-picker-box{ background:rgba(63,92,65,0.97); }
.vl-picker-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.vl-picker-close{ color:rgba(255,248,229,0.5); font-size:14px; padding:4px 8px; border-radius:6px; }
.vl-picker-close:hover{ background:rgba(255,248,229,0.1); color:var(--cream); }
.vl-picker-list{ overflow-y:auto; display:flex; flex-direction:column; gap:6px; }
.vl-picker-item{ text-align:left; padding:11px 13px; border-radius:8px; background:rgba(255,248,229,0.05); border:1px solid rgba(255,248,229,0.1); transition:background 0.15s; }
.vl-picker-item:hover{ background:rgba(255,248,229,0.11); }
.vl-picker-item-title{ font-size:13px; color:var(--cream); line-height:1.4; }
.vl-picker-item-meta{ font-size:10px; color:rgba(255,248,229,0.35); margin-top:4px; }
.vl-picker-empty{ font-size:12.5px; color:rgba(255,248,229,0.45); padding:20px 10px; text-align:center; }

/* feedback */
.vl-feedback{ display:flex; align-items:center; justify-content:center; gap:10px; padding:12px 0 4px; }
.vl-fb-label{ font-size:10.5px; opacity:0.45; font-weight:300; }
.vl-fb-btn{ width:38px; height:38px; border-radius:50%; background:rgba(255,248,229,0.07); border:1.5px solid rgba(255,248,229,0.16); color:rgba(255,248,229,0.55); display:flex; align-items:center; justify-content:center; transition:background 0.15s, color 0.15s, border-color 0.15s; }
.vl-fb-btn:hover{ background:rgba(255,248,229,0.14); color:var(--cream); border-color:rgba(255,248,229,0.3); }
.vl-fb-btn.active{ background:rgba(255,248,229,0.18); color:var(--cream); border-color:rgba(255,248,229,0.4); }
.vl-fb-written{ display:flex; flex-direction:column; gap:8px; width:100%; margin-top:4px; }
.vl-fb-textarea{ min-height:60px; resize:vertical; font-size:12px; }
.vl-fb-row{ display:flex; gap:8px; }
.vl-fb-thanks{ font-size:11.5px; opacity:0.55; font-weight:300; }
.vl-fb-pane{ padding:20px 24px; margin-top:4px; }
.vl-fb-pill{ display:inline-flex; align-items:center; justify-content:center; width:100%; padding:8px 16px; border-radius:20px; background:rgba(255,248,229,0.1); border:1px solid rgba(255,248,229,0.2); font-size:11px; font-weight:600; letter-spacing:0.5px; color:rgba(255,248,229,0.75); text-align:center; }

/* ══════════════════════════════════════════════════════
  AI STUDIO PANEL
══════════════════════════════════════════════════════ */
.ai-studio-top-row{ display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:18px; }
.ai-studio-outer{ display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:18px; align-items:stretch; }
.ai-studio-left{ display:flex; flex-direction:column; min-width:0; }
.ai-studio-right{ min-width:0; display:flex; flex-direction:column; }
.ai-studio-right .preview-pane{ flex:1; }

.studio-progress{ display:flex; align-items:center; padding:16px 26px; }
.studio-step{ display:flex; flex-direction:column; align-items:center; gap:5px; flex:0 0 auto; }
.studio-step-line{ flex:1; height:1px; background:rgba(255,248,229,0.12); margin:0 8px 15px; transition:background 0.3s; }
.studio-step-line.done{ background:rgba(255,248,229,0.4); }
.studio-step-circle{ width:26px; height:26px; border-radius:50%; border:1.5px solid rgba(255,248,229,0.2); display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:600; color:rgba(255,248,229,0.35); transition:all 0.3s; }
.studio-step.active .studio-step-circle{ border-color:rgba(255,248,229,0.75); background:rgba(255,248,229,0.1); color:var(--cream); }
.studio-step.done .studio-step-circle{ border-color:rgba(255,248,229,0.45); background:rgba(255,248,229,0.07); color:rgba(255,248,229,0.7); font-size:12px; animation:stepDone 0.35s cubic-bezier(0.34,1.56,0.64,1); }
@keyframes stepDone{ 0%{transform:scale(1);} 50%{transform:scale(1.18);} 100%{transform:scale(1);} }
.studio-step-label{ font-size:9px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; color:rgba(255,248,229,0.28); transition:color 0.3s; white-space:nowrap; }
.studio-step.active .studio-step-label{ color:rgba(255,248,229,0.85); }
.studio-step.done .studio-step-label{ color:rgba(255,248,229,0.5); }

.studio-panel{ display:none; }
.studio-panel.active{ display:block; animation:stepFadeSlide 0.3s cubic-bezier(0.22,1,0.36,1) forwards; }
@keyframes stepFadeSlide{ from{opacity:0;transform:translateY(6px);} to{opacity:1;transform:translateY(0);} }

.studio-card{ padding:24px 28px; }
.studio-card-label{ font-size:9.5px; font-weight:700; letter-spacing:1.8px; text-transform:uppercase; opacity:0.38; margin-bottom:8px; }
.studio-card-title{ font-family:'League Spartan',sans-serif; font-size:21px; font-weight:800; letter-spacing:-0.2px; margin-bottom:20px; line-height:1.2; color:var(--cream); }

.studio-field{ margin-bottom:14px; }
.studio-field-label{ display:block; font-size:10px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; opacity:0.5; margin-bottom:6px; }
.studio-field-opt{ margin-left:6px; font-weight:400; opacity:0.55; letter-spacing:0.6px; }
.studio-field-sub{ display:block; font-size:11.5px; opacity:0.38; margin-bottom:6px; font-weight:300; }
.studio-inp{ width:100%; background:rgba(255,255,255,0.06); border:1px solid rgba(255,248,229,0.15); border-radius:7px; padding:10px 12px; font-family:'Inter',sans-serif; font-size:13px; color:var(--cream); outline:none; transition:border-color 0.2s, background 0.2s; }
.studio-inp:focus{ border-color:rgba(255,248,229,0.4); background:rgba(255,255,255,0.09); }
.studio-inp::placeholder{ color:rgba(255,248,229,0.25); }
.studio-inp.frozen{ background:rgba(255,255,255,0.02); border-style:dashed; color:rgba(255,248,229,0.4); pointer-events:none; }
.studio-textarea{ width:100%; background:rgba(255,255,255,0.06); border:1px solid rgba(255,248,229,0.15); border-radius:7px; padding:10px 12px; font-family:'Inter',sans-serif; font-size:13px; color:var(--cream); outline:none; resize:none; line-height:1.6; transition:border-color 0.2s, background 0.2s; }
.studio-textarea:focus{ border-color:rgba(255,248,229,0.4); background:rgba(255,255,255,0.09); }
.studio-textarea::placeholder{ color:rgba(255,248,229,0.25); }
.studio-textarea.frozen{ background:rgba(255,255,255,0.02); border-style:dashed; color:rgba(255,248,229,0.4); pointer-events:none; }

.studio-version-tag{ display:inline-flex; align-items:center; border:1px solid rgba(255,248,229,0.16); border-radius:20px; padding:3px 12px; font-size:9.5px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; color:rgba(255,248,229,0.45); margin-bottom:14px; }
.studio-output{ width:100%; background:rgba(255,255,255,0.05); border:1px solid rgba(255,248,229,0.24); border-radius:7px; padding:10px 12px; font-size:13px; color:var(--cream); line-height:1.6; min-height:44px; outline:none; transition:border-color 0.2s, background 0.2s; white-space:pre-wrap; }
.studio-output.tall{ min-height:100px; }
.studio-output[contenteditable="true"]:focus{ border-color:rgba(255,248,229,0.45); background:rgba(255,255,255,0.08); }
.studio-loading{ display:flex; align-items:center; gap:8px; opacity:0.45; font-size:12px; }
.studio-spinner{ width:13px; height:13px; border:1.5px solid rgba(255,248,229,0.2); border-top-color:rgba(255,248,229,0.65); border-radius:50%; animation:spin 0.7s linear infinite; flex-shrink:0; }
.studio-divider{ display:flex; align-items:center; gap:10px; margin:16px 0 14px; }
.studio-divider-line{ flex:1; height:1px; background:rgba(255,248,229,0.1); }
.studio-divider-label{ font-size:9px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:rgba(255,248,229,0.3); white-space:nowrap; }
.studio-context-banner{ background:rgba(255,255,255,0.04); border:1px solid rgba(255,248,229,0.12); border-radius:7px; padding:12px 14px; margin-bottom:16px; font-size:12px; color:rgba(255,248,229,0.55); line-height:1.55; font-weight:300; }
.regen-notes-row{ display:flex; gap:8px; align-items:center; margin-top:14px; }
.regen-notes-inp{ flex:1; font-size:12px; padding:9px 12px; }
.regen-notes-inp::placeholder{ font-size:11.5px; }
.regen-btn-inline{ flex-shrink:0; white-space:nowrap; padding:9px 16px; font-size:10.5px; }
.studio-tag-cloud{ display:flex; flex-wrap:wrap; gap:7px; min-height:52px; padding:12px; background:rgba(255,255,255,0.03); border:1px solid rgba(255,248,229,0.1); border-radius:7px; }
.studio-tag-chip{ display:inline-flex; align-items:center; gap:5px; background:rgba(255,248,229,0.08); border:1px solid rgba(255,248,229,0.16); color:rgba(255,248,229,0.85); border-radius:20px; padding:4px 9px 4px 12px; font-size:12px; animation:popIn 0.18s ease; }
.studio-tag-remove{ color:rgba(255,248,229,0.35); font-size:11px; display:flex; align-items:center; justify-content:center; width:15px; height:15px; border-radius:50%; padding:0; line-height:1; transition:background 0.15s, color 0.15s; }
.studio-tag-remove:hover{ background:rgba(255,248,229,0.15); color:var(--cream); }
.studio-quota-bar{ display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.studio-quota-label{ font-size:11px; opacity:0.4; }
.studio-quota-count{ font-family:'League Spartan',sans-serif; font-size:13px; font-weight:700; color:rgba(255,248,229,0.65); }
.studio-quota-count.full{ color:var(--cream); }
.studio-quota-track{ height:2px; background:rgba(255,248,229,0.09); border-radius:2px; margin-bottom:14px; overflow:hidden; }
.studio-quota-fill{ height:100%; background:rgba(255,248,229,0.45); border-radius:2px; transition:width 0.3s ease; }
.studio-quota-fill.full{ background:rgba(255,248,229,0.85); }
.studio-btn-row{ display:flex; gap:8px; flex-wrap:wrap; }
.studio-btn-primary{ width:100%; padding:12px 22px; border-radius:8px; background:rgba(255,248,229,0.16); border:1.5px solid rgba(255,248,229,0.28); color:var(--cream); font-family:'League Spartan',sans-serif; font-weight:800; font-size:11.5px; letter-spacing:1.5px; text-transform:uppercase; transition:background 0.15s, transform 0.1s; display:flex; align-items:center; justify-content:center; gap:8px; }
.studio-btn-primary:hover{ background:rgba(255,248,229,0.24); }
.studio-btn-primary:active{ transform:scale(0.985); }
.studio-btn-primary:disabled{ opacity:0.3; pointer-events:none; }
.studio-btn-primary.slim{ width:auto; padding:10px 22px; }
.studio-btn-ghost{ padding:10px 18px; border-radius:8px; background:rgba(255,248,229,0.07); border:1.5px solid rgba(255,248,229,0.14); color:rgba(255,248,229,0.6); font-family:'League Spartan',sans-serif; font-weight:700; font-size:11px; letter-spacing:1.2px; text-transform:uppercase; transition:background 0.15s, color 0.15s; }
.studio-btn-ghost:hover{ background:rgba(255,248,229,0.13); color:var(--cream); }
.studio-btn-ghost:disabled{ opacity:0.3; pointer-events:none; }
.studio-save-note{ font-size:10.5px; opacity:0.32; text-align:center; margin-top:8px; line-height:1.5; font-weight:300; }

/* ══════════════════════════════════════════════════════
  LIVE PREVIEW PANE (Studio)
══════════════════════════════════════════════════════ */
.preview-header{ display:flex; align-items:center; padding:16px 26px; }
.preview-header-label{ font-size:9px; font-weight:700; letter-spacing:1.8px; text-transform:uppercase; color:rgba(255,248,229,0.38); }
.preview-pane{ padding:16px 16px 12px; display:flex; flex-direction:column; }
.preview-yt-card{ background:#0f0f0f; border-radius:8px; overflow:hidden; }
.preview-yt-thumb{ width:100%; aspect-ratio:16/9; background:linear-gradient(135deg,rgba(30,45,80,0.9),rgba(55,73,112,0.8)); display:flex; align-items:center; justify-content:center; position:relative; }
.preview-yt-play{ width:30px; height:30px; background:rgba(255,255,255,0.88); border-radius:50%; display:flex; align-items:center; justify-content:center; color:#1a1a2e; padding-left:2px; }
.preview-yt-dur{ position:absolute; bottom:5px; right:6px; background:rgba(0,0,0,0.8); color:#fff; font-size:9px; padding:2px 5px; border-radius:3px; font-weight:600; letter-spacing:0.5px; }
.preview-yt-meta{ padding:9px 10px; display:flex; gap:8px; align-items:flex-start; }
.preview-yt-av{ width:22px; height:22px; border-radius:50%; background:var(--d-blue); flex-shrink:0; margin-top:1px; }
.preview-yt-body{ flex:1; min-width:0; }
.preview-yt-title{ font-family:'Roboto',sans-serif; font-size:14px; font-weight:500; color:rgba(255,255,255,0.9); line-height:1.35; margin-bottom:3px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; transition:color 0.2s; }
.preview-yt-title.has-content{ color:#fff; }
.preview-yt-title.empty{ color:rgba(255,255,255,0.28); font-style:italic; }
.preview-yt-channel{ font-size:9.5px; color:rgba(255,255,255,0.38); }
.preview-dash-divider{ border-top:1px dashed rgba(255,248,229,0.14); margin:14px 0; }
.preview-section-label{ font-size:9px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase; opacity:0.32; margin-bottom:8px; }
.preview-desc{ font-size:11px; line-height:1.6; font-weight:300; color:rgba(255,248,229,0.55); display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden; transition:color 0.2s; min-height:36px; white-space:pre-wrap; word-break:break-word; }
.preview-desc.empty{ color:rgba(255,248,229,0.22); font-style:italic; }
.preview-tags{ display:flex; flex-wrap:wrap; gap:5px; min-height:24px; }
.preview-tags-empty{ font-size:10.5px; opacity:0.25; font-style:italic; }
.preview-tag-chip{ background:rgba(255,248,229,0.07); border:1px solid rgba(255,248,229,0.13); border-radius:20px; padding:3px 10px; font-size:10.5px; color:rgba(255,248,229,0.6); animation:popIn 0.18s ease; }
.preview-disc{ font-size:8.5px; opacity:0.2; margin-top:14px; line-height:1.4; text-align:center; }

/* ══════════════════════════════════════════════════════
  FINISHED DRAFTS
══════════════════════════════════════════════════════ */
.vault-zones{ display:flex; gap:6px; margin-bottom:16px; }
.vault-zone{ display:inline-flex; align-items:center; gap:8px; padding:7px 14px 7px 15px; border-radius:50px; background:rgba(255,248,229,0.06); border:1px solid rgba(255,248,229,0.13); color:rgba(255,248,229,0.55); font-family:'League Spartan',sans-serif; font-size:11px; font-weight:700; letter-spacing:0.5px; text-transform:uppercase; transition:background 0.15s, color 0.15s; }
.vault-zone:hover{ background:rgba(255,248,229,0.1); color:rgba(255,248,229,0.8); }
.vault-zone.on{ background:rgba(255,248,229,0.16); border-color:rgba(255,248,229,0.3); color:var(--cream); }
.vault-zone-count{ min-width:18px; height:18px; padding:0 6px; border-radius:9px; background:rgba(255,248,229,0.12); font-family:'Inter',sans-serif; font-size:10px; font-weight:600; letter-spacing:0; display:inline-flex; align-items:center; justify-content:center; }
.vault-zone.on .vault-zone-count{ background:rgba(255,248,229,0.22); }
.vault-empty-card{ display:flex; flex-direction:column; align-items:center; text-align:center; padding:44px 30px; }
.vault-empty-icon{ opacity:0.35; margin-bottom:16px; color:var(--cream); }
.vault-empty-title{ font-family:'League Spartan',sans-serif; font-size:19px; font-weight:800; margin-bottom:7px; color:var(--cream); opacity:0.85; }
.vault-empty-desc{ font-size:13px; opacity:0.42; line-height:1.6; font-weight:300; max-width:380px; }
.vault-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; }
.vault-card{ padding:18px 20px; display:flex; flex-direction:column; gap:8px; text-align:left; transition:background 0.18s, border-color 0.18s; }
.vault-card:hover{ border-color:rgba(255,248,229,0.2)!important; }
.vault-card-title{ font-family:'League Spartan',sans-serif; font-size:14.5px; font-weight:700; line-height:1.3; color:var(--cream); opacity:0.9; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.vault-card-desc{ font-size:12px; color:rgba(255,248,229,0.45); line-height:1.55; font-weight:300; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.vault-card-meta{ font-size:10px; color:rgba(255,248,229,0.28); display:flex; align-items:center; gap:6px; margin-top:auto; padding-top:8px; border-top:1px solid rgba(255,248,229,0.06); }
.vault-card-meta-sep{ opacity:0.6; }
.vc-thumbs{ display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-bottom:4px; }
.vc-thumb{ aspect-ratio:16/9; border-radius:6px; overflow:hidden; background:rgba(0,0,0,0.18); border:1.5px solid transparent; position:relative; }
.vc-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.vc-thumb.win{ border-color:rgba(255,248,229,0.6); }
.vc-thumb.win::after{ content:'Pick'; position:absolute; top:5px; left:6px; padding:2px 7px; border-radius:20px; background:rgba(0,0,0,0.55); font-size:8px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:#fff; }
.vault-detail-header{ margin-bottom:20px; }
.vault-detail-title{ font-family:'League Spartan',sans-serif; font-size:21px; font-weight:800; letter-spacing:-0.2px; line-height:1.2; margin-bottom:4px; color:var(--cream); }
.vault-detail-date{ font-size:11px; opacity:0.32; font-weight:300; }
.vault-compare-block{ background:rgba(255,255,255,0.03); border:1px solid rgba(255,248,229,0.08); border-radius:8px; padding:14px 16px; margin-bottom:12px; }
.vault-compare-label{ font-size:9px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; opacity:0.4; margin-bottom:7px; display:flex; align-items:center; gap:8px; }
.vault-pill{ border:1px solid rgba(255,248,229,0.14); border-radius:20px; padding:1px 9px; font-size:8px; font-weight:700; letter-spacing:1px; color:rgba(255,248,229,0.4); text-transform:uppercase; }
.vault-pill.refined{ border-color:rgba(255,248,229,0.35); color:rgba(255,248,229,0.75); background:rgba(255,248,229,0.06); }
.vault-compare-text{ font-size:13px; line-height:1.65; opacity:0.82; font-weight:300; white-space:pre-wrap; }
.vault-compare-text.muted{ opacity:0.3; text-decoration:line-through; text-decoration-color:rgba(255,248,229,0.25); }
.vault-compare-divider{ height:1px; background:rgba(255,248,229,0.06); margin:11px 0; }
.vault-tag-rack{ display:flex; flex-wrap:wrap; gap:6px; margin-top:4px; }
.vault-tag-chip-ro{ background:rgba(255,248,229,0.07); border:1px solid rgba(255,248,229,0.13); border-radius:20px; padding:4px 12px; font-size:11.5px; color:rgba(255,248,229,0.7); }
#vaultDetailThumb{ display:flex; flex-direction:column; gap:16px; }
#vaultDetailThumb.hidden{ display:none!important; }

/* ══════════════════════════════════════════════════════
  POSTIFY
══════════════════════════════════════════════════════ */
.postify-drop{ padding:30px 40px 26px; text-align:center; border-style:dashed!important; border-width:1.5px!important; }
.postify-drop-title{ font-family:'League Spartan',sans-serif; font-size:17px; font-weight:800; margin-bottom:6px; color:var(--cream); }
.postify-drop-sub{ font-size:13px; opacity:0.5; margin-bottom:20px; font-weight:300; max-width:520px; margin-left:auto; margin-right:auto; line-height:1.55; }
.url-row{ display:flex; gap:10px; max-width:560px; margin:0 auto; }
.url-inp{ flex:1; background:rgba(255,255,255,0.06); border:1px solid rgba(255,248,229,0.15); border-radius:8px; padding:12px 16px; font-family:'Inter',sans-serif; font-size:13px; color:var(--cream); outline:none; transition:border-color 0.2s, background 0.2s; }
.url-inp:focus{ border-color:rgba(255,248,229,0.4); background:rgba(255,255,255,0.09); }
.url-inp::placeholder{ color:rgba(255,248,229,0.25); }
.btn-go{ padding:12px 22px; background:rgba(255,248,229,0.16); border:1.5px solid rgba(255,248,229,0.28); border-radius:8px; color:var(--cream); font-family:'League Spartan',sans-serif; font-size:11px; font-weight:800; letter-spacing:1.5px; text-transform:uppercase; transition:background 0.15s; white-space:nowrap; display:inline-flex; align-items:center; gap:8px; }
.btn-go:hover{ background:rgba(255,248,229,0.26); }
.btn-go:disabled{ opacity:0.3; pointer-events:none; }
.po-status{ margin-top:12px; font-size:12px; min-height:18px; line-height:1.5; }
.po-status .ok{ color:rgba(255,248,229,0.7); }
.po-status .err{ color:rgba(255,248,229,0.6); }
.po-source{ display:flex; align-items:center; gap:14px; padding:14px 20px; flex-wrap:wrap; }
.po-source-dot{ width:8px; height:8px; border-radius:50%; background:rgba(255,248,229,0.25); flex-shrink:0; }
.po-source-dot.on{ background:#8ad19a; box-shadow:0 0 0 4px rgba(138,209,154,0.15); }
.po-source-text{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.po-source-title{ font-family:'League Spartan',sans-serif; font-size:13.5px; font-weight:700; color:var(--cream); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.po-source-sub{ font-size:11px; opacity:0.42; font-weight:300; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.po-source-inline{ display:flex; gap:8px; flex:1; min-width:240px; }
.po-source-inline .url-inp{ padding:9px 12px; font-size:12px; }
.po-source-inline .btn-go{ padding:9px 14px; font-size:10px; }
.po-controls{ display:flex; align-items:center; gap:16px; padding:16px 22px; flex-wrap:wrap; }
.po-controls .studio-btn-primary.slim{ margin-left:auto; }
.po-controls-text{ flex:1; min-width:220px; }
.po-controls-desc{ font-size:12px; opacity:0.45; font-weight:300; line-height:1.5; }
.po-desc-card{ padding:20px 24px 22px; }
.po-empty{ display:flex; flex-direction:column; align-items:center; text-align:center; padding:36px 30px; }
.po-loading{ display:flex; flex-direction:column; gap:10px; padding:22px 24px; }
.po-skel{ height:12px; border-radius:6px; background:rgba(255,248,229,0.07); animation:skel 1.2s ease-in-out infinite; }
.po-skel.w60{ width:60%; } .po-skel.w80{ width:80%; } .po-skel.w40{ width:40%; }
@keyframes skel{ 0%,100%{ opacity:0.5; } 50%{ opacity:1; } }
.po-error{ padding:20px 24px; display:flex; align-items:flex-start; gap:12px; }
.po-error-title{ font-family:'League Spartan',sans-serif; font-size:14px; font-weight:700; color:var(--cream); margin-bottom:4px; }
.po-error-desc{ font-size:12px; opacity:0.5; font-weight:300; line-height:1.55; }
.po-results{ display:flex; flex-direction:column; gap:12px; }
.po-results-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.po-results-title{ font-family:'League Spartan',sans-serif; font-size:15px; font-weight:800; color:var(--cream); }
.clip-list{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:12px; }
.clip-card{ padding:16px 18px; display:flex; flex-direction:column; gap:8px; }
.clip-ts{ font-family:'League Spartan',sans-serif; font-size:10px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase; color:rgba(255,248,229,0.55); }
.clip-hook{ font-family:'League Spartan',sans-serif; font-size:14px; font-weight:700; line-height:1.3; color:var(--cream); }
.clip-cap{ font-size:12px; color:rgba(255,248,229,0.55); line-height:1.5; font-weight:300; }
.clip-quote{ font-size:11.5px; color:rgba(255,248,229,0.4); line-height:1.5; font-style:italic; border-left:2px solid rgba(255,248,229,0.14); padding-left:10px; }
.clip-card .btn-copy{ margin-top:4px; }
.btn-copy{ display:inline-flex; align-items:center; gap:6px; padding:7px 13px; background:rgba(255,248,229,0.09); border:1px solid rgba(255,248,229,0.18); border-radius:6px; font-family:'League Spartan',sans-serif; font-size:9.5px; font-weight:800; letter-spacing:1px; text-transform:uppercase; color:rgba(255,248,229,0.7); transition:color 0.15s,background 0.15s; align-self:flex-start; }
.btn-copy:hover{ color:var(--cream); background:rgba(255,248,229,0.17); }
.seo-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.seo-block{ padding:18px 20px; display:flex; flex-direction:column; gap:12px; }
.tag-list{ display:flex; flex-wrap:wrap; gap:6px; }
.tag{ padding:4px 11px; background:rgba(255,248,229,0.08); border:1px solid rgba(255,248,229,0.16); border-radius:20px; font-size:11.5px; color:rgba(255,248,229,0.8); }
.chapters{ display:flex; flex-direction:column; gap:6px; }
.chapter{ display:flex; gap:12px; align-items:baseline; font-size:12.5px; color:rgba(255,248,229,0.75); }
.ch-ts{ font-family:'League Spartan',sans-serif; font-size:11px; font-weight:800; color:rgba(255,248,229,0.5); min-width:38px; }
.desc-out{ padding:20px 24px; display:flex; flex-direction:column; gap:12px; }
.desc-block{ white-space:pre-wrap; font-size:13px; line-height:1.7; color:rgba(255,248,229,0.82); font-weight:300; background:rgba(255,255,255,0.04); border:1px solid rgba(255,248,229,0.14); border-radius:7px; padding:14px 16px; outline:none; }
.desc-block:focus{ border-color:rgba(255,248,229,0.4); }
@media(max-width:1100px){ .seo-grid{ grid-template-columns:1fr; } }

/* ── Misc ── */
.disclaimer{ font-size:9.5px; opacity:0.25; text-align:center; padding:8px 40px 22px; line-height:1.7; flex-shrink:0; }
.disclaimer .copy{ display:inline-block; margin-top:8px; padding-top:7px; border-top:1px solid rgba(255,248,229,0.14); opacity:0.85; }
.content::-webkit-scrollbar{ width:4px; }
.content::-webkit-scrollbar-track{ background:transparent; }
.content::-webkit-scrollbar-thumb{ background:rgba(255,255,255,0.15); border-radius:4px; }
.hidden{ display:none!important; }

/* ══════════════════════════════════════════════════════
  COMPLETION OVERLAY
══════════════════════════════════════════════════════ */
.completion-overlay{ position:fixed; top:0; bottom:0; right:0; left:var(--sidebar-w); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); z-index:500; display:flex; align-items:center; justify-content:center; flex-direction:column; opacity:0; pointer-events:none; transition:opacity 0.4s ease; }
.draftify-state .completion-overlay{ background:rgba(55,73,112,0.78); }
.postify-state  .completion-overlay{ background:rgba(109,53,53,0.78); }
.pitchify-state .completion-overlay{ background:rgba(63,92,65,0.78); }
.completion-overlay.visible{ opacity:1; pointer-events:all; }
.completion-circle{ width:80px; height:80px; border-radius:50%; background:rgba(255,248,229,0.12); border:2px solid rgba(255,248,229,0.3); display:flex; align-items:center; justify-content:center; margin-bottom:24px; transform:scale(0.7); transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1); }
.completion-overlay.visible .completion-circle{ transform:scale(1); }
.completion-check{ color:var(--cream); line-height:1; opacity:0; transform:scale(0.5); transition:opacity 0.3s ease 0.2s, transform 0.3s cubic-bezier(0.34,1.56,0.64,1) 0.2s; }
.completion-overlay.visible .completion-check{ opacity:1; transform:scale(1); }
.completion-title{ font-family:'League Spartan',sans-serif; font-size:22px; font-weight:800; color:var(--cream); letter-spacing:-0.2px; margin-bottom:8px; opacity:0; transform:translateY(10px); transition:opacity 0.35s ease 0.3s, transform 0.35s ease 0.3s; }
.completion-overlay.visible .completion-title{ opacity:1; transform:translateY(0); }
.completion-sub{ font-size:13px; font-weight:300; color:rgba(255,248,229,0.55); opacity:0; transform:translateY(8px); transition:opacity 0.35s ease 0.42s, transform 0.35s ease 0.42s; }
.completion-overlay.visible .completion-sub{ opacity:1; transform:translateY(0); }
.completion-dots{ display:flex; gap:6px; margin-top:28px; opacity:0; transition:opacity 0.3s ease 0.55s; }
.completion-overlay.visible .completion-dots{ opacity:1; }
.completion-dot{ width:6px; height:6px; border-radius:50%; background:rgba(255,248,229,0.4); }
.completion-overlay.visible .completion-dot:nth-child(1){ animation:dotPulse 1.1s ease 0.6s infinite; }
.completion-overlay.visible .completion-dot:nth-child(2){ animation:dotPulse 1.1s ease 0.75s infinite; }
.completion-overlay.visible .completion-dot:nth-child(3){ animation:dotPulse 1.1s ease 0.9s infinite; }
@keyframes dotPulse{ 0%,100%{background:rgba(255,248,229,0.3);transform:scale(1);} 50%{background:rgba(255,248,229,0.8);transform:scale(1.3);} }
.completion-tip{ margin-top:22px; font-size:12px; font-weight:300; color:rgba(255,248,229,0.5); text-align:center; max-width:360px; line-height:1.55; min-height:38px; opacity:0; transition:opacity 0.35s ease; }
.completion-tip.show{ opacity:1; }

/* ── Toast ── */
.toast{ position:fixed; bottom:24px; right:24px; background:rgba(255,248,229,0.96); padding:11px 20px; border-radius:8px; font-family:'Inter',sans-serif; font-size:12.5px; font-weight:500; letter-spacing:0; box-shadow:0 8px 32px rgba(0,0,0,0.3); z-index:999; transform:translateY(80px); opacity:0; transition:all 0.3s cubic-bezier(0.32,0,0.15,1); pointer-events:none; }
.draftify-state .toast{ color:#374970; }
.postify-state  .toast{ color:#6d3535; }
.pitchify-state .toast{ color:#3f5c41; }
.toast.show{ transform:translateY(0); opacity:1; }

/* ── Animations ── */
@keyframes fadeSlideIn{ 0%{opacity:0;transform:translateY(14px) scale(0.98);} 100%{opacity:1;transform:translateY(0) scale(1);} }
@keyframes fadeSlideOut{ 0%{opacity:1;transform:translateY(0) scale(1);} 100%{opacity:0;transform:translateY(-10px) scale(0.98);} }
@keyframes popIn{ from{opacity:0;transform:scale(0.9);} to{opacity:1;transform:scale(1);} }
@keyframes spin{ to{transform:rotate(360deg);} }
.content.switching-out{ animation:fadeSlideOut 0.22s cubic-bezier(.4,0,1,1) forwards; pointer-events:none; }
.content.switching-in{ animation:fadeSlideIn 0.28s cubic-bezier(0,0,.3,1) forwards; }
@media(prefers-reduced-motion:reduce){ *{ animation-duration:0.001s!important; transition-duration:0.001s!important; } }

/* ══════════════════════════════════════════════════════
  AUTH MODAL
══════════════════════════════════════════════════════ */
.auth-modal{ position:fixed; inset:0; z-index:800; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,0.42); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); animation:fadeIn 0.2s ease; }
.auth-modal.hidden{ display:none!important; }
@keyframes fadeIn{ from{ opacity:0; } to{ opacity:1; } }
.auth-box{ width:min(420px,92vw); padding:26px 28px 22px; border-radius:var(--radius); border:1px solid rgba(255,248,229,0.16); box-shadow:0 24px 70px rgba(0,0,0,0.45); position:relative; animation:fadeSlideIn 0.25s cubic-bezier(0,0,.3,1); color:var(--cream); }
.draftify-state .auth-box{ background:rgba(75,96,147,0.97); }
.postify-state  .auth-box{ background:rgba(147,75,75,0.97); }
.pitchify-state .auth-box{ background:rgba(63,92,65,0.97); }
.auth-close{ position:absolute; top:12px; right:12px; color:rgba(255,248,229,0.45); font-size:13px; padding:5px 9px; border-radius:6px; }
.auth-close:hover{ background:rgba(255,248,229,0.1); color:var(--cream); }
.auth-tabs{ display:flex; gap:4px; padding:4px; border-radius:8px; background:rgba(0,0,0,0.16); margin-bottom:20px; }
.auth-tab{ flex:1; padding:8px; border-radius:6px; font-family:'League Spartan',sans-serif; font-size:11px; font-weight:700; letter-spacing:0.6px; text-transform:uppercase; color:rgba(255,248,229,0.5); transition:background 0.15s, color 0.15s; }
.auth-tab.on{ background:rgba(255,248,229,0.14); color:var(--cream); }
.auth-title{ font-family:'League Spartan',sans-serif; font-size:24px; font-weight:800; letter-spacing:-0.3px; line-height:1.1; margin-bottom:6px; }
.auth-sub{ font-size:12.5px; opacity:0.55; font-weight:300; line-height:1.55; margin-bottom:18px; }
.auth-perks{ display:flex; flex-direction:column; gap:7px; margin:-6px 0 18px; }
.auth-perk{ font-size:12px; color:rgba(255,248,229,0.8); display:flex; align-items:center; gap:9px; }
.auth-perk::before{ content:''; width:6px; height:6px; border-radius:50%; background:rgba(255,248,229,0.55); flex-shrink:0; }
.auth-err{ font-size:12px; color:rgba(255,248,229,0.85); background:rgba(0,0,0,0.18); border:1px solid rgba(255,248,229,0.16); border-radius:7px; padding:9px 12px; margin:-4px 0 12px; line-height:1.5; }
.auth-foot{ display:flex; justify-content:space-between; align-items:center; margin-top:14px; }
.auth-link{ font-size:11.5px; color:rgba(255,248,229,0.5); text-decoration:underline; text-underline-offset:3px; padding:2px 0; }
.auth-link:hover{ color:var(--cream); }

/* ══════════════════════════════════════════════════════
  SETTINGS PANEL
══════════════════════════════════════════════════════ */
.set-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; align-items:start; }
.set-card{ padding:22px 24px; display:flex; flex-direction:column; gap:14px; }
.set-card .studio-field{ margin:0; }
.set-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid rgba(255,248,229,0.07); }
.set-row:last-child{ border-bottom:none; }
.set-k{ font-size:10px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; opacity:0.45; }
.set-v{ font-size:13px; color:rgba(255,248,229,0.85); text-align:right; }
.set-pill{ display:inline-flex; padding:3px 10px; border-radius:20px; background:rgba(255,248,229,0.14); border:1px solid rgba(255,248,229,0.25); font-size:9px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; }
.set-actions{ display:flex; gap:8px; flex-wrap:wrap; }
.set-danger{ border-color:rgba(255,120,120,0.22)!important; }
.set-danger-note{ font-size:12px; opacity:0.5; font-weight:300; line-height:1.55; }
.set-guest{ display:flex; flex-direction:column; align-items:center; text-align:center; padding:40px 30px; gap:6px; }
.set-guest .set-actions{ margin-top:14px; justify-content:center; }
.set-usage{ height:3px; background:rgba(255,248,229,0.1); border-radius:2px; overflow:hidden; }
.set-usage i{ display:block; height:100%; background:rgba(255,248,229,0.6); border-radius:2px; }
.set-info-k{ cursor:pointer; text-decoration:underline; text-decoration-style:dotted; text-underline-offset:3px; text-decoration-color:rgba(255,248,229,0.35); }
.set-info-k:hover{ text-decoration-color:rgba(255,248,229,0.7); }
.set-info-i{ font-size:9px; opacity:0.55; margin-left:3px; font-style:normal; cursor:pointer; }
.feat-term{ text-decoration:underline; text-decoration-style:dotted; text-underline-offset:3px; text-decoration-color:rgba(255,248,229,0.4); cursor:pointer; }
.feat-term:hover{ text-decoration-color:rgba(255,248,229,0.8); }
@media(max-width:1000px){ .set-grid{ grid-template-columns:1fr; } }

/* ══════════════════════════════════════
   SLASH COMMAND PALETTE
══════════════════════════════════════ */
.slash-backdrop{ position:fixed; inset:0; z-index:890; background:rgba(0,0,0,0.18); backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); }
.slash-palette{ position:fixed; z-index:900; width:340px; border-radius:12px; overflow:hidden; box-shadow:0 24px 60px rgba(0,0,0,0.45), 0 0 0 1px rgba(255,248,229,0.12); animation:fadeSlideIn 0.18s cubic-bezier(0,0,.3,1); }
.draftify-state .slash-palette{ background:rgba(55,73,112,0.97); }
.postify-state  .slash-palette{ background:rgba(109,53,53,0.97); }
.pitchify-state .slash-palette{ background:rgba(63,92,65,0.97); }
.slash-search-row{ display:flex; align-items:center; gap:10px; padding:14px 16px; border-bottom:1px solid rgba(255,248,229,0.1); }
.slash-icon{ font-size:18px; font-weight:800; opacity:0.45; color:var(--cream); font-family:'League Spartan',sans-serif; flex-shrink:0; }
.slash-inp{ flex:1; background:none; border:none; outline:none; font-family:'League Spartan',sans-serif; font-size:15px; font-weight:600; color:var(--cream); letter-spacing:0.1px; }
.slash-inp::placeholder{ color:rgba(255,248,229,0.3); font-weight:400; }
.slash-results{ max-height:260px; overflow-y:auto; padding:6px; display:flex; flex-direction:column; gap:2px; }
.slash-results::-webkit-scrollbar{ display:none; }
.slash-item{ display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:8px; text-align:left; color:rgba(255,248,229,0.75); font-family:'League Spartan',sans-serif; font-size:13px; font-weight:600; transition:background 0.12s, color 0.12s; width:100%; }
.slash-item:hover, .slash-item.on{ background:rgba(255,248,229,0.12); color:var(--cream); }
.slash-item-icon{ font-size:14px; opacity:0.55; width:18px; text-align:center; flex-shrink:0; }
.slash-item.on .slash-item-icon{ opacity:0.85; }
.slash-empty{ padding:20px; text-align:center; font-size:12px; color:rgba(255,248,229,0.3); }

/* ══ PITCHIFY STATE ══ */
.pitchify-state .content{ background-color:var(--p-green); background-image:url('../assets/pitchify-texture.jpg'); }
.pitchify-state .sidebar-divider{ background:var(--p-green); }
.pitchify-state .nav-item.active::before{ background:var(--p-green); }
.pitchify-state .nav-icon svg{ stroke:var(--p-green-dk); }
.pitchify-state .nav-item.active .nav-icon svg{ stroke:var(--p-green); }
.pitchify-state .nav-label{ color:#3f5c41; }
.pitchify-state .nav-item.active .nav-label{ color:var(--p-green); font-weight:600; }
.pitchify-state .glass{ background:rgba(255,248,229,0.05); border:1px solid rgba(255,248,229,0.10); }
.pitchify-state .glass:hover{ background:rgba(255,248,229,0.08); }
.pitchify-state .logo-cog{ color:var(--p-green); }
.pitchify-state .sidebar-bottom::before{ background:var(--d-blue); }
.pitchify-state .sidebar-thin-divider{ background:rgba(75,96,147,0.3); }
.pitchify-state .plan-anchor-label, .pitchify-state .plan-anchor-name{ color:var(--d-blue); }
.pitchify-state .plan-anchor-icon{ color:var(--d-blue); }
.pitchify-state .plan-anchor:hover{ border-color:rgba(75,96,147,0.18); }
.pitchify-state .switcher-label{ color:#6b6560; }
.pitchify-state .switcher-name{ color:#6b6560; }
.pitchify-state .app-switcher:hover{ border-color:rgba(75,96,147,0.18); }
.pitchify-state .completion-overlay{ background:rgba(63,92,65,0.78); }
.pitchify-state .toast{ color:#3f5c41; }
.pitchify-state .dash-nav-card:hover{ background:rgba(255,248,229,0.09); }
.pitchify-state .vl-picker-box{ background:rgba(63,92,65,0.97); }
.pitchify-state .auth-box{ background:rgba(63,92,65,0.97); }
.pitchify-state .slash-palette{ background:rgba(63,92,65,0.97); }

/* ══ SUITE SWITCHER OVERLAY ══ */
.suite-overlay{ position:fixed; inset:0; z-index:700; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,0.35); backdrop-filter:blur(4px); }
.suite-overlay.hidden{ display:none!important; }
.suite-overlay-box{ width:min(400px,92vw); padding:16px; border-radius:var(--radius); border:1px solid rgba(255,248,229,0.16); box-shadow:0 20px 60px rgba(0,0,0,0.4); animation:fadeSlideIn 0.2s cubic-bezier(0,0,.3,1); }
.suite-tools{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.suite-tool-btn{ display:flex; flex-direction:column; align-items:center; gap:9px; padding:16px 12px; border-radius:10px; background:rgba(255,248,229,0.06); border:1px solid rgba(255,248,229,0.12); transition:background 0.15s, border-color 0.15s; cursor:pointer; }
.suite-tool-btn:hover{ background:rgba(255,248,229,0.14); border-color:rgba(255,248,229,0.26); }
.suite-tool-btn.current{ background:rgba(255,248,229,0.16); border-color:rgba(255,248,229,0.32); }
.suite-tool-badge{ width:44px; height:44px; border-radius:0; object-fit:contain; display:block; }
.suite-tool-name{ font-family:'League Spartan',sans-serif; font-size:13px; font-weight:700; color:var(--cream); }
.suite-tool-tag{ font-size:9px; color:rgba(255,248,229,0.4); font-weight:300; }

/* Switcher badge = grid icon */
.switcher-badge{ width:40px; height:40px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.draftify-state .switcher-badge svg{ stroke:#6b6560; }
.postify-state  .switcher-badge svg{ stroke:#6b6560; }
.pitchify-state .switcher-badge svg{ stroke:#6b6560; }

.draftify-state .switcher-badge svg{ stroke:#6b6560; }
.postify-state  .switcher-badge svg{ stroke:#6b6560; }
.pitchify-state .switcher-badge svg{ stroke:#6b6560; }
.pitchify-state .plan-anchor-label, .pitchify-state .plan-anchor-name{ color:var(--d-blue); }
.pitchify-state .plan-anchor-icon{ color:var(--d-blue); }
.pitchify-state .switcher-label, .pitchify-state .switcher-name{ color:var(--d-blue); }
.draftify-state .suite-overlay-box{ background:rgba(55,73,112,0.97); }
.postify-state  .suite-overlay-box{ background:rgba(109,53,53,0.97); }
.pitchify-state .suite-overlay-box{ background:rgba(63,92,65,0.97); }
