/* Bricolage Grotesque (OFL), two static cuts. Everything above 450 maps to Medium,
   so the many inline 600/700/800 weights render Medium as the brand guidelines ask. */
@font-face{font-family:'Bricolage Grotesque';font-weight:100 450;font-style:normal;font-display:swap;src:url('/fonts/bricolage-grotesque-regular.woff2') format('woff2');}
@font-face{font-family:'Bricolage Grotesque';font-weight:451 900;font-style:normal;font-display:swap;src:url('/fonts/bricolage-grotesque-medium.woff2') format('woff2');}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  /* Warm neutrals — kept on the sidebar so Koda's identity sticks. The main
     canvas now uses --app-bg, a tighter near-neutral grey, to read more
     like a working tool than a brochure. */
  --oat:#efefe6;
  --app-bg:#efefe6;          /* main content area background */
  --taupe:#e0decd;
  --taupe2:#d3d0bc;
  --terra:#ff5a30;
  --terra-light:#d02a00;
  --terra-pale:#ffebe6;
  --burgundy:#4c0c00;
  --charcoal:#131313;
  --charcoal2:#1a1a1a;
  --mid:#5A5A58;
  --light:#9A9A98;
  --white:#ffffff;
  /* Status palette — saturated enough to read as a real "tool", with paired
     -bg pastels for low-contrast badges where the saturated fill would be
     too loud. */
  --green:#1D9E75;
  --green-deep:#0F7A59;   /* --green fails 4.5:1 on --green-bg; this clears it */
  --green-bg:#EAF3DE;
  --red:#A32D2D;
  --red-bg:#FCEBEB;
  --amber:#854F0B;
  --amber-bg:#FAEEDA;
  --blue:#185FA5;
  --blue-bg:#E6F1FB;
  --purple:#5a2fbf;
  --purple-bg:#efe9f7;
  --sky:#a0c9cb;              /* Hutch & Co blue — "Scheduled" state chips */
  --font-display:'Bricolage Grotesque',system-ui,-apple-system,sans-serif;
  --font:'Bricolage Grotesque',system-ui,-apple-system,sans-serif;
  --grad-brand:radial-gradient(ellipse 66% 40% at 22% 62%,#a0c9cb 0%,rgba(160,201,203,.8) 28%,rgba(160,201,203,.4) 58%,rgba(160,201,203,.12) 82%,rgba(160,201,203,0) 100%),radial-gradient(ellipse 34% 20% at 52% 100%,rgba(172,201,204,.8) 0%,rgba(172,201,204,0) 100%),radial-gradient(ellipse 30% 40% at 100% 80%,rgba(208,188,178,.7) 0%,rgba(208,188,178,0) 100%),radial-gradient(ellipse 80% 68% at 100% 0%,#ff5a30 0%,rgba(255,90,48,.8) 32%,rgba(234,130,100,.42) 62%,rgba(234,160,136,.12) 84%,rgba(234,160,136,0) 100%),linear-gradient(180deg,#ec6c4c 0%,#ee9a7e 15%,#eac4b2 28%,#e2d4c8 40%,#d4d5cb 50%,#c8d0cb 62%,#c3cac5 82%,#c6c3be 100%);
  /* Letter-spacing tokens from the brand guide (Figma units / 1000):
     -display tightens display headings, -caps tracks all-caps labels wide. */
  --tracking-display:0;
  --tracking-body:0.064em;
  --tracking-caps:0.208em;
  /* Tighter radii — moved away from soft pill-y rounding toward functional
     SaaS edges. Anything that was --radius-lg drops from 16→8; default
     --radius from 10→6. */
  --radius:6px;
  --radius-lg:8px;
  --shadow:0 1px 2px rgba(10,10,10,0.04);
  --shadow-lg:0 4px 16px rgba(10,10,10,0.08);
  /* Premium hairline used on subtle dividers — finer than taupe2. */
  --hairline:rgba(10,10,10,0.07);
  --sidebar-w:220px;
  --sidebar-w-collapsed:72px;
}

html,body{height:100%;font-family:var(--font);color:var(--charcoal);-webkit-font-smoothing:antialiased;}
body{background:radial-gradient(ellipse 1200px 600px at 20% 0%,#f6f6ef 0%,var(--app-bg) 55%) no-repeat,var(--app-bg);background-attachment:scroll;}

/* ── Global animation keyframes ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes scaleIn{from{opacity:0;transform:scale(.94) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}
@keyframes tabSlide{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:translateX(0)}}

/* ── Pages ── */
.page{display:none;min-height:100vh;}
.page.active{display:flex;}

/* ── Boot loader ── */
.page-loader{position:fixed;inset:0;background:var(--charcoal);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;z-index:9999;transition:opacity .22s ease-out;}
.page-loader.hide{opacity:0;pointer-events:none;}
.page-loader-logo{width:125px;height:125px;display:block;}

/* ── Auth pages (full-bleed, immersive) ─────────────────────────── */
#page-auth{
  align-items:center;justify-content:center;
  min-height:100vh;min-height:100dvh;
  background:var(--grad-brand);
  position:relative;overflow-y:auto;overflow-x:hidden;
  padding:24px;
}
.auth-mark{display:block;width:76px;height:auto;margin:0 auto 30px;}
.auth-wrap{
  width:100%;max-width:400px;
  position:relative;z-index:1;
  padding:0;
  margin:auto; /* overflow-safe centering — tall forms scroll instead of clipping at the top */
}
.auth-card{
  background:var(--white);
  padding:32px 28px;border-radius:16px;box-shadow:0 24px 60px -24px rgba(76,12,0,.4);
}
#page-auth .btn-primary{background:var(--terra);color:var(--white);}
#page-auth .btn-primary:hover{background:var(--terra-light);box-shadow:0 4px 14px rgba(255,90,48,.3);}
.auth-title{
  font-family:var(--font-display);
  font-size:30px;font-weight:800;letter-spacing:-0.035em;
  color:var(--charcoal);
  text-align:center;
  margin-bottom:0.5rem;line-height:1.1;
}
.auth-desc{
  text-align:center;
  font-size:14px;color:var(--mid);
  margin-bottom:2rem;line-height:1.55;
}
.auth-desc a{color:var(--charcoal);font-weight:600;text-decoration:underline;cursor:pointer;}
.auth-desc a:hover{color:var(--terra);}
/* Foot link below the form — in flow so tall forms push it down instead of overlapping */
.auth-foot{
  margin-top:2rem;
  text-align:center;font-size:12px;color:var(--mid);
}
.auth-foot a{color:var(--charcoal);text-decoration:none;margin:0 8px;}
.auth-foot a:hover{color:var(--charcoal);}

/* ── Forms ── */
.field{margin-bottom:1rem;}
.field label{display:block;font-size:12px;font-weight:600;color:var(--mid);margin-bottom:5px;}
.field input{width:100%;padding:11px 14px;border:1.5px solid var(--taupe2);border-radius:var(--radius);background:var(--white);color:var(--charcoal);font-family:var(--font);font-size:15px;transition:border-color .18s,box-shadow .18s;-webkit-appearance:none;cursor:text;caret-color:var(--terra);}
.field textarea{caret-color:var(--terra);cursor:text;}
.field input:focus{outline:none;border-color:var(--charcoal);box-shadow:0 0 0 3px rgba(33,32,31,0.07);}
.field input:hover:not(:focus){border-color:var(--taupe);}
.field textarea:hover:not(:focus){border-color:var(--taupe);}
.field select:hover:not(:focus){border-color:var(--taupe);}
.field input::placeholder{color:var(--light);}

/* Password field — eye toggle perfectly centred on the input via a wrapper
   so the optional checklist below can grow without shifting the icon. */
.password-input-wrap{position:relative;}
.password-input-wrap input{width:100%;padding-right:40px;}
.password-toggle{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--light);cursor:pointer;padding:0;line-height:0;transition:color .15s;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;box-shadow:none;}
.password-toggle:hover{color:var(--charcoal);}
.password-toggle:focus{outline:none;}
.password-toggle:focus-visible{outline:1px dashed currentColor;outline-offset:3px;border-radius:2px;}
.password-toggle .pw-eye-off{display:none;}
.password-toggle.shown .pw-eye{display:none;}
.password-toggle.shown .pw-eye-off{display:block;}
.password-checklist{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px;}
.password-checklist li{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--mid);}
.password-checklist li.ok{color:var(--green);}
.password-checklist .pw-mark{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:var(--taupe);color:var(--mid);font-size:9px;font-weight:700;flex-shrink:0;}
.password-checklist li.ok .pw-mark{background:var(--green);color:#fff;}

.btn{width:100%;padding:13px;border:none;border-radius:var(--radius);font-family:var(--font);font-size:15px;font-weight:600;cursor:pointer;transition:background .18s,transform .1s,box-shadow .18s;display:flex;align-items:center;justify-content:center;gap:8px;}
.btn-primary{background:var(--t6);color:var(--oat);}
.btn-primary:hover{background:var(--t5);box-shadow:0 4px 14px rgba(76,12,0,.25);}
.btn-primary:active{transform:scale(.98);box-shadow:none;}
.btn-primary:disabled{opacity:0.5;cursor:not-allowed;transform:none;box-shadow:none;}
.btn-ghost{background:transparent;color:var(--mid);font-size:13px;padding:10px;}
.btn-ghost:hover{color:var(--charcoal);}
.btn-ghost:active{transform:scale(.97);}
.btn-soft{background:var(--taupe);color:var(--charcoal);}
.btn-soft:hover{background:var(--taupe2);}
.btn-soft:active{transform:scale(.98);}

.auth-switch{text-align:center;margin-top:1.25rem;font-size:13px;color:var(--mid);}
.auth-switch a{color:var(--charcoal);font-weight:600;text-decoration:none;cursor:pointer;}
.auth-switch a:hover{color:var(--terra);}
.signup-type-row{display:flex;gap:4px;background:var(--oat);border:1px solid var(--taupe2);border-radius:8px;padding:3px;margin-bottom:1.25rem;}
.signup-type-btn{flex:1;padding:6px 10px;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;background:transparent;color:var(--mid);font-family:var(--font);transition:background .15s,color .15s;}
.signup-type-btn.active{background:#fff;color:var(--charcoal);box-shadow:0 1px 3px rgba(0,0,0,.08);}
.viewer-picker-card{display:flex;align-items:center;gap:14px;padding:16px 18px;background:#fff;border:1px solid var(--taupe2);border-radius:var(--radius-lg);cursor:pointer;transition:border-color .15s,box-shadow .15s;}
.viewer-picker-card:hover{border-color:var(--charcoal);box-shadow:var(--shadow);}
.viewer-picker-avatar{width:40px;height:40px;border-radius:50%;background:var(--oat);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;color:var(--charcoal);flex-shrink:0;}
.viewer-picker-name{font-size:14px;font-weight:600;color:var(--charcoal);}
.viewer-picker-org{font-size:12px;color:var(--mid);margin-top:2px;}
.viewer-picker-label{font-size:12px;font-weight:600;color:var(--light);margin-bottom:10px;}
.viewer-picker-card-pending{cursor:default;}
.viewer-picker-card-pending:hover{border-color:var(--taupe2);box-shadow:none;}
.viewer-theme .viewer-picker-card-pending:hover{border-color:var(--taupe2);box-shadow:none;}

.divider{display:flex;align-items:center;gap:12px;margin:1.25rem 0;color:var(--light);font-size:12px;}
.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--taupe2);}
.btn-google,.btn-apple{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:11px;border:1.5px solid var(--taupe2);border-radius:var(--radius);background:#fff;color:var(--charcoal);font-family:var(--font);font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;transition:border-color .18s,box-shadow .18s;}
.btn-google:hover,.btn-apple:hover{border-color:var(--mid);box-shadow:0 2px 8px rgba(10,10,10,.06);}
.btn-google:active,.btn-apple:active{transform:scale(.98);}
.btn-apple{margin-top:10px;}

/* OTP inputs */
.otp-wrap{display:flex;gap:6px;margin-bottom:1.5rem;}
.otp-wrap input{flex:1;min-width:0;text-align:center;font-size:20px;font-weight:700;font-family:var(--font-display);padding:10px 2px;letter-spacing:0.02em;}
.otp-remember{display:block;text-align:center;font-size:13px;color:var(--charcoal);margin:-6px 0 1.25rem;cursor:pointer;user-select:none;}
.otp-remember input{width:14px;height:14px;accent-color:var(--terra);vertical-align:-2px;margin-right:6px;cursor:pointer;}
.otp-remember span{display:block;font-size:12px;color:var(--light);margin-top:2px;}

/* ── Alerts ── */
.alert{padding:10px 14px;border-radius:var(--radius);font-size:13px;margin-bottom:1rem;display:none;}
.alert.show{display:block;}
.alert-error{background:var(--red-bg);color:var(--red);}
.alert-success{background:var(--green-bg);color:var(--green);}

/* ── App shell ── */
#page-app{display:none;}
/* "Floating cards" frame — both sidebar and main content sit as rounded
   panels on a slightly darker outer background, with a small gap between
   them. Matches the Foreplay-style bevelled-edge layout. */
#page-app.active{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;align-items:start;gap:10px;padding:10px;transition:grid-template-columns .2s ease;background:#e4ddd2;}
#page-app.sidebar-collapsed{grid-template-columns:var(--sidebar-w-collapsed) 1fr;}

.sidebar{background:linear-gradient(180deg,#faf5ee 0%,var(--oat) 60%,#f2ede7 100%);display:flex;flex-direction:column;position:sticky;top:10px;height:calc(100vh - 20px);height:calc(100dvh - 20px);overflow-y:auto;overflow-x:hidden;z-index:50;border-radius:14px;box-shadow:0 1px 2px rgba(10,10,10,0.04),0 8px 22px -8px rgba(10,10,10,0.08);scrollbar-width:thin;scrollbar-color:rgba(255,90,48,0.35) transparent;}
.sidebar::-webkit-scrollbar{width:8px;}
.sidebar::-webkit-scrollbar-track{background:transparent;}
.sidebar::-webkit-scrollbar-thumb{background:rgba(255,90,48,0.32);border-radius:100px;border:2px solid var(--oat);background-clip:padding-box;transition:background .18s;}
.sidebar:hover::-webkit-scrollbar-thumb{background:rgba(255,90,48,0.55);background-clip:padding-box;}
.sidebar::-webkit-scrollbar-thumb:hover{background:rgba(255,90,48,0.75);background-clip:padding-box;}
.sidebar-logo{padding:1.5rem 1.25rem 1.25rem;border-bottom:1px solid var(--hairline);}
.sidebar-logo-img{height:22px;width:auto;display:block;}
.sidebar-org{font-size:11px;color:rgba(10,10,10,0.45);margin-top:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:0.01em;line-height:1.2;}

.nav{flex:1;padding:0.75rem 0;overflow-y:auto;}
.nav-item{display:flex;align-items:center;gap:10px;padding:7px 1.25rem;font-size:13px;color:rgba(10,10,10,0.6);cursor:pointer;border-left:2px solid transparent;transition:background .18s,color .18s,border-color .18s;user-select:none;}
.nav-item:hover{background:rgba(10,10,10,0.04);color:var(--charcoal);}
.nav-item:active{background:rgba(10,10,10,0.06);}
.nav-item.active{color:var(--terra);border-left-color:var(--terra);background:var(--terra-pale);}
.nav-item svg{flex-shrink:0;width:16px;height:16px;opacity:0.78;transition:opacity .15s;}
.nav-item:hover svg,.nav-item.active svg{opacity:1;}
.nav-section{font-family:var(--font-display);font-size:11.5px;font-weight:600;color:rgba(10,10,10,0.4);padding:1rem 1.25rem 0.375rem;}

/* ── Sidebar collapse (desktop) ─────────────────────────────── */
.sidebar-collapse-btn{display:none;align-items:center;justify-content:center;width:26px;height:26px;margin:0;border:none;border-radius:6px;background:transparent;color:rgba(10,10,10,0.4);cursor:pointer;flex-shrink:0;transition:background .15s,color .15s;}
.sidebar-collapse-btn:hover{background:rgba(10,10,10,0.05);color:var(--charcoal);}
.sidebar-collapse-btn svg{width:13px;height:13px;}
/* Lock icon mirrors the pin state: closed = locked expanded, open = icon
   rail (hover-flyout) mode. */
.sidebar-collapse-btn .lock-open{display:none;}
.sidebar.collapsed .sidebar-collapse-btn .lock-closed{display:none;}
.sidebar.collapsed .sidebar-collapse-btn .lock-open{display:block;}

.sidebar-footer{padding:1rem 1.25rem;border-top:1px solid rgba(10,10,10,0.06);}
.sidebar-feedback-btn{display:flex;align-items:center;gap:6px;width:100%;background:none;border:none;cursor:pointer;font-family:var(--font);font-size:12px;font-weight:600;color:rgba(10,10,10,0.5);padding:0 0 10px;transition:color .15s;text-align:left;}
.sidebar-feedback-btn:hover{color:var(--terra);}
.beta-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:20px;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:var(--terra-pale);color:var(--terra);flex-shrink:0;}
.user-pill{display:flex;align-items:center;gap:6px;}
.user-avatar{width:28px;height:28px;border-radius:50%;background:var(--terra-pale);color:var(--terra);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;font-family:var(--font-display);}
.user-name{font-size:12px;color:rgba(10,10,10,0.7);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
/* Account settings, the tour and sign out live in the ⋯ menu beside your name. */
.sidebar-more-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:6px;background:transparent;color:rgba(255,255,255,0.55);cursor:pointer;flex-shrink:0;transition:background .15s,color .15s;}
.sidebar-more-btn:hover,.sidebar-more-btn.open{background:rgba(255,255,255,0.1);color:#fff;}
.sidebar-more-btn svg{width:14px;height:14px;}

.main{background:var(--oat);min-height:calc(100vh - 20px);border-radius:14px;box-shadow:0 1px 2px rgba(10,10,10,0.04),0 8px 22px -8px rgba(10,10,10,0.08);}
.view{display:none;padding:2rem;max-width:1100px;}
#view-dashboard,#view-client{max-width:1400px;}
@media(min-width:1025px){#view-client.view-flush{padding:12px;max-width:none;}.view-flush .inbox-shell{height:calc(100vh - 44px);}}
.view.active{display:block;animation:fadeUp .32s cubic-bezier(.22,1,.36,1) backwards;}
#dash-tab-calendar,#dash-tab-inbox{animation:fadeIn .2s ease-out;}
.sk-card{height:88px;border-radius:14px;background:linear-gradient(90deg,var(--taupe) 25%,#efe9e2 50%,var(--taupe) 75%);background-size:200% 100%;animation:autoShimmer 1.3s infinite;}
@media (hover:none){
  .client-card{transition:border-color .15s,background .15s,transform .12s;}
  .client-card:active{transform:scale(.98);}
  .nav-item:active{background:rgba(10,10,10,.06);}
}
@media (prefers-reduced-motion:reduce){
  .view.active,[id^="ct-"],#dash-tab-calendar,#dash-tab-inbox{animation:none!important;}
}

/* ── Upgrade-to-org plan picker ── */
.upgrade-plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.upgrade-plan-card{position:relative;text-align:left;background:#fff;border:1.5px solid var(--taupe2);border-radius:10px;padding:12px 14px;cursor:pointer;font-family:var(--font);transition:border-color .15s,box-shadow .15s;}
.upgrade-plan-card:hover{border-color:var(--mid);}
.upgrade-plan-card.selected{border-color:var(--terra);box-shadow:0 0 0 3px var(--terra-pale);}
.upgrade-plan-badge{position:absolute;top:-8px;right:10px;background:var(--terra);color:#fff;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:10px;}
.upgrade-plan-name{font-size:14px;font-weight:700;color:var(--charcoal);}
.upgrade-plan-price{font-family:var(--font-display);font-size:16px;font-weight:800;color:var(--charcoal);margin:2px 0 4px;}
.upgrade-plan-blurb{font-size:11.5px;color:var(--mid);line-height:1.4;}

/* ── View headers ── */
.view-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:2rem;gap:1rem;flex-wrap:wrap;}
/* Titles were dropped — a header left with a lone action group keeps it right-aligned. */
.view-header>:only-child{margin-left:auto;}
.view-title{font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:var(--tracking-display);color:var(--charcoal);}
.view-subtitle{font-size:13px;color:var(--mid);margin-top:3px;}

/* ── Media library ── */
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin-top:18px;}
.media-grid-loading{grid-column:1/-1;color:var(--light);font-size:13px;padding:24px 0;}
.media-card{background:var(--white);border:1px solid var(--taupe);border-radius:8px;overflow:hidden;cursor:pointer;transition:border-color .12s;}
.media-card:hover{border-color:var(--taupe2);}
.media-card-visual{position:relative;aspect-ratio:1;background:var(--oat);}
.media-card-visual img,.media-card-visual video{width:100%;height:100%;object-fit:cover;display:block;}
.media-card-play{position:absolute;left:8px;bottom:8px;width:24px;height:24px;border-radius:50%;background:rgba(26,26,26,.65);color:#fff;display:flex;align-items:center;justify-content:center;}
.media-card-del{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:6px;border:none;background:rgba(26,26,26,.55);color:#ffb3a7;font-size:16px;line-height:1;cursor:pointer;display:none;align-items:center;justify-content:center;}
.media-card:hover .media-card-del{display:flex;}
.media-card-del:hover{background:#c0392b;color:#fff;}
.media-card-meta{padding:8px 10px;}
.media-card-name{font-size:12px;font-weight:600;color:var(--charcoal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.media-card-sub{font-size:11px;color:var(--light);margin-top:2px;}
.media-card-pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--mid);}
.media-card-uploading{pointer-events:none;opacity:.75;}
.media-card-move{position:absolute;top:6px;right:44px;width:28px;height:28px;border-radius:6px;border:none;background:rgba(26,26,26,.55);color:#fff;cursor:pointer;display:none;align-items:center;justify-content:center;padding:0;}
.media-card:hover .media-card-move{display:flex;}
.media-card-move:hover{background:var(--charcoal);}
.media-card-move svg{width:14px;height:14px;}
@media (pointer:coarse){.media-card-move,.media-card-del{display:flex;}}
/* Folder rail: general media menu on the left, folders (nested) below it */
.media-layout{display:flex;gap:20px;align-items:flex-start;margin-top:18px;}
.media-rail{width:190px;flex-shrink:0;display:flex;flex-direction:column;gap:2px;position:sticky;top:12px;}
.media-rail-item{display:flex;align-items:center;gap:8px;width:100%;border:none;background:none;text-align:left;font-family:var(--font);font-size:12.5px;font-weight:600;color:var(--mid);padding:7px 10px;border-radius:7px;cursor:pointer;}
.media-rail-item:hover{background:rgba(26,26,26,.05);}
.media-rail-item.active{background:var(--terra-pale);color:var(--terra);}
.media-rail-item svg{width:14px;height:14px;flex-shrink:0;}
.media-rail-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.media-rail-count{font-size:11px;font-weight:500;color:var(--light);flex-shrink:0;}
.media-rail-item.active .media-rail-count{color:var(--terra);}
.media-rail-new{border:none;background:none;text-align:left;font-family:var(--font);font-size:12.5px;font-weight:600;color:var(--light);padding:7px 10px;border-radius:7px;cursor:pointer;margin-top:6px;}
.media-rail-new:hover{color:var(--terra);}
.media-main{flex:1;min-width:0;}
.media-main .media-grid{margin-top:0;}
@media (max-width:768px){
  .media-layout{flex-direction:column;gap:12px;}
  .media-rail{position:static;width:100%;flex-direction:row;flex-wrap:wrap;}
  .media-rail-item{width:auto;padding-left:10px !important;}
  .media-rail-new{margin-top:0;}
}
.media-crumb{display:flex;align-items:center;gap:8px;margin-bottom:14px;font-size:13px;flex-wrap:wrap;}
.media-crumb-name{font-weight:600;color:var(--charcoal);}
.media-crumb-actions{margin-left:auto;display:flex;gap:8px;}
.media-move-menu{position:fixed;z-index:1300;background:var(--white);border:1px solid var(--taupe);border-radius:8px;box-shadow:0 8px 24px rgba(26,26,26,.12);padding:4px;min-width:150px;max-height:260px;overflow-y:auto;}
.media-move-menu button{display:block;width:100%;text-align:left;border:none;background:none;padding:7px 10px;font-size:13px;color:var(--charcoal);cursor:pointer;border-radius:5px;font-family:var(--font);}
.media-move-menu button:hover{background:var(--oat);}
.media-move-none{padding:7px 10px;font-size:12px;color:var(--light);}
.media-picker-group{grid-column:1/-1;font-size:12px;font-weight:600;color:var(--mid);margin:6px 0 -4px;}
.pm-zone-library-btn{margin-top:6px;border:none;background:none;color:var(--mid);font-size:12px;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px;}
.pm-zone-library-btn:hover{color:var(--charcoal);}
.media-picker-overlay{position:fixed;inset:0;background:rgba(26,26,26,.45);z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px;}
.media-picker{background:var(--white);border-radius:10px;width:min(720px,100%);max-height:80vh;overflow-y:auto;padding:18px 20px 20px;}
.media-picker-head{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--charcoal);}
.media-picker-close{border:none;background:none;font-size:20px;color:var(--light);cursor:pointer;line-height:1;}
.media-picker-close:hover{color:var(--charcoal);}
.media-picker-grid{margin-top:14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:12px 10px;}
.media-pick-tile{cursor:pointer;min-width:0;}
.media-pick-thumb{position:relative;aspect-ratio:1;border-radius:6px;overflow:hidden;background:var(--oat);border:1px solid var(--taupe);}
.media-pick-tile:hover .media-pick-thumb{border-color:var(--taupe2);}
.media-pick-thumb img,.media-pick-thumb video{width:100%;height:100%;object-fit:cover;display:block;}
.media-pick-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:20px;height:20px;border-radius:50%;background:rgba(26,26,26,.6);color:#fff;display:flex;align-items:center;justify-content:center;}
.media-pick-name{margin-top:4px;font-size:11px;color:var(--mid);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* Hero cover strip at the top of the client Overview. Falls back to a soft
   gradient derived from the client's brand colour when no image is set. */
.cd-cover{
  position:relative;
  height:120px;
  border-radius:12px;
  margin-bottom:18px;
  overflow:hidden;
  transition:height .25s ease;
}
/* Empty state — a clear dashed placeholder so it reads as "add a cover",
   not as accidental blank space. */
.cd-cover:not(.has-image){
  background:transparent;
  border:1.5px dashed var(--taupe2);
  cursor:pointer;
}
.cd-cover:not(.has-image):hover{border-color:var(--terra-light);background:var(--terra-pale);}
.cd-cover:not(.has-image) .cd-cover-edit{display:none;}
.cd-cover.has-image{height:180px;}
.cd-cover-empty{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  color:var(--light);
  font-size:13px;
  font-weight:500;
  cursor:pointer;
}
.cd-cover.has-image .cd-cover-empty{display:none;}
.cd-cover-empty svg{width:18px;height:18px;opacity:.85;}
.cd-cover-edit{
  position:absolute;
  top:12px;
  right:12px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 11px;
  border:none;
  border-radius:7px;
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  color:var(--charcoal);
  font-family:var(--font);
  font-size:12px;
  font-weight:600;
  cursor:pointer;
  opacity:0;
  transition:opacity .15s, background .15s;
}
.cd-cover:hover .cd-cover-edit{opacity:1;}
.cd-cover-edit:hover{background:rgba(255,255,255,.95);}
/* Touch devices have no hover — keep the change-cover affordance visible. */
@media(hover:none){.cd-cover.has-image .cd-cover-edit{opacity:1;}}

/* Inline "i" info icon next to each tab title — hover for a short explainer
   of what that tab is for. Tooltip anchored to the icon's left edge so it
   can't overflow the right of the page. */
.tab-info{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:10px;border-radius:50%;background:var(--taupe);color:var(--mid);font-size:11px;font-weight:700;font-family:Georgia,serif;font-style:italic;border:none;cursor:help;position:relative;vertical-align:5px;transition:background .15s,color .15s;}
.tab-info:hover{background:var(--charcoal);color:#fff;}
.tab-info::after{
  content:attr(data-tip);
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  background:var(--charcoal);
  color:#fff;
  padding:10px 13px;
  border-radius:7px;
  font-size:12px;
  font-weight:400;
  font-style:normal;
  font-family:var(--font);
  line-height:1.55;
  letter-spacing:0;
  width:max-content;
  max-width:340px;
  white-space:normal;
  text-align:left;
  opacity:0;
  pointer-events:none;
  transform:translateY(-4px);
  transition:opacity .15s,transform .15s;
  z-index:500;
  box-shadow:0 6px 18px rgba(0,0,0,.18);
}
.tab-info::before{
  content:'';
  position:absolute;
  top:calc(100% + 4px);
  left:5px;
  border:6px solid transparent;
  border-bottom-color:var(--charcoal);
  opacity:0;
  transition:opacity .15s,transform .15s;
  transform:translateY(-4px);
}
.tab-info:hover::after,
.tab-info:hover::before{opacity:1;transform:translateY(0);}

/* ── Stat cards ── */
/* Flat mono-terra widgets (ui-previews/03-mono-terra.html): tinted fills,
   no border, no shadow, 14px radius. */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:1.5rem;}
.stat-card{background:var(--white);border:none;border-radius:14px;padding:18px 22px;cursor:default;}
.stat-label{font-family:var(--font-display);font-size:12px;font-weight:600;color:var(--burgundy);opacity:.7;margin-bottom:10px;}
.stat-val{font-family:var(--font-display);font-size:34px;font-weight:800;color:var(--charcoal);letter-spacing:var(--tracking-display);line-height:1;}/* Dashboard stat row — terra-scale colour blocking per the guide; the hero
   is the day's workload, every card is a click-through. */
#view-dashboard .stat-card{cursor:pointer;transition:transform .12s;position:relative;}
#view-dashboard .stat-card:hover{transform:translateY(-1px);}
#view-dashboard .stat-card::after{content:'\203A';position:absolute;top:14px;right:16px;font-size:16px;line-height:1;opacity:.35;transition:opacity .12s,transform .12s;}
#view-dashboard .stat-card:hover::after{opacity:.8;transform:translateX(2px);}
#view-dashboard .stat-card:nth-child(1){grid-column:span 2;background:var(--t4);}
#view-dashboard .stat-card:nth-child(1) .stat-label{color:rgba(255,255,255,0.78);opacity:1;}
#view-dashboard .stat-card:nth-child(1) .stat-val{color:#fff;}
#view-dashboard .stat-card:nth-child(2){background:var(--t2);}
#view-dashboard .stat-card:nth-child(4){background:var(--oat);}
#view-dashboard .stat-card:nth-child(4) .stat-val{color:var(--mid);}
/* Dark widget variant — deep t6 fill, cream text (guide s6) */
.stat-card.w-dark{background:var(--t6);}
.stat-card.w-dark .w-cap{color:rgba(255,255,255,0.78);opacity:1;}
.stat-card.w-dark p{color:rgba(255,255,255,0.85);}
/* Caps label inside flat widgets */
.w-cap{font-family:var(--font-display);font-size:12px;font-weight:600;color:var(--burgundy);opacity:.7;}

/* ── Buttons ── */
.btn-sm{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;font-family:var(--font);font-size:12.5px;font-weight:500;border:1px solid transparent;cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .08s;text-decoration:none;line-height:1.4;}
.btn-sm:active{transform:scale(.96)!important;}
.btn-sm:disabled{opacity:.5;cursor:not-allowed;pointer-events:none;}
/* Keep hover alive on disabled publish buttons so their title tooltip shows. */
#pm-schedule-btn:disabled,#pm-postnow-btn:disabled{pointer-events:auto;}
.pm-close-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none;}

/* Composer time picker dropdown */
.pm-time-wrap{position:relative;display:inline-block;}
.pm-time-drop{position:absolute;top:calc(100% + 4px);left:0;z-index:60;background:#fff;border:1px solid var(--taupe2);border-radius:8px;box-shadow:0 6px 24px rgba(0,0,0,.12);padding:4px;display:flex;gap:2px;}
.pm-time-col{max-height:216px;overflow-y:auto;display:flex;flex-direction:column;scrollbar-width:thin;}
.pm-time-col + .pm-time-col{border-left:1px solid var(--oat);}
.pm-time-opt{border:none;background:none;font-family:var(--font);font-size:13px;color:var(--charcoal);padding:6px 14px;border-radius:6px;cursor:pointer;text-align:center;font-variant-numeric:tabular-nums;}
.pm-time-opt:hover{background:var(--oat);}
.pm-time-opt.sel{background:var(--oat);font-weight:600;color:var(--terra);}
.btn-dark{background:var(--t6);color:#fff;border-color:var(--t6);}
.btn-dark:hover{background:var(--t5);border-color:var(--t5);}
.btn-outline{background:#fff;color:var(--charcoal);border:1px solid var(--taupe2);}
.btn-outline:hover{border-color:var(--terra);color:var(--terra);background:#fffaf7;}

/* ── Action-hierarchy tiers (Sept 2026 rebuild): every button is glow / dark / outline / ghost / danger ── */
.btn-sm.btn-ghost{background:transparent;border-color:transparent;color:var(--mid);font-size:12.5px;padding:6px 12px;}
.btn-sm.btn-ghost:hover{color:var(--charcoal);background:var(--oat);}
.link-quiet{background:none;border:none;font-family:var(--font);font-size:12px;color:var(--mid);text-decoration:underline;text-underline-offset:2px;cursor:pointer;padding:4px 2px;}
.link-quiet:hover{color:var(--charcoal);}
.kdrop-item.kdrop-danger{color:#c0392b;}
.kdrop-item.kdrop-danger:hover{background:#fff0ee;}
.kdrop-div{height:1px;background:var(--taupe);margin:4px 6px;}
@media (pointer:coarse){.kdrop-item{padding:11px 12px;font-size:13px;}.kdrop-div{margin:5px 6px;}}

/* ── Client cards ── */
.client-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;}
.client-sections{display:flex;flex-direction:column;gap:1.75rem;}
.client-section-head{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:12px;font-weight:600;color:var(--mid);margin-bottom:.85rem;}
.client-section-head .cs-count{font-family:var(--font);font-size:11px;font-weight:600;color:var(--light);background:var(--taupe);border-radius:20px;padding:1px 8px;}
.client-card{position:relative;background:#fff;border:1px solid var(--taupe2);border-radius:14px;padding:1rem 1.25rem;cursor:pointer;transition:border-color .15s,background .15s;}
.client-kebab{position:absolute;top:8px;right:8px;background:none;border:none;padding:4px;cursor:pointer;line-height:0;color:var(--taupe2);border-radius:6px;transition:background .15s,color .15s;}
.client-card:hover .client-kebab{color:var(--light);}
.client-kebab:hover{background:var(--taupe);color:var(--charcoal);}
.client-menu{position:absolute;top:36px;right:8px;background:#fff;border:1px solid var(--taupe2);border-radius:10px;box-shadow:0 8px 24px rgba(10,10,10,.12);padding:5px;min-width:158px;z-index:20;display:none;flex-direction:column;}
.client-menu.open{display:flex;}
.client-menu button{background:none;border:none;text-align:left;padding:8px 10px;font-size:13px;font-weight:500;color:var(--charcoal);cursor:pointer;border-radius:6px;font-family:var(--font);}
.client-menu button:hover{background:var(--taupe);}
.fav-star{fill:var(--terra);vertical-align:middle;margin-left:5px;position:relative;top:-1px;}
.grp-opts{display:flex;flex-wrap:wrap;gap:8px;}
.grp-opt{border:1px solid var(--taupe2);background:#fff;border-radius:8px;padding:6px 12px;font-size:12.5px;font-weight:600;color:var(--charcoal);cursor:pointer;transition:border-color .15s,background .15s;}
.grp-opt:hover{border-color:var(--terra);}
.grp-opt.on{background:var(--terra);border-color:var(--terra);color:#fff;}
.grp-input{flex:1;border:1px solid var(--taupe2);border-radius:8px;padding:8px 11px;font-size:13px;font-family:var(--font);color:var(--charcoal);}
.grp-input:focus{outline:none;border-color:var(--terra);}
.client-card:hover{border-color:var(--terra);background:#fffaf7;}
.client-card:active{background:#fdebe3;}
.client-card.client-locked{opacity:.55;}
.client-card.client-locked:hover{opacity:.8;}
.client-card-top{display:flex;align-items:center;gap:12px;margin-bottom:1rem;}
.client-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--white);flex-shrink:0;font-family:var(--font-display);overflow:hidden;}
.client-avatar img{width:100%;height:100%;object-fit:cover;display:block;background:#fff;}
.cd-photo-wrap{display:flex;align-items:center;gap:14px;}
.cd-facts{font-size:12.5px;color:var(--mid);margin-top:3px;}
/* Layout-edit mode: only the edit actions (Reset / Cancel / Apply / Save) —
   Share and the header kebab step aside. */
body.ov-editing #cal-invite-btn,body.ov-editing .kdrop.cd-more-drop{display:none;}
.cd-photo{width:56px;height:56px;border-radius:14px;flex-shrink:0;overflow:hidden;background:var(--taupe);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;color:var(--white);font-size:18px;}
.cd-photo img{width:100%;height:100%;object-fit:cover;display:block;background:#fff;}
.cp-photo-row{display:flex;align-items:center;gap:14px;margin-bottom:2rem;}
.cp-photo{width:72px;height:72px;border-radius:50%;overflow:hidden;background:var(--taupe);display:flex;align-items:center;justify-content:center;cursor:pointer;border:2px dashed var(--taupe2);color:var(--light);font-size:11px;text-align:center;line-height:1.2;padding:6px;transition:border-color .15s;}
.cp-photo:hover{border-color:var(--charcoal);}
.cp-photo img{width:100%;height:100%;object-fit:cover;display:block;background:#fff;}

/* Avatar cropper modal — opens after picking a file, forces a square
   crop so circular previews can't chop off corners of a non-square logo. */
.cropper-overlay{position:fixed;inset:0;background:rgba(10,10,10,0.55);display:flex;align-items:center;justify-content:center;z-index:9992;padding:1.25rem;opacity:0;transition:opacity .18s ease;}
.cropper-overlay.open{opacity:1;}
.cropper-panel{background:#fff;border-radius:14px;padding:22px 22px 18px;width:100%;max-width:340px;box-shadow:0 24px 60px -16px rgba(10,10,10,0.4);text-align:center;}
.cropper-title{font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--charcoal);margin-bottom:4px;}
.cropper-sub{font-size:12.5px;color:var(--mid);margin-bottom:16px;line-height:1.5;}
.cropper-viewport{position:relative;width:280px;height:280px;margin:0 auto 14px;border-radius:50%;overflow:hidden;background:#fff;cursor:grab;touch-action:none;box-shadow:0 0 0 1px var(--taupe2),inset 0 0 0 6px rgba(255,255,255,0.9);user-select:none;}
.cropper-viewport-portrait{width:252px;height:448px;border-radius:10px;box-shadow:0 0 0 1px var(--taupe2);}
.cropper-panel-wide{max-width:400px;}
.cropper-stage{height:380px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;}
.cropper-viewport-dyn{width:300px;height:380px;border-radius:10px;box-shadow:0 0 0 1px var(--taupe2);margin:0;}
.cropper-ratios{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-bottom:12px;}
.cropper-warn{font-size:12px;font-weight:600;color:var(--terra);margin-bottom:12px;line-height:1.5;}
.cropper-ratio{font-size:12px;font-weight:600;padding:5px 11px;border:1px solid var(--taupe2);border-radius:7px;background:#fff;color:var(--mid);cursor:pointer;}
.cropper-ratio.active{background:var(--charcoal);color:#fff;border-color:var(--charcoal);}
.cropper-ratio-tag{margin-left:6px;font-size:10px;font-weight:600;color:var(--terra);}
.cropper-ratio.active .cropper-ratio-tag{color:#fff;opacity:.75;}
.cropper-grid{position:absolute;inset:0;pointer-events:none;opacity:.5;}
.cropper-grid::before{content:'';position:absolute;top:0;bottom:0;left:33.33%;right:33.33%;border-left:1px solid #fff;border-right:1px solid #fff;}
.cropper-grid::after{content:'';position:absolute;left:0;right:0;top:33.33%;bottom:33.33%;border-top:1px solid #fff;border-bottom:1px solid #fff;}
.cropper-viewport:active{cursor:grabbing;}
.cropper-viewport img{position:absolute;top:0;left:0;max-width:none;width:auto;height:auto;pointer-events:none;}
.cropper-controls{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:0 4px;}
.cropper-rotate{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:5px 11px;border:1px solid var(--taupe2);border-radius:7px;background:#fff;color:var(--mid);cursor:pointer;font-family:inherit;flex-shrink:0;}
.cropper-rotate svg{width:13px;height:13px;}
.cropper-rotate:hover{border-color:var(--charcoal);color:var(--charcoal);}
.cropper-zoom-label{font-size:12px;font-weight:600;color:var(--light);}
.cropper-zoom{flex:1;accent-color:var(--terra);}
.cropper-actions{display:flex;gap:10px;justify-content:flex-end;}
.client-name{font-size:14px;font-weight:600;color:var(--charcoal);}
.client-biz{font-size:12px;color:var(--mid);margin-top:1px;}
.client-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;}
/* Handles are free text and are often pasted in as a full profile URL — let
   the line truncate rather than run under the badge. */
.client-handles{font-size:12px;color:var(--light);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.client-meta .badge{flex-shrink:0;}
/* Dashboard recent-client state chips — hover swaps them in for the handles
   line on desktop; the mobile compact rows show them always. */
/* Chips overlay the handles line and cross-fade in on hover — the overlay
   (rather than a display flip) is what lets the swap animate. */
.client-meta{position:relative;}
.client-pulse{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%) translateY(3px);display:flex;align-items:center;gap:5px;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;}
.pulse-chip{font-size:10px;font-weight:700;padding:2px 8px;border-radius:9px;background:var(--taupe);color:var(--mid);white-space:nowrap;}
.pulse-chip.hot{background:var(--t2);color:var(--burgundy);}
.pulse-chip.ok{background:var(--green-bg);color:var(--green);}
.client-handles,.client-meta .badge{transition:opacity .18s ease;}
.client-card:hover .client-pulse{opacity:1;transform:translateY(-50%);}
.client-card:hover .client-pulse + .client-handles,
.client-card:hover .client-pulse ~ .badge{opacity:0;}
.badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:600;letter-spacing:0.01em;}
.badge-active{background:var(--green-bg);color:var(--green);}
.badge-paused{background:var(--amber-bg);color:var(--amber);}
.badge-churned{background:var(--red-bg);color:var(--red);}
.badge-prospect{background:var(--blue-bg);color:var(--blue);}
.badge-soon{background:var(--taupe);color:var(--mid);letter-spacing:0.04em;text-transform:uppercase;font-size:10px;font-weight:700;padding:4px 9px;}

/* ── Empty state ── */
.empty{text-align:center;padding:4rem 2rem;}
.empty-icon{width:48px;height:48px;border-radius:12px;background:var(--taupe);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;}
.empty-title{font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-0.03em;color:var(--charcoal);margin-bottom:0.5rem;}
.empty-body{font-size:14px;color:var(--mid);max-width:320px;margin:0 auto 1.5rem;}

/* ── Loading ── */
.spinner{width:18px;height:18px;border:2px solid rgba(249,243,237,0.3);border-top-color:var(--oat);border-radius:50%;animation:spin .6s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ── Toast ── */
#toast{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--charcoal);color:var(--oat);padding:12px 18px;border-radius:10px;font-size:13px;font-weight:500;transform:translateY(80px);opacity:0;transition:all .3s;z-index:10010;max-width:320px;}
#toast.show{transform:translateY(0);opacity:1;}
#toast.success{background:#1D9E75;}
.toast-action{margin-left:14px;border:none;background:none;padding:0;font-family:inherit;font-size:13px;font-weight:700;color:#e8a692;cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
.toast-action:hover{color:#f2c4b6;}
#toast.error{background:#A32D2D;}

/* ── Inbox notification popup — lowkey bottom-right card, sibling of #toast ── */
.inbox-notif{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--white);color:var(--charcoal);border:1px solid var(--taupe2);padding:11px 34px 12px 14px;border-radius:10px;font-size:13px;max-width:320px;min-width:220px;cursor:pointer;transform:translateY(80px);opacity:0;pointer-events:none;transition:transform .3s,opacity .3s,border-color .15s;z-index:999;box-shadow:0 12px 28px -14px rgba(40,12,6,.35);}
.inbox-notif.show{transform:translateY(0);opacity:1;pointer-events:auto;}
.inbox-notif:hover{border-color:var(--terra);}
.inbox-notif-kind{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--mid);margin-bottom:5px;}
.inbox-notif-kind svg{width:13px;height:13px;color:var(--terra);flex-shrink:0;}
.inbox-notif-title{font-weight:600;margin-bottom:1px;}
.inbox-notif-body{color:var(--mid);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.inbox-notif-x{position:absolute;top:5px;right:5px;background:transparent;border:none;color:var(--light);font-size:14px;width:24px;height:24px;border-radius:6px;line-height:1;cursor:pointer;padding:0;}
.inbox-notif-x:hover{color:var(--charcoal);}

/* ── Modal ── */
.modal-overlay{position:fixed;inset:0;background:rgba(10,10,10,0.55);z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .22s;}
.modal-overlay.open{opacity:1;pointer-events:all;}
.modal-overlay > *{transform:scale(.94) translateY(10px);transition:transform .3s cubic-bezier(.22,1,.36,1);}
.modal-overlay.open > *{transform:scale(1) translateY(0);}
body:has(.modal-overlay.open){overflow:hidden;}

/* Viewer profile modal — mono-terra treatment */
.vp-card{background:#fff;border-radius:14px;width:400px;max-width:calc(100vw - 32px);padding:26px 28px 24px;box-shadow:0 8px 32px rgba(0,0,0,.14);}
.vp-head{display:flex;align-items:center;gap:14px;margin-bottom:22px;}
.vp-avatar{width:46px;height:46px;border-radius:50%;background:var(--terra-pale);color:var(--terra);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;font-family:var(--font-display);flex-shrink:0;background-size:cover;background-position:center;}
.vp-crumb{font-size:11px;font-weight:600;color:var(--terra);margin-bottom:4px;}
.vp-title{font-family:var(--font-display);font-size:24px;font-weight:800;letter-spacing:-0.04em;color:var(--charcoal);line-height:1;}
.vp-card .field label{color:var(--burgundy);opacity:.78;}
.vp-avatar-wrap{position:relative;width:46px;height:46px;flex-shrink:0;}
.vp-avatar.has-photo{color:transparent;}
.vp-avatar:hover{filter:brightness(.97);}
.vp-avatar-btn{position:absolute;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;border:2px solid #fff;cursor:pointer;opacity:0;transform:scale(.8);transition:opacity .15s,transform .15s,background .15s;box-shadow:0 2px 6px rgba(10,10,10,.22);}
.vp-avatar-btn svg{width:10px;height:10px;}
.vp-avatar-wrap:hover .vp-avatar-btn,.vp-avatar-btn:focus-visible{opacity:1;transform:scale(1);}
.vp-avatar-change{right:-3px;bottom:-3px;background:var(--terra);color:#fff;}
.vp-avatar-change:hover{background:#ff7842;}
.vp-avatar-x{right:-3px;top:-3px;background:var(--charcoal);color:#fff;}
.vp-avatar-x:hover{background:var(--red);}
.modal{background:var(--white);border-radius:var(--radius-lg);padding:2rem;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);}
.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;}
.modal-title{font-family:var(--font-display);font-size:19px;font-weight:700;letter-spacing:-0.03em;}
.modal-close{background:none;border:none;font-size:20px;color:var(--light);cursor:pointer;line-height:1;padding:4px;}
.modal-close:hover{color:var(--charcoal);}
#cal-viewers-panel .modal-close{position:absolute;top:10px;right:12px;z-index:2;}

/* ── Share sheet (who has access) ── */
.cal-share-card{position:relative;background:#fff;border-radius:12px;width:540px;max-width:calc(100vw - 32px);max-height:85vh;overflow-y:auto;padding:26px;box-shadow:0 8px 32px rgba(0,0,0,.14);}
.cal-share-grab{display:none;}
.cal-share-head{display:flex;align-items:center;gap:4px;margin:-6px 0 12px -10px;}
.cal-share-back{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--mid);cursor:pointer;border-radius:8px;padding:0;}
.cal-share-back:hover{background:var(--oat);color:var(--charcoal);}
.cal-share-label{font-size:13px;font-weight:600;color:var(--charcoal);margin-bottom:6px;}
.cal-share-head .cal-share-label{margin-bottom:0;}
.cal-share-label-sm{font-size:12px;font-weight:600;color:var(--mid);margin:0 0 8px;}
.cal-share-row{display:flex;align-items:center;gap:12px;min-height:56px;border-bottom:1px solid var(--hairline);}
.cal-share-row .user-avatar{width:36px;height:36px;font-size:14px;}
.cal-share-name{font-size:13.5px;font-weight:600;color:var(--charcoal);}
.cal-share-sub{display:block;font-size:11.5px;font-weight:400;color:var(--mid);margin-top:1px;line-height:1.45;}
.cal-share-kebab{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--light);cursor:pointer;padding:0;border-radius:8px;}
.cal-share-kebab:hover{background:var(--oat);color:var(--charcoal);}
.cal-share-row .kdrop-menu{top:calc(100% - 4px);min-width:190px;}
.cal-share-empty{font-size:13px;color:var(--light);padding:8px 0 4px;line-height:1.5;}
.cal-share-primary{width:100%;justify-content:center;height:44px;font-size:14px;font-weight:600;margin-top:16px;gap:8px;}
.cal-share-primary + .cal-share-primary{margin-top:8px;height:40px;font-size:13.5px;font-weight:500;}
.cal-share-modes{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;}
.cal-share-modes .acw-mode{padding:12px 42px 12px 14px;}
#cal-share-add .field{margin-bottom:0;}
#cal-share-add .field + .cal-share-label-sm{margin-top:18px;}
.cal-share-drafts{display:flex;align-items:flex-start;gap:12px;border-top:1px solid var(--taupe2);padding-top:18px;margin-top:22px;cursor:pointer;}
.cal-share-drafts .koda-check{margin-top:1px;}
.cal-share-drafts > span{font-size:13px;font-weight:600;color:var(--charcoal);line-height:1.4;}
.cal-share-hint{text-align:center;font-size:11.5px;color:var(--mid);margin-top:10px;line-height:1.45;}

/* ── Viewer portal (what one person can open) ─────────────── */
.cal-share-default{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:none;background:none;
  font-family:var(--font);border-top:1px solid var(--taupe2);padding:18px 0 0;margin-top:22px;cursor:pointer;color:var(--charcoal);}
.cal-share-default > span{flex:1;min-width:0;font-size:13px;font-weight:600;line-height:1.4;}
.cal-share-default svg{color:var(--light);flex-shrink:0;}
.cal-share-default:hover svg{color:var(--charcoal);}
#cal-share-portal .cal-share-sub{margin:-2px 0 14px;}
.portal-presets{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:6px;}
.portal-preset{font-family:var(--font);font-size:12px;font-weight:500;background:var(--white);color:var(--mid);
  border:1.5px solid var(--hairline);border-radius:99px;padding:6px 12px;cursor:pointer;transition:border-color .15s,color .15s,background .15s;}
.portal-preset:hover{border-color:var(--taupe2);color:var(--charcoal);}
.portal-preset.sel{background:var(--terra-pale);border-color:rgba(255,90,48,.4);color:var(--terra-light);}
.portal-sw{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;background:none;border:none;
  font-family:var(--font);padding:14px 0;border-top:1px solid var(--hairline);cursor:pointer;}
.portal-sw:first-child{border-top:none;}
.portal-sw:disabled{cursor:default;}
.portal-track{position:relative;flex:none;width:34px;height:20px;border-radius:99px;background:var(--taupe2);margin-top:2px;transition:background .16s;}
.portal-track::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:99px;
  background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.18);transition:transform .16s;}
.portal-sw[aria-checked="true"] .portal-track{background:var(--terra);}
.portal-sw[aria-checked="true"] .portal-track::after{transform:translateX(14px);}
.portal-sw[aria-checked="true"]:disabled .portal-track{background:var(--burgundy);}
.portal-body{display:block;min-width:0;}
.portal-t{display:block;font-size:13.5px;font-weight:600;color:var(--charcoal);line-height:1.35;}
.portal-s{display:block;font-size:12px;color:var(--mid);margin-top:5px;line-height:1.5;}
.portal-tag{font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mid);
  background:var(--oat);border-radius:99px;padding:2px 7px;margin-left:7px;vertical-align:1.5px;}
.portal-tag.write{color:var(--terra-light);background:var(--terra-pale);}
.portal-summary{border-top:1px solid var(--taupe2);margin-top:14px;padding-top:14px;font-size:12.5px;color:var(--mid);line-height:1.5;}
.portal-summary strong{color:var(--charcoal);font-weight:600;}
.cal-share-row .kdrop-menu{max-width:230px;}
.kdrop-item.kdrop-item-2{white-space:normal;line-height:1.3;}
.kdrop-sub{display:block;font-size:11px;font-weight:400;color:var(--mid);margin-top:3px;line-height:1.4;}
.kdrop-sub-write{color:var(--terra-light);}
.cal-share-linkbox{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--oat);border-radius:6px;font-size:12.5px;color:var(--charcoal);}
.cal-share-linkbox span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.modal-footer{display:flex;gap:10px;margin-top:1.5rem;justify-content:flex-end;}
/* Export report dialog */
.irp-sub{font-size:12px;color:var(--light);margin-top:4px;max-width:400px;}
.irp-group{margin-bottom:1.1rem;}
.irp-group-label{font-size:12px;font-weight:600;color:var(--mid);margin-bottom:.5rem;}
.irp-select{width:100%;padding:8px 10px;border:1px solid var(--taupe2);border-radius:7px;background:var(--white);font:inherit;font-size:13px;color:var(--charcoal);}
.irp-checks{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;}
.irp-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--charcoal);cursor:pointer;}
.irp-check input{width:15px;height:15px;accent-color:var(--terra);cursor:pointer;}
.irp-check input:disabled{cursor:not-allowed;}
.irp-check input:disabled + span{color:var(--light);}
.irp-check em{color:var(--light);font-style:normal;font-size:11px;}
.irp-actions{display:flex;gap:10px;margin-top:1.5rem;flex-wrap:wrap;}

/* ── Add client page ── */
.ac-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--taupe);}
.ac-section:last-of-type{border-bottom:none;}
.ac-section-label{font-size:12px;font-weight:600;color:var(--light);margin-bottom:1.25rem;}

/* ── Add-client quick-start CTAs (analyse website / brand pack PDF) ──
   Designed to be the obvious first port of call. Terra-tinted background +
   ambient glow so the user can't scroll past them. */

/* Pulsing terra CTA button — used inside the quickstart row */
.btn-cta-glow{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:8px;background:var(--terra);color:#fff;border:none;font-family:var(--font);font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:transform .12s,box-shadow .18s,background .15s;}
.btn-cta-glow:hover{background:var(--terra-light);transform:translateY(-1px);box-shadow:0 6px 16px rgba(255,90,48,.3);}
.btn-cta-glow:active{transform:translateY(0);}
.btn-cta-glow:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;}

/* Mobile: the website-analyse input + button can't sit side-by-side in a
   narrow card without the button spilling off-screen. Stack them, and let the
   single grid column shrink (minmax(0,1fr) instead of 1fr's implicit auto). */
@media(max-width:768px){
}

/* Modifier that turns any button (btn-sm, btn) terra-orange + glowy so
   secondary CTAs feel on-brand instead of generic dark. Combine like
   `class="btn-sm btn-glow"`. */
.btn-glow{background:var(--terra)!important;color:#fff!important;border-color:var(--terra)!important;transition:transform .12s,box-shadow .18s,background .15s;}
.btn-glow:hover{background:var(--terra-light)!important;border-color:var(--terra-light)!important;transform:translateY(-1px);box-shadow:0 6px 16px rgba(255,90,48,.3);}
.btn-glow:active{transform:translateY(0);}
.btn-glow:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none;}

.ac-photo{width:96px;height:96px;border-radius:50%;border:2px dashed var(--taupe2);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--light);transition:border-color .15s,color .15s;overflow:hidden;background:var(--white);position:relative;}
.ac-photo:hover{border-color:var(--charcoal);color:var(--mid);}
.ac-photo span{font-size:10px;text-align:center;line-height:1.3;padding:0 8px;}
.ac-photo img{width:100%;height:100%;object-fit:cover;display:block;background:#fff;}
.ac-photo > div{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;}
.color-swatch-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}
.color-swatch{width:30px;height:30px;border-radius:8px;border:2px solid transparent;cursor:pointer;transition:transform .1s,border-color .1s;flex-shrink:0;}
.color-swatch:hover{transform:scale(1.15);}
.color-swatch.selected{border-color:var(--charcoal);}
.color-input-row{display:flex;gap:8px;align-items:center;margin-top:10px;}
.color-input-row input[type=text]{flex:1;width:100%;padding:11px 14px;border:1.5px solid var(--taupe2);border-radius:var(--radius);background:var(--white);color:var(--charcoal);font-family:var(--font);font-size:14px;}
.color-input-row input[type=text]:focus{outline:none;border-color:var(--charcoal);}
.color-input-row input[type=color]{width:42px;height:42px;border:1.5px solid var(--taupe2);border-radius:var(--radius);padding:2px;cursor:pointer;background:var(--white);flex-shrink:0;}

/* form helpers */
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.field select{width:100%;padding:11px 14px;border:1.5px solid var(--taupe2);border-radius:var(--radius);background:var(--white);color:var(--charcoal);font-family:var(--font);font-size:15px;-webkit-appearance:none;cursor:pointer;}
.field select:focus{outline:none;border-color:var(--charcoal);}
.field textarea{width:100%;padding:11px 14px;border:1.5px solid var(--taupe2);border-radius:var(--radius);background:var(--white);color:var(--charcoal);font-family:var(--font);font-size:14px;resize:vertical;min-height:80px;}
.field textarea:focus{outline:none;border-color:var(--charcoal);}
.field-hint{font-size:11px;color:var(--light);margin-top:-8px;margin-bottom:1rem;}

/* ── Brand intelligence groups ── */

/* ── Brand intelligence completeness card ── */
.ai-completeness-card{background:var(--white);border:none;border-radius:14px;padding:18px 22px;box-shadow:none;display:flex;flex-direction:column;gap:12px;}
.ai-completeness-card .cd-card-head{margin-bottom:0;}
.ai-completeness-bar{height:6px;background:var(--oat);border-radius:100px;overflow:hidden;flex-shrink:0;}
.ai-completeness-fill{height:100%;border-radius:100px;background:var(--t4);transition:width .6s ease;}
.ai-completeness-pct{font-family:var(--font-display);font-size:28px;font-weight:500;line-height:1.1;color:var(--charcoal);}
.ai-completeness-missing{font-size:13px;color:var(--mid);line-height:1.5;}

/* ── Accordion ── */

/* ── Brand colour swatches ── */
.brand-colour-swatch{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:default;}
.brand-colour-swatch-dot{width:52px;height:52px;border-radius:12px;border:0.5px solid rgba(0,0,0,0.08);box-shadow:var(--shadow);position:relative;cursor:pointer;}
.brand-colour-swatch-dot:hover{box-shadow:0 0 0 2px var(--taupe2),var(--shadow);}
.brand-colour-swatch-dot:hover .brand-colour-del{opacity:1;}
.brand-colour-del{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:var(--charcoal);color:var(--oat);border:none;font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;}
.brand-colour-hex{font-size:10px;font-family:monospace;color:var(--mid);text-transform:uppercase;}

/* ── Profile / Brand voice tabs ── */
.cp-section-label{font-family:var(--font-display);font-size:12px;font-weight:600;color:var(--light);margin-bottom:1rem;}
.cp-danger-zone{margin-top:1.5rem;}
.cp-danger-row{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.25rem 1.5rem;border:1px solid #f0c5c5;border-radius:var(--radius-lg);background:#fff7f6;}
.cp-danger-title{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--red);margin-bottom:4px;}
.cp-danger-desc{font-size:12.5px;color:var(--mid);line-height:1.5;max-width:520px;}
.caption-card{background:var(--white);border:0.5px solid var(--taupe2);border-radius:var(--radius-lg);padding:1rem 1.25rem;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow);}
.caption-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.caption-platform{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:100px;font-size:11px;font-weight:600;background:var(--blue-bg);color:var(--blue);}
.caption-platform.tiktok{background:#f0f0f0;color:#333;}
.caption-platform.facebook{background:var(--blue-bg);color:var(--blue);}
.caption-platform.instagram{background:#fce8f3;color:#c13584;}
.caption-platform.general{background:var(--taupe);color:var(--mid);}
.caption-text{font-size:13px;color:var(--charcoal);line-height:1.6;white-space:pre-wrap;word-break:break-word;}
.caption-note{font-size:11px;color:var(--light);font-style:italic;}
.caption-del{background:none;border:none;color:var(--light);cursor:pointer;font-size:16px;line-height:1;padding:2px 4px;transition:color .15s;flex-shrink:0;}
.caption-del:hover{color:var(--red);}
.personality-chip{display:inline-flex;align-items:center;padding:4px 12px;background:var(--terra-pale);color:var(--terra);border-radius:100px;font-size:12px;font-weight:600;}

/* ── Client sidebar ── */
#sidebar-org-content{display:flex;flex-direction:column;flex:1;min-height:0;}
#sidebar-client-content{display:none;flex-direction:column;flex:1;min-height:0;}
/* Client mode: the wordmark and the home button share the top row. */
.sidebar-logo-row{display:flex;align-items:center;gap:10px;padding:18px 14px 12px 20px;border-bottom:none;}
/* Home and the switcher share one row, so home holds the same band whether the
   rail is collapsed or expanded — the pointer stays on it while it opens. */
/* Expanded: home sits beside the switcher and stretches to its height, so the
   pair reads as one control. align-self:stretch rather than a fixed height —
   it then tracks the switcher whatever its content. */
/* No rule under this row: the "Daily" divider below already separates the
   header from the nav, and two lines that close together read as a mistake. */
.sidebar-client-header{display:flex;align-items:stretch;gap:8px;padding:0 12px 2px;}
/* Wordmark -> row and row -> Daily hairline both 12px. The hairline sits at the
   label's centre, so header 2 + divider 4 + half the 13px label lands it there. */
#sidebar-client-content .nav{padding-top:0;}
#sidebar-client-content .nav>.nav-divider:first-child{padding-top:4px;}
.sidebar-client-header .sc-switch{min-width:0;}
/* Home button is always icon-only (expanded + collapsed). Tooltip via
   data-label on hover. */
.sidebar-home-btn{
  display:flex;align-items:center;justify-content:center;
  width:44px;align-self:stretch;margin:0;padding:0;flex-shrink:0;
  background:rgba(10,10,10,0.04);border:none;border-radius:9px;
  color:var(--mid);cursor:pointer;
  transition:background .18s,color .18s;
}
.sidebar-home-btn:hover{background:var(--terra-pale);color:var(--terra);}
.sidebar-home-btn svg{width:14px;height:14px;}
/* The client block doubles as the client switcher button. */
.sc-switch{display:flex;align-items:center;gap:10px;width:100%;padding:8px;border:none;border-radius:10px;background:rgba(255,255,255,0.07);color:inherit;font-family:var(--font);text-align:left;cursor:default;transition:background .15s;}
.sc-switch.can-switch{cursor:pointer;}
.sc-switch.can-switch:hover,.sc-switch.open{background:rgba(255,255,255,0.14);}
.sc-avatar{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--white);flex-shrink:0;overflow:hidden;font-family:var(--font-display);}
.sc-text{flex:1;min-width:0;}
.sc-name{display:block;font-size:13.5px;font-weight:700;color:var(--charcoal);letter-spacing:-0.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sc-sub{display:block;font-size:11px;color:rgba(10,10,10,0.5);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize;}
.sc-updown{display:none;width:14px;height:14px;color:rgba(255,255,255,0.55);flex-shrink:0;}
.sc-switch.can-switch .sc-updown{display:block;}
/* Client switcher menu: search, recent, A–Z in a scroll, inactive clients folded away. */
.ksel-menu.sc-switch-menu{width:300px;max-height:none;overflow:visible;}
.sc-switch-find{display:block;width:calc(100% - 4px);margin:2px 2px 4px;padding:7px 9px;border:1px solid var(--taupe2);border-radius:6px;font-family:var(--font);font-size:12.5px;color:var(--charcoal);background:#fff;}
.sc-switch-find:focus{outline:none;border-color:var(--charcoal);}
.sc-switch-list{max-height:min(420px,60vh);overflow-y:auto;overscroll-behavior:contain;}
.sc-switch-label{font-size:11px;font-weight:600;color:var(--light);padding:8px 10px 3px;}
.ksel-item.sc-switch-item{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:400;}
.sc-switch-av{width:20px;height:20px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;flex-shrink:0;overflow:hidden;}
.sc-switch-av img{width:100%;height:100%;object-fit:cover;}
.sc-switch-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;}
.sc-switch-name b{font-weight:700;}
.sc-switch-count{min-width:16px;height:16px;border-radius:8px;background:var(--terra);color:#fff;font-size:10px;font-weight:700;padding:0 4px;display:inline-flex;align-items:center;justify-content:center;}
.sc-switch-inactive summary{display:flex;align-items:center;list-style:none;color:var(--mid);}
.sc-switch-inactive summary::-webkit-details-marker{display:none;}
.sc-switch-inactive summary::after{content:'\203A';margin-left:auto;color:var(--light);transition:transform .15s;}
.sc-switch-inactive[open] summary::after{transform:rotate(90deg);}
.sc-switch-empty{padding:10px;font-size:12.5px;color:var(--light);}
.sc-switch-hint{display:flex;gap:12px;padding:6px 10px 2px;font-size:11px;color:var(--light);}

/* ════════════════════════════════════════════════════════════════════════
   MONO-TERRA SIDEBAR — deep-terra rail, cream labels, terra-active.
   Promotes the viewer-theme sidebar treatment to the whole agency UI.
   Reference: ui-previews/03-mono-terra.html
   ════════════════════════════════════════════════════════════════════════ */
.sidebar{background:var(--t6);box-shadow:0 1px 2px rgba(40,12,6,.18),0 10px 30px -12px rgba(40,12,6,.45);scrollbar-color:rgba(255,90,48,0.5) transparent;}
.sidebar::-webkit-scrollbar-thumb{border-color:var(--t6);}
.sidebar-logo{border-bottom-color:rgba(255,255,255,0.1);}
.sidebar-logo-img{filter:brightness(0) invert(1);}
.sidebar-org{color:rgba(255,255,255,0.5);}
.nav-item{color:rgba(239,239,230,0.62);}
.nav-item:hover{background:rgba(255,255,255,0.07);color:#fff;}
.nav-item:active{background:rgba(255,255,255,0.1);}
.nav-item.active{color:#fff;background:rgba(255,90,48,0.34);border-left-color:var(--terra);}
.nav-section{color:rgba(255,255,255,0.42);}
.sidebar-home-btn{background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.72);}
.sidebar-home-btn:hover{background:rgba(255,255,255,0.14);color:#fff;}
.sc-name{color:#fff;}
.sc-sub{color:rgba(255,255,255,0.55);}
.sidebar-footer{border-top-color:rgba(255,255,255,0.1);}
.sidebar-feedback-btn{color:rgba(255,255,255,0.55);}
.sidebar-feedback-btn:hover{color:#fff;}
.beta-badge{background:rgba(255,255,255,0.16);color:#fff;}
.user-name{color:rgba(255,255,255,0.82);}
.sidebar-collapse-btn{color:rgba(255,255,255,0.45);}
.sidebar-collapse-btn:hover{background:rgba(255,255,255,0.1);color:#fff;}

#mobile-topbar,#viewer-mobile-nav,#mobile-overlay{display:none!important;}

/* Tablets + small laptops: just collapse the sidebar to off-canvas, but
   keep desktop typography/spacing so the page doesn't suddenly look
   cramped. The phone-specific overrides live in the 768px block below. */

/* Very narrow phones — drop scheduler grid to 2-up so tiles aren't postage stamps */

/* ── Calendar ─────────────────────────────────────────────── */
.cal-nav{display:flex;align-items:center;gap:6px;margin-bottom:16px;}
.cal-nav-btn{width:30px;height:30px;border:none;border-radius:8px;background:transparent;color:var(--mid);font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .18s,color .18s,transform .1s;}
.cal-nav-btn:hover{background:var(--taupe2);color:var(--charcoal);}
.cal-nav-btn:active{transform:scale(.88);}
.cal-month-label{font-size:15px;font-weight:600;color:var(--charcoal);min-width:160px;text-align:center;letter-spacing:-.01em;}
.cal-view-toggle{display:inline-flex;margin-left:6px;border:1px solid var(--taupe2);border-radius:8px;overflow:hidden;background:var(--white);}
.cal-view-btn{padding:6px 14px;border:none;background:transparent;font-family:var(--font);font-size:12.5px;font-weight:600;color:var(--mid);cursor:pointer;letter-spacing:.01em;transition:background .15s,color .15s;}
.cal-view-btn+.cal-view-btn{border-left:1px solid var(--taupe2);}
.cal-view-btn:hover{background:#faf8f7;color:var(--charcoal);}
.cal-view-btn.active{background:var(--charcoal);color:#fff;}

/* Week view: same 7 columns, each cell stretches to a full-height column with
   its own date header. Re-uses .cal-cell and the existing chip styles. */
.cal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-radius:12px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.06),0 0 0 0.5px rgba(0,0,0,.08);background:var(--white);min-height:520px;}
/* .cal-cell prefix so this padding beats .cal-cell's own (it reads later in the file) */
.cal-cell.cal-week-col{min-height:520px;padding:0 6px 8px;}
@media(min-width:769px){
  #cal-week .cal-post-chip{min-height:72px;align-items:flex-start;padding:7px 9px 7px 10px;white-space:normal;}
  #cal-week .cal-post-chip .cal-chip-text{white-space:normal;}
}
.cal-week-col-head{display:flex;align-items:baseline;gap:8px;padding:10px 10px 8px;border-bottom:1px solid var(--taupe);margin:0 -6px 8px;background:#faf8f7;}
.cal-week-col-head .cal-week-day{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--light);}
.cal-week-col-head .cal-week-date{font-size:18px;font-weight:700;color:var(--charcoal);letter-spacing:-.02em;}
.cal-week-col-head.today .cal-week-date{color:var(--terra);}
.cal-week-col .cal-cell-top{display:none;}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-radius:12px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.06),0 0 0 0.5px rgba(0,0,0,.08);}
.cal-day-header{text-align:center;font-size:11px;font-weight:600;color:var(--light);letter-spacing:.04em;text-transform:uppercase;padding:9px 0 8px;background:#faf9f7;border-bottom:0.5px solid rgba(0,0,0,.07);}
.cal-day-header:first-child,.cal-day-header:last-child{color:#c0b8b0;}
.cal-cell{min-height:112px;padding:7px 6px 5px;border-right:0.5px solid rgba(0,0,0,.07);border-bottom:0.5px solid rgba(0,0,0,.07);background:var(--white);cursor:default;transition:background .12s;}
.cal-cell:nth-child(7n){border-right:none;}
.cal-cell:hover{background:#f8f5f2;}
.cal-cell.other-month{background:#faf9f7;}
.cal-cell.other-month:hover{background:#f3f1ee;}
.cal-cell.other-month .cal-day-num{color:#d0c8c0;}
.cal-cell.today{background:#fffaf6;}
.cal-cell.today:hover{background:#fff5ee;}
.cal-cell-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;min-height:26px;}
.cal-day-num{font-size:12.5px;font-weight:400;color:var(--mid);width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .12s;}
.cal-day-num.today-num{background:var(--charcoal);color:#fff;font-weight:700;}
.cal-add-btn{opacity:0;border:none;background:none;color:var(--light);font-size:16px;line-height:1;cursor:pointer;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:opacity .15s,background .15s,color .15s;}
.cal-cell:hover .cal-add-btn{opacity:1;}
.cal-add-btn:hover{background:var(--charcoal);color:#fff;}
.cal-shoots{display:flex;flex-direction:column;gap:3px;margin-bottom:3px;}
.cal-shoot-pill{display:flex;align-items:center;gap:5px;padding:3px 7px;border-radius:5px;background:var(--terra-pale);border:1px solid var(--terra-light);color:var(--burgundy);font-size:11px;font-weight:600;line-height:16px;cursor:pointer;white-space:nowrap;overflow:hidden;transition:background .12s,transform .15s;}
.cal-shoot-pill:hover{background:var(--terra);border-color:var(--terra);color:#fff;transform:translateY(-1px);}
.cal-shoot-pill:hover .cal-shoot-ic{color:#fff;}
.cal-shoot-ic{display:inline-flex;flex-shrink:0;color:var(--terra);}
.cal-shoot-t{overflow:hidden;text-overflow:ellipsis;}
.cal-shoot-n{flex-shrink:0;margin-left:auto;background:rgba(0,0,0,.08);border-radius:10px;padding:0 6px;font-size:10px;font-weight:700;}
.cal-shoot-pill:hover .cal-shoot-n{background:rgba(255,255,255,.25);}
.cal-posts{display:flex;flex-direction:column;gap:3px;}
.cal-post-chip{display:flex;align-items:center;padding:3px 7px 3px 8px;border-radius:5px;border-left:3px solid;cursor:grab;font-size:11.5px;font-weight:500;line-height:18px;white-space:nowrap;overflow:hidden;transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s,opacity .12s;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none;}
.cal-chip-text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cal-post-chip .cal-status-dot{flex-shrink:0;}
.cal-post-chip:hover{transform:translateY(-2px) scale(1.01);box-shadow:0 4px 10px rgba(0,0,0,.12);}
.cal-post-chip:active{transform:scale(.97);box-shadow:none;}
.cal-post-chip.dragging{opacity:.25!important;transform:none!important;box-shadow:none!important;}
.cal-chip-kind{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;margin-right:4px;vertical-align:-2px;opacity:.7;flex-shrink:0;}
.cal-chip-kind svg{width:11px;height:11px;}
.cal-chip-link{display:inline-flex;align-items:center;flex:none;margin-right:4px;opacity:.7;}
.dash-cal-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;}
.dash-cal-filters:empty{display:none;}
.dash-cal-dd{position:relative;}
.dash-cal-dd-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:8px;border:1px solid var(--taupe2);background:var(--white);font-family:var(--font);font-size:12px;font-weight:600;color:var(--charcoal);cursor:pointer;transition:background .12s;}
.dash-cal-dd-btn:hover{background:#faf8f7;}
.dash-cal-dd-btn svg{opacity:.5;flex-shrink:0;}
.dash-cal-dd-btn.active{border-color:var(--terra);color:var(--terra);background:var(--t1);}
.dash-cal-dd-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:200;min-width:210px;max-height:280px;overflow-y:auto;background:#fff;border:1px solid var(--taupe2);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:5px;}
.dash-cal-dd-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 9px;border:none;border-radius:6px;background:none;font-family:var(--font);font-size:12.5px;font-weight:500;color:var(--charcoal);cursor:pointer;text-align:left;}
.dash-cal-dd-item:hover{background:#f6f3f1;}
.dash-cal-dd-item .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.dash-cal-dd-item svg{flex-shrink:0;color:var(--terra);}
/* Mobile calendar — week strip + agenda (dashboard) and the shared bottom sheet */
.cal-week-strip{display:flex;align-items:stretch;gap:2px;margin-bottom:10px;}
.cal-ag-in{animation:calAgIn .2s ease-out;}
@keyframes calAgIn{from{opacity:0;}to{opacity:1;}}
@media(prefers-reduced-motion:reduce){.cal-ag-in{animation:none;}}
.cal-ws-nav{border:none;background:transparent;color:var(--mid);font-size:18px;line-height:1;cursor:pointer;padding:0 3px;border-radius:8px;flex-shrink:0;}
.cal-ws-nav:active{background:var(--taupe);}
.cal-ws-days{display:flex;flex:1;gap:3px;min-width:0;}
.cal-ws-day{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 0 5px;border:none;border-radius:10px;background:transparent;cursor:pointer;font-family:var(--font);}
.cal-ws-day .d{font-size:8.5px;font-weight:700;color:var(--light);text-transform:uppercase;letter-spacing:.03em;}
.cal-ws-day .n{font-size:14px;font-weight:700;color:var(--charcoal);}
.cal-ws-day .dots{display:flex;gap:2px;height:5px;margin-top:2px;}
.cal-ws-day .dots .cal-status-dot{width:5px;height:5px;margin-left:0;}
.cal-ws-day .dots .cal-status-dot.failed{width:5px;height:5px;font-size:0;line-height:5px;}
.cal-ws-day.dim .n{color:var(--light);}
.cal-ws-day.today .n{color:var(--terra);}
.cal-ws-day.on{background:var(--terra);}
.cal-ws-day.on .d,.cal-ws-day.on .n{color:#fff;}
.cal-ws-day.on .dots .cal-status-dot{background:#fff;}
.cal-view-chip{margin-left:auto;}
.koda-sheet-scrim{position:fixed;inset:0;background:rgba(30,24,20,.4);z-index:900;animation:fadeIn .18s ease-out;}
.koda-sheet{position:fixed;left:0;right:0;bottom:0;background:#fff;border-radius:16px 16px 0 0;z-index:901;padding:8px 16px calc(16px + env(safe-area-inset-bottom));max-height:70vh;overflow-y:auto;animation:sheetUp .24s cubic-bezier(.22,1,.36,1);box-shadow:0 -8px 30px rgba(20,15,10,.18);}
.koda-sheet-grab{width:34px;height:4px;border-radius:2px;background:var(--taupe2);margin:2px auto 12px;}
.koda-sheet-item{display:flex;align-items:center;gap:10px;width:100%;padding:11px 4px;border:none;border-bottom:1px solid var(--taupe);background:none;font-family:var(--font);font-size:14px;font-weight:500;color:var(--charcoal);cursor:pointer;text-align:left;}
.koda-sheet-item .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.koda-sheet-item .ksi-check{margin-left:auto;color:var(--terra);display:inline-flex;}
.koda-sheet-item.on{font-weight:600;}
@keyframes sheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){.koda-sheet,.koda-sheet-scrim{animation:none;}}
.dash-cal .cal-cell{min-height:84px;}
.dash-cal .cal-chip-text b{font-weight:700;}
.pm-linked-pill{display:inline-flex;align-items:center;width:fit-content;margin-top:8px;padding:3px 10px;border-radius:999px;background:var(--t1);color:var(--t5);font-size:11px;font-weight:600;}
.sched-platform-row{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;}
.sched-platform-cell{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:3px 8px;border-radius:4px;border:1px solid var(--taupe2);background:#fff;color:var(--mid);}
.sched-platform-cell.ok{color:#1a7a40;border-color:#c8e6d4;background:#e6f4ec;}
.sched-platform-cell.pending{color:var(--light);}
.an-tabs{display:flex;gap:6px;margin:0 0 22px;}
.an-tabs:empty{display:none;}
.an-tab{padding:8px 18px;border:1px solid var(--taupe2);border-radius:9px;background:#fff;font-family:var(--font);font-size:13px;font-weight:600;color:var(--mid);cursor:pointer;letter-spacing:.01em;transition:background .12s,color .12s;}
.an-tab:hover{background:#faf8f7;color:var(--charcoal);}
.an-tab.active{background:var(--t1);border-color:var(--t3);color:var(--terra);}
.dash-tabbar{display:flex;align-items:flex-end;justify-content:space-between;border-bottom:1px solid var(--taupe2);margin-bottom:14px;}
.dash-tabbar .cal-nav,.dash-tabbar>.btn-sm{margin-bottom:8px;}
.dash-tabs{display:flex;gap:5px;}
.dash-tab{padding:9px 20px;border:1px solid var(--taupe2);border-radius:10px 10px 0 0;background:#fff;font-family:var(--font);font-size:13px;font-weight:600;color:var(--mid);cursor:pointer;margin-bottom:-1px;transition:transform .16s ease,background .12s,color .12s;}
.dash-tab:hover:not(.active){color:var(--charcoal);transform:translateY(-2px);}
.dash-tab.active{background:#fff;border-color:var(--taupe2);border-bottom-color:#fff;color:var(--charcoal);font-weight:700;}
.dash-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;border-radius:8px;background:var(--terra);color:#fff;font-size:10px;font-weight:700;padding:0 4px;font-variant-numeric:tabular-nums;vertical-align:1px;}
.dash-tab.active .dash-tab-badge{background:var(--terra);color:#fff;}
.fb-analytics{background:transparent;border:none;border-radius:0;padding:0;}
.fb-header{display:flex;align-items:center;gap:14px;margin-bottom:18px;}
.fb-header-icon{flex-shrink:0;}
.fb-header-title{font-family:var(--font-display);font-size:20px;font-weight:800;letter-spacing:-.025em;color:var(--charcoal);}
.fb-header-sub{font-size:12px;color:var(--light);margin-top:2px;}.fb-err{font-size:12px;color:var(--mid);background:var(--t1);border:none;border-radius:14px;padding:12px 16px;margin-bottom:18px;line-height:1.5;}
.fb-err strong{color:var(--charcoal);}.fb-posts{display:flex;flex-direction:column;gap:10px;}
.fb-post-row{display:flex;gap:12px;padding:10px 12px;background:#fafaf8;border:1px solid var(--taupe2);border-radius:10px;}
.fb-post-thumb{width:60px;height:60px;flex-shrink:0;border-radius:6px;overflow:hidden;background:var(--taupe);}
.fb-post-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.fb-post-thumb-empty{width:100%;height:100%;background:var(--taupe);}
.fb-post-meta{flex:1;min-width:0;}
.fb-post-date{font-size:11px;color:var(--light);margin-bottom:3px;}
.fb-post-text{font-size:13px;color:var(--charcoal);line-height:1.45;margin-bottom:6px;overflow:hidden;}
.fb-post-stats{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--mid);}
.fb-empty{font-size:13px;color:var(--light);padding:10px 0;}
.cal-cell.drag-over{background:#f0ede8!important;box-shadow:inset 0 0 0 2px rgba(100,80,60,.22)!important;}
@keyframes cal-pop{0%{transform:scale(.65);opacity:0}65%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
.cal-post-chip.popping{animation:cal-pop .3s cubic-bezier(.34,1.56,.64,1) both;}
.cal-post-chip.instagram{background:#fce4ef;border-left-color:#E1306C;color:#a0184a;}
.cal-post-chip.tiktok{background:#e0f6f8;border-left-color:#2bc0c8;color:#187a80;}
.cal-post-chip.facebook{background:#e8f0fd;border-left-color:#1877F2;color:#1050c0;}
.cal-post-chip.linkedin{background:#e0eaf8;border-left-color:#0A66C2;color:#0850a0;}
/* Calendar items: dashed outline marks them as markers, not posts. A custom
   colour only overrides the left bar / background / text via inline styles. */
.cal-post-chip.cal-item-chip{border:1px dashed rgba(90,90,88,.35);border-left:3px solid #a09890;background:rgba(160,152,144,.1);color:#5a5a58;}

/* ── Item modal (mini composer: main column + When aside) ── */
.item-modal{background:#fff;border-radius:12px;width:780px;max-width:calc(100vw - 24px);max-height:90vh;display:flex;flex-direction:column;box-shadow:0 8px 32px rgba(0,0,0,.14);position:relative;overflow:hidden;}
.item-modal .modal-close{position:absolute;top:12px;right:14px;z-index:2;}
.im-head{padding:22px 26px 14px;}
.im-heading{font-size:17px;font-weight:700;color:var(--charcoal);font-family:var(--font-display);}
.im-sub{font-size:12.5px;color:var(--mid);margin-top:2px;}
.im-cols{display:flex;flex:1;min-height:0;border-top:1px solid var(--taupe2);}
.im-main{flex:1;min-width:0;padding:18px 26px 20px;overflow-y:auto;}
.im-aside{width:216px;flex-shrink:0;background:var(--oat);border-left:1px solid var(--taupe);padding:18px 20px;}
.im-aside .pm-lbl{display:block;margin:14px 0 6px;}
.im-title{width:100%;border:none;outline:none;background:transparent;font-size:19px;font-weight:600;font-family:var(--font-display);color:var(--charcoal);padding:0 0 14px;}
.im-title::placeholder{color:#c8c0b8;}
.im-upload-zone{min-height:88px;}
.im-media{position:relative;width:fit-content;max-width:100%;}
.im-media img,.im-media video{max-width:100%;max-height:240px;border-radius:8px;display:block;}
.im-media-remove{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;border:none;background:rgba(20,20,20,.65);color:#fff;font-size:15px;cursor:pointer;line-height:1;}
.im-opt{font-weight:400;color:var(--light);}
.im-colours{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.im-colours .cal-chip-menu-swatch{width:22px;height:22px;}
.im-custom-swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;position:relative;overflow:hidden;background:conic-gradient(#e5484d,#f5a623,#f2d55c,#46a758,#2ba7d6,#3e63dd,#a855f7,#e5484d);box-shadow:inset 0 0 0 1px rgba(10,10,10,.08);}
.im-custom-swatch.picked{border-color:var(--charcoal);}
.im-custom-swatch input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0;}
.im-custom-swatch.pm{width:19px;height:19px;}
.im-custom-swatch.pm.picked{border-color:transparent;box-shadow:0 0 0 2px var(--oat),0 0 0 3.5px var(--charcoal);}
.im-docs{margin-top:16px;}
.im-docs .pm-lbl{display:block;margin-bottom:6px;}
.im-doc-row{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--taupe2);border-radius:8px;margin-bottom:6px;font-size:13px;color:var(--charcoal);}
.im-doc-row svg{flex-shrink:0;color:var(--mid);}
.im-doc-row a{color:var(--charcoal);text-decoration:none;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.im-doc-row a:hover{text-decoration:underline;}
.im-doc-size{color:var(--light);font-size:11.5px;flex-shrink:0;}
.im-doc-x{border:none;background:none;color:var(--mid);cursor:pointer;font-size:15px;padding:2px 4px;line-height:1;flex-shrink:0;}
.im-footer{display:flex;gap:8px;align-items:center;padding:14px 26px;border-top:1px solid var(--taupe2);}
@media (max-width:700px){
  /* Same sheet treatment as the post composer: modal fills the viewport with
     a safe-area margin, im-cols is the single scroll, head + footer stay put. */
  #item-modal{
    padding:calc(env(safe-area-inset-top) + 12px) 12px calc(env(safe-area-inset-bottom) + 12px);
    align-items:stretch;
    z-index:900;
  }
  .item-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:14px;}
  .im-head{padding:16px 52px 12px 16px;}
  .im-cols{flex-direction:column;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;}
  .im-main{overflow-y:visible;flex:none;padding:16px;}
  .im-aside{width:100%;border-left:none;border-top:1px solid var(--taupe);flex:1 0 auto;padding:16px;}
  .im-footer{background:#fff;padding:12px 16px;}
}
.cal-post-chip.general{background:#f0ede8;border-left-color:#a09890;color:#6a6058;}

/* ── Post hover tooltip ───────────────────────────────────── */
.cal-tooltip{position:fixed;z-index:200;background:#fff;border-radius:10px;box-shadow:0 8px 26px rgba(20,15,10,.16),0 0 0 0.5px rgba(0,0,0,.08);padding:13px 14px;width:268px;pointer-events:none;opacity:0;transition:opacity .15s;font-size:13px;display:flex;flex-direction:column;gap:8px;}
.ctt-status{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-size:11px;font-weight:600;padding:3px 9px;border-radius:20px;background:var(--taupe);color:var(--mid);}
.ctt-status svg{flex-shrink:0;}
.ctt-status.pending{background:var(--blue-bg);color:var(--blue);}
.ctt-status.revision{background:var(--amber-bg);color:var(--amber);}
.ctt-status.approved{background:var(--green-bg);color:var(--green-deep);}
.ctt-status.scheduled,.ctt-status.posting{background:var(--purple-bg);color:var(--purple);}
.ctt-status.failed{background:var(--red-bg);color:var(--red);}
.ctt-title{font-size:13.5px;font-weight:600;color:var(--charcoal);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word;}
.ctt-meta{font-size:11.5px;color:var(--mid);}
.ctt-note{background:var(--amber-bg);border-radius:6px;padding:8px 10px;font-size:12.5px;line-height:1.5;color:var(--charcoal);}
.ctt-note-who{font-size:11.5px;font-weight:600;color:var(--amber);margin-bottom:3px;}
.cal-tooltip.visible{opacity:1;}.cal-tooltip-status{margin-left:auto;font-size:10px;font-weight:700;padding:2px 7px;border-radius:3px;text-transform:uppercase;letter-spacing:.03em;}
.cal-tooltip-status.draft           {background:#e8e3dc;color:#3d3a35;}
.cal-tooltip-status.submitted       {background:var(--blue);color:#fff;}
.cal-tooltip-status.needs_attention {background:var(--amber);color:#fff;}
.cal-tooltip-status.approved        {background:var(--green);color:#fff;}
.cal-tooltip-status.scheduled       {background:var(--purple);color:#fff;}
.cal-tooltip-status.posted          {background:#3a7afe;color:#fff;}
/* ── Post modal (Notion-style) ────────────────────────────── */
.post-modal-overlay{position:fixed;inset:0;background:rgba(55,45,40,.28);z-index:100;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .18s;}
.post-modal-overlay.open{opacity:1;pointer-events:all;}
.post-modal{background:#fff;border-radius:10px;width:1150px;max-width:calc(100vw - 24px);height:90vh;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 6px 30px rgba(0,0,0,.14),0 1px 4px rgba(0,0,0,.08);position:relative;overscroll-behavior:contain;}
body.post-modal-open{overflow:hidden;}
.pm-media-row{display:flex;gap:10px;align-items:stretch;margin-top:4px;}
.pm-media-wrap{position:relative;display:flex;align-items:center;justify-content:center;background:#0a0a0a;border-radius:10px;overflow:hidden;flex:0 1 auto;min-width:0;min-height:240px;max-height:min(60vh,520px);}
.pm-media-remove-btn{position:absolute;top:10px;right:10px;width:30px;height:30px;border:none;background:rgba(10,10,10,.7);color:#fff;border-radius:50%;font-size:20px;font-weight:600;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;opacity:0;transition:opacity .12s,background .12s,transform .12s;z-index:5;font-family:inherit;}
.pm-media-wrap:hover .pm-media-remove-btn{opacity:1;}
.pm-media-remove-btn:hover{background:#000;transform:scale(1.06);}
.pm-media-dl-btn{position:absolute;top:10px;left:10px;width:30px;height:30px;border:none;background:rgba(10,10,10,.7);color:#fff;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;opacity:0;transition:opacity .12s,background .12s;z-index:5;}
.pm-media-dl-btn svg{width:15px;height:15px;}
.pm-media-wrap:hover .pm-media-dl-btn{opacity:1;}
.pm-media-dl-btn:hover{background:#000;}
.pm-media-crop-btn{position:absolute;top:10px;left:48px;width:30px;height:30px;border:none;background:rgba(10,10,10,.7);color:#fff;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;opacity:0;transition:opacity .12s,background .12s;z-index:5;}
.pm-media-crop-btn svg{width:14px;height:14px;}
.pm-media-wrap:hover .pm-media-crop-btn{opacity:1;}
.pm-media-crop-btn:hover{background:#000;}
.pm-media-warn-btn{position:absolute;top:10px;left:48px;width:30px;height:30px;border:none;background:var(--amber-bg);color:var(--amber);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;z-index:5;}
.pm-media-warn-btn svg{width:15px;height:15px;}
.pm-media-crop-btn.busy svg{animation:spin 1s linear infinite;}
.pm-media-crop-btn:disabled{cursor:default;}
@media(hover:none){.pm-media-dl-btn,.pm-media-crop-btn,.pm-media-remove-btn{opacity:.9;}}
.pm-carousel-pill{flex:1 1 64px;min-width:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;border:1.5px dashed var(--taupe2);border-radius:10px;background:#fafaf8;color:var(--mid);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;padding:18px 0;transition:border-color .15s,background .15s,color .15s;}
.pm-carousel-pill:hover{border-color:var(--terra);background:#fff7f2;color:var(--terra);}
.pm-carousel-pill-text{display:none;letter-spacing:.04em;white-space:nowrap;}
.pm-carousel-pill.wide .pm-carousel-pill-text{display:block;}
.pm-save-status{font-size:12px;color:var(--mid);margin-left:10px;transition:opacity .15s;}
.pm-save-status.saving{color:var(--mid);}
.pm-save-status.saved{color:var(--green);}
.pm-save-status.error{color:var(--red);}

.pm-upload-progress-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:260px;}
.pm-upload-progress-label{font-size:12px;font-weight:600;color:var(--charcoal);font-variant-numeric:tabular-nums;}
.pm-upload-progress-bar{width:100%;height:6px;border-radius:3px;background:var(--taupe2);overflow:hidden;}
.pm-upload-progress-fill{height:100%;width:0;background:var(--terra);border-radius:3px;transition:width .12s linear;}
.pm-upload-cancel{background:none;border:none;padding:2px 4px;font-size:12px;font-weight:600;color:var(--mid);cursor:pointer;}
.pm-upload-cancel:hover{color:var(--terra);}
.pm-carousel-slot-uploading{background:var(--oat);display:flex;align-items:center;justify-content:center;padding:0 12px;position:relative;}
.pm-carousel-slot-uploading .pm-upload-progress-bar{height:5px;}
.pm-media-wrap img,.pm-media-wrap video{display:block;max-width:100%;max-height:min(60vh,520px);width:auto;height:auto;object-fit:contain;}
.pm-close-btn{position:absolute;top:12px;right:12px;width:26px;height:26px;border:none;background:none;border-radius:5px;font-size:18px;color:var(--light);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1;}
.pm-close-btn:hover{background:var(--taupe);color:var(--mid);}
.pm-caption-wrap{padding:2px 0 0;}
.pm-title-input{width:100%;border:none;outline:none;resize:none;font-size:22px;font-weight:700;color:var(--charcoal);line-height:1.3;font-family:inherit;background:transparent;padding:0;min-height:52px;}
.pm-title-input::placeholder{color:#d4cdc8;}
.pm-caption-field{padding:16px 0 0;}
.pm-lbl{font-size:12px;font-weight:600;color:var(--mid);}
.pm-lbl-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:7px;}
.pm-lbl-note{font-size:12px;color:var(--light);}
.pm-counter{font-size:12px;color:var(--light);font-variant-numeric:tabular-nums;}
.pm-counter.over{color:var(--terra);font-weight:600;}
.pm-undo-btn{display:inline-flex;align-items:center;gap:5px;border:none;background:none;padding:0;font-size:12px;font-weight:600;color:var(--mid);cursor:pointer;font-family:inherit;}
.pm-undo-btn:hover{color:var(--charcoal);}
.emoji-kb-btn{display:inline-flex;align-items:center;border:none;background:none;padding:0;color:var(--mid);cursor:pointer;}
.emoji-kb-btn:hover{color:var(--charcoal);}
.pm-caption-textarea{width:100%;border:1px solid var(--taupe2);border-radius:8px;padding:12px 14px;outline:none;resize:vertical;font-size:14px;color:var(--charcoal);line-height:1.55;font-family:inherit;background:#fff;min-height:120px;}
/* Caption card: textarea + AI toolbar share one border so the tools visibly
   belong to the caption. */
.pm-caption-card{border:1px solid var(--taupe2);border-radius:8px;background:#fff;}
.pm-caption-card .pm-caption-textarea{border:none;border-radius:7px 7px 0 0;min-height:110px;display:block;}
.pm-caption-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 10px;border-top:1px solid var(--taupe);background:var(--oat);border-radius:0 0 7px 7px;}
.pm-caption-tools .emoji-kb-btn{padding:0 2px;}
.pm-rewrite-group{display:inline-flex;align-items:stretch;}
.pm-rewrite-group #pm-ai-rewrite-btn{border-radius:6px 0 0 6px;}
.pm-rewrite-group .ksel{display:inline-flex;}
.pm-rewrite-group .ksel-btn.pm-ai-length{border-radius:0 6px 6px 0;border:1px solid var(--taupe2);border-left:0;background:#fff;font-size:11.5px;padding:6px 9px;width:auto;height:100%;}
.pm-caption-textarea:focus{border-color:var(--terra);}
.pm-caption-textarea::placeholder{color:#c8c0b8;}
#pm-hashtags,#pm-description{min-height:72px;}

/* Content-pillar tag input — mirrors the Ideas-tab topic chips so the user
   pattern is the same: type + Enter to add, click × to remove, click a
   "Recent" suggestion below to re-add a previously-used pillar. */
.pm-pillars-input{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 0 4px;border-bottom:1px solid var(--taupe2);}
.pm-pillar-chips{display:inline-flex;flex-wrap:wrap;gap:6px;}
.pm-pillar-chip{display:inline-flex;align-items:center;gap:5px;background:var(--terra-pale);color:var(--terra);border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600;}
.pm-pillar-remove{background:none;border:none;cursor:pointer;color:var(--terra);font-size:14px;line-height:1;padding:0;opacity:.6;}
.pm-pillar-remove:hover{opacity:1;}
.pm-pillar-input{flex:1;min-width:140px;border:none;outline:none;font-family:var(--font);font-size:13px;color:var(--charcoal);background:transparent;padding:4px 0;}
.pm-pillar-input::placeholder{color:#c8c0b8;}
.pm-pillar-recents{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;}
.pm-pillar-recents-label{font-size:12px;font-weight:600;color:var(--light);margin-right:2px;}
.pm-pillar-recent{background:#fff;border:1px solid var(--taupe2);color:var(--mid);border-radius:20px;padding:3px 11px;font-size:12px;font-weight:500;font-family:var(--font);cursor:pointer;transition:border-color .15s,color .15s,background .15s;}
.pm-pillar-recent::before{content:'+ ';opacity:.55;}
.pm-pillar-recent:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-pale);}
.pm-hashtag-suggestions{display:flex;flex-direction:column;gap:5px;margin-top:10px;}
.pm-hashtag-sug-label{font-size:12px;font-weight:600;color:var(--light);margin-bottom:5px;}
.pm-hashtag-sug-scroll{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;}
.pm-hashtag-sug-scroll::-webkit-scrollbar{display:none;}
.pm-hashtag-sug-chip{flex:0 0 auto;white-space:nowrap;background:#fff;border:1px solid var(--taupe2);color:var(--mid);border-radius:20px;padding:4px 12px;font-size:12px;line-height:1.4;font-weight:500;font-family:var(--font);cursor:pointer;transition:border-color .15s,color .15s,background .15s;}
.pm-hashtag-sug-chip::before{content:'+ ';opacity:.55;}
.pm-hashtag-sug-chip:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-pale);}
.pm-hashtag-sug-metric{color:var(--light);font-weight:400;font-size:11px;margin-left:5px;}
@keyframes chipPop{0%{transform:scale(.6);}60%{transform:scale(1.15);}100%{transform:scale(1);}}
.pm-visual-section{padding:8px 0 4px;}
.pm-kind-pills{display:flex;align-items:center;gap:6px;margin:0 0 12px;}
.pm-kind-pills-label{font-size:12px;color:var(--light);font-weight:600;margin-right:4px;}
.pm-kind-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:100px;border:1px solid var(--taupe2);background:#fff;font-size:12px;font-weight:500;color:var(--mid);cursor:pointer;transition:background .15s,color .15s,border-color .15s;}
.pm-kind-pill:not(.active):hover{border-color:var(--terra);color:var(--terra);}
.pm-kind-pill.active{background:var(--terra);border-color:var(--terra);color:#fff;font-weight:600;}
.pm-kind-pill svg{width:11px;height:11px;}
.pm-upload-zone{border:1.5px dashed var(--taupe2);border-radius:10px;min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;color:var(--light);font-size:13px;text-align:center;padding:18px 16px;transition:border-color .15s,background .15s,color .15s;}
.pm-upload-zone:hover{border-color:var(--terra);background:#fff7f2;color:var(--charcoal);}
.pm-upload-zone svg{color:var(--mid);}
.pm-upload-zone span{font-weight:600;color:var(--charcoal);}
.pm-upload-zone-hint{font-weight:400 !important;color:var(--mid) !important;font-size:11.5px;}.pm-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;}
#pm-viewer-view{flex:1;min-height:0;overflow-y:auto;}
/* Modal header — icon tile, eyebrow + title, status chip */
.pm-head{display:flex;align-items:center;gap:13px;padding:16px 52px 12px 22px;flex-shrink:0;}
.pm-head-icon{width:38px;height:38px;border-radius:9px;background:var(--terra-pale);color:var(--terra);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.pm-eyebrow{font-size:12px;font-weight:600;color:var(--light);margin-bottom:5px;}
.pm-title-display{font-family:var(--font-display);font-size:21px;font-weight:800;letter-spacing:-0.02em;color:var(--charcoal);line-height:1.15;}
.pm-head-status{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;padding:5px 12px;border-radius:20px;}
/* Editor / Client view — the current view shows as a labelled pill, the
   other collapses to a small empty stub; tapping the stub switches over. */
.pm-view-switch{display:flex;align-items:center;gap:3px;background:var(--oat);border-radius:7px;padding:2px;flex-shrink:0;}
.pm-view-switch button{border:none;font-family:var(--font);font-size:12px;font-weight:600;color:var(--charcoal);background:#fff;padding:4px 12px;border-radius:5px;cursor:default;white-space:nowrap;box-shadow:0 1px 2px rgba(0,0,0,.08);}
.pm-view-switch button:not(.active){font-size:0;width:20px;height:21px;padding:0;background:rgba(255,255,255,.55);box-shadow:none;cursor:pointer;}
.pm-view-switch button:not(.active):hover{background:rgba(255,255,255,.95);}
.pm-head-status svg{width:13px;height:13px;flex-shrink:0;}
.pm-head-status.st-draft{background:var(--taupe);color:var(--mid);}
.pm-head-status.st-submitted{background:var(--blue-bg);color:var(--blue);}
.pm-head-status.st-needs_attention{background:var(--amber-bg);color:var(--amber);}
.pm-head-status.st-approved{background:var(--green-bg);color:var(--green-deep);}
.pm-head-status.st-scheduled{background:var(--purple-bg);color:var(--purple);}
.pm-head-status.st-published{background:var(--taupe);color:var(--mid);}.pm-status-btn:disabled{opacity:.55;cursor:not-allowed;}
/* Platform tabs — terra pill tabs; presence = selection. The sync state rides
   along as a compact pill (explanation in its tooltip). */
.pm-tabbar{display:flex;align-items:center;gap:6px;padding:8px 16px 10px;border-bottom:1px solid var(--taupe);flex-shrink:0;}
.pm-tab{padding:7px 13px;font-size:13px;font-weight:500;color:var(--mid);border:none;background:none;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:7px;transition:background .15s,color .15s;}
.pm-tab:hover{background:var(--oat);color:var(--charcoal);}
.pm-tab.active{background:var(--terra);color:#fff;font-weight:600;}
.pm-tab-custom{width:5px;height:5px;border-radius:50%;background:var(--terra);flex-shrink:0;margin-left:1px;}
.pm-tab.active .pm-tab-custom{background:#fff;}
.pm-tab-warn{width:14px;height:14px;border-radius:50%;background:var(--red);color:#fff;font-size:10px;font-weight:800;line-height:14px;text-align:center;flex-shrink:0;cursor:help;}
.pm-tab.active .pm-tab-warn{background:#fff;color:var(--red);}
/* Green source dot on the tab itself — desktop keeps the Source pill, mobile
   shows the dot alone */
.pm-tab-source{display:none;width:5px;height:5px;border-radius:50%;background:var(--green);flex-shrink:0;margin-left:1px;}
.pm-tab-x{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:4px;font-size:15px;line-height:1;opacity:.45;flex-shrink:0;}
.pm-tab-x:hover{opacity:1;background:rgba(0,0,0,.1);}
.pm-tab.active .pm-tab-x:hover{background:rgba(255,255,255,.28);}
.pm-tab-add-wrap{position:relative;display:flex;margin-left:auto;}
.pm-tab-add{border:none;color:var(--light);font-weight:600;font-size:12px;}
.pm-tab-add:hover{color:var(--charcoal);background:var(--oat);}
.pm-tab-add-menu{position:absolute;top:calc(100% + 2px);right:0;z-index:70;background:#fff;border:1px solid var(--taupe2);border-radius:8px;box-shadow:0 6px 24px rgba(0,0,0,.12);padding:4px;min-width:140px;display:flex;flex-direction:column;}
.pm-sync-pill{font-size:11px;font-weight:600;padding:3px 9px;border-radius:10px;flex-shrink:0;margin-left:6px;cursor:default;}
.pm-sync-pill.source{background:var(--green-bg);color:var(--green);}
.pm-sync-pill.synced{background:var(--taupe);color:var(--mid);}
.pm-sync-pill.custom{background:var(--terra-pale);color:var(--terra);}
.pm-applyall{padding:4px 10px;font-size:11.5px;background:#fff;border-color:var(--taupe2);color:var(--charcoal);white-space:nowrap;flex-shrink:0;}
.pm-applyall:hover{background:var(--oat);}
/* Rail + panes + schedule panel */
.pm-cols{display:flex;flex:1;min-height:0;}
.pm-rail{width:188px;flex-shrink:0;border-right:1px solid var(--taupe);padding:14px 10px;display:flex;flex-direction:column;gap:2px;overflow-y:auto;}
.pm-rail-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;border-radius:6px;padding:9px 11px;font-family:var(--font);font-size:13px;font-weight:500;color:var(--mid);position:relative;cursor:pointer;transition:background .15s,color .15s;}
.pm-rail-item svg{flex-shrink:0;color:var(--light);transition:color .15s;}
.pm-rail-item:hover{background:var(--oat);color:var(--charcoal);}
.pm-rail-item.active{background:var(--oat);color:var(--charcoal);font-weight:600;}
.pm-rail-item.active::before{content:'';position:absolute;left:0;top:7px;bottom:7px;width:2.5px;border-radius:2px;background:var(--terra);}
.pm-rail-item.active svg{color:var(--terra);}
.pm-rail-count{margin-left:auto;font-size:11px;font-weight:600;color:var(--mid);background:var(--taupe);border-radius:10px;padding:1px 7px;font-variant-numeric:tabular-nums;}
.pm-center{flex:1;min-width:0;overflow-y:auto;padding:16px 26px 26px;}
.pm-pane{display:none;}
.pm-pane.open{display:block;}
.pm-pane > .pm-lbl-row:first-child{margin-top:4px;}
.pm-hashtags-textarea{min-height:56px;}
#pm-extras-block{display:flex;flex-direction:column;gap:12px;}
#pm-tiktok-extras,#pm-youtube-extras{display:flex;flex-direction:column;gap:18px;background:#fff;border:1px solid var(--taupe);border-radius:12px;padding:18px 20px;}
.pm-yt-ai-row{display:flex;align-items:center;justify-content:space-between;gap:14px;}
.pm-yt-ai-row .btn-sm{flex-shrink:0;}
.pm-yt-input{width:100%;box-sizing:border-box;font:inherit;font-size:13px;color:var(--charcoal);background:#fff;border:1px solid var(--taupe);border-radius:8px;padding:9px 12px;}
.pm-yt-input:focus{outline:none;border-color:var(--terra);}
/* Schedule panel */
.pm-sched{width:296px;flex-shrink:0;background:var(--oat);border-left:1px solid var(--taupe);padding:18px 20px 24px;overflow-y:auto;}
.pm-sched-head{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;color:var(--charcoal);margin-bottom:6px;}
.pm-sched-head svg{color:var(--terra);}
.pm-sched .pm-lbl{display:block;margin:14px 0 6px;}
.pm-fld{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--taupe2);border-radius:6px;padding:9px 12px;}
.pm-fld svg{color:var(--light);flex-shrink:0;}
.pm-fld input{border:none;outline:none;font-family:var(--font);font-size:13.5px;color:var(--charcoal);width:100%;background:none;padding:0;font-variant-numeric:tabular-nums;}
.pm-fld .pm-time-wrap{flex:1;}
.pm-fld .pm-time-wrap input{width:100%;}
.pm-tz{font-size:11px;color:var(--light);margin-top:6px;}
#pm-best-times{margin-top:12px;}
.pm-sched .pm-sched-row{padding:0;min-height:0;margin-top:10px;}
.pm-sched-hint{font-size:11px;color:var(--light);line-height:1.5;}
.pm-sched-sep{height:1px;background:var(--taupe);margin:18px 0 2px;}
.pm-organise-head{margin:16px 0 0;}
.pm-swatches{display:flex;gap:8px;margin-top:9px;flex-wrap:wrap;}
.pm-sw{width:19px;height:19px;border-radius:50%;border:1px solid rgba(0,0,0,0.08);padding:0;cursor:pointer;position:relative;}
.pm-sw.none{background:#fff;border:1px solid var(--taupe2);}
.pm-sw.none::after{content:'';position:absolute;left:3px;right:3px;top:50%;height:1.5px;background:var(--taupe2);transform:rotate(-45deg);}
.pm-sw.picked{box-shadow:0 0 0 2px var(--oat),0 0 0 3.5px var(--charcoal);}
.pm-clear-btn{background:none;border:none;font-family:var(--font);font-size:11px;font-weight:500;color:var(--light);cursor:pointer;padding:0;}
.pm-clear-btn:hover{color:var(--charcoal);}
/* Status dropdown (kdrop) */
.pm-status-btn{width:100%;background:#fff;border:1px solid var(--taupe2);border-radius:6px;font-family:var(--font);font-size:13.5px;color:var(--charcoal);cursor:pointer;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;}
#pm-status-drop{display:block;}
#pm-status-drop .kdrop-menu{left:0;right:auto;min-width:170px;}
/* Footer kebab (secondary actions) + state pill */
.pm-foot-kebab-btn{padding:6px 9px;color:var(--mid);}
.pm-foot-kebab .kdrop-menu{top:auto;bottom:calc(100% + 6px);left:auto;right:0;min-width:190px;}
.pm-foot-kebab .kdrop-item:disabled{opacity:.45;cursor:not-allowed;}
.pm-foot-pill{display:inline-flex;align-items:center;font-size:12px;font-weight:600;color:var(--mid);background:var(--oat);border-radius:20px;padding:5px 12px;white-space:nowrap;}
.pm-btn-spinner{display:inline-block;width:12px;height:12px;margin-right:7px;vertical-align:-2px;flex-shrink:0;}
.pm-foot-pill .pm-btn-spinner{border-color:var(--t2);border-top-color:var(--terra);}
.pm-modal-footer{padding:16px 22px 20px;display:flex;align-items:center;gap:8px;border-top:0.5px solid var(--taupe2);flex-shrink:0;flex-wrap:wrap;}
/* Split primary — one glow button per state; Post now lives in the caret menu. */
.pm-split{position:relative;display:inline-flex;}
.pm-split #pm-schedule-btn,.pm-split #pm-submit-approval-btn{border-radius:6px 0 0 6px;}
.pm-modal-footer.pm-approve-primary #pm-schedule-split{display:none;}
.pm-split-caret{border-radius:0 6px 6px 0;padding:6px 8px;margin-left:1px;}
.pm-split .btn-glow:hover{transform:none;box-shadow:none;}
.kdrop-menu.pm-split-menu{top:auto;bottom:calc(100% + 6px);right:0;min-width:130px;}
.pm-ai-btns{display:flex;gap:8px;align-items:center;flex-wrap:wrap;flex:1;min-width:0;}
.pm-spell-btn{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;border:1px solid rgba(255,90,48,.35);background:#fff;color:var(--terra);cursor:pointer;box-shadow:0 0 0 3px rgba(255,90,48,.10),0 2px 8px rgba(255,90,48,.18);transition:box-shadow .18s,background .15s,color .15s,transform .08s;}
.pm-spell-btn:hover{background:var(--terra);color:#fff;box-shadow:0 0 0 3px rgba(255,90,48,.16),0 4px 12px rgba(255,90,48,.3);}
.pm-spell-btn:active{transform:scale(.94);}
.pm-spell-btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;}
.pm-spell-btn.checking svg{animation:spin .8s linear infinite;}
/* After a check the glow rests until the caption is edited again. */
.pm-spell-btn.pm-spell-done{box-shadow:none;border-color:var(--taupe2);color:var(--light);}
/* Phone-only composer pieces (shown in the ≤768px block) */
.pm-m-title,.pm-details,.pm-msheet-head,.pm-msheet-scrim,.pm-type-bar,.pm-when-chip,.pm-media-actions,.pm-media-warn-line,.pm-zone-phone,.pm-zone-lib-m,.pm-collab-m,.pm-location-remove,.pm-igrow,.pm-ig-out,.pm-ig-tip,.pm-ig-sug,.pm-fc-move{display:none;}
#pm-tag-field .pm-tag-canvas{order:1;}#pm-tag-field #pm-tag-chips{order:2;}
/* Quick styled tooltip for composer toolbar buttons — faster than the native
   title delay, fades+slides in and out. */
.pm-tip{position:relative;}
.pm-tip::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:0;background:var(--charcoal);color:#fff;padding:6px 10px;border-radius:6px;font-size:11.5px;font-weight:500;font-family:var(--font);line-height:1.4;white-space:nowrap;opacity:0;pointer-events:none;transform:translateY(3px);transition:opacity .18s ease,transform .18s ease;z-index:500;box-shadow:0 4px 14px rgba(0,0,0,.16);}
.pm-tip:hover::after{opacity:1;transform:translateY(0);transition-delay:.15s;}
.pm-tip-r::after{left:auto;right:0;}
.pm-ai-btns .ksel{display:inline-block;}
.ksel-btn.pm-ai-length{width:auto;font-size:12.5px;font-weight:500;color:var(--mid);border:1px solid var(--taupe2);border-radius:6px;padding:6px 12px;}
.ksel-btn.pm-ai-length:hover{border-color:var(--taupe);color:var(--charcoal);}
.pm-ai-cap{position:relative;background:var(--oat);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;}
.pm-ai-cap-text{font-size:13px;color:var(--charcoal);line-height:1.5;white-space:pre-wrap;padding-right:24px;}
.pm-ai-cap-bar{display:flex;align-items:center;gap:8px;}
.pm-ai-stars{display:flex;gap:2px;}
.pm-ai-star{font-size:16px;color:var(--taupe2);cursor:pointer;border:none;background:none;padding:0;line-height:1;transition:color .1s;}
.pm-ai-star:hover,.pm-ai-star.filled{color:#f5a623;}
.pm-ai-use-btn{margin-left:auto;}
.pm-ai-cap-bar .cap-icon-btn{color:var(--mid);}
.pm-ai-cap-bar .cap-icon-btn:hover{background:#fff;color:var(--charcoal);}
.btn-danger{color:#c0392b;border-color:#e8c0b8;}
.btn-danger:hover{background:#fff0ee;}

/* ── Competitors tab ──────────────────────────────────────── */
.comp-add-row{display:flex;align-items:center;gap:10px;margin-bottom:18px;}
.comp-add-input-wrap{display:flex;align-items:center;background:#fff;border:1px solid var(--taupe2);border-radius:8px;overflow:hidden;flex:1;max-width:320px;}
.comp-at{padding:0 6px 0 12px;color:var(--mid);font-size:14px;font-weight:500;user-select:none;}
.comp-handle-input{border:none;outline:none;padding:8px 10px 8px 0;font-size:14px;background:transparent;width:100%;color:var(--charcoal);}
.comp-loading{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--t1);border:none;border-radius:14px;font-size:13px;color:var(--mid);margin-bottom:18px;}
.comp-spinner{width:16px;height:16px;border:2px solid var(--t2);border-top-color:var(--terra);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0;}
.pm-trans-busy{display:inline-flex;align-items:center;gap:6px;}
.pm-trans-busy .pm-trans-spin{width:12px;height:12px;}
.pm-trans-lbl{display:inline-grid;}
.pm-trans-lbl>span{grid-area:1/1;}
.pm-trans-cancel{visibility:hidden;}
.pm-trans-busy:hover .pm-trans-phase{visibility:hidden;}
.pm-trans-busy:hover .pm-trans-cancel{visibility:visible;}
@keyframes spin{to{transform:rotate(360deg)}}
.comp-section-label{font-size:12px;font-weight:600;color:var(--burgundy);opacity:.7;margin-bottom:10px;font-family:var(--font-display);}
/* Benchmark — ranked bar list, one metric at a time, "You" in terra */
.comp-bench-metric{font-family:var(--font);font-size:12px;font-weight:500;color:var(--charcoal);background:#fff;border:1px solid var(--taupe2);border-radius:7px;padding:5px 8px;cursor:pointer;}

/* ── Koda dropdown — styled replacement for native <select> ── */
.kdrop{position:relative;display:inline-block;}
.kdrop-btn{display:inline-flex;align-items:center;gap:6px;}
.kdrop-btn svg{color:var(--mid);flex-shrink:0;}
.kdrop-menu{position:absolute;top:calc(100% + 5px);right:0;min-width:100%;background:#fff;border:1px solid var(--taupe2);border-radius:8px;box-shadow:0 8px 24px rgba(10,10,10,.1);padding:4px;display:none;z-index:120;}
.kdrop-menu.open{display:block;}
.kdrop-item{display:block;width:100%;text-align:left;font-family:var(--font);font-size:12px;font-weight:500;color:var(--charcoal);background:none;border:none;border-radius:6px;padding:7px 10px;cursor:pointer;white-space:nowrap;}
.kdrop-item:hover{background:var(--oat);}
.kdrop-item.active{color:var(--terra);font-weight:600;}
/* ── Koda select — app-wide styled replacement for native <select> ── */
.ksel{display:block;position:relative;}
.ksel-native{display:none;}
:where(.ksel-btn){display:inline-flex;align-items:center;justify-content:space-between;gap:8px;width:100%;font-family:var(--font);font-size:13px;color:var(--charcoal);background:#fff;border:1.5px solid var(--taupe2);border-radius:var(--radius);padding:7px 12px;cursor:pointer;text-align:left;line-height:1.3;transition:border-color .15s;}
:where(.ksel-btn):hover{border-color:var(--charcoal);}
:where(.ksel-btn):focus-visible{outline:none;border-color:var(--terra);}
.ksel-btn.open{border-color:var(--charcoal);}
.ksel-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ksel-chev{flex-shrink:0;opacity:.55;transition:transform .15s;}
.ksel-btn.open .ksel-chev{transform:rotate(180deg);}
.ksel-menu{position:fixed;z-index:9995;background:#fff;border:1px solid var(--taupe2);border-radius:8px;box-shadow:var(--shadow-lg);padding:4px;max-height:300px;overflow-y:auto;overscroll-behavior:contain;min-width:150px;}
.ksel-search{width:100%;box-sizing:border-box;font-family:var(--font);font-size:12.5px;color:var(--charcoal);background:#fff;border:1px solid var(--taupe);border-radius:6px;padding:6px 9px;outline:none;margin-bottom:4px;}
.ksel-search:focus{border-color:var(--taupe2);}
.ksel-item{display:block;width:100%;text-align:left;font-family:var(--font);font-size:13px;font-weight:500;color:var(--charcoal);background:none;border:none;border-radius:6px;padding:8px 10px;cursor:pointer;white-space:nowrap;}
.ksel-item:hover,.ksel-item.hl{background:var(--oat);}
.ksel-item.active{color:var(--terra);font-weight:600;}
.ksel-item.disabled{color:var(--light);cursor:default;}
.ksel-item.disabled:hover{background:none;}
.ksel-empty{padding:8px 10px;font-size:12px;color:var(--light);}
/* Calendar chip right-click menu */
.cal-chip-menu{position:fixed;z-index:1500;background:#fff;border:1px solid var(--taupe2);border-radius:10px;box-shadow:var(--shadow-lg);padding:4px;min-width:190px;}
.cal-chip-menu-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;font-family:var(--font);font-size:12.5px;font-weight:500;color:var(--charcoal);background:none;border:none;border-radius:6px;padding:7px 10px;cursor:pointer;}
.cal-chip-menu-item svg{color:var(--mid);flex-shrink:0;}
.cal-chip-menu-item:hover{background:var(--oat);}
.cal-chip-menu-item.danger{color:var(--red);}
.cal-chip-menu-item.danger svg{color:var(--red);}
.cal-chip-menu-item.bold{font-weight:600;}
.cal-chip-menu-item.muted{color:var(--mid);}
.cal-chip-menu-item.linked:hover{color:var(--red);}
.cal-chip-menu-item.linked:hover svg{color:var(--red);}
.cal-chip-menu-sep{height:1px;background:var(--hairline);margin:4px 6px;}
.cal-chip-menu-label{font-size:11px;font-weight:600;color:var(--light);padding:4px 10px 2px;}
.cal-chip-menu-colors{display:flex;gap:6px;padding:5px 10px 8px;}
.cal-chip-menu-swatch{width:18px;height:18px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;box-shadow:inset 0 0 0 1px rgba(10,10,10,.08);}
.cal-chip-menu-swatch.picked{border-color:var(--charcoal);}
.cal-chip-menu-swatch.none{background:#fff;position:relative;}
.cal-chip-menu-swatch.none::after{content:'';position:absolute;left:2px;right:2px;top:50%;height:1.5px;background:var(--red);transform:rotate(-45deg);}
.cal-chip-icon{margin-right:3px;}
.cal-icon-picker{padding:8px;min-width:0;width:312px;}
.cal-icon-search{width:100%;font-family:var(--font);font-size:12.5px;color:var(--charcoal);background:#fff;border:1px solid var(--taupe);border-radius:6px;padding:6px 9px;outline:none;margin-bottom:6px;}
.cal-icon-search:focus{border-color:var(--taupe2);}
.cal-icon-scroll{height:280px;overflow-y:auto;overscroll-behavior:contain;}
.cal-icon-group{font-size:11px;font-weight:600;color:var(--light);padding:6px 2px 3px;}
.cal-icon-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:1px;}
.cal-icon-cell{font-size:17px;line-height:1;padding:5px 0;border:none;background:none;border-radius:6px;cursor:pointer;}
.cal-icon-cell:hover{background:var(--oat);}
.cal-icon-cell.picked{background:var(--terra-pale);}
.cal-icon-loading{font-size:12px;color:var(--light);padding:10px 4px;}
.comp-bench-list{display:flex;flex-direction:column;gap:2px;margin:10px 0 28px;}
.comp-bench-row{display:grid;grid-template-columns:20px minmax(140px,220px) 1fr 74px;align-items:center;gap:12px;padding:8px 10px;border-radius:10px;cursor:pointer;transition:background .12s;}
.comp-bench-row:hover{background:#fffaf7;}
.comp-bench-rank{font-size:11px;font-weight:700;color:var(--light);text-align:right;}
.comp-bench-who{display:flex;align-items:center;min-width:0;font-size:13px;color:var(--charcoal);}
.comp-bench-handle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.comp-bench-bar{height:10px;background:var(--t1);border-radius:100px;overflow:hidden;}
.comp-bench-fill{height:100%;border-radius:100px;background:var(--t3);transition:width .25s ease;}
.comp-bench-row.self{background:rgba(255,90,48,.05);}
.comp-bench-row.self:hover{background:rgba(255,90,48,.09);}
.comp-bench-row.self .comp-bench-fill{background:var(--terra);}
.comp-bench-row.self .comp-bench-handle{font-weight:700;}
.comp-bench-val{font-size:13px;font-weight:600;color:var(--charcoal);text-align:right;white-space:nowrap;}
.comp-bench-hint{font-size:11.5px;color:var(--light);margin-top:6px;padding-left:10px;}
.comp-eng-val{font-weight:600;}
.comp-eng-green{color:#1a7a40;}
.comp-eng-amber{color:#b06800;}
.comp-eng-red{color:#c0392b;}
.comp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;}
.comp-card{background:#fff;border:1px solid var(--taupe2);border-radius:14px;overflow:hidden;transition:border-color .15s,background .15s;cursor:pointer;}
.comp-card:hover{border-color:var(--terra);background:#fffdfb;}.comp-card-header{display:flex;align-items:center;gap:12px;padding:16px 16px 14px;}
.comp-avatar-circle{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--t2),var(--t3));display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;color:var(--burgundy);flex-shrink:0;letter-spacing:-.5px;overflow:hidden;}
.comp-avatar-circle img{width:100%;height:100%;object-fit:cover;display:block;}
.comp-bench-avatar{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--t2),var(--t3));color:var(--burgundy);font-size:11px;font-weight:700;margin-right:8px;vertical-align:-7px;overflow:hidden;}
.comp-bench-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.comp-bench-avatar.fail img{display:none;}
.comp-bench-dots{display:none;}
.comp-card-meta{flex:1;min-width:0;}
.comp-card-handle{font-weight:600;font-size:14px;color:var(--charcoal);display:flex;align-items:center;gap:5px;line-height:1.2;}
.comp-verified{color:#1877F2;font-size:13px;line-height:1;}
.comp-card-name{font-size:12px;color:var(--mid);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.comp-stats{display:flex;gap:0;border-top:0.5px solid var(--taupe2);}
.comp-stat{flex:1;text-align:center;padding:11px 4px;}
.comp-stat+.comp-stat{border-left:0.5px solid var(--taupe2);}
.comp-stat-val{font-size:15px;font-weight:700;color:var(--charcoal);line-height:1.2;}
.comp-stat-lbl{font-size:11px;color:var(--light);margin-bottom:3px;}
.comp-hashtags{display:flex;flex-wrap:wrap;gap:5px;padding:10px 16px 8px;border-top:0.5px solid var(--taupe2);}
.comp-hashtag-chip{font-size:11px;background:var(--t1);color:var(--burgundy);padding:3px 8px;border-radius:10px;}
.comp-card-actions{display:flex;gap:8px;padding:10px 14px 12px;border-top:0.5px solid var(--taupe2);}
.comp-card-actions .kdrop-menu,.fbcomp-actions .kdrop-menu{top:auto;bottom:calc(100% + 5px);}
.comp-fetched{font-size:11px;color:var(--light);margin-left:auto;align-self:center;}
.comp-view-posts{font-size:12.5px;font-weight:600;color:var(--terra);display:flex;align-items:center;justify-content:center;gap:6px;padding:11px 16px;border-top:none;background:var(--t1);}
.comp-view-posts svg{opacity:.7;}
/* Facebook Page benchmarks */
.fbcomp-sub{font-size:13px;color:var(--mid);margin:0 0 12px;}
.fbcomp-input{background:#fff;border:1px solid var(--taupe2);border-radius:8px;padding:8px 12px;flex:1;max-width:320px;}
.fbcomp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-top:14px;}
.fbcomp-card{background:#fff;border:1px solid var(--taupe2);border-radius:14px;overflow:hidden;}
.fbcomp-head{display:flex;align-items:center;gap:12px;padding:14px 16px 12px;}
.fbcomp-pic{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.fbcomp-pic-empty{background:linear-gradient(135deg,var(--t2),var(--t3));display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:var(--burgundy);}
.fbcomp-meta{flex:1;min-width:0;}
.fbcomp-name{font-weight:600;font-size:14px;color:var(--charcoal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fbcomp-cat{font-size:12px;color:var(--mid);margin-top:2px;}
.fbcomp-stats{display:flex;border-top:0.5px solid var(--taupe2);}
.fbcomp-stats .comp-stat{flex:1;}
.fbcomp-foot{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-top:0.5px solid var(--taupe2);font-size:11px;color:var(--light);}
.fbcomp-actions{display:flex;gap:6px;}
.fbcomp-result{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1px solid var(--taupe2);border-radius:10px;padding:10px 14px;margin-bottom:8px;}
.fbcomp-result-meta{font-size:13px;color:var(--charcoal);min-width:0;}
.fbcomp-own{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:var(--t1);color:var(--burgundy);padding:2px 7px;border-radius:9px;margin-left:8px;}
.fbcomp-loc{font-size:12px;color:var(--mid);margin-left:8px;}
.fbcomp-note{font-size:13px;color:var(--mid);margin:6px 0 2px;}
.fbcomp-err{color:#c0392b;}
/* Competitor detail drawer */
.comp-detail-overlay{position:fixed;inset:0;z-index:400;background:rgba(40,30,20,.35);opacity:0;pointer-events:none;transition:opacity .2s;}
.comp-detail-overlay.open{opacity:1;pointer-events:all;}
.comp-detail-drawer{position:fixed;top:0;right:0;bottom:0;width:min(680px,100vw);background:var(--oat);box-shadow:-4px 0 32px rgba(40,12,6,.18);transform:translateX(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);z-index:401;display:flex;flex-direction:column;overflow:hidden;border-radius:14px 0 0 14px;}
.comp-detail-overlay.open .comp-detail-drawer{transform:translateX(0);}
.comp-detail-dhead{display:flex;align-items:center;gap:14px;padding:20px 24px 18px;border-bottom:1px solid var(--taupe2);flex-shrink:0;}
.comp-detail-avatar{width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,var(--t2),var(--t3));display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;color:var(--burgundy);flex-shrink:0;}
.comp-detail-info{flex:1;min-width:0;}
.comp-detail-handle{font-size:16px;font-weight:700;color:var(--charcoal);}
.comp-detail-name{font-size:13px;color:var(--mid);margin-top:2px;}
.comp-detail-close{width:30px;height:30px;border-radius:50%;border:1px solid var(--taupe2);background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--mid);flex-shrink:0;transition:background .12s;}
.comp-detail-close:hover{background:var(--t1);}
.comp-detail-stats{display:flex;border-bottom:1px solid var(--taupe2);flex-shrink:0;}
.comp-detail-stat{flex:1;text-align:center;padding:14px 8px;}
.comp-detail-stat+.comp-detail-stat{border-left:0.5px solid var(--taupe2);}
.comp-detail-stat-val{font-size:17px;font-weight:700;color:var(--charcoal);}
.comp-detail-stat-lbl{font-size:11px;color:var(--light);margin-bottom:3px;}
.comp-detail-body{flex:1;overflow-y:auto;padding:20px 24px;}
.comp-detail-section{margin-bottom:24px;}
.comp-detail-section-title{font-size:12px;font-weight:600;color:var(--burgundy);opacity:.7;margin-bottom:12px;font-family:var(--font-display);}
.comp-posts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;}
.comp-post-item{border:1px solid var(--taupe2);border-radius:10px;overflow:hidden;background:#fff;transition:border-color .12s;}
.comp-post-item:hover{border-color:var(--terra);}
.comp-post-thumb{width:100%;aspect-ratio:1;background:linear-gradient(135deg,#f0ede8,#e8e2dc);display:flex;align-items:center;justify-content:center;position:relative;}
.comp-post-thumb svg{opacity:.25;}
.comp-post-thumb-fallback{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:linear-gradient(135deg,#f0ede8,#e8e2dc);}
.comp-post-rank{position:absolute;top:6px;left:6px;background:rgba(0,0,0,.55);color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:6px;}
.comp-post-meta{padding:8px 10px 10px;}
.comp-post-stats-row{display:flex;gap:12px;font-size:12px;color:var(--mid);}
.comp-post-stats-row span{display:flex;align-items:center;gap:3px;}
.comp-post-caption{font-size:11px;color:var(--light);margin-top:5px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.comp-post-link{display:block;margin-top:6px;font-size:11px;color:var(--mid);text-decoration:none;opacity:.7;}
.comp-post-link:hover{opacity:1;text-decoration:underline;}
.comp-hashtags-large{display:flex;flex-wrap:wrap;gap:6px;}
.comp-hashtags-large .comp-hashtag-chip{font-size:12px;padding:4px 10px;}
/* Time filter tabs */
.comp-tf-row{display:flex;gap:4px;padding:10px 24px;border-bottom:1px solid var(--taupe2);flex-shrink:0;background:var(--t1);}
.comp-tf-btn{padding:4px 10px;border-radius:6px;border:1px solid var(--t2);background:#fff;font-size:12px;color:var(--mid);cursor:pointer;transition:background .12s,color .12s;}
.comp-tf-btn:hover{background:var(--t1);}
.comp-tf-btn.active{background:var(--terra);color:#fff;border-color:var(--terra);}
.comp-tf-empty{font-size:13px;color:var(--light);padding:16px 0;}
/* Self benchmark row — the client's own scraped IG, styled to stand out */
.comp-self-badge{display:inline-block;background:var(--terra);color:#fff;font-size:10px;font-weight:700;letter-spacing:.04em;padding:2px 7px;border-radius:100px;margin-right:8px;text-transform:uppercase;vertical-align:1px;}
.comp-self-placeholder{display:flex;align-items:center;gap:8px;background:var(--t1);padding:12px 14px;border-radius:10px;font-size:13px;}
.comp-self-placeholder strong{color:var(--terra);font-weight:700;}
.comp-add-hint{font-size:11.5px;color:var(--light);margin:-6px 0 16px;}
.comp-bench-how{margin-top:8px;}
.comp-bench-how>button{border:none;background:none;padding:2px 0;font-family:var(--font);font-size:12px;font-weight:600;color:var(--light);cursor:pointer;}
.comp-bench-how>button:hover{color:var(--mid);}
.comp-bench-how-body{display:none;font-size:12px;color:var(--light);line-height:1.5;margin-top:4px;}
.comp-bench-how.open .comp-bench-how-body{display:block;}
/* "Update" CTA on the competitor card — only appears when last_fetched is
   30+ days old. The pulse pulls the eye without being noisy. Both shadows are
   static; only the ::after layer's opacity animates, so the pulse composites
   on the GPU instead of repainting every frame. */
.btn-comp-update{position:relative;box-shadow:0 4px 14px rgba(255,90,48,.32);}
.btn-comp-update::after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:0 6px 22px rgba(255,90,48,.6);opacity:0;pointer-events:none;animation:comp-update-pulse 2.4s ease-in-out infinite;}
@keyframes comp-update-pulse{0%,100%{opacity:0;}50%{opacity:1;}}
.comp-next-refresh{display:inline-flex;align-items:center;font-size:11px;color:var(--burgundy);padding:6px 10px;border:1px dashed var(--t2);border-radius:6px;background:var(--t1);}/* AI summary */
.comp-ai-section{background:var(--t1);border:none;border-radius:14px;padding:16px 18px;margin-bottom:20px;}
.comp-ai-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:10px;}
.comp-ai-label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--burgundy);opacity:.75;}
.comp-ai-label svg{opacity:.6;}.comp-ai-body{font-size:13px;color:var(--charcoal);line-height:1.65;}
.comp-ai-body h2{font-size:12px;font-weight:600;color:var(--burgundy);opacity:.8;margin:12px 0 4px;}
.comp-ai-body h2:first-child{margin-top:0;}
.comp-ai-body p{margin:0 0 6px;}/* ── Tasks ── */
/* ── Tasks tab ─────────────────────────────────────────────── */
.task-newlist-tile{display:block;width:100%;padding:12px;border:1.5px dashed var(--taupe2);border-radius:10px;background:none;color:var(--mid);font-family:var(--font);font-size:13px;font-weight:500;cursor:pointer;margin-top:10px;transition:border-color .15s,color .15s;}
.task-newlist-tile:hover{border-color:var(--terra);color:var(--terra);}
.task-group-card{background:#fff;border:1px solid var(--taupe2);border-radius:14px;margin-bottom:10px;overflow:hidden;}
.task-group-header{display:flex;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;user-select:none;transition:background .12s;}
.task-group-header:hover{background:#fffaf7;}
.task-group-header.open .task-group-chevron{transform:rotate(90deg);}
.task-group-chevron{transition:transform .18s;color:var(--light);flex-shrink:0;}
.task-group-name{font-size:13px;font-weight:600;color:var(--charcoal);flex:1;letter-spacing:0.01em;}
.task-group-count{font-size:11px;color:var(--burgundy);background:var(--t1);border-radius:20px;padding:2px 8px;font-weight:600;}
/* Hidden actions collapse to zero width so the count rests at the far right,
   then slides left as they expand on hover. */
.task-group-actions{display:flex;align-items:center;gap:4px;white-space:nowrap;opacity:0;max-width:0;overflow:hidden;transition:opacity .12s,max-width .2s ease;}
.task-group-header:hover .task-group-actions{opacity:1;max-width:340px;}
.task-group-actions .btn-sm{padding:4px 10px;font-size:12px;}
.task-group-header:has(.kdrop-menu.open) .task-group-actions{opacity:1;max-width:340px;}
.task-group-card:has(.kdrop-menu.open),.task-group-actions:has(.kdrop-menu.open){overflow:visible;}
@media (hover:none),(pointer:coarse){.task-group-actions{opacity:1;max-width:340px;}}
.task-group-action-btn{background:none;border:1px solid var(--taupe2);border-radius:6px;font-size:11px;color:var(--mid);padding:3px 8px;cursor:pointer;font-family:var(--font);transition:all .12s;white-space:nowrap;}
.task-group-action-btn:hover{background:var(--oat);border-color:var(--taupe2);}
.task-group-action-btn.danger:hover{background:var(--red-bg);color:var(--red);border-color:#e8c0b8;}.task-group-body{display:none;}
.task-group-body.open{display:block;}
.task-row{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid #f0ece6;transition:background .1s;}
.task-row:hover{background:#fdfcfb;}
.task-row:last-child{border-bottom:none;}
.task-row.done{opacity:.4;}

/* Delete cross — hidden until row hover so rows stay quiet; always visible on touch. */
.task-row-x{border:none;background:none;color:var(--light);cursor:pointer;font-size:16px;line-height:1;padding:2px 4px;flex-shrink:0;opacity:0;transition:opacity .15s,color .15s;}
.task-row:hover .task-row-x{opacity:1;}
.task-row-x:hover{color:var(--red);}
@media(hover:none){.task-row-x{opacity:.6;}}

.task-cb{width:17px;height:17px;border-radius:4px;border:1.5px solid var(--taupe2);flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;background:#fff;}
.task-cb:hover{border-color:var(--green);}
.task-cb.checked{background:var(--green);border-color:var(--green);}
.task-name{flex:1;font-size:13.5px;color:var(--charcoal);cursor:pointer;line-height:1.4;}
.task-name:hover{color:var(--terra);}
.task-row.done .task-name{text-decoration:line-through;color:var(--light);}
.task-assignee{width:24px;height:24px;border-radius:50%;background:var(--t2);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--burgundy);flex-shrink:0;}
.task-due{font-size:11px;font-weight:500;padding:2px 8px;border-radius:20px;white-space:nowrap;flex-shrink:0;}
.task-doc-clip{color:var(--light);flex-shrink:0;}
.task-section-label{font-size:12px;font-weight:600;color:var(--light);margin:18px 0 8px;padding-left:2px;}
.task-due.overdue{background:var(--red-bg);color:var(--red);}
.task-due.soon{background:var(--amber-bg);color:var(--amber);}
.task-due.fine{background:var(--green-bg);color:var(--green);}
.task-due.nodate{background:var(--taupe);color:var(--light);}
.task-quick-add{display:flex;align-items:center;gap:8px;padding:9px 16px;background:var(--t1);}
.task-quick-add-icon{color:var(--t3);font-size:15px;line-height:1;flex-shrink:0;}
.task-quick-input{flex:1;border:none;outline:none;background:transparent;font-size:13px;font-family:var(--font);color:var(--charcoal);}
.task-quick-input::placeholder{color:#c0b8b0;}
/* ── Inline task detail panel ──────────────────────────────── */
.task-detail-panel{background:var(--t1);border-top:1px solid var(--t2);padding:16px 16px 14px;display:flex;flex-direction:column;gap:12px;animation:tdp-in .12s ease;}
@keyframes tdp-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.task-detail-row{display:flex;gap:10px;flex-wrap:wrap;}
.task-detail-field{flex:1;min-width:120px;display:flex;flex-direction:column;gap:5px;}
.task-detail-field.full{flex:none;width:100%;}
.task-detail-label{font-size:12px;font-weight:600;color:var(--burgundy);opacity:.7;}
.task-detail-input{border:1.5px solid var(--t2);border-radius:8px;padding:8px 10px;font-size:13px;font-family:var(--font);color:var(--charcoal);background:#fff;width:100%;transition:border-color .12s;}
.task-detail-input:focus{outline:none;border-color:var(--terra);}
textarea.task-detail-input{resize:vertical;min-height:58px;}
.task-detail-actions{display:flex;align-items:center;padding-top:2px;}
/* ── Inline new group card ─────────────────────────────────── */
.task-new-group-card{background:#fff;border:1.5px dashed var(--taupe2);border-radius:14px;padding:16px;display:flex;align-items:flex-end;gap:10px;margin-bottom:10px;}
/* ── Upcoming tasks widget ─────────────────────────────────── */
.upcoming-task-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--taupe);}
.upcoming-task-row:last-child{border-bottom:none;}
.upcoming-task-name{flex:1;min-width:0;font-size:13px;color:var(--charcoal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* Post thumbnails */
.comp-post-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.comp-detail-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;}
/* Integrations */
.ig-card{background:#fff;border:1px solid var(--taupe2);border-radius:14px;max-width:680px;overflow:hidden;}
/* Connected state */
.ig-connected-header{display:flex;align-items:center;gap:14px;padding:20px 22px;}
.integration-icon{width:42px;height:42px;border-radius:10px;background:linear-gradient(135deg,#f09433,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;}
.integration-icon-canva{background:linear-gradient(135deg,#00C4CC 0%,#7D2AE8 100%);}
.integration-icon-tiktok{background:#000;}
.integration-icon-tiktok svg{color:#fff;}
.integration-icon-linkedin{background:#0A66C2;}
.integration-icon-linkedin svg{color:#fff;}
.integration-icon-youtube{background:#FF0000;}
.integration-icon-youtube svg{color:#fff;}
.integration-name{font-size:15px;font-weight:600;color:var(--charcoal);}
.integration-sub{font-size:12px;color:var(--light);margin-top:2px;}
.integration-card .ig-connected-header{align-items:flex-start;}
.integration-action-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.integration-action-row:empty{display:none;margin:0;}
.integration-actions{display:flex;gap:8px;align-items:center;flex-shrink:0;}
.integration-actions .btn-sm{min-width:168px;}
.integration-actions:empty{display:none;}
.integration-note{font-size:12px;color:var(--light);line-height:1.55;padding-top:12px;border-top:1px solid var(--taupe);}
.integration-note a{color:var(--terra);text-decoration:none;font-weight:600;}
.integration-note a:hover{text-decoration:underline;}.btn-fb-primary{background:var(--terra);}
.intg-verdict{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--mid);margin:0 0 14px;flex-wrap:wrap;max-width:680px;}
.intg-verdict strong{color:var(--charcoal);}
.intg-dots{display:flex;gap:5px;flex-shrink:0;}
.intg-dot{width:8px;height:8px;border-radius:99px;background:var(--green);}
.intg-dot.off{background:transparent;border:1.5px solid var(--taupe2);}
.integration-list > div + div{border-top:1px solid var(--hairline);}
.integration-row{display:flex;align-items:center;gap:14px;padding:15px 18px;}
.integration-list .integration-icon{width:36px;height:36px;border-radius:8px;}
.integration-icon-facebook{background:#1877F2;}
.integration-list .integration-actions .btn-sm{min-width:0;}
.intg-note{font-size:12px;color:var(--amber);margin-top:3px;}
.btn-fb-primary:hover{background:#c33d22;}/* Analytics */
.ig-media-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px;}
.ig-media-item{aspect-ratio:1;border-radius:6px;overflow:hidden;background:var(--taupe);cursor:pointer;position:relative;}
.ig-media-item img{width:100%;height:100%;object-fit:cover;}
.ig-media-overlay{position:absolute;inset:0;background:rgba(0,0,0,0);display:flex;align-items:center;justify-content:center;gap:12px;transition:background .15s;}
.ig-media-item:hover .ig-media-overlay{background:rgba(0,0,0,.45);}
.ig-media-overlay span{color:#fff;font-size:12px;font-weight:600;opacity:0;transition:opacity .15s;}
.ig-media-item:hover .ig-media-overlay span{opacity:1;}

/* ── Instagram analytics ── */
.ig-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap;}
.ig-toolbar-actions{display:flex;gap:6px;}
.ig-tf-row{display:flex;gap:4px;}
.ig-tf-btn{padding:5px 12px;border-radius:7px;border:1px solid var(--taupe2);background:#fff;font-size:12px;color:var(--mid);cursor:pointer;font-family:var(--font);}
.ig-tf-btn.active{background:var(--terra);color:#fff;border-color:var(--terra);}
.ig-tf-btn:not(.active) .ig-tf-days{display:none;}
.ig-period-range{font-size:12px;color:var(--mid);margin:-10px 0 18px;display:flex;align-items:center;flex-wrap:wrap;gap:8px;line-height:1.45;}
.ig-period-range-vs{color:var(--light);font-size:11px;}
.ig-refresh-btn{margin-left:auto;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--taupe2);border-radius:7px;color:var(--mid);cursor:pointer;transition:color .15s,border-color .15s;}
.ig-refresh-btn:hover{color:var(--terra);border-color:var(--terra);}
.ig-period-range-vs::before{content:'·';margin-right:8px;color:var(--taupe2);}
.ig-stats-row{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:20px;}

/* Primary trio — the verdict numbers. Everything else is the secondary row. */
.ig-stats-primary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px;}
.ig-stat-hero{background:var(--white);border-radius:14px;padding:18px 20px;}
.ig-stat-hero .ig-stat-val{font-size:32px;}
.ig-stat-hero.dark{background:var(--t4);}
.ig-stat-hero.dark .ig-stat-val{color:#fff;}
.ig-stat-hero.dark .ig-stat-label{color:rgba(255,255,255,0.78);opacity:1;}
.ig-stat-hero.dark .ig-stat-context{color:rgba(255,255,255,0.6);}
.ig-stat-context{font-size:11.5px;color:var(--mid);margin-top:7px;}

.ig-stat-card{background:var(--white);border:none;border-radius:14px;padding:14px 16px;}
.ig-stat-card.dark{background:var(--t4);}
.ig-stat-card.dark .ig-stat-val{color:#fff;}
.ig-stat-card.dark .ig-stat-label{color:rgba(255,255,255,0.78);opacity:1;}
.ig-stat-top{display:flex;align-items:baseline;gap:6px;margin-top:6px;}
.ig-stat-val{font-family:var(--font-display);font-size:22px;font-weight:800;color:var(--charcoal);letter-spacing:-0.03em;line-height:1;}
.ig-stat-label{font-size:10.5px;font-weight:600;color:var(--burgundy);opacity:.65;}
.ig-change{font-size:11px;font-weight:600;padding:2px 5px;border-radius:5px;}
.ig-change.up{color:#1a7a4a;background:#e6f4ec;}
.ig-change.down{color:#a32d2d;background:#fdeaea;}
.ig-insights-row{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:14px;}
.ig-insights-row-2{grid-template-columns:1fr 1fr;}

.ig-insight-card{background:var(--white);border:none;border-radius:14px;padding:16px 18px;min-width:0;}
.ig-insight-title{font-size:12px;font-weight:600;color:var(--burgundy);opacity:.7;margin-bottom:12px;font-family:var(--font-display);}
.ig-insight-sub{display:block;text-transform:none;letter-spacing:0;font-weight:500;color:var(--mid);font-size:11px;margin-top:3px;}

/* Heatmap — day × hour engagement */
.ig-heatmap-card{padding:16px 18px 18px;}
.ig-heatmap{display:grid;grid-template-columns:38px repeat(24,1fr);gap:2px;align-items:center;}
.ig-heatmap-corner{height:14px;}
.ig-heatmap-hour{font-size:9px;color:var(--light);text-align:center;height:14px;line-height:14px;}
.ig-heatmap-day{font-size:11px;color:var(--mid);font-weight:600;padding-right:6px;text-align:right;}
.ig-heatmap-cell{aspect-ratio:1;border-radius:3px;background:rgba(108,33,20,.07);}
.ig-heatmap-cell.ig-heatmap-empty{background:rgba(108,33,20,.05);}
.ig-heatmap-cell.has-data{cursor:pointer;position:relative;}
.ig-heatmap-cell.has-data:hover{animation:hmWiggle .32s ease;transform:scale(1.15);z-index:2;box-shadow:0 1px 4px rgba(76,12,0,.22);}
@keyframes hmWiggle{0%{transform:scale(1) rotate(0)}30%{transform:scale(1.19) rotate(-3deg)}55%{transform:scale(1.12) rotate(2.5deg)}78%{transform:scale(1.16) rotate(-1.5deg)}100%{transform:scale(1.15) rotate(0)}}
/* Click tooltip — fixed-position singleton, centred above the cell */
.ig-hm-tip{position:fixed;transform:translate(-50%,-100%);background:var(--charcoal);color:#fff;font-size:12px;font-weight:500;padding:6px 11px;border-radius:6px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s;z-index:2000;box-shadow:0 6px 18px rgba(0,0,0,.22);}
.ig-hm-tip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--charcoal);}
.ig-hm-tip.show{opacity:1;}

/* Format performance */
.ig-type-list{display:flex;flex-direction:column;gap:10px;}
.ig-type-row{display:grid;grid-template-columns:90px 1fr 110px;align-items:center;gap:10px;}
.ig-type-label{font-size:13px;color:var(--charcoal);font-weight:500;}
.ig-type-bar{height:8px;background:rgba(108,33,20,.1);border-radius:4px;overflow:hidden;}
.ig-type-fill{height:100%;background:var(--t3);border-radius:4px;transition:width .25s ease;}
.ig-type-row-best .ig-type-fill{background:var(--t4);}
.ig-type-meta{font-size:12px;color:var(--charcoal);font-weight:600;text-align:right;}
.ig-type-badge{display:inline-block;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:rgba(255,255,255,.65);color:var(--burgundy);padding:2px 5px;border-radius:4px;margin-left:4px;vertical-align:1px;}

/* Format icon on post tiles */
.ig-media-kind{position:absolute;top:6px;right:6px;background:rgba(0,0,0,.45);color:#fff;font-size:11px;padding:2px 6px;border-radius:4px;line-height:1;}
.ig-bar-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.ig-bar-label{font-size:12px;color:var(--mid);width:80px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ig-bar-track{flex:1;height:6px;background:rgba(108,33,20,.1);border-radius:3px;overflow:hidden;}
.ig-bar-fill{height:100%;background:var(--t4);border-radius:3px;}
.ig-bar-val{font-size:12px;font-weight:600;color:var(--charcoal);width:30px;text-align:right;flex-shrink:0;}
.ig-bench-note{font-size:12.5px;color:var(--mid);margin-top:2px;margin-bottom:4px;line-height:1.5;}
.ig-bench-note strong{color:var(--charcoal);}
.ig-bench-method{font-size:11.5px;color:var(--light);margin-top:10px;line-height:1.5;}
.ig-rate-toggle{display:flex;align-items:center;gap:5px;}
.ig-rate-btn{padding:3px 9px;border-radius:6px;border:1px solid var(--taupe2);background:#fff;font-size:11px;font-weight:500;color:var(--mid);cursor:pointer;font-family:var(--font);}
.ig-rate-btn.active{background:var(--terra);color:#fff;border-color:var(--terra);}
.ig-rate-toggle .tab-info{margin-left:1px;width:16px;height:16px;font-size:10px;vertical-align:0;flex-shrink:0;}
.ig-rate-toggle .tab-info::after{left:auto;right:0;white-space:pre-line;}
.ig-rate-toggle .tab-info::before{left:auto;right:5px;}
.ig-col-chart{display:flex;align-items:flex-end;gap:10px;margin-top:16px;overflow-x:auto;padding-bottom:2px;}
.ig-col{flex:1 0 52px;display:flex;flex-direction:column;align-items:center;min-width:0;}
.ig-col-bar{width:100%;max-width:44px;border-radius:6px 6px 0 0;background:var(--t3);}
.ig-col.self .ig-col-bar{background:var(--terra);}
.ig-col-val{font-size:11px;font-weight:600;color:var(--mid);margin-bottom:4px;white-space:nowrap;}
.ig-col.self .ig-col-val{color:var(--charcoal);font-weight:700;}
.ig-col-label{font-size:10.5px;color:var(--mid);margin-top:6px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ig-col.self .ig-col-label{font-weight:700;color:var(--charcoal);}
.ig-mix-group{flex:1;display:flex;flex-direction:column;align-items:center;min-width:0;}
.ig-mix-pair{display:flex;align-items:flex-end;gap:5px;justify-content:center;width:100%;}
.ig-mix-pair .ig-col{flex:0 1 40px;}
.ig-mix-legend{display:flex;gap:14px;margin-top:12px;font-size:11px;color:var(--mid);}
.ig-mix-legend span{display:inline-flex;align-items:center;gap:5px;}
.ig-mix-legend i{width:9px;height:9px;border-radius:2px;display:inline-block;}
/* Views over time — muted history, solid terra "now" column */
.ig-vbar-chart{display:flex;align-items:flex-end;gap:6px;height:150px;margin-top:8px;}
.ig-vbar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;min-width:0;}
.ig-vbar-fill{width:100%;max-width:38px;border-radius:6px 6px 0 0;background:var(--t2);transition:background .12s;}
.ig-vbar:hover .ig-vbar-fill{background:var(--t3);}
.ig-vbar.now .ig-vbar-fill{background:var(--terra);}
.ig-vbar-val{font-size:11px;font-weight:700;color:var(--charcoal);margin-bottom:4px;white-space:nowrap;}
.ig-views-x{display:flex;justify-content:space-between;font-size:10.5px;color:var(--light);margin-top:6px;}
.ig-views-x-now{color:var(--charcoal);font-weight:700;}
/* Follower growth trendline */
.ig-growth-summary{display:flex;align-items:baseline;gap:8px;margin:6px 0 2px;font-size:12px;color:var(--mid);}
.ig-growth-net{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--charcoal);}
.ig-growth-net.down{color:#a32d2d;}
.ig-growth-svg{display:block;width:100%;height:150px;margin-top:6px;}
/* Top hashtags bar list */
.ig-taglist{margin-top:4px;}
.ig-tag-row .ig-bar-label{width:120px;color:var(--charcoal);font-weight:500;}
.ig-tag-row .ig-bar-val{width:80px;}
.ig-tag-uses{color:var(--light);font-weight:500;}
.ig-ai-section{background:var(--t1);border:none;border-radius:14px;padding:16px 18px;margin-bottom:20px;}
.ig-ai-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.ig-ai-label{font-size:12px;font-weight:700;color:var(--charcoal);}
.ig-ai-meta{font-size:11px;color:var(--light);margin-top:3px;}
.ig-ai-cta{text-align:center;padding:24px 12px 12px;}
.ig-ai-cta-title{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--charcoal);margin-bottom:6px;}
.ig-ai-cta-sub{font-size:13px;color:var(--mid);line-height:1.5;max-width:440px;margin:0 auto 16px;}
.ig-ai-cta-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.ig-ai-tabs{display:flex;gap:4px;margin:14px 0 16px;border-bottom:1px solid rgba(108,33,20,.14);flex-wrap:wrap;}
.ig-ai-tab{display:flex;align-items:center;gap:8px;padding:9px 14px;border:none;background:transparent;font-size:13px;color:var(--mid);cursor:pointer;font-family:var(--font);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s, border-color .15s;}
.ig-ai-tab:hover{color:var(--charcoal);}
.ig-ai-tab.active{color:var(--burgundy);border-bottom-color:var(--terra);font-weight:600;}
.ig-ai-step{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:rgba(108,33,20,.1);color:var(--burgundy);font-size:11px;font-weight:700;}
.ig-ai-tab.active .ig-ai-step{background:var(--terra);color:#fff;}
.ig-ai-body{font-size:13px;color:var(--mid);line-height:1.65;}
.ig-ai-body p{margin:0 0 10px;}
.ig-ai-body p:last-child{margin-bottom:0;}
.ig-ai-body strong{color:var(--charcoal);}
.ig-ai-body h2{display:none;}
.ig-ai-tab-short{display:none;}
.ig-ai-tab.next-up:not(.active){color:var(--terra);animation:aiNextPulse 2.4s ease-in-out infinite;}
.ig-ai-tab.next-up:not(.active) .ig-ai-step{background:var(--terra-pale);color:var(--terra);}
@keyframes aiNextPulse{0%,100%{text-shadow:0 0 2px rgba(255,90,48,0);}50%{text-shadow:0 0 12px rgba(255,90,48,.55);}}
@media(prefers-reduced-motion:reduce){.ig-ai-tab.next-up:not(.active){animation:none;text-shadow:0 0 8px rgba(255,90,48,.35);}}
.ig-ai-pills-wrap{margin-top:18px;padding-top:14px;border-top:1px dashed rgba(108,33,20,.2);}
.ig-ai-pills-label{font-size:12px;font-weight:600;color:var(--light);margin-bottom:8px;}
.ig-ai-pills{display:flex;flex-wrap:wrap;gap:6px;}
.ig-ai-pill{display:inline-flex;align-items:center;font-size:12px;font-weight:600;padding:5px 11px;border-radius:999px;border:1px solid transparent;line-height:1.3;}
.ig-ai-pill.pill-orange{background:#fef0e6;color:#b8501a;border-color:#f7d6bd;}
.ig-ai-pill.pill-green{background:#e6f4ec;color:#1a7a4a;border-color:#c8e6d4;}
.ig-ai-pill.pill-blue{background:#e6eef7;color:#1f4d80;border-color:#c5d6e8;}
.ig-ai-pill.pill-purple{background:#efe9f7;color:#5b3b87;border-color:#d8cce8;}
.ig-ai-pill.pill-pink{background:#fbe9ef;color:#9c2e54;border-color:#f0cad6;}
.ig-ai-pill.pill-terra{background:#fff;color:var(--burgundy);border-color:var(--t3);gap:7px;}
.ig-ai-pill.pill-terra::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--terra);flex:0 0 auto;}
/* Hoverable Key-target pills — short label visible, full action + "Create
   task" button revealed on hover. Tooltip is a real DOM element so the button
   inside is clickable. Anchored to the pill's left edge so it can't overflow
   the left of the parent. */
.ig-ai-pill.has-tip{position:relative;cursor:help;}
.ig-ai-pill-tip{
  position:absolute;
  bottom:calc(100% + 10px);
  left:0;
  display:flex;
  flex-direction:column;
  gap:8px;
  background:var(--charcoal);
  color:#fff;
  padding:10px 12px 10px;
  border-radius:7px;
  font-size:12px;
  font-weight:400;
  line-height:1.45;
  width:max-content;
  max-width:300px;
  white-space:normal;
  text-align:left;
  letter-spacing:0;
  opacity:0;
  pointer-events:none;
  transform:translateY(4px);
  transition:opacity .15s,transform .15s;
  z-index:500;
  box-shadow:0 6px 18px rgba(0,0,0,.18);
}
.ig-ai-pill-tip::before{
  content:'';
  position:absolute;
  top:100%;
  left:18px;
  border:6px solid transparent;
  border-top-color:var(--charcoal);
}
/* Transparent bridge over the 10px gap between tooltip and pill so the
   cursor can travel into the tooltip without dropping the hover state. */
.ig-ai-pill-tip::after{
  content:'';
  position:absolute;
  top:100%;
  left:0;
  right:0;
  height:12px;
}
.ig-ai-pill.has-tip:hover .ig-ai-pill-tip{opacity:1;pointer-events:auto;transform:translateY(0);}
.ig-ai-pill-task{
  align-self:flex-start;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
  font-size:11px;
  font-weight:600;
  padding:4px 10px;
  border-radius:5px;
  cursor:pointer;
  font-family:var(--font);
  letter-spacing:.02em;
  transition:background .15s;
}
.ig-ai-pill-task:hover{background:rgba(255,255,255,.22);}
.ig-ai-pill-task:disabled{opacity:.6;cursor:default;}.ig-posts-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.ig-posts-tabs{display:inline-flex;gap:0;border:1px solid var(--taupe2);border-radius:8px;overflow:hidden;background:#fff;}
.ig-posts-tab{padding:6px 14px;border:none;background:transparent;font-family:var(--font);font-size:12px;font-weight:600;color:var(--mid);cursor:pointer;letter-spacing:.02em;}
.ig-posts-tab+.ig-posts-tab{border-left:1px solid var(--taupe2);}
.ig-posts-tab:hover{background:#faf8f7;color:var(--charcoal);}
.ig-posts-tab.active{background:var(--terra);color:#fff;}
.ig-empty{font-size:12px;color:var(--light);}
.ig-empty-state{background:var(--t1);border:none;border-radius:14px;padding:48px 24px;text-align:center;max-width:480px;margin:24px auto;}
.ig-empty-title{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--charcoal);margin-bottom:6px;}
.ig-empty-sub{font-size:13px;color:var(--mid);margin-bottom:18px;line-height:1.5;}

/* ── Team ── */
.team-section-label{font-family:var(--font-display);font-size:12px;font-weight:600;color:var(--light);margin-bottom:8px;padding-left:2px;}
.team-member-row{background:var(--white);border:0.5px solid var(--taupe2);border-radius:var(--radius-lg);padding:12px 16px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow);}
.team-member-actions{display:flex;gap:6px;flex-shrink:0;}
.badge-prospect{background:#fff8ec;color:#9a6a00;}

/* ── Client tab entrance ── */
#ct-overview,#ct-profile,#ct-brand,#ct-plans,#ct-feed,#ct-inbox,#ct-content,#ct-media,#ct-notes,#ct-tasks,#ct-competitors,#ct-listening,#ct-analytics,#ct-integrations,#ct-automations,#ct-approvals,#ct-scheduler{animation:fadeUp .28s cubic-bezier(.22,1,.36,1) backwards;}

/* ── Sidebar client header button ── */
.sidebar-home-btn{transition:background .18s,color .18s,transform .1s;}
.sidebar-home-btn:active{transform:scale(.95);}

/* ── Team member row hover ── */
.team-member-row{transition:box-shadow .2s,border-color .2s,transform .2s;}
.team-member-row:hover{box-shadow:0 6px 18px rgba(33,32,31,.09);border-color:var(--taupe);transform:translateY(-1px);}
.team-member-row .user-avatar{box-shadow:0 0 0 0.5px rgba(10,10,10,.05);}

/* Team action buttons — clean light pills, clearer on hover */
.team-member-actions .btn-sm{background:var(--white);border:1px solid var(--taupe2);color:var(--mid);padding:6px 11px;font-weight:500;box-shadow:none;transition:background .15s,color .15s,border-color .15s;}
.team-member-actions .btn-sm:hover{background:var(--oat);color:var(--charcoal);border-color:var(--taupe);}
.team-member-actions .btn-sm.btn-danger{color:#c0392b;border-color:#e8c0b8;}
.team-member-actions .btn-sm.btn-danger:hover{background:#fff0ee;color:#c0392b;border-color:#e8c0b8;}
.team-member-actions .team-kebab{font-size:16px;line-height:1;padding:4px 10px;color:var(--mid);}
.team-member-actions .kdrop-menu{min-width:170px;}
@media(max-width:640px){
  .team-member-row{flex-wrap:wrap;row-gap:8px;padding:12px 14px;}
  .team-member-actions{flex-basis:100%;justify-content:flex-end;flex-wrap:wrap;}
}

/* ── Premium checkbox (terra fill + white tick) ── */
.koda-check{appearance:none;-webkit-appearance:none;margin:0;width:19px;height:19px;border:1.5px solid var(--taupe2);border-radius:6px;background:var(--white);cursor:pointer;position:relative;flex-shrink:0;transition:background .15s,border-color .15s,box-shadow .15s;}
.koda-check:hover{border-color:var(--terra);}
.koda-check:checked{background:var(--terra);border-color:var(--terra);}
.koda-check:checked::after{content:'';position:absolute;left:6px;top:2.5px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}
.koda-check:focus-visible{outline:none;box-shadow:0 0 0 3px var(--terra-pale);}

/* ── Premium permissions modal ── */
.perm-modal{width:440px;padding:0!important;overflow:hidden;}
.perm-modal-head{padding:24px 26px 18px;border-bottom:1px solid var(--taupe2);}
.perm-modal-title{font-family:var(--font-display);font-size:20px;font-weight:800;letter-spacing:-0.02em;color:var(--charcoal);}
.perm-modal-sub{font-size:13px;color:var(--mid);margin-top:3px;}
.perm-modal-body{padding:14px 18px;max-height:min(560px,70vh);overflow-y:auto;}
.perm-row{display:flex;align-items:center;gap:13px;padding:10px 10px;border-radius:10px;cursor:pointer;transition:background .12s;}
.perm-row:hover{background:var(--oat);}
.perm-row-text{flex:1;min-width:0;}
.perm-row-label{font-size:14px;font-weight:600;color:var(--charcoal);line-height:1.2;}
.perm-row-desc{font-size:12px;color:var(--light);margin-top:2px;line-height:1.35;}
.perm-section{margin:14px 8px 6px;padding-top:16px;border-top:1px solid var(--taupe2);}
.perm-section-label{font-family:var(--font-display);font-size:12px;font-weight:600;color:var(--light);}
.perm-section-hint{font-size:12px;color:var(--mid);margin-top:3px;line-height:1.4;}
.perm-client-row{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:10px;cursor:pointer;transition:background .12s;}
.perm-client-row:hover{background:var(--oat);}
.perm-client-av{width:28px;height:28px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--white);font-family:var(--font-display);overflow:hidden;}
.perm-client-name{flex:1;min-width:0;font-size:13.5px;color:var(--charcoal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.perm-modal-foot{display:flex;gap:8px;padding:16px 22px;border-top:1px solid var(--taupe2);background:#fcfbf9;}
.perm-empty{font-size:13px;color:var(--light);padding:8px 10px;}

/* ── Post modal overlay already uses opacity approach, animate backdrop ── */
.post-modal-overlay{transition:opacity .22s;}
.post-modal{transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .22s;}
.post-modal-overlay:not(.open) .post-modal{transform:scale(.94) translateY(10px);opacity:0;}.sp-counter{display:flex;align-items:center;gap:0;border:1.5px solid var(--taupe2);border-radius:8px;overflow:hidden;width:fit-content;}
.sp-counter-btn{width:34px;height:34px;border:none;background:#fff;font-size:18px;font-weight:300;color:var(--charcoal);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s;}
.sp-counter-btn:hover{background:var(--oat);}
.sp-counter span,#sp-count{min-width:36px;text-align:center;font-size:15px;font-weight:600;color:var(--charcoal);border-left:1.5px solid var(--taupe2);border-right:1.5px solid var(--taupe2);line-height:34px;}.sp-field-hint{font-weight:500;text-transform:none;letter-spacing:0;color:var(--light);font-size:10px;}
/* ── Saved shoot plan — collapsible mono-terra breakdown ───── */
.sp-plan{background:#fff;border:1px solid var(--taupe2);border-radius:16px;margin-bottom:14px;box-shadow:var(--shadow);transition:border-color .15s;}
.sp-plan.open{border-color:var(--terra-light);}
.sp-plan-archived{opacity:.85;}
.sp-plan-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px;cursor:pointer;flex-wrap:wrap;}
.sp-plan-bar-main{min-width:0;flex:1;}
.sp-plan-title{font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:-0.03em;color:var(--charcoal);line-height:1.15;cursor:pointer;transition:opacity .15s;}
.sp-plan-title:hover{opacity:.75;}
.sp-plan-meta{display:flex;align-items:center;gap:14px;margin-top:9px;font-size:12.5px;color:var(--mid);flex-wrap:wrap;}
.sp-plan-meta .mi{display:inline-flex;align-items:center;gap:6px;}
.sp-plan-meta .mi svg{color:var(--terra);flex-shrink:0;}
.sp-plan-notes{font-size:12.5px;color:var(--mid);line-height:1.55;margin-top:11px;max-width:680px;}
.sp-plan-bar-right{display:flex;align-items:center;gap:14px;flex-shrink:0;}
.sp-plan-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.sp-plan-chevron{color:var(--light);}
.sp-plan.open .sp-plan-chevron{transform:rotate(180deg);}
.sp-plan-body{display:none;padding:0 24px 22px;}
.sp-plan.open .sp-plan-body{display:block;}
.sp-plan-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px;}
/* Linked moodboard strip — overlapping thumbs + name, jumps to the board */
.sp-mb-link{display:inline-flex;align-items:center;gap:10px;padding:7px 12px 7px 8px;margin-bottom:12px;border:1px solid var(--taupe);border-radius:8px;background:var(--white);font-family:var(--font);cursor:pointer;transition:border-color .15s;}
.sp-mb-link:hover{border-color:var(--taupe2);}
.sp-mb-thumbs{display:flex;}
.sp-mb-thumbs img{width:26px;height:26px;border-radius:6px;object-fit:cover;border:2px solid var(--white);display:block;}
.sp-mb-thumbs img+img{margin-left:-9px;}
.sp-mb-name{font-size:12.5px;font-weight:600;color:var(--charcoal);}
.sp-mb-count{font-size:11.5px;color:var(--light);}
.sp-customise-btn{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--taupe2);border-radius:8px;cursor:pointer;font-family:var(--font);font-size:12px;font-weight:600;color:var(--mid);padding:6px 11px;transition:border-color .15s,color .15s;}
.sp-customise-btn:hover{border-color:var(--terra);color:var(--terra);}
.sp-customise-btn svg{color:var(--mid);transition:color .15s;}
.sp-customise-btn:hover svg{color:var(--terra);}
/* Field customise panel — sectioned blank-video preview */
.sp-field-list{display:flex;flex-direction:column;gap:18px;max-height:50vh;overflow-y:auto;margin-bottom:16px;padding:2px;}
.sp-fe-section{display:flex;flex-direction:column;gap:6px;}
.sp-fe-section-label{font-size:12px;font-weight:600;color:var(--terra);margin-bottom:2px;}
.sp-fe-block{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;border:1px solid var(--taupe2);border-radius:10px;cursor:pointer;background:var(--oat);opacity:.6;transition:opacity .12s,border-color .12s,background .12s;}
.sp-fe-block.on{opacity:1;background:#fff;border-color:var(--taupe2);}
.sp-fe-block.on:hover{border-color:var(--terra-light);}
.sp-fe-block.locked{cursor:default;}
.sp-fe-block-main{min-width:0;}
.sp-fe-label{font-size:13px;font-weight:600;color:var(--charcoal);display:flex;align-items:center;gap:8px;}
.sp-fe-lock{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--light);background:var(--oat);border-radius:4px;padding:2px 5px;}
.sp-fe-ph{font-size:11.5px;color:var(--light);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sp-fe-block input[type=checkbox]{width:17px;height:17px;flex-shrink:0;accent-color:var(--terra);cursor:pointer;}
.sp-fe-block.locked input[type=checkbox]{cursor:default;}
.sp-tpl-save{display:flex;gap:8px;border-top:1px solid var(--taupe2);padding-top:16px;}
.sp-tpl-save input{flex:1;font-family:var(--font);font-size:13px;color:var(--charcoal);border:1px solid var(--taupe2);border-radius:8px;padding:8px 10px;}

/* Plan-level status badge + menu */
.sp-plan-status{position:relative;display:inline-flex;cursor:pointer;}
.sp-pbadge{display:inline-flex;align-items:center;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;padding:3px 9px;border-radius:20px;line-height:1.4;}
.sp-pbadge-draft{background:var(--taupe);color:var(--mid);}
.sp-pbadge-active{background:var(--terra-pale);color:var(--burgundy);}
.sp-pbadge-complete{background:#e3f0e3;color:#3a7a3a;}
.sp-pstatus-menu{position:absolute;top:calc(100% + 6px);left:0;background:#fff;border:1px solid var(--taupe2);border-radius:10px;box-shadow:var(--shadow-lg);padding:4px;z-index:30;display:none;min-width:130px;}
.sp-pstatus-menu::before{content:'';position:absolute;top:-6px;left:0;right:0;height:6px;}
.sp-plan-status:hover .sp-pstatus-menu{display:block;}
.sp-pdot{width:8px;height:8px;border-radius:50%;flex-shrink:0;padding:0;}
.sp-plan-date{cursor:pointer;border-radius:6px;padding:2px 6px;margin:-2px -6px;transition:background .15s;}
.sp-plan-date:hover{background:var(--oat);}
.sp-plan-title-input{font:inherit;letter-spacing:inherit;color:inherit;width:100%;max-width:560px;box-sizing:border-box;background:var(--white);border:1.5px solid var(--terra);border-radius:8px;padding:0 8px;outline:none;}
.sp-plan-date-input{font-family:var(--font);font-size:12px;color:var(--charcoal);border:1.5px solid var(--terra);border-radius:6px;padding:2px 6px;}
.sp-share-toggle{font-family:var(--font);font-size:11px;font-weight:600;color:var(--mid);background:var(--oat);border:1px solid var(--taupe2);border-radius:20px;padding:3px 10px;cursor:pointer;transition:all .15s;}
.sp-share-toggle:hover{border-color:var(--terra);color:var(--terra);}
.sp-share-toggle.on{background:var(--terra-pale);border-color:transparent;color:var(--burgundy);}

/* Read-only shoot plans (client_viewer) — strip every authoring affordance */
.sp-readonly .sp-editable{pointer-events:none!important;}
.sp-readonly .sp-plan-status,
.sp-readonly .sp-plan-date{pointer-events:none!important;}
.sp-readonly .sp-plan-actions,
.sp-readonly .sp-customise-btn,
.sp-readonly .sp-share-toggle,
.sp-readonly .sp-pstatus-menu,
.sp-readonly .sp-vrow-add,
.sp-readonly .sp-gen-btn,
.sp-readonly .sp-list-item-add,
.sp-readonly .sp-list-item-remove,
.sp-readonly .sp-list-drag,
.sp-readonly .sp-vgrip,
.sp-readonly .sp-vdel{display:none!important;}
.sp-vgrip{flex:none;display:flex;align-items:center;color:var(--light);cursor:grab;opacity:0;padding:4px 0;margin-right:-6px;transition:opacity .15s;}
.sp-vrow-head:hover .sp-vgrip{opacity:.7;}
.sp-vgrip:hover{opacity:1!important;}
.sp-vrow.dragging{opacity:.4;}
.sp-vrow.drop-above{box-shadow:0 -2px 0 var(--terra);}
.sp-vrow.drop-below{box-shadow:0 2px 0 var(--terra);}
.sp-vdel{flex-shrink:0;border:none;background:none;color:var(--light);font-size:18px;line-height:1;cursor:pointer;padding:4px 6px;border-radius:6px;transition:color .15s,background .15s;}
.sp-vdel:hover{color:var(--red);background:var(--terra-pale);}
.sp-videos{display:flex;flex-direction:column;gap:10px;}
.sp-vrow{background:var(--oat);border:1px solid var(--taupe2);border-radius:14px;overflow:visible;transition:border-color .15s,box-shadow .15s;}
.sp-vrow:hover{border-color:var(--taupe2);box-shadow:0 2px 12px -5px rgba(10,10,10,0.1);}
.sp-vrow.open{border-color:var(--terra-light);background:#fff;}
.sp-vrow-head{display:flex;align-items:center;gap:16px;padding:14px 18px;cursor:pointer;}
.sp-vnum{flex-shrink:0;width:36px;height:36px;border-radius:10px;background:var(--terra-pale);color:var(--burgundy);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;font-variant-numeric:tabular-nums;transition:background .15s,color .15s;}
.sp-vrow.open .sp-vnum{background:var(--terra);color:#fff;}
.sp-vrow-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px;}
.sp-vrow-title{font-size:15px;font-weight:700;letter-spacing:-0.01em;color:var(--charcoal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.sp-vrow-status{position:relative;display:inline-flex;align-items:center;gap:7px;flex-shrink:0;font-size:12.5px;font-weight:600;color:var(--mid);padding:5px 10px;border-radius:7px;cursor:pointer;transition:background .15s;}
.sp-vrow-status:hover{background:var(--terra-pale);}
.sp-st-label{white-space:nowrap;}
.sp-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.sp-dot-idea{background:var(--light);}
.sp-dot-draft{background:var(--terra);}
.sp-dot-ready{background:var(--green);}
.sp-chevron{flex-shrink:0;color:var(--light);transition:transform .2s;display:flex;}
.sp-vrow.open .sp-chevron{transform:rotate(180deg);}
.sp-status-menu{position:absolute;top:calc(100% + 6px);right:0;background:#fff;border:1px solid var(--taupe2);border-radius:10px;box-shadow:var(--shadow-lg);padding:4px;z-index:30;display:none;min-width:150px;}
.sp-status-menu::before{content:'';position:absolute;top:-6px;left:0;right:0;height:6px;}
.sp-vrow-status:hover .sp-status-menu{display:block;}
.sp-status-opt{display:flex;align-items:center;gap:9px;width:100%;background:none;border:none;cursor:pointer;font-family:var(--font);font-size:12.5px;font-weight:600;color:var(--charcoal);padding:7px 9px;border-radius:7px;text-align:left;}
.sp-status-opt:hover{background:var(--oat);}
.sp-vbody-main{flex:1;}
.sp-vbody-side{flex-basis:280px;}
.sp-editable{cursor:pointer;}
.sp-editable:hover{opacity:.8;}
.sp-editable.editing{cursor:text;}
.sp-idea-labelrow{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.sp-gen-btn{display:inline-flex;align-items:center;gap:6px;background:var(--terra-pale);border:1px solid var(--terra-light);cursor:pointer;color:var(--burgundy);font-family:var(--font);font-size:11px;font-weight:700;letter-spacing:0.02em;text-transform:none;padding:5px 10px;border-radius:7px;line-height:1;transition:background .15s,border-color .15s;}
.sp-gen-btn:hover{background:var(--terra);border-color:var(--terra);color:#fff;}
.sp-gen-btn:hover svg{color:#fff;}
.sp-gen-btn svg{color:var(--terra);transition:color .15s;}
.sp-gen-btn:disabled{opacity:.6;cursor:default;}
.sp-idea-hint{font-size:11.5px;line-height:1.5;color:var(--light);margin-top:9px;}
.sp-idea-hint strong{color:var(--mid);font-weight:600;}
.sp-list-items{display:flex;flex-direction:column;gap:8px;}
.sp-list-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--oat);border-radius:8px;border:1px solid var(--taupe2);}
.sp-list-drag{display:flex;align-items:center;flex:none;color:var(--light);cursor:grab;opacity:.5;transition:opacity .15s;}
.sp-list-item:hover .sp-list-drag{opacity:1;}
.sp-list-item.dragging{opacity:.4;}
.sp-list-item.drop-above{box-shadow:0 -2px 0 var(--terra);}
.sp-list-item.drop-below{box-shadow:0 2px 0 var(--terra);}
.sp-list-item-content{flex:1;font-size:13px;color:var(--charcoal);line-height:1.4;}
.sp-list-item-content.sp-editable{cursor:pointer;}
.sp-list-item-content.sp-editable:hover{color:var(--t5);}
.sp-suggest-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;}
.sp-suggest-chip{border:1px solid var(--taupe2);background:#fff;color:var(--mid);font-family:var(--font);font-size:12px;border-radius:999px;padding:3px 10px;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sp-suggest-chip:hover{border-color:var(--t3);color:var(--t5);background:var(--t1);}
.sp-list-item-remove{background:none;border:none;cursor:pointer;color:var(--light);font-size:16px;padding:0;line-height:1;opacity:.6;transition:opacity .15s,color .15s;}
.sp-list-item-remove:hover{opacity:1;color:var(--red);}
.sp-list-item-add{background:none;border:1px dashed var(--taupe2);border-radius:8px;cursor:pointer;font-family:var(--font);font-size:13px;color:var(--mid);padding:8px 12px;transition:border-color .15s,color .15s;}
.sp-list-item-add:hover{border-color:var(--terra);color:var(--terra);}.sp-vrow-add{background:var(--oat);border:2px dashed var(--taupe2);cursor:pointer;transition:border-color .15s,background .15s;}
.sp-vrow-add:hover{border-color:var(--terra);background:var(--terra-pale);}
.sp-vbody{display:none;padding:0 18px 22px;border-top:1px solid var(--taupe);}
.sp-vrow.open .sp-vbody{display:block;}
.sp-vbody-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:32px;padding-top:20px;}
.sp-vbody-grid-single{grid-template-columns:1fr;}
.sp-blk{margin-bottom:22px;}
.sp-blk:last-child{margin-bottom:0;}
.sp-blk-label{font-size:12px;font-weight:600;color:var(--terra);margin-bottom:10px;}
.sp-idea-text{font-size:15px;line-height:1.6;color:var(--charcoal);}
.sp-body-text{font-size:13px;line-height:1.6;color:var(--mid);padding-top:12px;border-top:1px solid var(--taupe);}
.sp-sub-label{font-size:12px;font-weight:600;color:var(--mid);margin-bottom:8px;}
.sp-sub-label .ct{color:var(--light);font-weight:600;margin-left:7px;letter-spacing:0.04em;text-transform:none;}.sp-ost{display:flex;align-items:center;gap:11px;background:var(--terra);color:#fff;border-radius:10px;padding:13px 18px;}
.sp-ost svg{flex-shrink:0;opacity:.85;}
.sp-ost-t{font-size:15px;font-weight:700;letter-spacing:-0.01em;}
.sp-audio{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(--charcoal);line-height:1.5;}
.sp-audio svg{color:var(--terra);flex-shrink:0;margin-top:2px;}
.sp-logi{display:flex;flex-direction:column;gap:18px;}
.sp-logi-item{display:flex;gap:11px;}
.sp-logi-ic{flex-shrink:0;width:30px;height:30px;border-radius:8px;background:var(--terra-pale);color:var(--terra);display:flex;align-items:center;justify-content:center;}
.sp-logi-label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;font-weight:600;color:var(--light);margin-bottom:3px;}
.sp-logi-apply{flex-shrink:0;font-family:var(--font);font-size:10px;font-weight:700;text-transform:none;letter-spacing:0;color:var(--terra);background:none;border:none;cursor:pointer;padding:0;opacity:0;transition:opacity .15s;}
.sp-logi-item:hover .sp-logi-apply{opacity:1;}
.sp-logi-apply:hover{text-decoration:underline;}
.sp-logi-val{font-size:13px;font-weight:600;color:var(--charcoal);line-height:1.45;}
.sp-caption{background:var(--terra-pale);border-radius:12px;padding:15px 20px;margin-top:6px;}
.sp-caption .sp-blk-label{color:var(--burgundy);}
.sp-caption-text{font-size:13px;line-height:1.6;color:var(--charcoal);white-space:pre-wrap;}

/* Per-video comment threads */
.sp-comments{margin-top:24px;padding-top:18px;border-top:1px solid var(--taupe2);}
.sp-cmt-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--terra);color:#fff;font-size:11px;font-weight:700;line-height:18px;}
.sp-cmt-list{display:flex;flex-direction:column;gap:12px;margin-bottom:14px;}
.sp-cmt-empty{font-size:12.5px;color:var(--light);}
.sp-cmt{background:#faf9f7;border:1px solid var(--taupe2);border-radius:10px;padding:10px 13px;}
.sp-cmt-head{display:flex;align-items:center;gap:8px;margin-bottom:5px;}
.sp-cmt-author{font-size:12.5px;font-weight:600;color:var(--charcoal);}
.sp-cmt-role{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--mid);background:var(--oat);border-radius:4px;padding:1px 5px;}
.sp-cmt-time{font-size:11px;color:var(--light);}
.sp-cmt-del{margin-left:auto;border:none;background:none;color:var(--light);font-size:16px;line-height:1;cursor:pointer;padding:0 2px;}
.sp-cmt-del:hover{color:var(--red);}
.sp-cmt-body{font-size:13px;line-height:1.55;color:var(--charcoal);white-space:pre-wrap;}
.sp-cmt-compose{display:flex;gap:8px;align-items:flex-end;}
.sp-cmt-input{flex:1;font-family:var(--font);font-size:13px;color:var(--charcoal);background:#fff;border:1px solid var(--taupe2);border-radius:8px;padding:8px 10px;resize:vertical;box-sizing:border-box;}
.sp-cmt-input:focus{outline:none;border-color:var(--terra);}
.sp-cmt-post{flex-shrink:0;}@media(max-width:760px){.sp-vbody-grid{grid-template-columns:1fr;gap:22px;}.sp-plan-title{font-size:22px;}}
/* ── Sidebar nav divider ──────────────────────────────────── */
.nav-divider{display:flex;align-items:center;gap:8px;padding:12px 1.25rem 5px;margin-top:0;}
.nav-divider::before{content:'';flex:none;width:20px;height:1px;background:rgba(255,255,255,0.14);}
.nav-divider span{font-size:10.5px;font-weight:600;color:rgba(255,255,255,0.42);white-space:nowrap;}
.nav-divider::after{content:'';flex:1;height:1px;background:rgba(255,255,255,0.14);}

/* ── Content creation sub-items ───────────────────────────── */
.nav-cc-submenu{display:none;}
.nav-item.active + .nav-cc-submenu{display:block;}
.nav-item .nav-caret{margin-left:auto;width:12px;height:12px;opacity:.5;transition:transform .15s;}
.nav-item.active .nav-caret{transform:rotate(90deg);opacity:.8;}
.nav-subitem{display:flex;align-items:center;gap:8px;padding:7px 1.25rem 7px 2.5rem;font-size:12px;color:rgba(239,239,230,0.5);cursor:pointer;transition:color .15s,background .15s;border-left:2px solid transparent;}
.nav-subitem svg{flex-shrink:0;width:13px;height:13px;opacity:.7;transition:opacity .15s;}
.nav-subitem:hover svg{opacity:1;}
.nav-subitem:hover{color:#fff;background:rgba(255,255,255,0.06);}
.nav-subitem.active{color:#fff;border-left-color:var(--terra);background:rgba(255,90,48,0.3);}

/* ── Content creation feature grid ───────────────────────── */
.cc-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:4px;}
.cc-feature-card-lead{grid-column:1/-1;}
.cc-feature-card{background:#fff;border:1px solid var(--taupe2);border-radius:var(--radius-lg);padding:24px;cursor:pointer;transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s,border-color .2s;}
.cc-feature-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(10,10,10,.09);border-color:var(--taupe);}
.cc-feature-card:active{transform:translateY(-1px);}
.cc-feature-icon{width:44px;height:44px;border-radius:12px;background:var(--terra-pale);color:var(--terra);display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.cc-feature-name{font-size:15px;font-weight:700;letter-spacing:-0.02em;color:var(--charcoal);margin-bottom:6px;}
.cc-feature-desc{font-size:13px;color:var(--mid);line-height:1.55;}

/* ── Content creation back button ────────────────────────── */
.cc-back-btn{display:inline-flex;align-items:center;gap:5px;background:none;border:none;font-family:var(--font);font-size:12px;font-weight:600;color:var(--light);cursor:pointer;padding:0;transition:color .15s;margin-bottom:2px;}
.cc-back-btn:hover{color:var(--mid);}

/* ── Inbox ────────────────────────────────────────────────── */
.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;border-radius:8px;background:var(--terra);color:#fff;font-size:10px;font-weight:700;padding:0 4px;margin-left:auto;}
.inbox-list{display:flex;flex-direction:column;gap:0;background:transparent;}
.inbox-row{border-bottom:1px solid var(--taupe2);position:relative;}
/* Swipe-to-dismiss reveal: the item slides left over a terra underlay. */
.inbox-row.swiping::before{content:'Dismiss';position:absolute;inset:0;background:var(--terra);color:#fff;display:flex;align-items:center;justify-content:flex-end;padding-right:18px;font-size:12px;font-weight:600;}
.inbox-row.swiping .inbox-item,.inbox-row.dismissing .inbox-item{background:#fff;}
.inbox-row:last-child{border-bottom:none;}
.inbox-row.unread .inbox-item{background:#fffaf7;}
.inbox-item{display:flex;align-items:flex-start;gap:11px;padding:11px 13px;cursor:pointer;transition:background .12s,transform .25s ease;position:relative;}
.inbox-item:hover{background:#faf9f7;}
.inbox-item.expanded{background:#faf9f7;}
.inbox-avatar{width:34px;height:34px;border-radius:50%;background:var(--taupe);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--mid);flex-shrink:0;}
.inbox-body{flex:1;min-width:0;}
.inbox-meta{display:flex;align-items:center;gap:6px;margin-bottom:3px;min-width:0;}
.inbox-sender{font-size:13px;font-weight:600;color:var(--charcoal);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.inbox-client-name{font-size:11px;color:var(--light);}
.inbox-time{font-size:11px;color:var(--light);margin-left:auto;}
.inbox-unread-dot{width:7px;height:7px;border-radius:50%;background:var(--terra);flex-shrink:0;}
.inbox-preview{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--mid);line-height:1.4;min-width:0;}
.inbox-preview>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.inbox-preview>svg{width:12px;height:12px;flex-shrink:0;color:var(--light);}
.inbox-preview.unread{color:var(--charcoal);font-weight:500;}
.inbox-group{padding:10px 14px 4px;font-size:11.5px;font-weight:600;color:var(--light);}
.inbox-av-wrap{position:relative;flex-shrink:0;}
.inbox-kind{position:absolute;right:-3px;bottom:-3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px var(--taupe);display:flex;align-items:center;justify-content:center;color:var(--mid);}
.inbox-kind svg{width:9px;height:9px;}
.inbox-row-actions{position:absolute;top:8px;right:8px;display:flex;gap:2px;padding-left:8px;background:inherit;}
.inbox-row-actions .inbox-kebab{margin-left:0;}
.inbox-row-actions .inbox-kebab svg{width:14px;height:14px;}
.inbox-subline{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px;}
/* Comment pane — post context card above the comment thread */
.cmt-post{display:flex;gap:12px;padding:12px 14px;background:#fff;border:1px solid var(--taupe2);border-radius:10px;margin-bottom:14px;}
.cmt-post-thumb{width:52px;height:52px;border-radius:8px;object-fit:cover;flex-shrink:0;}
.cmt-post-body{min-width:0;flex:1;}
.cmt-post-label{font-size:12px;color:var(--light);font-weight:600;margin-bottom:4px;}
.cmt-post-cap{font-size:12.5px;color:var(--mid);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.cmt-post-link{font-size:11.5px;color:var(--terra);text-decoration:none;display:inline-block;margin-top:5px;}
.cmt-post-link:hover{text-decoration:underline;}.inbox-msg{padding:6px 0;border-bottom:1px solid rgba(0,0,0,.05);}
.inbox-msg:last-child{border-bottom:none;}
.inbox-msg.reply{padding-left:14px;border-left:2px solid var(--taupe2);margin-left:6px;}.inbox-empty{font-size:13px;color:var(--light);padding:20px 0;line-height:1.6;}
.inbox-perm-warn{font-size:12px;color:var(--amber);background:var(--amber-bg);border-radius:8px;padding:8px 12px;margin-bottom:10px;}
.inbox-perm-warn code{font-size:11px;background:rgba(0,0,0,.06);padding:1px 5px;border-radius:3px;}
.inbox-info-note{font-size:12px;color:var(--mid);background:var(--taupe-pale);border-left:2px solid var(--terra);border-radius:6px;padding:9px 12px;margin-bottom:10px;line-height:1.5;}
.inbox-info-note em{font-style:normal;font-weight:600;color:var(--charcoal);}
@media(max-width:640px){
  .inbox-perm-warn,.inbox-info-note{font-size:11.5px;line-height:1.4;padding:6px 10px;margin-bottom:8px;}
  .chat-composer-locked{padding:8px 12px;font-size:11.5px;line-height:1.4;}
}
.inbox-info-note code{font-size:11px;background:rgba(0,0,0,.05);padding:1px 5px;border-radius:3px;font-family:ui-monospace,Menlo,monospace;}
/* Notes rendered directly inside the 3-pane list body need breathing room. */
.inbox-main-body>.inbox-info-note,.inbox-main-body>.inbox-perm-warn{margin:10px 12px 0;}
.inbox-dismissed-note{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.inbox-dismissed-note .btn-sm{flex-shrink:0;background:#fff;}
.inbox-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:56px 24px;color:var(--mid);}
.inbox-loading-spinner{width:32px;height:32px;border-radius:50%;border:2.5px solid var(--taupe);border-top-color:var(--terra);animation:inboxSpin .8s linear infinite;}
.inbox-loading-text{font-size:14px;font-weight:600;color:var(--charcoal);}
.inbox-loading-dots::after{content:'';animation:inboxDots 1.4s steps(4,end) infinite;}
.inbox-loading-sub{font-size:12px;color:var(--light);text-align:center;}
@keyframes inboxSpin{to{transform:rotate(360deg)}}
@keyframes inboxDots{0%{content:''}25%{content:'.'}50%{content:'..'}75%,100%{content:'...'}}.inbox-search{font-size:12.5px;padding:6px 10px;border:1px solid var(--taupe2);border-radius:6px;background:var(--white);color:var(--charcoal);min-width:140px;flex:0 0 auto;}
.inbox-search:focus{outline:none;border-color:var(--charcoal);}
.inbox-status-tag{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;padding:1.5px 6px;border-radius:8px;font-weight:600;}
.inbox-status-tag.replied{background:rgba(42,122,91,.12);color:var(--green);}
.inbox-status-tag.dismissed{background:var(--taupe);color:var(--mid);}
.inbox-status-tag.pinned{background:var(--terra-pale);color:var(--terra);}
.inbox-status-tag.needs-attention{background:var(--terra);color:#fff;}
.inbox-status-tag.assigned{background:var(--taupe);color:var(--mid);}
.inbox-status-tag.expiring{background:var(--amber-bg);color:var(--amber);}
.inbox-status-tag.closed{background:var(--taupe);color:var(--mid);}
.inbox-post-mini{width:16px;height:16px;border-radius:3px;object-fit:cover;flex-shrink:0;}
.inbox-post-cap{font-size:11px;color:var(--light);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.inbox-row.settled .inbox-item{opacity:.72;}
.inbox-row.settled .inbox-item:hover,.inbox-row.settled.selected .inbox-item{opacity:1;}
.inbox-row.dismissed{opacity:.55;}
.inbox-row{transition:transform .26s cubic-bezier(.22,1,.36,1),opacity .22s ease,height .28s ease,margin .28s ease,padding .28s ease,border-color .15s;overflow:hidden;will-change:transform,opacity,height;}
.inbox-row.dismissing{transform:translateX(-110%);opacity:0;height:0 !important;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;border-bottom-width:0;pointer-events:none;}
.inbox-kebab{align-self:flex-start;margin-left:8px;width:24px;height:24px;border-radius:50%;border:none;background:transparent;color:var(--light);line-height:0;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:0;transition:opacity .12s;}
.inbox-kebab:hover{background:var(--taupe);color:var(--charcoal);}
.inbox-item:hover .inbox-kebab,.inbox-row.dismissed .inbox-kebab,.inbox-row.selected .inbox-kebab{opacity:1;}
.inbox-toolbar-kebab{opacity:1;align-self:center;margin-left:0;width:28px;height:28px;border-radius:6px;}
.inbox-menu{position:fixed;z-index:1500;background:#fff;border:1px solid var(--taupe2);border-radius:10px;box-shadow:0 8px 24px rgba(10,10,10,.12);padding:5px;min-width:150px;display:flex;flex-direction:column;}
.inbox-menu button{background:none;border:none;text-align:left;padding:8px 10px;font-size:13px;font-weight:500;color:var(--charcoal);cursor:pointer;border-radius:6px;font-family:var(--font);}
.inbox-menu button:hover{background:var(--taupe);}
.inbox-showmore{display:block;width:100%;padding:11px;border:none;border-top:1px solid var(--taupe2);background:none;color:var(--terra);font-family:var(--font);font-size:12.5px;font-weight:600;cursor:pointer;transition:background .12s;}
.inbox-showmore:hover{background:var(--oat);}
.inbox-muted-hint{font-size:12.5px;color:var(--mid);line-height:1.5;margin:0 0 14px;}
.inbox-muted-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px;}
.inbox-muted-chip{display:inline-flex;align-items:center;gap:4px;background:var(--t1);color:var(--charcoal);font-size:12.5px;font-weight:500;padding:4px 6px 4px 10px;border-radius:8px;}
.inbox-muted-chip button{background:none;border:none;color:var(--mid);font-size:14px;line-height:1;padding:2px 4px;cursor:pointer;border-radius:4px;}
.inbox-muted-chip button:hover{color:var(--terra);}

/* ── Inbox 3-pane shell (conversation list + thread + contact context) ── */
.inbox-shell{display:grid;grid-template-columns:minmax(300px,372px) minmax(0,1fr) 292px;gap:0;align-items:stretch;height:calc(100vh - 70px);min-height:520px;background:#fff;border:1px solid var(--taupe2);border-radius:14px;overflow:hidden;}
.inbox-head{display:flex;flex-direction:column;gap:10px;padding:14px 14px 12px;border-bottom:1px solid var(--taupe2);flex-shrink:0;}
.inbox-head-row{display:flex;align-items:center;gap:8px;}
.inbox-title{font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-0.03em;color:var(--charcoal);flex:1;}
.inbox-head .ksel{flex:1;min-width:0;max-width:200px;margin-left:auto;}
.inbox-head .ksel-btn.inbox-client-select{font-size:12.5px;padding:6px 10px;border-width:1px;border-radius:8px;}
.inbox-seg{display:flex;gap:3px;padding:3px;background:var(--oat);border:1px solid var(--taupe);border-radius:8px;}
.inbox-seg-item{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;height:30px;border:none;border-radius:6px;background:transparent;font-family:var(--font);font-size:12.5px;font-weight:500;color:var(--mid);cursor:pointer;transition:background .12s,color .12s;}
.inbox-seg-item.active{background:#fff;color:var(--terra);font-weight:600;box-shadow:0 1px 2px rgba(10,10,10,.06);}
.inbox-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--taupe);color:var(--mid);font-size:10.5px;font-weight:700;font-variant-numeric:tabular-nums;}
.inbox-count:empty{display:none;}
.inbox-seg-item.active .inbox-count.hot{background:var(--terra);color:#fff;}
.inbox-search-wrap{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;border:1px solid var(--taupe2);border-radius:8px;background:var(--oat);color:var(--light);transition:border-color .15s,background .15s;}
.inbox-search-wrap svg{width:14px;height:14px;flex-shrink:0;}
.inbox-search-wrap:focus-within{border-color:var(--charcoal);background:#fff;}
.inbox-search{flex:1;min-width:0;border:none;background:transparent;font-family:var(--font);font-size:13px;color:var(--charcoal);padding:0;}
.inbox-search:focus{outline:none;}
.inbox-chips{display:flex;gap:6px;flex-wrap:wrap;}
.inbox-chip{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:20px;border:1px solid var(--taupe2);background:#fff;font-family:var(--font);font-size:12px;font-weight:500;color:var(--mid);cursor:pointer;transition:border-color .12s,background .12s,color .12s;white-space:nowrap;}
.inbox-chip svg{width:12px;height:12px;}
.inbox-chip:hover{border-color:var(--taupe);color:var(--charcoal);}
.inbox-chip.active{border-color:var(--terra);background:var(--terra-pale);color:var(--terra);font-weight:600;}
.inbox-chip-n{font-size:11px;color:inherit;opacity:.75;}
.inbox-chip-sm{height:24px;font-size:11.5px;max-width:180px;overflow:hidden;text-overflow:ellipsis;display:inline-block;line-height:22px;}
.inbox-chip-sm.ghost{border-style:dashed;color:var(--light);}
.inbox-dismiss-x{color:var(--light);}
.inbox-dismiss-x:hover{background:var(--green-bg);color:var(--green);}

.inbox-main{min-width:0;display:flex;flex-direction:column;gap:0;height:100%;overflow:hidden;border-right:1px solid var(--taupe2);}
.inbox-toolbar-refresh{width:30px;height:30px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--taupe2);border-radius:8px;background:#fff;color:var(--mid);cursor:pointer;transition:border-color .15s,color .15s;}
.inbox-toolbar-refresh:hover{border-color:var(--charcoal);color:var(--charcoal);}
.inbox-main-body{display:flex;flex-direction:column;gap:0;flex:1;min-height:0;overflow-y:auto;}
/* Context column only earns its space on wide screens. */
@media(max-width:1279px){
  .inbox-shell{grid-template-columns:minmax(300px,360px) minmax(0,1fr);}
  .inbox-ctx{display:none;}
}

@media(max-width:1024px){
  /* List scrolls with the page (native elastic scroll) — the fixed-height
     app-in-app layout only comes back while a chat thread is open. */
  .inbox-shell{display:flex;flex-direction:column;height:auto;min-height:0;}
  /* Open thread is a true fixed overlay below the topbar; the body lock uses
     position:fixed because iOS ignores overflow:hidden for touch scrolling. */
  .inbox-shell.conv-open{position:fixed;top:calc(52px + env(safe-area-inset-top));left:0;right:0;bottom:0;height:auto;z-index:700;border:none;border-radius:0;padding-bottom:env(safe-area-inset-bottom);}
  body.inbox-thread-open{position:fixed;left:0;right:0;overflow:hidden;}
  .inbox-shell:not(.conv-open) .inbox-main{height:auto;overflow:visible;}
  .inbox-shell:not(.conv-open) .inbox-main-body{overflow:visible;}
  .inbox-head{padding:10px 12px;gap:8px;}
  .inbox-row-actions{position:static;padding-left:0;background:none;align-self:flex-start;}
  .chat-actions .chat-hb:not(.inbox-kebab){display:none;}
  .chat-window{height:24px;padding:0 7px;font-size:11px;}
  .inbox-shell .chat-window .cw-long{display:none;}
  .inbox-shell .chat-window .cw-short{display:inline;}
  .chat-header-id{cursor:pointer;}
  .inbox-shell .chat-header-chev{display:inline-flex;}
  .inbox-shell .chat-input{font-size:16px;}
  .inbox-ctx-btns .btn-sm{height:40px;}
  .inbox-head .ksel{max-width:none;}
  .inbox-chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 -12px;padding:0 12px;}
  .inbox-chips::-webkit-scrollbar{display:none;}
  .inbox-main{flex:1;min-height:0;border-right:none;}
  /* DM chat becomes a full-width overlay; the rail+list hide while it's open.
     :not() keeps this above the base .inbox-thread-pane{display:flex} rule,
     which sits later in the file and would otherwise win on source order —
     leaving a height:100% pane that flexed the list down to 0px. */
  .inbox-shell:not(.conv-open) .inbox-thread-pane{display:none;}
  .inbox-shell.conv-open .inbox-ctx,
  .inbox-shell.conv-open .inbox-main{display:none;}
  .inbox-shell.conv-open .inbox-thread-pane{display:flex;flex:1;min-height:0;}
  .chat-back{display:block !important;}
}

/* ── Inbox DM chat pane (right column) ──────────────────────────────────── */
.inbox-thread-pane{display:flex;flex-direction:column;height:100%;min-width:0;background:#fff;border:none;border-radius:0;box-shadow:none;overflow:hidden;}
.inbox-pane-empty{margin:auto;color:var(--light);font-size:13px;padding:24px;text-align:center;}
.inbox-pane-sub{font-size:11.5px;color:var(--light);}
.chat-header{display:flex;align-items:center;gap:10px;padding:11px 16px;border-bottom:1px solid var(--taupe2);flex-shrink:0;}
.chat-back{display:none;background:none;border:none;font-size:18px;line-height:1;color:var(--mid);cursor:pointer;padding:2px 6px;border-radius:6px;}
.chat-back:hover{background:var(--oat);}
.chat-header .inbox-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0;}
.chat-header-id{min-width:0;}
.chat-header-handle{font-size:14px;font-weight:700;color:var(--charcoal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:8px;}
.chat-header-id{flex:1;}
.chat-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.chat-window{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border-radius:6px;font-size:11.5px;font-weight:600;white-space:nowrap;background:var(--taupe);color:var(--mid);}
.chat-window svg{width:12px;height:12px;}
.chat-window.open{background:var(--green-bg);color:var(--green);}
.chat-window .cw-short{display:none;}
.chat-header-chev{display:none;color:var(--light);}
.chat-header-chev svg{width:12px;height:12px;}
.chat-window.expiring{background:var(--amber-bg);color:var(--amber);}
.chat-hb{width:28px;height:28px;border:1px solid var(--taupe2);border-radius:6px;background:#fff;color:var(--mid);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;opacity:1;margin:0;transition:border-color .15s,color .15s,background .15s;}
.chat-hb svg{width:14px;height:14px;}
.chat-hb:hover{border-color:var(--charcoal);color:var(--charcoal);background:#fff;}
.chat-hb.on{background:var(--terra-pale);border-color:var(--terra);color:var(--terra);}
.chat-scroll{flex:1;overflow-y:auto;min-height:0;padding:16px;display:flex;flex-direction:column;gap:3px;background:var(--oat);overscroll-behavior:contain;}
.chat-day{align-self:center;font-size:11px;color:var(--light);font-weight:600;margin:14px 0 8px;}
.chat-bubble-row{display:flex;}
.chat-bubble-row.in{justify-content:flex-start;}
.chat-bubble-row.out{justify-content:flex-end;}
.chat-bubble{position:relative;max-width:74%;padding:8px 12px 5px;border-radius:14px;font-size:13.5px;line-height:1.4;color:var(--charcoal);background:#fff;border:1px solid var(--taupe2);word-break:break-word;}
.chat-bubble[data-mid]{cursor:pointer;}
.chat-bubble.liked{margin-bottom:10px;}
.chat-like{position:absolute;bottom:-11px;left:10px;background:#fff;border:1px solid var(--taupe2);border-radius:10px;padding:0 5px;font-size:11px;line-height:17px;color:var(--terra);}
.chat-bubble-row.out .chat-bubble{background:var(--terra);color:#fff;border-color:var(--terra);}
.chat-bubble.media{font-style:italic;opacity:.72;}
.chat-att-img{display:block;max-width:220px;max-height:280px;border-radius:10px;margin:3px 0 2px;object-fit:cover;}
.chat-att-video{display:block;max-width:240px;max-height:300px;border-radius:10px;margin:3px 0 2px;}
.chat-att-audio{display:block;max-width:230px;margin:4px 0 2px;}
.chat-card{display:flex;align-items:center;gap:10px;margin:3px 0 2px;padding:8px 10px;border-radius:10px;border:1px solid var(--taupe2);background:var(--oat);color:inherit;text-decoration:none;min-width:200px;}
.chat-card>svg{width:16px;height:16px;flex-shrink:0;color:var(--mid);}
.chat-card-txt{display:flex;flex-direction:column;gap:2px;min-width:0;}
.chat-card-h{font-size:12.5px;font-weight:600;line-height:1.3;}
.chat-card-l{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;font-weight:600;color:var(--terra);}
.chat-card-l svg{width:11px;height:11px;}
.chat-bubble-row.out .chat-card{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.35);color:#fff;}
.chat-bubble-row.out .chat-card>svg,.chat-bubble-row.out .chat-card-l{color:#fff;}
.chat-att-note{display:block;margin:3px 0 2px;font-style:italic;opacity:.72;}
.chat-bubble-time{display:block;font-size:9.5px;opacity:.6;margin-top:2px;text-align:right;}
.chat-seen{font-size:10px;color:var(--light);text-align:right;margin:3px 4px 0;}
.chat-composer{display:flex;flex-direction:column;gap:8px;padding:12px 16px 14px;border-top:1px solid var(--taupe2);flex-shrink:0;background:#fff;}
.chat-quick{display:flex;gap:6px;flex-wrap:wrap;}
.chat-box{border:1px solid var(--taupe2);border-radius:10px;display:flex;flex-direction:column;transition:border-color .15s;}
.chat-box:focus-within{border-color:var(--charcoal);}
.chat-input{width:100%;border:none;background:transparent;resize:none;padding:10px 12px 4px;font-family:var(--font);font-size:13px;line-height:1.45;color:var(--charcoal);min-height:44px;}
.chat-input:focus{outline:none;}
.chat-tools{display:flex;align-items:center;gap:4px;padding:2px 8px 8px;}
.chat-tool{position:relative;width:28px;height:28px;border:none;background:none;border-radius:6px;color:var(--mid);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s;}
.chat-tool svg{width:16px;height:16px;display:block;}
.chat-tool:hover{color:var(--charcoal);background:var(--oat);}
.chat-tool:disabled{cursor:default;}
.chat-tool.busy{color:var(--terra);animation:chatToolPulse 1s ease-in-out infinite;}
@keyframes chatToolPulse{0%,100%{opacity:1;}50%{opacity:.35;}}
.chat-send{margin-left:auto;}
/* Hover tips on inbox icon buttons — below in headers, above in the composer. */
.inbox-shell [data-tip]{position:relative;}
.inbox-shell [data-tip]::after{content:attr(data-tip);position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--charcoal);color:#fff;padding:5px 8px;border-radius:5px;font-size:11px;font-weight:500;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s;z-index:20;}
.inbox-shell [data-tip]:hover::after{opacity:1;}
.inbox-shell .chat-actions [data-tip]::after{left:auto;right:0;transform:none;}
.inbox-shell .chat-tools [data-tip]::after{top:auto;bottom:calc(100% + 6px);left:0;transform:none;}
@media(hover:none){.inbox-shell [data-tip]::after{display:none;}}
.chat-composer-locked{padding:14px 16px;border-top:1px solid var(--taupe2);font-size:12px;color:var(--light);line-height:1.5;flex-shrink:0;background:#fff;}
.chat-open-ig{color:var(--terra);font-weight:600;text-decoration:none;white-space:nowrap;}
.chat-open-ig:hover{text-decoration:underline;}
.inbox-row.selected .inbox-item{background:var(--terra-pale);box-shadow:inset 3px 0 0 var(--terra);}
/* ── Contact context column ─────────────────────────────────────────────── */
.inbox-ctx{border-left:1px solid var(--taupe2);padding:4px 16px;overflow-y:auto;min-width:0;}
.inbox-ctx-sec{display:flex;flex-direction:column;gap:10px;padding:14px 0;border-bottom:1px solid var(--taupe);}
.inbox-ctx-sec:last-child{border-bottom:none;}
.inbox-ctx .inbox-pc-avatar{width:44px;height:44px;}
.inbox-ctx .inbox-pc-row-stats{margin-top:0;}
.inbox-ctx .inbox-pc-bio,.inbox-ctx .inbox-pc-note,.inbox-ctx .inbox-pc-loading{margin-top:0;}
.inbox-ctx-lbl{font-size:12px;font-weight:600;color:var(--light);}
.inbox-ctx-link{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--terra);text-decoration:none;}
.inbox-ctx-link svg{width:11px;height:11px;}
.inbox-ctx-link:hover{text-decoration:underline;}
.inbox-ctx-kv{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px;}
.inbox-ctx-kv>span:first-child{color:var(--mid);}
.inbox-ctx-kv>span:last-child{color:var(--charcoal);font-weight:500;display:inline-flex;align-items:center;gap:6px;text-align:right;}
.inbox-ctx-kv>span.muted{color:var(--light);font-weight:400;}
.inbox-ctx-list{display:flex;flex-direction:column;gap:8px;}
.inbox-ctx-hist{display:flex;align-items:flex-start;gap:9px;padding:0;border:none;background:none;text-align:left;cursor:pointer;font-family:var(--font);width:100%;border-radius:6px;}
.inbox-ctx-hist:hover .inbox-ctx-hist-a{color:var(--terra);}
.inbox-ctx-thumb{width:28px;height:28px;border-radius:5px;object-fit:cover;flex-shrink:0;background:var(--taupe);display:flex;align-items:center;justify-content:center;color:var(--mid);}
.inbox-ctx-thumb svg{width:12px;height:12px;}
.inbox-ctx-hist-txt{display:flex;flex-direction:column;gap:2px;min-width:0;}
.inbox-ctx-hist-a{font-size:12.5px;color:var(--charcoal);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.inbox-ctx-hist-b{font-size:11px;color:var(--light);}
.inbox-ctx-btns{display:flex;gap:6px;margin-top:2px;}
.inbox-ctx-btns .btn-sm{flex:1;justify-content:center;}
/* Contact sheet (phone) — the context column as a bottom sheet */
.inbox-sheet-overlay{position:fixed;inset:0;background:rgba(10,10,10,.45);z-index:950;display:flex;align-items:flex-end;opacity:0;pointer-events:none;transition:opacity .2s;}
.inbox-sheet-overlay.open{opacity:1;pointer-events:auto;}
.inbox-sheet{position:relative;width:100%;max-height:85vh;overflow-y:auto;background:#fff;border-radius:16px 16px 0 0;padding:8px 16px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -12px 32px rgba(10,10,10,.18);transform:translateY(24px);transition:transform .22s cubic-bezier(.22,1,.36,1);}
.inbox-sheet-overlay.open .inbox-sheet{transform:none;}
.inbox-sheet-bar{width:36px;height:4px;border-radius:2px;background:var(--taupe2);margin:0 auto 4px;}
.inbox-sheet-x{position:absolute;top:14px;right:12px;width:32px;height:32px;border:none;background:none;border-radius:50%;color:var(--light);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;}
.inbox-sheet-x svg{width:14px;height:14px;}
.inbox-sheet .inbox-ctx-sec{padding:14px 0;}
.inbox-sheet .inbox-pc-avatar{width:48px;height:48px;}
/* Saved replies modal */
.inbox-saved-list{display:flex;flex-direction:column;margin-top:16px;border-top:1px solid var(--taupe);}
.inbox-saved-row{display:flex;align-items:flex-start;gap:8px;padding:10px 0;border-bottom:1px solid var(--taupe);}
.inbox-saved-row .inbox-kebab{opacity:1;margin:0;}
.inbox-saved-row .inbox-kebab svg{width:12px;height:12px;}
.inbox-saved-txt{flex:1;min-width:0;}
.inbox-saved-title{font-size:13px;font-weight:600;color:var(--charcoal);}
.inbox-saved-body{font-size:12.5px;color:var(--mid);line-height:1.45;margin-top:2px;white-space:pre-wrap;}

/* ── Inbox hover profile card ───────────────────────────────────────────── */
.inbox-avatar[data-username]{cursor:pointer;}
.inbox-profile-card{position:fixed;z-index:300;width:280px;background:#fff;border:1px solid var(--taupe2);border-radius:12px;box-shadow:0 12px 32px rgba(10,10,10,.16);padding:14px;opacity:0;transform:translateY(-2px);pointer-events:none;transition:opacity .14s,transform .14s;font-family:var(--font);}
.inbox-profile-card.visible{opacity:1;transform:none;pointer-events:auto;}
.inbox-pc-head{display:flex;align-items:center;gap:10px;}
.inbox-pc-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--taupe);}
.inbox-pc-avatar img,.inbox-pc-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:15px;object-fit:cover;}
.inbox-pc-id{flex:1;min-width:0;}
.inbox-pc-handle{font-size:14px;font-weight:700;color:var(--charcoal);display:flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.inbox-pc-name{font-size:12px;color:var(--mid);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.inbox-pc-vip{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:4px;background:var(--terra-pale);color:var(--terra);}
.inbox-pc-row-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;padding:10px 0;border-top:1px solid var(--taupe2);border-bottom:1px solid var(--taupe2);}
.inbox-pc-row-stats > div{display:flex;flex-direction:column;align-items:flex-start;}
.inbox-pc-num{font-family:var(--font-display);font-size:14px;font-weight:800;color:var(--charcoal);letter-spacing:-.01em;line-height:1.1;}
.inbox-pc-lbl{font-size:11px;color:var(--light);font-weight:600;margin-top:2px;}
.inbox-pc-stats{display:flex;gap:18px;margin-top:12px;}
.inbox-pc-stats > div{display:flex;flex-direction:column;}
.inbox-pc-bio{font-size:12px;color:var(--mid);line-height:1.45;margin-top:10px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.inbox-pc-note{font-size:12px;color:var(--light);line-height:1.5;margin-top:12px;}
.inbox-pc-loading{font-size:12px;color:var(--light);margin-top:12px;}
@media(hover: none){.inbox-profile-card{display:none !important;}.cal-tooltip{display:none !important;}}

/* Row avatars hold either an initial or a swapped-in IG profile picture */
.inbox-avatar{overflow:hidden;}
.inbox-avatar img{width:100%;height:100%;object-fit:cover;display:block;}

/* Client badge on org-wide rows — tiny logo + name so you can see at a
   glance which client a comment/DM is for. */
.inbox-client-badge{display:inline-flex;align-items:center;gap:6px;}
.inbox-client-badge img,.inbox-client-init{width:16px;height:16px;border-radius:4px;object-fit:cover;flex-shrink:0;display:block;}
.inbox-client-init{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:9px;font-family:var(--font-display);}

/* ── Brand intelligence signals ──────────────────────────── */
/* ── Brand tab: brief, sources, details ───────────────────────────────── */
.bd-stack{display:flex;flex-direction:column;gap:1.75rem;}

.bd-brief{background:linear-gradient(180deg,#fff 0%,#fbfaf8 100%);border:1px solid var(--taupe2);border-radius:var(--radius);overflow:hidden;box-shadow:0 1px 0 rgba(10,10,10,.02);}
/* The memory is a prompt payload, not reading copy: capped and scrolling in
   its own block so opening the row never takes the page over. */
.bd-prose{font-size:13px;line-height:1.6;color:var(--mid);white-space:pre-wrap;max-height:340px;overflow:auto;background:#fcfcfa;border:1px solid var(--hairline);border-radius:var(--radius);padding:14px 16px;}
.bd-prose.is-empty{color:var(--light);}
.bd-learned{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--mid);margin-bottom:12px;}
.bd-doc-right{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0;}
.brand-history-item summary .btn-sm{margin:0;}
.bd-memory-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;}
.bd-memory-acts .settings-saved-msg{margin-right:auto;}
.bd-foot{margin-top:.5rem;}
.bd-chip{display:inline-flex;align-items:center;gap:5px;background:var(--oat);border:1px solid var(--taupe);border-radius:999px;padding:3px 10px;font-size:11.5px;color:var(--mid);}
.bd-chip b{font-weight:600;color:var(--charcoal);font-variant-numeric:tabular-nums;}

.bd-empty{padding:20px;display:flex;flex-direction:column;gap:14px;}
.bd-empty-lead{font-size:14px;color:var(--mid);line-height:1.55;max-width:62ch;}
.bd-empty-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.bd-empty-row input{flex:1;min-width:190px;padding:9px 12px;border:1.5px solid var(--taupe2);border-radius:var(--radius);background:var(--white);color:var(--charcoal);font-family:var(--font);font-size:14px;}
.bd-empty-row input:focus{outline:none;border-color:var(--charcoal);}
.bd-empty-also{font-size:12.5px;color:var(--light);line-height:1.5;max-width:62ch;}
.bd-empty-also a{color:var(--charcoal);text-underline-offset:2px;}

.bd-sources{display:grid;grid-template-columns:repeat(3,1fr) 0.34fr;gap:10px;}
/* Documents is deliberately the small dashed one. .md files are read in full
   on every caption, shoot plan, idea and inbox reply, so it's the expensive
   source — available, but not where the eye goes. */
.bd-src.bd-src-mini{border-style:dashed;padding:12px 10px;}
.bd-src-mini .bd-src-t{font-size:11px;}
.bd-src-mini .bd-src-v{font-size:13px;}
.bd-src-mini .bd-src-s{font-size:10.5px;}
.bd-src{background:var(--white);border:1px solid var(--taupe2);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:3px;min-width:0;cursor:pointer;text-align:left;font-family:var(--font);transition:border-color .15s;}
.bd-src:hover{border-color:var(--terra);}
.bd-src.is-open{border-color:var(--charcoal);}
.bd-src-t{font-size:12px;font-weight:600;color:var(--mid);}
.bd-src-v{font-size:13.5px;font-weight:600;color:var(--charcoal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.bd-src-s{font-size:11.5px;color:var(--light);}
.bd-src-s.ok{color:var(--green-deep);}
.bd-src-s.warn{color:var(--amber);font-weight:600;}
.bd-src.is-empty{border-style:dashed;}
.bd-src.is-empty .bd-src-v{color:var(--light);font-weight:400;}

.bd-panel{background:var(--white);border:1px solid var(--taupe2);border-radius:var(--radius);padding:16px 18px;margin-top:10px;}
.bd-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.bd-panel-desc{font-size:12px;color:var(--light);line-height:1.5;max-width:70ch;}

.bd-rows{background:var(--white);border:1px solid var(--taupe2);border-radius:var(--radius);overflow:hidden;}
.bd-row{border-top:1px solid var(--hairline);}
.bd-rows>.bd-row:first-child{border-top:0;}
.bd-row-head{display:grid;grid-template-columns:104px 1fr 16px;gap:14px;align-items:baseline;padding:13px 18px;cursor:pointer;background:none;border:0;width:100%;text-align:left;font-family:var(--font);}
.bd-row-head:hover{background:#fcfcfa;}
.bd-row-n{font-size:13px;font-weight:600;color:var(--charcoal);}
.bd-row-p{font-size:13px;color:var(--mid);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;display:flex;align-items:center;gap:9px;}
.bd-row-p.is-none{color:var(--light);}
.bd-row-c{color:var(--light);display:inline-flex;transition:transform .2s;}
.bd-row.open .bd-row-c{transform:rotate(180deg);}
.bd-row-body{display:none;padding:2px 18px 18px 122px;}
.bd-row.open .bd-row-body{display:block;}
.bd-row.open .bd-row-head{background:#fcfcfa;}
.bd-row.open .bd-row-p{display:none;}

.bd-sw{display:inline-flex;gap:5px;flex-shrink:0;}
.bd-sw i{width:15px;height:15px;border-radius:3px;border:1px solid rgba(10,10,10,.12);display:block;}

.bd-lab{display:flex;align-items:baseline;gap:10px;}
.bd-lab .bd-count{margin-left:auto;font-weight:400;color:var(--light);font-variant-numeric:tabular-nums;}

.bd-colour-row{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap;}
.bd-colour-row input[type=color]{width:38px;height:38px;border:1px solid var(--taupe2);padding:2px;cursor:pointer;border-radius:var(--radius);background:var(--white);flex-shrink:0;}
.bd-colour-row input[type=text]{width:120px;padding:8px 10px;border:1.5px solid var(--taupe2);border-radius:var(--radius);font-family:monospace;font-size:13px;background:var(--white);color:var(--charcoal);}

@media (max-width:900px){
  .bd-sources{grid-template-columns:repeat(2,1fr);}
  .bd-src-mini{grid-column:1 / -1;flex-direction:row;align-items:baseline;gap:8px;}
  .bd-src-mini .bd-src-s{margin-left:auto;}
  .bd-row-head{grid-template-columns:88px 1fr 16px;}
  .bd-row-body{padding-left:18px;}
  .bd-learned .bd-when{margin-left:0;}
}

.brand-signal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.brand-signal-card{background:var(--white);border:0.5px solid var(--taupe2);border-radius:10px;padding:14px 16px;box-shadow:var(--shadow);}
.brand-signal-label{font-size:12px;color:var(--light);font-weight:600;margin-bottom:6px;}
.brand-signal-value{font-family:var(--font-display);font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--charcoal);}
.brand-signal-sub{font-size:11px;color:var(--mid);margin-top:4px;}
.brand-signal-chip{display:inline-flex;align-items:center;gap:4px;background:var(--terra-pale);color:var(--terra);font-size:11.5px;font-weight:600;padding:3px 8px;border-radius:14px;}

/* ── Brand listening — info note, progress bar, usage pill ── */
.listening-info-note{background:var(--t1);border:none;border-radius:14px;padding:12px 16px;font-size:12.5px;line-height:1.55;color:var(--charcoal);margin-bottom:18px;}
.listening-info-note strong{color:var(--terra);display:block;margin-bottom:3px;}
.listening-progress{margin-bottom:14px;}
.listening-progress-bar{height:4px;background:var(--taupe-pale);border-radius:3px;overflow:hidden;position:relative;}
.listening-progress-fill{position:absolute;top:0;left:0;height:100%;width:40%;background:linear-gradient(90deg,transparent,var(--terra),transparent);animation:listeningProgress 1.4s ease-in-out infinite;}
@keyframes listeningProgress{
  0%   {transform:translateX(-100%);}
  100% {transform:translateX(350%);}
}
.listening-progress-text{font-size:11.5px;color:var(--mid);margin-top:6px;}

/* ── Canva: connection card on the Integrations tab (org-level) ── */
.canva-card{background:#fff;border:1px solid var(--taupe2);border-radius:12px;padding:20px 22px;margin-top:18px;}
/* ── Published designs (Canva holding area) ── */
.cc-canva-status{display:flex;align-items:center;}
.cc-pill{display:inline-flex;align-items:center;font-size:12px;font-weight:600;padding:6px 12px;border-radius:999px;text-decoration:none;}
.cc-pill-muted{background:var(--taupe);color:var(--mid);}
.cc-pill-action{background:var(--charcoal);color:#fff;cursor:pointer;}
.cc-pill-action:hover{background:#000;}
.cc-pill-good{background:#e6f4ec;color:#1a7a4a;}
.cc-empty{background:#fff;border:1px solid var(--taupe2);border-radius:12px;padding:36px 24px;text-align:center;}
.cc-empty-title{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--charcoal);margin-bottom:6px;}
.cc-empty-sub{font-size:13px;color:var(--mid);line-height:1.5;max-width:480px;margin:0 auto;}
.cc-meta-row{font-size:12px;color:var(--light);margin-top:14px;text-align:center;}
.canva-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;}
.canva-card{background:#fff;border:1px solid var(--taupe2);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;}
.canva-thumb{aspect-ratio:1;background:var(--taupe) center / cover no-repeat;position:relative;}
.canva-kind{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.55);color:#fff;font-size:11px;padding:2px 7px;border-radius:4px;line-height:1;}
.canva-body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:8px;}
.canva-title{font-size:13px;font-weight:600;color:var(--charcoal);line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.canva-meta{font-size:11px;color:var(--light);}
.canva-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;}
.canva-actions .btn-danger{background:#fce4e4;color:var(--red);border-color:#f0c5c5;}

/* Reusable progress bar with text + percent. Use via showProgress() in
   utils.js. Indeterminate sweep animation by default; passing estimateMs
   switches to a smooth time-estimated fill 0→95% with the live % shown
   on the right of the text row. */
.koda-progress{margin:12px 0;}
.koda-progress-bar{height:4px;background:var(--taupe-pale);border-radius:3px;overflow:hidden;position:relative;}
.koda-progress-fill{position:absolute;top:0;left:0;height:100%;width:40%;background:linear-gradient(90deg,transparent,var(--terra),transparent);animation:listeningProgress 1.4s ease-in-out infinite;}
.koda-progress-fill.determinate{width:0%;background:var(--terra);animation:none;transition:width .25s ease-out;}
.koda-progress-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:8px;}
.koda-progress-text{font-size:12px;color:var(--mid);line-height:1.4;flex:1;}
.koda-progress-percent{font-size:12px;font-weight:600;color:var(--charcoal);font-variant-numeric:tabular-nums;flex-shrink:0;}
.listening-usage{font-size:12px;color:var(--mid);}
.listening-usage-pill{display:inline-block;font-size:11.5px;font-weight:600;padding:3px 10px;border-radius:12px;background:var(--t1);color:var(--burgundy);font-variant-numeric:tabular-nums;cursor:help;}
.listening-usage-pill-warn{background:#fff4e0;color:#b06800;}
.listening-usage-pill-danger{background:#fce4e4;color:var(--red);}

/* ── Brand listening ─────────────────────────────────────── */
.listening-hashtags-card{background:var(--white);border:1px solid var(--taupe2);border-radius:14px;padding:16px 18px;}
.listening-section-label{font-family:var(--font-display);font-size:12px;font-weight:600;color:var(--burgundy);opacity:.7;}
.listening-chip{display:inline-flex;align-items:center;gap:6px;background:var(--terra-pale);color:var(--terra);font-size:13px;font-weight:600;padding:4px 4px 4px 10px;border-radius:18px;}
.listening-chip button{border:none;background:transparent;color:var(--terra);font-size:15px;line-height:1;cursor:pointer;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;}
.listening-chip button:hover{background:rgba(0,0,0,.08);}
.listening-loading,.listening-empty{padding:48px 24px;text-align:center;color:var(--mid);font-size:13px;border:1px dashed var(--taupe2);border-radius:14px;background:transparent;}
.listening-empty-title{font-weight:700;color:var(--charcoal);margin-bottom:4px;}
.listening-empty-sub{font-size:12px;color:var(--light);}
.listening-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;}
.listening-card{display:flex;background:var(--white);border:1px solid var(--taupe2);border-radius:14px;overflow:hidden;}
.listening-thumb{flex:0 0 96px;background:#000;display:flex;align-items:center;justify-content:center;}
.listening-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.listening-thumb-empty{background:var(--oat);position:relative;}
.listening-thumb-empty .listening-kind{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--light);}
.listening-card-textonly .listening-thumb{flex-basis:48px;}
.listening-caption-empty{color:var(--light);font-style:italic;}
.listening-body{flex:1;min-width:0;padding:12px 14px;display:flex;flex-direction:column;gap:8px;}
.listening-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.listening-handle{font-weight:700;font-size:13px;color:var(--charcoal);}
.listening-source{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;padding:1.5px 6px;border-radius:8px;font-weight:700;}
.listening-source-tag{background:rgba(225,48,108,.13);color:#c2185b;}
.listening-source-hash{background:var(--terra-pale);color:var(--terra);}
.listening-time{font-size:11px;color:var(--light);margin-left:auto;}
.listening-caption{font-size:12.5px;color:var(--mid);line-height:1.45;}
.listening-actions{display:flex;gap:6px;margin-top:auto;flex-wrap:wrap;}

@keyframes sk-pulse{0%,100%{opacity:.5}50%{opacity:1}}

/* ── Client settings tab ──────────────────────────────────── */
.settings-section{background:linear-gradient(180deg,#ffffff 0%,#fbfaf8 100%);border:1px solid var(--taupe2);border-radius:var(--radius);padding:20px 22px;margin-bottom:14px;box-shadow:0 1px 0 rgba(10,10,10,0.02);}
.settings-section-title{font-size:13px;font-weight:700;letter-spacing:-0.01em;color:var(--charcoal);margin-bottom:4px;}
.settings-section-desc{font-size:12px;color:var(--light);margin-bottom:16px;line-height:1.5;}
/* ── Account page ── */
.acct-profile-grid{display:flex;gap:28px;align-items:flex-start;flex-wrap:wrap;margin-top:8px;}
.acct-avatar-col{display:flex;flex-direction:column;align-items:center;}
.acct-avatar-wrap{position:relative;width:84px;height:84px;}
.acct-avatar{width:84px;height:84px;border-radius:50%;background:var(--terra-pale);color:var(--terra);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;font-family:var(--font-display);cursor:pointer;background-size:cover;background-position:center;box-shadow:inset 0 0 0 1px rgba(10,10,10,.06);transition:filter .15s,box-shadow .15s;overflow:hidden;}
.acct-avatar:hover{filter:brightness(.97);box-shadow:inset 0 0 0 1px rgba(10,10,10,.12);}
.acct-avatar.has-photo{color:transparent;}
.acct-avatar-btn{position:absolute;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;border:2px solid #fff;cursor:pointer;opacity:0;transform:scale(.8);transition:opacity .15s,transform .15s,background .15s;box-shadow:0 2px 6px rgba(10,10,10,.22);}
.acct-avatar-btn svg{width:14px;height:14px;}
.acct-avatar-wrap:hover .acct-avatar-btn,.acct-avatar-btn:focus-visible{opacity:1;transform:scale(1);}
.acct-avatar-change{right:-3px;bottom:-3px;background:var(--terra);color:#fff;}
.acct-avatar-change:hover{background:#ff7842;}
.acct-avatar-x{right:-3px;top:-3px;background:var(--charcoal);color:#fff;}
.acct-avatar-x:hover{background:var(--red);}
/* Touch devices have no hover — keep the controls visible at all times. */
@media (hover:none),(pointer:coarse){
  .acct-avatar-btn{opacity:1;transform:scale(1);}
}
.acct-fields{flex:1;min-width:280px;max-width:420px;}
.acct-hint{font-size:12px;color:var(--light);margin-top:6px;line-height:1.5;}
.acct-ok-msg{font-size:12px;color:var(--green,#22c55e);font-weight:600;}
.acct-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--taupe2);border:1px solid var(--taupe2);border-radius:var(--radius);overflow:hidden;margin-top:4px;}
.acct-row{background:#fff;padding:12px 14px;}
.acct-row-k{font-size:12px;font-weight:600;color:var(--light);margin-bottom:5px;}
.acct-row-v{font-size:14px;color:var(--charcoal);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.acct-badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 9px;border-radius:100px;background:var(--oat);color:var(--mid);}
.acct-badge.ok{background:#e7f5ec;color:#1c7a43;}
.acct-badge.warn{background:#fbe7e3;color:var(--terra);}
.acct-notif-row{display:flex;align-items:flex-start;gap:10px;padding:8px 0;cursor:pointer;max-width:420px;}
.acct-notif-row .koda-check{margin-top:1px;}
.acct-notif-text{display:flex;flex-direction:column;gap:1px;}
.acct-notif-label{font-size:13.5px;font-weight:600;color:var(--charcoal);}
.acct-notif-desc{font-size:12px;color:var(--light);line-height:1.5;}
.acct-subblock{margin-top:20px;padding-top:16px;border-top:1px solid var(--taupe2);max-width:420px;}
.acct-subblock-title{font-size:13px;font-weight:600;color:var(--charcoal);margin-bottom:4px;}
.acct-links{display:flex;flex-wrap:wrap;gap:8px;}
.acct-perms{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;max-width:520px;}
.acct-perm{display:flex;align-items:center;gap:8px;font-size:13px;padding:9px 12px;border:1px solid var(--taupe2);border-radius:var(--radius);background:#fff;}
.acct-perm.off{color:var(--light);}
.acct-perm-mark{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:11px;font-weight:700;flex-shrink:0;}
.acct-perm.on .acct-perm-mark{background:#e7f5ec;color:#1c7a43;}
.acct-perm.off .acct-perm-mark{background:var(--oat);color:var(--light);}
.acct-signout-btn{color:var(--red);border:1px solid var(--red);background:#fff;}
.acct-signout-btn:hover{background:var(--red-bg);}

.settings-memory-area{width:100%;min-height:240px;padding:14px;border:1.5px solid var(--taupe2);border-radius:var(--radius);font-family:var(--font);font-size:13px;color:var(--charcoal);line-height:1.6;resize:vertical;transition:border-color .18s;}
.settings-memory-area:focus{outline:none;border-color:var(--charcoal);}
.settings-saved-msg{font-size:12px;color:var(--green);opacity:0;transition:opacity .3s;}
.settings-saved-msg.show{opacity:1;}

/* Tiny auto-save status pill that sits next to the Save & refresh AI button
   on the Profile & brand page. Stays empty when there's nothing to report. */
.profile-save-status{font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--light);min-width:0;}
.profile-save-status.saving{color:var(--mid);}
.profile-save-status.saved{color:#1a7a40;}
.profile-save-status.error{color:#c0392b;}

/* Brand intelligence memory — collapsed by default so the auto-managed copy
   isn't put in front of the user as something to tweak. Click to expand. */
.brand-memory-warn{font-size:12px;color:var(--mid);line-height:1.5;padding:10px 12px;background:#fff7f2;border:1px solid #f6dccb;border-radius:8px;}
.brand-memory-warn.over{background:#f7efdc;border-color:#eddcb6;color:var(--amber);}

/* ── Brand memory version history ─────────────────────────── */
.brand-history-list{display:flex;flex-direction:column;gap:8px;}
.brand-history-item{border:1px solid var(--taupe2);border-radius:8px;background:#fff;overflow:hidden;}
.brand-history-item>summary{list-style:none;cursor:pointer;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;}
.brand-history-item>summary::-webkit-details-marker{display:none;}
.brand-history-src{font-weight:700;color:var(--charcoal);}
.brand-history-meta{color:var(--mid);font-size:11px;}
.brand-history-text{margin:0;padding:0 12px 12px;font-family:var(--font);font-size:12px;color:var(--mid);white-space:pre-wrap;word-break:break-word;line-height:1.55;}
.brand-history-item .btn-sm{margin:0 12px 12px;}
.cap-result-text-editable{outline:none;border-radius:6px;padding:2px 4px;margin:-2px -4px;transition:background .15s,box-shadow .15s;}
.cap-result-text-editable:hover{background:#faf9f7;}
.cap-result-text-editable:focus{background:#fff;box-shadow:0 0 0 1.5px var(--terra);}

/* ── Org branding (settings → report styling) ─────────────── */
.org-logo-tile{width:150px;height:150px;border:1.5px dashed var(--taupe2);border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:#fff;color:var(--mid);font-size:12px;transition:border-color .18s,background .18s,color .18s;overflow:hidden;}
.org-logo-tile:hover{border-color:var(--terra,#ff5a30);background:#fff7f2;color:var(--charcoal);}
.org-logo-tile img{max-width:100%;max-height:100%;object-fit:contain;}
.org-color-field label{display:block;font-size:11px;font-weight:600;color:var(--charcoal);margin-bottom:4px;text-transform:capitalize;}
.org-color-row{display:flex;gap:6px;align-items:center;}
.org-color-row input[type="color"]{width:36px;height:36px;border:none;border-radius:8px;padding:0;cursor:pointer;background:none;flex-shrink:0;}
.org-color-row input[type="color"]::-webkit-color-swatch-wrapper{padding:0;border-radius:8px;}
.org-color-row input[type="color"]::-webkit-color-swatch{border:1px solid var(--taupe2);border-radius:8px;}
.org-color-row input[type="text"]{flex:1;min-width:0;padding:8px 10px;border:1.5px solid var(--taupe2);border-radius:8px;font-family:monospace;font-size:12px;background:#fff;color:var(--charcoal);}
.org-color-row input[type="text"]:focus{outline:none;border-color:var(--charcoal);}
.org-color-hint{font-size:11px;color:var(--light);margin-top:4px;}

/* ── Meeting notes ────────────────────────────────────────── */
.note-composer{background:#fff;border:1px solid var(--taupe2);border-radius:14px;padding:18px 20px;margin-bottom:20px;}
.note-composer-row{display:flex;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.note-title-input{flex:2;min-width:240px;padding:10px 12px;border:1.5px solid var(--taupe2);border-radius:8px;font-family:var(--font);font-size:14px;font-weight:600;color:var(--charcoal);background:var(--white);transition:border-color .18s;}
.note-title-input:focus{outline:none;border-color:var(--terra);}
.note-date-input{flex:1;min-width:180px;padding:10px 12px;border:1.5px solid var(--taupe2);border-radius:8px;font-family:var(--font);font-size:13px;color:var(--charcoal);background:var(--white);transition:border-color .18s;}
.note-date-input:focus{outline:none;border-color:var(--terra);}
.note-content-input{width:100%;padding:12px;border:1.5px solid var(--taupe2);border-radius:8px;font-family:var(--font);font-size:14px;color:var(--charcoal);line-height:1.55;background:var(--white);resize:vertical;min-height:160px;transition:border-color .18s;}
.note-content-input:focus{outline:none;border-color:var(--terra);}
.note-composer-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap;}
.note-wordcount{font-size:12px;color:var(--light);}
.note-wordcount.over{color:var(--red);font-weight:600;}
.note-composer-actions{display:flex;gap:8px;flex:1;flex-wrap:wrap;align-items:center;}
.note-revert{background:none;border:none;padding:0;font-size:12px;color:var(--terra);cursor:pointer;text-decoration:underline;}
.note-actions{background:var(--t1);border:1px solid var(--t2);border-radius:8px;padding:12px 14px;margin-top:10px;}
.note-actions-head{font-size:12px;font-weight:600;color:var(--burgundy);margin-bottom:6px;}
.note-action-row{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;color:var(--charcoal);cursor:pointer;}
.note-action-row input{accent-color:var(--terra);flex-shrink:0;}
.note-action-title{flex:1;}
.note-action-due{font-size:11px;color:var(--light);white-space:nowrap;}

.notes-list{display:flex;flex-direction:column;gap:12px;}
.note-card{background:#fff;border:1px solid var(--taupe2);border-radius:14px;transition:border-color .18s;margin-bottom:14px;}
.note-card:hover{border-color:var(--t3);}
.note-card-bar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px;cursor:pointer;}
.note-card-bar-right{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.note-chevron{color:var(--light);transition:transform .2s;display:flex;}
.note-card.open .note-chevron{transform:rotate(180deg);}
.note-card-title{font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-0.01em;color:var(--charcoal);line-height:1.3;}
.note-card-meta{display:flex;align-items:center;gap:6px;margin-top:7px;}
.note-chip{display:inline-flex;align-items:center;gap:6px;background:var(--oat);border-radius:6px;padding:3px 9px;font-size:12px;font-weight:500;color:var(--mid);}
.note-chip svg{color:var(--light);}
.note-card-body{display:none;padding:0 20px 18px;font-size:13.5px;color:var(--charcoal);line-height:1.6;}
.note-card.open .note-card-body{display:block;}
.note-card-body h4{font-size:13.5px;font-weight:700;color:var(--charcoal);margin:16px 0 4px;}
.note-card-body h4:first-child{margin-top:0;}
.note-card-body p{margin:6px 0;}
.note-card-body ul{margin:2px 0 12px;padding-left:20px;}
.note-card-body li{margin:3px 0;}
.note-card-body li::marker{color:var(--t3);}
.note-dictate{display:inline-flex;align-items:center;gap:6px;}
.note-dictate.recording{background:var(--terra);border-color:var(--terra);color:#fff;}
.note-dictate.recording svg{animation:note-rec-pulse 1.4s ease-in-out infinite;}
@keyframes note-rec-pulse{0%,100%{opacity:1;}50%{opacity:0.45;}}
.signup-optout{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--mid);line-height:1.4;margin:2px 0 14px;cursor:pointer;}
.signup-optout input{accent-color:var(--terra);margin-top:2px;flex-shrink:0;}
.list-search{display:block;width:100%;max-width:340px;padding:9px 12px;border:1.5px solid var(--taupe2);border-radius:8px;font-family:var(--font);font-size:13.5px;color:var(--charcoal);background:var(--white);margin-bottom:14px;transition:border-color .18s;}
.list-search:focus{outline:none;border-color:var(--terra);}
.list-month{font-size:12px;font-weight:600;color:var(--mid);margin:20px 0 10px;}
.list-month:first-child{margin-top:0;}
.list-no-match{padding:16px 0;font-size:13px;color:var(--mid);}
.sp-past-toggle{display:flex;align-items:center;gap:8px;background:none;border:none;padding:10px 0;margin-top:6px;font-family:var(--font);font-size:13px;font-weight:600;color:var(--mid);cursor:pointer;}
.sp-past-toggle:hover{color:var(--charcoal);}
.sp-past-toggle svg{transition:transform .2s;}
.sp-arch-row{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px solid var(--taupe2);border-radius:14px;padding:16px 20px;margin-bottom:12px;}
.sp-arch-title{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--charcoal);}
.sp-arch-meta{font-size:12px;color:var(--mid);margin-top:3px;}
.sp-arch-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.note-view{cursor:text;border-radius:8px;margin:0 -8px;padding:0 8px;transition:background .15s;}
.note-view:hover{background:var(--oat);}
.note-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--taupe);}
.note-foot-left,.note-foot-right{display:flex;align-items:center;gap:8px;}
.note-foot .btn-glow:disabled{opacity:0.45;cursor:default;box-shadow:none;}
.note-del{background:none;border:none;color:var(--mid);font-size:12px;font-weight:500;padding:4px 8px;cursor:pointer;border-radius:6px;transition:color .15s,background .15s;}
.note-del:hover{color:var(--red);background:#fdebea;}

/* ── Brand scan / brand pack — status + results ─────────────── */
.brand-scan-status{margin-top:14px;font-size:13px;color:var(--mid);}
.brand-scan-status.err{margin-top:12px;display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:#fdecea;border:1px solid #f4b9b3;border-radius:8px;color:#8a1a10;font-size:13px;line-height:1.45;}
.brand-scan-status.err svg{flex-shrink:0;margin-top:1px;color:#c0392b;width:18px;height:18px;}
.brand-scan-status.err strong{display:block;font-weight:700;color:#8a1a10;margin-bottom:2px;}
.brand-scan-status .koda-progress{margin:0;}@keyframes scanspin{to{transform:rotate(360deg);}}
.brand-scan-results{margin-top:16px;border-top:1px solid var(--taupe);padding-top:16px;}

/* ── Koda confirm dialog ──────────────────────────────────────────────── */
.koda-confirm-overlay{position:fixed;inset:0;background:rgba(10,10,10,0.45);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:10000;display:flex;align-items:center;justify-content:center;padding:1.25rem;opacity:0;pointer-events:none;transition:opacity .22s ease;}
.koda-confirm-overlay.open{opacity:1;pointer-events:auto;}
.koda-confirm{background:#fff;border:1px solid var(--taupe2);border-radius:14px;padding:1.5rem 1.5rem 1.25rem;width:100%;max-width:440px;box-shadow:0 30px 70px rgba(10,10,10,0.28),0 8px 20px rgba(10,10,10,0.12);transform:scale(.96) translateY(8px);transition:transform .25s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden;}
.koda-confirm-overlay.open .koda-confirm{transform:scale(1) translateY(0);}
.koda-confirm::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--terra,#ff5a30);}
.koda-confirm-title{font-family:var(--font-display);font-size:19px;font-weight:800;letter-spacing:-0.02em;color:var(--charcoal);margin-bottom:6px;}
.koda-confirm-body{font-size:14px;color:var(--mid);line-height:1.55;margin-bottom:1.25rem;white-space:pre-wrap;}
.koda-confirm-actions{display:flex;gap:10px;justify-content:flex-end;}
.koda-prompt-input{width:100%;padding:10px 12px;border:1.5px solid var(--taupe2);border-radius:8px;font-family:var(--font);font-size:14px;color:var(--charcoal);background:var(--white);margin-bottom:1.25rem;}
.koda-prompt-input:focus{outline:none;border-color:var(--charcoal);box-shadow:0 0 0 3px rgba(33,32,31,0.07);}
.koda-prompt-textarea{resize:vertical;min-height:96px;line-height:1.5;}
.koda-confirm .btn-danger{background:#c0392b;color:#fff;border:1px solid #c0392b;}
.koda-confirm .btn-danger:hover{background:#a8311f;border-color:#a8311f;box-shadow:0 3px 10px rgba(192,57,43,0.25);}

/* Setup progress pill on the Overview sidebar item — replaces the old
   pulsing dot on Profile & brand. Quiet, but visible enough to nudge. */
.nav-setup-pill{margin-left:auto;padding:1px 8px;border-radius:100px;background:var(--terra);color:#fff;font-size:10px;font-weight:700;letter-spacing:.02em;flex-shrink:0;line-height:1.45;display:inline-flex;align-items:center;gap:3px;}
.nav-setup-pill-n{font-variant-numeric:tabular-nums;}

/* Per-client setup card on the Overview tab: the next step leads with the
   page's one glow button, the remaining and done steps sit in a list beside it. */
.setup-checklist{background:var(--white);border:none;border-radius:14px;padding:18px 22px;margin-bottom:24px;box-shadow:none;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .3s ease-out;}
.setup-checklist.is-dismissing{transform:translateX(110%);opacity:0;pointer-events:none;}
.setup-checklist-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.setup-checklist-title{font-family:var(--font-display);font-size:15px;font-weight:800;color:var(--charcoal);letter-spacing:-.01em;}
.setup-checklist-sub{font-size:11.5px;color:var(--mid);margin-top:2px;}
.setup-checklist-actions{display:flex;align-items:center;gap:10px;}
.setup-seg{display:flex;gap:4px;}
.setup-seg i{display:block;width:22px;height:6px;border-radius:6px;background:var(--oat);}
.setup-seg i.on{background:var(--terra);}
.setup-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-top:16px;align-items:start;}
.setup-next{background:var(--terra-pale);border-radius:10px;padding:18px 20px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;}
.setup-next-title{font-family:var(--font-display);font-size:18px;font-weight:500;color:var(--charcoal);line-height:1.25;}
.setup-next-body{font-size:13px;color:var(--mid);line-height:1.5;}
.setup-next .btn-sm{margin-top:8px;}
.setup-list{display:flex;flex-direction:column;}
.setup-row{display:flex;align-items:center;gap:12px;width:100%;padding:9px 6px;border:none;border-top:1px solid var(--hairline);background:transparent;font-family:var(--font);font-size:13.5px;color:var(--charcoal);text-align:left;cursor:pointer;transition:background .15s;}
.setup-row:first-child,.setup-list-label + .setup-row{border-top:0;}
.setup-row:hover{background:rgba(255,90,48,.06);}
.setup-row.done{color:var(--mid);}
.setup-row-tick{display:flex;flex-shrink:0;}
.setup-row-label{flex:1;min-width:0;}
.setup-row-meta{font-size:12px;color:var(--mid);white-space:nowrap;}
.setup-row-go{color:var(--light);font-size:14px;width:22px;text-align:center;flex-shrink:0;transition:color .15s;}
.setup-row:hover .setup-row-go{color:var(--terra);}
.setup-list-label{font-size:12px;font-weight:600;color:var(--light);padding:14px 6px 4px;}
/* Always visible at low opacity so the user knows a done row can be cleared. */
.setup-step-clear{background:none;border:none;color:var(--light);cursor:pointer;font-size:18px;line-height:1;width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s,opacity .15s;opacity:.55;}
.setup-row:hover .setup-step-clear{opacity:1;}
.setup-step-clear:hover{background:#f6dccb;color:var(--charcoal);}

/* Terra glow that runs once on the destination field(s) when the user
   clicks a setup step. Picks up an outline + a soft halo so it works on
   inputs, buttons and cards equally. */
@keyframes setup-target-pulse{
  0%   {box-shadow:0 0 0 0 rgba(255,90,48,.0),  0 0 0 0   rgba(255,90,48,.0);}
  15%  {box-shadow:0 0 0 3px rgba(255,90,48,.55),0 0 22px 4px rgba(255,90,48,.35);}
  60%  {box-shadow:0 0 0 3px rgba(255,90,48,.35),0 0 18px 4px rgba(255,90,48,.18);}
  100% {box-shadow:0 0 0 0   rgba(255,90,48,0),  0 0 0   0 rgba(255,90,48,0);}
}
.setup-target-highlight{
  animation:setup-target-pulse 2.5s ease-out;
  border-radius:8px;
  position:relative;
  z-index:1;
}
.scan-head{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.scan-logo{width:48px;height:48px;border-radius:8px;object-fit:contain;border:1px solid var(--taupe);background:var(--oat);flex-shrink:0;}
.scan-meta-title{font-size:13.5px;font-weight:600;color:var(--charcoal);}
.scan-meta-sub{font-size:11.5px;color:var(--light);margin-top:2px;}
.scan-rows{display:flex;flex-direction:column;}
.scan-row{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid var(--taupe);overflow:hidden;transition:max-height .38s cubic-bezier(.4,0,.2,1),padding .3s cubic-bezier(.4,0,.2,1),opacity .25s ease,transform .35s cubic-bezier(.4,0,.2,1),border-color .3s;will-change:max-height,opacity,transform;}
.scan-row:last-child{border-bottom:none;}
.scan-row.applied{max-height:0!important;padding-top:0!important;padding-bottom:0!important;opacity:0;transform:translateX(28px);border-bottom-color:transparent!important;pointer-events:none;}
.scan-label{flex:0 0 110px;font-size:12px;color:var(--light);font-weight:600;padding-top:5px;}
.scan-val{flex:1;font-size:13px;color:var(--charcoal);line-height:1.5;min-width:0;}
.scan-row button{flex-shrink:0;}
.scan-row-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.scan-dismiss{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--taupe2);background:#fff;color:var(--mid);border-radius:6px;cursor:pointer;transition:color .15s,border-color .15s,background .15s;padding:0;}
.scan-dismiss:hover{color:var(--charcoal);border-color:var(--charcoal);background:var(--oat);}
.scan-swatch{display:inline-block;width:22px;height:22px;border-radius:5px;margin-right:5px;vertical-align:middle;border:1px solid rgba(0,0,0,0.06);}
.scan-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--taupe);overflow:hidden;transition:max-height .38s cubic-bezier(.4,0,.2,1),padding .3s,opacity .25s,margin .3s,border-color .3s;max-height:80px;}
.scan-foot.applied{max-height:0;padding-top:0;margin-top:0;opacity:0;border-top-color:transparent;pointer-events:none;}

/* ── Caption generator ────────────────────────────────────── */
.cap-form-card{background:#fff;border:1px solid var(--taupe2);border-radius:var(--radius-lg);padding:24px;margin-bottom:24px;box-shadow:var(--shadow);}
.cap-form-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px;}
.cap-form-row .field{margin-bottom:0;flex:1;min-width:140px;}
.cap-generate-results{display:flex;flex-direction:column;gap:12px;margin-bottom:32px;}
.cap-result-card{position:relative;background:#fff;border:1px solid var(--taupe2);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px;}
.cap-result-card .cap-result-text{padding-right:26px;}
.cap-result-card .btn-sm:not(.btn-glow):not(.btn-ghost):not(.btn-danger),.cap-history-card .btn-sm:not(.btn-glow):not(.btn-ghost):not(.btn-danger){background:#fff;color:var(--charcoal);border-color:var(--taupe2);}
.cap-result-card .btn-sm:not(.btn-glow):not(.btn-ghost):not(.btn-danger):hover,.cap-history-card .btn-sm:not(.btn-glow):not(.btn-ghost):not(.btn-danger):hover{background:var(--oat);border-color:var(--taupe);}
.cap-icon-btn{padding:6px 8px;}
.cap-icon-btn svg{width:15px;height:15px;display:block;}
.cap-regen-btn{margin-left:auto;}
.cap-result-text{font-size:14px;color:var(--charcoal);line-height:1.6;white-space:pre-wrap;word-break:break-word;}
.cap-result-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.cap-result-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.cap-feedback-input{width:100%;box-sizing:border-box;border:1.5px solid var(--taupe2);border-radius:8px;padding:8px 10px;font-family:var(--font);font-size:13px;color:var(--charcoal);line-height:1.5;resize:vertical;background:#fff;}
.cap-feedback-input:focus{outline:none;border-color:var(--terra);}
.cap-feedback-input::placeholder{color:#c8c0b8;}
.cap-dismiss-btn{position:absolute;top:8px;right:8px;background:none;border:none;color:var(--light);font-size:11px;line-height:1;padding:5px 6px;border-radius:6px;cursor:pointer;font-family:var(--font);transition:color .15s,background .15s;}
.cap-dismiss-btn:hover{color:var(--red);background:var(--oat);}.cap-saved-tag{font-size:11px;color:var(--green);font-weight:600;opacity:0;transition:opacity .3s;}
.cap-saved-tag:not(.show){display:none;}
.cap-saved-tag.show{opacity:1;}
/* Saved history */
.cap-history-section{margin-top:8px;}
.cap-history-title{font-size:13px;font-weight:700;letter-spacing:-0.01em;color:var(--charcoal);margin-bottom:14px;}
.cap-history-list{display:flex;flex-direction:column;gap:10px;}
.cap-history-card{background:#fff;border:1px solid var(--taupe2);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px;}
.cap-history-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.cap-history-platform{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--light);background:var(--oat);border:1px solid var(--taupe2);border-radius:5px;padding:2px 7px;}
.cap-history-date{font-size:11px;color:var(--light);}
.cap-history-stars{display:flex;gap:2px;}
.cap-history-star{display:inline-block;font-size:14px;color:var(--taupe2);cursor:pointer;transition:color .1s,transform .15s;transform-origin:center;}
.cap-history-star:hover{color:#f5a623;}
.cap-history-star.filled{color:#f5a623;}
.cap-history-star.cap-star-pop{animation:capStarPop .42s cubic-bezier(.22,1.5,.36,1);}
@keyframes capStarPop{
  0%   {transform:scale(1);}
  35%  {transform:scale(1.55);filter:drop-shadow(0 0 8px rgba(245,166,35,.75));}
  70%  {transform:scale(.95);}
  100% {transform:scale(1);filter:none;}
}
.cap-rate-slot{display:inline-flex;transition:opacity .14s,transform .14s;}
.cap-rate-slot-leaving{opacity:0;transform:translateY(-4px);}
.cap-rated-confirm{display:inline-flex;align-items:center;gap:8px;padding:3px 4px 3px 10px;background:var(--taupe-pale);border-radius:14px;font-size:11.5px;color:var(--mid);font-weight:600;animation:capRatedIn .28s cubic-bezier(.22,1,.36,1);}
.cap-rated-confirm-high{background:rgba(42,122,91,.13);color:var(--green);}
.cap-rated-check{font-weight:800;}
.cap-rated-text{white-space:nowrap;}
.cap-rated-undo{border:none;background:transparent;color:inherit;font-size:10.5px;cursor:pointer;padding:2px 8px;border-radius:10px;opacity:.7;transition:opacity .12s,background .12s;}
.cap-rated-undo:hover{opacity:1;background:rgba(0,0,0,.06);}
.cap-hashtags{margin-top:12px;padding-top:12px;border-top:1px dashed var(--taupe2);animation:capRatedIn .26s ease-out;}
.cap-hashtags-chips{display:flex;flex-wrap:wrap;gap:6px;}
.cap-hashtag-chip{display:inline-block;background:var(--terra-pale);color:var(--terra);font-size:12px;font-weight:600;padding:3px 9px;border-radius:14px;cursor:default;}
.cap-hashtags-actions{display:flex;gap:6px;margin-top:8px;}
.cap-hashtags-loading{font-size:12px;color:var(--light);font-style:italic;padding:6px 0;}
#cap-num{-moz-appearance:textfield;appearance:textfield;}
#cap-num::-webkit-outer-spin-button,#cap-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.cap-result-text{transition:opacity .2s;}
.cap-result-text-loading{opacity:.35;}
@keyframes capRatedIn{
  from{opacity:0;transform:translateY(6px) scale(.96);}
  to  {opacity:1;transform:translateY(0) scale(1);}
}
.cap-history-text{font-size:13px;color:var(--charcoal);line-height:1.6;white-space:pre-wrap;word-break:break-word;}
.cap-history-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.cap-empty{font-size:13px;color:var(--light);padding:24px 0;text-align:center;}@keyframes approval-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}
.approval-dot-pulse{animation:approval-pulse 1.6s ease-in-out infinite;}

/* Per-post workflow status dot on calendar chips + the legend above the grid. */
/* Status reads by silhouette first — under deuteranopia the amber, red and
   green all collapse to the same olive, so hue can't be the only channel. */
.cal-status-dot{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;flex-shrink:0;margin-left:4px;vertical-align:middle;}
.cal-status-dot svg{width:100%;height:100%;display:block;}
.cal-chip-more{display:none;align-items:center;justify-content:center;width:13px;height:13px;flex-shrink:0;margin-left:4px;padding:0;border:0;background:none;color:inherit;opacity:.65;cursor:pointer;vertical-align:middle;}
.cal-chip-more svg{width:100%;height:100%;display:block;}
.cal-chip-more:hover,.cal-chip-more:focus-visible{opacity:1;}
/* Swap the status dot for the menu affordance on hover — pointer devices only,
   so a touch chip keeps its status and never shows a button it can't reveal. */
@media (hover:hover){
  .cal-post-chip:hover .cal-status-dot{display:none;}
  .cal-post-chip:hover .cal-chip-more{display:inline-flex;}
}
.cal-post-chip:focus-within .cal-status-dot{display:none;}
.cal-post-chip:focus-within .cal-chip-more{display:inline-flex;}
.cal-status-dot.draft{color:var(--light);}
.cal-status-dot.pending{color:var(--blue);}
.cal-status-dot.revision{color:var(--amber);}
.cal-status-dot.approved{color:var(--green-deep);}
.cal-status-dot.scheduled{color:var(--purple);}
.cal-status-dot.posting{color:var(--purple);}
.cal-status-dot.published{color:var(--mid);}
.cal-status-dot.failed{color:var(--red);}
/* Density contexts too small for a glyph fall back to a plain colour dot —
   there the day list below carries the readable status. */
.cal-cell-dots .cal-status-dot svg,.cal-ws-day .dots .cal-status-dot svg{display:none;}
.cal-cell-dots .cal-status-dot,.cal-ws-day .dots .cal-status-dot{border-radius:50%;background:currentColor;}
.cal-post-chip.cal-chip-failed{border-left-color:var(--red);background:var(--red-bg);color:var(--red);animation:cal-fail-glow 2s ease-in-out infinite;}
.cal-post-chip.cal-chip-revision{border-left-color:var(--amber);background:var(--amber-bg);color:var(--amber);box-shadow:0 0 0 1.5px var(--amber);}
.cal-post-chip.cal-chip-revision:hover{box-shadow:0 0 0 1.5px var(--amber),0 4px 10px rgba(0,0,0,.12);}
.cal-post-chip.cal-chip-published{opacity:.62;}
@keyframes cal-fail-glow{0%,100%{box-shadow:0 0 0 1px var(--red),0 0 4px rgba(163,45,45,.25);}50%{box-shadow:0 0 0 1px var(--red),0 0 10px rgba(163,45,45,.55);}}
.cal-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 14px;font-size:11.5px;color:var(--mid);}
.cal-legend-btn{display:none;}
.cal-legend > span{display:inline-flex;align-items:center;gap:5px;}
.cal-legend .cal-status-dot{margin-left:0;}
.cal-legend span{display:inline-flex;align-items:center;gap:6px;}

/* Post modal approval section */
.pm-approval-section{padding:16px 0 0;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.pm-approval-status{display:block;font-size:12px;font-weight:600;line-height:1.4;}
.pm-approval-status.pending{color:#854F0B;}
.pm-approval-status.approved{color:var(--green);}
.pm-approval-status.revision{color:var(--red);}
/* The client's words are content, not metadata — same size as the caption
   they are about, open by default, and holding the action they call for. */
.pm-feedback-card{background:var(--amber-bg);border:1px solid #E5D3AC;border-radius:8px;padding:14px 16px 16px;margin-bottom:16px;}
.pm-fb-head{display:flex;align-items:center;gap:8px;padding-bottom:11px;border-bottom:1px solid #E5D3AC;color:var(--amber);}
.pm-fb-head svg{flex-shrink:0;}
.pm-fb-head-label{font-size:12.5px;font-weight:600;}
.pm-fb-head-when{margin-left:auto;font-size:12.5px;font-weight:400;color:var(--mid);}
.pm-fb-body{display:flex;gap:12px;padding-top:12px;}
.pm-fb-avatar{width:30px;height:30px;flex-shrink:0;border-radius:50%;background:var(--amber);color:#fff;font-size:11.5px;font-weight:600;display:flex;align-items:center;justify-content:center;}
.pm-fb-main{flex-grow:1;min-width:0;display:flex;flex-direction:column;gap:7px;}
.pm-fb-who{font-size:13.5px;font-weight:600;color:var(--charcoal);}
.pm-fb-text{font-size:15px;line-height:1.6;color:var(--charcoal);white-space:pre-wrap;overflow-wrap:break-word;}
.pm-fb-actions{display:flex;gap:8px;margin-top:4px;}
.pm-remind-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;}
.pm-remind-btn.remind-glow{border-color:var(--terra);color:var(--terra);box-shadow:0 0 0 3px rgba(255,90,48,.14),0 4px 12px rgba(255,90,48,.28);animation:remindFloat 2.4s ease-in-out infinite;}
@keyframes remindFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-3px);}}.apv-tabs{display:flex;gap:0;border-bottom:1.5px solid var(--taupe2);margin-bottom:16px;}
.apv-tab{padding:9px 16px;font-size:13px;font-weight:500;color:var(--mid);border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1.5px;display:flex;align-items:center;gap:6px;transition:color .15s;}
.apv-tab:hover{color:var(--charcoal);}
.apv-tab.active{color:var(--charcoal);border-bottom-color:var(--charcoal);font-weight:600;}
.apv-tab-badge{background:var(--terra);color:#fff;font-size:10px;font-weight:700;border-radius:10px;padding:1px 5px;line-height:1.4;}
.apv-range-row{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap;}
.apv-range-btn{padding:6px 12px;border-radius:7px;border:1px solid var(--taupe2);background:var(--oat);font-size:12.5px;font-weight:600;color:var(--charcoal);cursor:pointer;}
.apv-range-btn svg:first-child{color:var(--mid);}
#apv-range-drop .kdrop-menu{left:0;right:auto;min-width:140px;}
#apv-date-from,#apv-date-to{font-size:13px;}/* Simple approval list rows (viewer) — shoot-plan card style */
.apv-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid var(--taupe2);border-radius:14px;padding:18px 22px;margin-bottom:12px;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .1s;}
.apv-row:hover{border-color:var(--terra);box-shadow:0 8px 22px -12px rgba(255,90,48,.32);}
.apv-row:active{transform:scale(.995);}
.apv-row-main{min-width:0;flex:1;}
.apv-row-title{font-family:var(--font-display);font-size:21px;font-weight:700;letter-spacing:-0.02em;color:var(--charcoal);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.apv-row-meta{display:flex;align-items:center;gap:12px;margin-top:9px;flex-wrap:wrap;}
.apv-pill{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 9px;border-radius:20px;line-height:1.4;}
.apv-pill svg{width:11px;height:11px;flex-shrink:0;}
.apv-pill-pending{background:var(--blue-bg);color:var(--blue);}
.apv-pill-revision{background:var(--amber-bg);color:var(--amber);}
.apv-pill-approved{background:#e4f4ea;color:var(--green-deep);}
.apv-pill-scheduled{background:var(--blue-bg);color:var(--blue);}
.apv-pill-posted{background:var(--taupe);color:var(--mid);}
.apv-row-note{display:flex;gap:7px;align-items:baseline;margin-top:8px;background:var(--amber-bg);border-radius:6px;padding:7px 10px;font-size:12.5px;line-height:1.45;color:var(--charcoal);overflow:hidden;}
.apv-row-note-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
.apv-row-note-who{font-weight:600;color:var(--amber);flex-shrink:0;}
.apv-row-fact{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--mid);}
.apv-row-fact svg{color:var(--terra);flex-shrink:0;}
.apv-row-actions{display:inline-flex;gap:8px;flex-shrink:0;}
@media(max-width:768px){
  .apv-row{flex-wrap:wrap;}
  .apv-row-actions{order:3;width:100%;margin-top:4px;}
  .apv-row-actions .btn-sm{flex:1;justify-content:center;}
}
.apv-row-chevron{color:var(--light);flex-shrink:0;display:flex;transition:color .15s,transform .15s;}
.apv-row:hover .apv-row-chevron{color:var(--terra);transform:translateX(2px);}.approval-card-media{margin:12px 0;border-radius:8px;overflow:hidden;max-height:160px;max-width:280px;}
.approval-card-media img,.approval-card-media video{width:100%;max-height:160px;object-fit:cover;display:block;}.approval-approve-btn{padding:8px 18px;background:var(--terra);color:#fff;border:1px solid var(--terra);border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:var(--font);transition:transform .12s,box-shadow .18s,background .15s,border-color .15s;}
.approval-approve-btn:hover{background:var(--terra-light);border-color:var(--terra-light);transform:translateY(-1px);box-shadow:0 6px 16px rgba(255,90,48,.3);}
.approval-approve-btn:active{transform:translateY(0);}
.approval-approve-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none;}.approval-revision-input{padding:8px 12px;border:1.5px solid var(--taupe2);border-radius:8px;font-family:var(--font);font-size:13px;color:var(--charcoal);resize:none;transition:border-color .15s;}
.approval-revision-input:focus{outline:none;border-color:var(--charcoal);}
.approval-revision-btn{padding:8px 14px;background:linear-gradient(180deg,#ffffff 0%,#f9f8f6 100%);color:var(--charcoal);border:1px solid var(--taupe2);border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:var(--font);transition:background .15s,color .15s,border-color .15s;align-self:flex-start;}
.approval-revision-btn:hover{border-color:var(--terra);color:var(--terra);background:linear-gradient(180deg,#ffffff 0%,#fff7f2 100%);}.cd-pulse-card{background:var(--white);border-radius:14px;padding:16px 18px;cursor:pointer;transition:background .12s,box-shadow .12s;}
.cd-pulse-card:hover{background:var(--t2);box-shadow:0 4px 12px rgba(10,10,10,.08);}
/* Hover chevron mirrors the dashboard stat cards — the packer positions these
   widgets with an inline transform, so the lift is a shadow, not translateY. */
.cd-pulse-card::after{content:'\203A';position:absolute;top:14px;right:16px;font-size:16px;line-height:1;opacity:.35;transition:opacity .12s,transform .12s;}
.cd-pulse-card:hover::after{opacity:.8;transform:translateX(2px);}
body.ov-editing .cd-pulse-card::after{display:none;}
.cd-pulse-card.quiet .cd-pulse-val{color:var(--light);}
.cd-pulse-label{font-family:var(--font-display);font-size:12px;font-weight:600;color:var(--burgundy);opacity:.7;}
.cd-pulse-top{display:flex;align-items:center;gap:8px;margin-top:8px;}
.cd-pulse-val{font-family:var(--font-display);font-size:28px;font-weight:800;letter-spacing:-0.03em;color:var(--charcoal);line-height:1;}
.cd-pulse-sub{font-size:11.5px;color:var(--mid);margin-top:6px;}
/* Followers leads the strip as its one filled card. */
.cd-pulse-card.hero{background:var(--terra);}
.cd-pulse-card.hero:hover{background:var(--terra-light);}
.cd-pulse-card.hero .cd-pulse-label,.cd-pulse-card.hero .cd-pulse-sub{color:#fff;opacity:.85;}
.cd-pulse-card.hero .cd-pulse-val,.cd-pulse-card.hero::after{color:#fff;}
.cd-pulse-card.hero .ig-change{background:rgba(255,255,255,.2);color:#fff;}

/* Status chips on overview cards: who is waiting on whom, and where a post is. */
.state-chip{display:inline-flex;align-items:center;font-size:11px;font-weight:500;padding:2px 8px;border-radius:5px;white-space:nowrap;line-height:1.5;}
.state-chip.wait{background:var(--amber-bg);color:var(--amber);}
.state-chip.hot{background:var(--t2);color:var(--burgundy);}
.state-chip.ok{background:var(--green-bg);color:var(--green);}
.state-chip.sched{background:var(--sky);color:var(--charcoal);}
.state-chip.draft{background:var(--taupe);color:var(--mid);}
.cd-link{color:var(--terra-light);cursor:pointer;}
.cd-link:hover{text-decoration:underline;}
.cd-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;min-height:28px;}
.cd-up-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 0;border-top:1px solid var(--hairline);cursor:pointer;}
.cd-up-row:first-child{border-top:0;padding-top:2px;}
.cd-up-date{font-size:12px;color:var(--mid);line-height:1.3;}
.cd-up-date b{display:block;font-family:var(--font-display);font-weight:500;font-size:14px;color:var(--charcoal);}
.cd-up-title{font-size:13.5px;color:var(--charcoal);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cd-up-meta{font-size:12px;color:var(--light);}
.cd-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.cd-details-label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--mid);margin-bottom:6px;min-height:24px;}
.cd-details-col{display:flex;flex-direction:column;gap:8px;font-size:13.5px;}

/* Contact / socials info rows on the client overview, plus the colour swatch
   row and the brand-tab colour-chip control. */
.cd-info-item{display:flex;align-items:center;gap:8px;}
.cd-info-label{width:48px;font-size:12px;color:var(--light);}
.cd-info-label-wide{width:64px;}
.cd-info-link{color:var(--charcoal);text-decoration:none;}
.cd-info-empty{color:var(--light);font-size:13px;}
.cd-colour-swatch{width:32px;height:32px;border-radius:8px;border:1px solid rgba(0,0,0,0.08);cursor:pointer;}
.cd-colour-swatch:hover{box-shadow:0 0 0 2px var(--taupe2);}
.colour-chip{display:flex;align-items:center;gap:4px;background:var(--white);border:1px solid var(--taupe2);border-radius:8px;padding:4px 10px 4px 6px;}
.colour-chip-swatch{width:18px;height:18px;border-radius:4px;border:1px solid rgba(0,0,0,0.1);flex-shrink:0;}
.colour-chip-hex{font-size:12px;font-family:monospace;color:var(--mid);}
.colour-chip-remove{background:none;border:none;color:var(--light);cursor:pointer;font-size:14px;line-height:1;margin-left:2px;}
.scan-alt-font{color:var(--light);}
.scan-colours-count{margin-left:8px;font-size:11px;color:var(--mid);}

/* ── Onboarding tour ────────────────────────────────────── */
.tour-root{position:fixed;inset:0;z-index:1200;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s;}
.tour-root.visible{opacity:1;visibility:visible;}
.tour-overlay{position:absolute;inset:0;pointer-events:none;background:transparent;}
.tour-root.visible .tour-overlay{pointer-events:auto;}
/* Static shadow (ring + page dim); only the ::after glow layer's opacity
   animates — the old keyframes repainted the 9999px overlay every frame. */
.tour-spotlight{position:fixed;border-radius:10px;pointer-events:none;z-index:1202;box-shadow:0 0 24px 4px rgba(255,90,48,0.5),0 0 0 6px rgba(255,90,48,0.22),0 0 0 3px rgba(255,90,48,1),0 0 0 9999px rgba(10,10,10,0.35);transition:top .42s cubic-bezier(.4,0,.2,1),left .42s cubic-bezier(.4,0,.2,1),width .42s cubic-bezier(.4,0,.2,1),height .42s cubic-bezier(.4,0,.2,1);}
.tour-spotlight::after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 36px 8px rgba(255,90,48,0.5);opacity:0;animation:tourSpotlightPulse 2.2s ease-in-out infinite;}
@keyframes tourSpotlightPulse{0%,100%{opacity:0;}50%{opacity:1;}}
.tour-target{position:relative;z-index:1201;}
.tour-target.tour-target-dark{background:rgba(255,90,48,0.32) !important;color:#fff !important;}
.tour-target.tour-target-dark svg{color:#fff !important;opacity:1 !important;}
.tour-target.tour-target-dark *{color:inherit !important;}
.tour-tooltip{position:fixed;width:340px;background:#fff;border:1px solid rgba(255,90,48,0.2);border-radius:16px;padding:24px 26px 20px;box-shadow:0 0 0 1px rgba(255,90,48,0.15),0 30px 70px rgba(255,90,48,0.28),0 8px 20px rgba(10,10,10,0.18),0 0 40px 6px rgba(255,90,48,0.18);pointer-events:none;transition:top .42s cubic-bezier(.4,0,.2,1),left .42s cubic-bezier(.4,0,.2,1);font-family:var(--font);z-index:1203;overflow:hidden;}
.tour-tooltip::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--terra,#ff5a30),var(--terra-light,#e26b50),var(--terra,#ff5a30));}
.tour-root.visible .tour-tooltip{pointer-events:auto;}
.tour-close{position:absolute;top:10px;right:14px;background:transparent;border:none;font-size:22px;line-height:1;cursor:pointer;color:var(--light);padding:2px 6px;font-family:var(--font);}
.tour-close:hover{color:var(--charcoal);}
.tour-step-count{font-family:var(--font-display);font-size:11px;font-weight:600;color:var(--terra);margin-bottom:6px;}
.tour-title{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--charcoal);margin-bottom:8px;line-height:1.2;}
.tour-body{font-size:13px;color:var(--mid);line-height:1.55;margin-bottom:18px;}
.tour-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;}
.tour-skip{background:transparent;border:none;font-size:12px;color:var(--light);cursor:pointer;padding:4px 0;font-family:var(--font);}
.tour-skip:hover{color:var(--mid);}
.tour-nav-btns{display:flex;gap:8px;}
.tour-back,.tour-next{padding:7px 16px;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;font-family:var(--font);transition:opacity .15s,background .15s;}
.tour-back{background:transparent;color:var(--mid);border:1px solid var(--taupe2);}
.tour-back:hover{background:var(--oat);}
.tour-next{background:var(--charcoal);color:#fff;border:1px solid var(--charcoal);}
.tour-next:hover{opacity:.88;}

/* Help button in sidebar footer */
.help-btn{background:none;border:1px solid rgba(10,10,10,0.15);color:rgba(10,10,10,0.5);width:22px;height:22px;border-radius:50%;font-size:11px;cursor:pointer;font-family:var(--font);display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;transition:color .15s,border-color .15s;}
.help-btn:hover{color:var(--terra);border-color:var(--terra);}

/* ── Billing view ────────────────────────────────────────────── */
.billing-current{background:var(--white);border:1px solid var(--taupe);border-radius:12px;padding:20px 22px;max-width:640px;margin-bottom:28px;}
.bc-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.bc-label{font-size:12px;font-weight:600;color:var(--light);margin-bottom:6px;}
.bc-plan{font-family:var(--font-display);font-size:22px;font-weight:800;letter-spacing:-0.02em;color:var(--charcoal);display:flex;align-items:center;gap:10px;}
.bc-meta{font-size:13px;color:var(--mid);margin-top:4px;}
.bc-status{font-size:10px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--terra);background:var(--terra-pale);padding:3px 8px;border-radius:5px;}
.billing-interval{display:inline-flex;border:1px solid var(--taupe2);border-radius:8px;overflow:hidden;background:var(--white);margin-bottom:14px;}
.billing-interval button{padding:6px 14px;border:none;background:transparent;font-family:var(--font);font-size:12.5px;font-weight:600;color:var(--mid);cursor:pointer;transition:background .15s,color .15s;}
.billing-interval button+button{border-left:1px solid var(--taupe2);}
.billing-interval button:hover{background:#faf8f7;color:var(--charcoal);}
.billing-interval button.active{background:var(--charcoal);color:#fff;}
.billing-interval button span{font-weight:500;font-size:11.5px;color:var(--terra);margin-left:6px;}
.billing-interval button.active span{color:#fff;opacity:.7;}
.billing-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;max-width:760px;}
.billing-plan{background:var(--white);border:1px solid var(--taupe);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:14px;position:relative;}
.billing-plan.pop{border-color:var(--charcoal);}
.billing-plan.current{border-color:var(--terra);background:var(--terra-pale);}
.billing-locked-note{font-size:14px;color:var(--charcoal);margin:-12px 0 20px;}
.billing-locked .billing-interval,.billing-locked .billing-plans{opacity:.45;pointer-events:none;user-select:none;}
.bp-badge{position:absolute;top:-9px;right:14px;background:var(--charcoal);color:var(--oat);font-size:10px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;padding:3px 9px;border-radius:5px;}
.billing-plan.current .bp-badge{background:var(--terra);color:#fff;}
.bp-name{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--mid);}
.bp-price{font-family:var(--font-display);font-size:30px;font-weight:800;letter-spacing:-0.025em;color:var(--charcoal);line-height:1;}
.bp-price span{font-family:var(--font);font-size:13px;font-weight:500;color:var(--light);margin-left:3px;}
.bp-features{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;flex:1;}
.bp-features li{font-size:13px;color:var(--mid);padding-left:14px;position:relative;line-height:1.5;}
.bp-features li::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--taupe2);position:absolute;left:3px;top:8px;}

/* Trial banner */
.trial-banner{background:var(--terra-pale);border-bottom:1px solid var(--terra-light);padding:10px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;color:var(--charcoal2);}
.trial-banner strong{color:var(--terra);}
.trial-banner .btn-sm{flex-shrink:0;}

/* Rotating notice for features awaiting platform approval */

/* Usage bar */
.bc-usage{margin-top:18px;padding-top:16px;border-top:1px solid var(--taupe);}
.bc-usage-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:8px;}
.bc-usage-num{font-size:12px;color:var(--mid);font-variant-numeric:tabular-nums;}
.bc-bar{height:6px;background:var(--oat);border-radius:3px;overflow:hidden;}
.bc-bar-fill{height:100%;background:var(--charcoal);transition:width .3s;}
.bc-bar-fill.warn{background:#c98a2b;}
.bc-bar-fill.danger{background:#a32d2d;}

/* Activity */
.act-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;}
.act-filters select{padding:7px 28px 7px 12px;border:1.5px solid var(--taupe2);border-radius:var(--radius);font-size:13px;font-family:var(--font);background:var(--white);color:var(--charcoal);cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%236b6864' stroke-width='1.4' fill='none' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right 10px center;}
.act-feed{max-width:780px;display:flex;flex-direction:column;gap:24px;}
.act-empty{font-size:13px;color:var(--light);padding:24px 0;text-align:center;}
.act-day-label{font-family:var(--font-display);font-size:12px;font-weight:600;color:var(--light);margin-bottom:10px;}
.act-day-items{display:flex;flex-direction:column;gap:2px;border-left:1px solid var(--taupe2);padding-left:18px;margin-left:6px;}
.act-row{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--taupe);align-items:flex-start;}
.act-row:last-child{border-bottom:none;}
.act-avatar{width:28px;height:28px;border-radius:50%;background:var(--oat);color:var(--mid);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--font-display);}
.act-body{flex:1;min-width:0;}
.act-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:13px;color:var(--charcoal2);line-height:1.5;}
.act-name{font-weight:600;color:var(--charcoal);}
.act-detail{color:var(--mid);}
.act-chip{font-size:11px;padding:1px 7px;border:1px solid var(--taupe2);border-radius:10px;color:var(--mid);background:var(--white);}
.act-meta{font-size:11px;color:var(--light);margin-top:2px;font-variant-numeric:tabular-nums;}
.act-set-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--taupe2);border-radius:var(--radius);cursor:pointer;font-size:13px;color:var(--charcoal2);background:var(--white);}
.act-set-row:hover{background:var(--oat);}
.act-set-row input{cursor:pointer;}

/* Invite modal — admin toggle + permissions */
.invite-admin-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1.5px solid var(--taupe2);border-radius:var(--radius);cursor:pointer;margin-top:4px;transition:border-color .18s,background .18s;}
.invite-admin-toggle:hover{border-color:var(--taupe);}
.invite-admin-toggle:has(input:checked){border-color:var(--terra);background:rgba(255,90,48,.05);}
.invite-admin-title{font-size:13.5px;font-weight:600;color:var(--charcoal);}
.invite-admin-sub{font-size:12px;color:var(--mid);margin-top:2px;line-height:1.4;}

/* iOS-style switch — used for single on/off choices */
.koda-switch{appearance:none;-webkit-appearance:none;flex-shrink:0;width:38px;height:22px;border-radius:999px;background:var(--taupe2);border:none;cursor:pointer;position:relative;transition:background .2s;margin:0;}
.koda-switch::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .2s;}
.koda-switch:checked{background:var(--terra);}
.koda-switch:checked::after{transform:translateX(16px);}

.invite-perms-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.invite-perm-row{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1.5px solid var(--taupe2);border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;color:var(--charcoal2);transition:border-color .18s,background .18s;user-select:none;}
.invite-perm-row:hover{border-color:var(--taupe);background:var(--oat);}
.invite-perm-row:has(input:checked){border-color:var(--terra);background:rgba(255,90,48,.05);color:var(--charcoal);}
.invite-perm-row input{appearance:none;-webkit-appearance:none;flex-shrink:0;width:18px;height:18px;border-radius:5px;border:1.5px solid var(--taupe);background:#fff;cursor:pointer;position:relative;transition:background .15s,border-color .15s;margin:0;}
.invite-perm-row input:checked{background:var(--terra);border-color:var(--terra);}
.invite-perm-row input:checked::after{content:'';position:absolute;left:5px;top:2px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}

.invite-card{background:#fff;border-radius:14px;width:560px;max-width:calc(100vw - 32px);padding:46px 32px 26px;box-shadow:0 18px 48px rgba(0,0,0,.18);position:relative;}
.invite-avatar-badge{position:absolute;top:-28px;left:50%;transform:translateX(-50%);width:56px;height:56px;border-radius:50%;background:var(--charcoal);color:#fff;display:flex;align-items:center;justify-content:center;border:4px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.18);}
.invite-avatar-badge svg{width:26px;height:26px;}
.invite-title{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--charcoal);text-align:center;margin-bottom:4px;}
.invite-sub{font-size:13px;color:var(--mid);text-align:center;margin-bottom:20px;}

.invite-perms-disclosure{margin-top:14px;border:1.5px solid var(--taupe2);border-radius:var(--radius);overflow:hidden;}
.invite-perms-head{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 14px;background:none;border:none;cursor:pointer;font-family:var(--font);font-size:13px;font-weight:600;color:var(--charcoal);}
.invite-perms-head:hover{background:var(--oat);}
.invite-perms-chev{width:14px;height:14px;color:var(--mid);transition:transform .2s;}
.invite-perms-disclosure.open .invite-perms-chev{transform:rotate(180deg);}
.invite-perms-body{display:none;padding:2px 14px 14px;}
.invite-perms-disclosure.open .invite-perms-body{display:block;}

/* Viewer profile pill */
.viewer-profile-pill{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--white);border:1px solid var(--taupe2);border-radius:20px;cursor:pointer;box-shadow:var(--shadow);transition:border-color .15s;}
.viewer-profile-pill:hover{border-color:var(--mid);}
.viewer-profile-avatar{width:28px;height:28px;border-radius:50%;background:var(--charcoal);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--font-display);}.idea-stack-wrap{position:relative;height:340px;margin-bottom:24px;user-select:none;}
.idea-gen-row{display:flex;gap:18px;align-items:stretch;margin-bottom:18px;}
.idea-gen-left{flex:1;min-width:0;display:flex;flex-direction:column;}
.idea-gen-left .idea-actions-row{margin-top:0;}
.idea-session-panel{width:300px;flex-shrink:0;background:#fff;border:1px solid var(--taupe2);border-radius:20px;padding:16px 18px;display:flex;flex-direction:column;}
.idea-session-head{font-family:var(--font-display);font-size:12px;font-weight:600;color:var(--light);margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.idea-session-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;}
.idea-session-empty{font-size:12px;color:var(--light);line-height:1.5;}
.idea-session-item{font-size:12.5px;line-height:1.4;color:var(--charcoal);padding:8px 10px;background:var(--oat);border:1px solid var(--taupe2);border-radius:10px;}
.idea-session-item .ses-format{display:block;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--terra);margin-bottom:3px;}
.idea-session-plan{margin-top:12px;width:100%;justify-content:center;}
@media (max-width:820px){
  .idea-gen-row{flex-direction:column;}
  .idea-session-panel{width:100%;max-height:200px;}
}
.idea-card{position:absolute;inset:0;background:#fff;border:1px solid var(--taupe2);border-radius:20px;padding:28px 32px;box-shadow:0 6px 28px rgba(10,10,10,.1);transition:transform .38s cubic-bezier(.4,0,.2,1),opacity .38s,box-shadow .38s;will-change:transform;display:flex;flex-direction:column;gap:12px;overflow:hidden;}
.idea-card[data-depth="0"]{transform:translateY(0) scale(1);z-index:3;}
.idea-card[data-depth="1"]{transform:translateY(12px) scale(.97);z-index:2;box-shadow:0 3px 14px rgba(10,10,10,.06);}
.idea-card[data-depth="2"]{transform:translateY(24px) scale(.94);z-index:1;box-shadow:0 1px 6px rgba(10,10,10,.04);}
.idea-card.swipe-right{transform:translateX(140%) rotate(14deg) !important;opacity:0;transition:transform .38s cubic-bezier(.4,0,.2,1),opacity .3s;}
.idea-card.swipe-left {transform:translateX(-140%) rotate(-14deg) !important;opacity:0;transition:transform .38s cubic-bezier(.4,0,.2,1),opacity .3s;}
.idea-format{display:inline-flex;align-items:center;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--terra);background:var(--terra-pale);border-radius:20px;padding:3px 10px;align-self:flex-start;}
.idea-hook{font-family:var(--font-display);font-size:21px;font-weight:800;letter-spacing:-.03em;color:var(--charcoal);line-height:1.25;}
.idea-desc{font-size:13px;color:var(--mid);line-height:1.65;flex:1;}
.idea-card-loading{background:var(--oat);border-color:transparent;box-shadow:none;}
.idea-loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:28px;text-align:center;}
/* Three Koda "o" rings — hole is ~a third of the ring, as in the wordmark. */
.idea-rings{display:flex;gap:9px;height:22px;align-items:flex-end;}
.idea-rings span{width:17px;height:17px;border-radius:50%;border:6px solid var(--terra);animation:ideaRing 1.25s cubic-bezier(.6,.05,.4,.95) infinite;}
.idea-rings span:nth-child(2){animation-delay:.16s;opacity:.85;}
.idea-rings span:nth-child(3){animation-delay:.32s;opacity:.7;}
@keyframes ideaRing{0%,100%{transform:translateY(0);}45%,55%{transform:translateY(-16px);}}
.idea-loader-msg{font-family:var(--font-display);font-size:14px;font-weight:800;color:var(--charcoal);letter-spacing:-.01em;}
.idea-loader-tip{font-size:13px;color:var(--light);line-height:1.5;max-width:320px;min-height:40px;transition:opacity .25s ease;}.idea-topics-wrap{background:#fff;border:1px solid var(--taupe2);border-radius:20px;padding:14px 18px;margin-bottom:20px;}
.idea-topics-label{font-size:12px;font-weight:600;color:var(--light);margin-bottom:8px;}
.idea-topics-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;}
.idea-topic-chip{display:inline-flex;align-items:center;gap:5px;background:var(--terra-pale);color:var(--terra);border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600;}
.idea-topic-chip button{background:none;border:none;cursor:pointer;color:var(--terra);font-size:14px;line-height:1;padding:0;opacity:.6;}
.idea-topic-chip button:hover{opacity:1;}
.idea-topic-input{border:none;outline:none;font-family:var(--font);font-size:13px;color:var(--charcoal);background:transparent;min-width:160px;flex:1;}
.idea-topic-input::placeholder{color:var(--light);}
.idea-topic-add-btn{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:var(--charcoal);border:1px solid var(--taupe2);border-radius:8px;padding:8px 14px;font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,transform .12s,opacity .15s;}
.idea-topic-add-btn:hover{background:var(--oat);border-color:var(--taupe);}
.idea-topic-add-btn:active{transform:scale(.96);}
.idea-topic-add-btn:disabled{opacity:.4;cursor:not-allowed;}
.idea-recents{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;}
.idea-recents-label{font-size:12px;font-weight:600;color:var(--light);margin-right:2px;}
.idea-recent-chip{background:var(--white);border:1px solid var(--taupe2);color:var(--mid);border-radius:20px;padding:3px 11px;font-size:12px;font-weight:500;font-family:var(--font);cursor:pointer;transition:border-color .15s,color .15s,background .15s;}
.idea-recent-chip::before{content:'+ ';opacity:.55;}
.idea-recent-chip:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-pale);}.idea-saved-section[data-collapsed="1"] #idea-saved-list{display:none;}
/* Sub-tabs (Generate / Saved) */
.idea-tabs{display:flex;gap:4px;border-bottom:1px solid var(--taupe2);margin-bottom:20px;}
.idea-tab{background:none;border:none;cursor:pointer;font-family:var(--font);font-size:13.5px;font-weight:600;color:var(--light);padding:10px 18px;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s;display:inline-flex;align-items:center;gap:6px;}
.idea-tab:hover{color:var(--charcoal);}
.idea-tab.active{color:var(--charcoal);border-bottom-color:var(--terra);}
.idea-tab-count{font-size:11px;font-weight:700;color:var(--light);background:var(--oat);padding:1px 7px;border-radius:10px;}
.idea-tab.active .idea-tab-count{background:var(--terra-pale);color:var(--terra);}

/* Action pill row — Reset (neutral) on far left, then X / ✓ / Save (terra) on the right */
.idea-actions-row{display:flex;align-items:center;gap:8px;margin-top:18px;flex-wrap:wrap;}.idea-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:100px;padding:10px 16px;font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;transition:transform .12s,background .15s,border-color .15s,color .15s,box-shadow .15s;line-height:1;}
.idea-pill:active{transform:scale(.96);}
.idea-pill-reset{background:transparent;color:var(--light);border-color:transparent;}
.idea-pill-reset:hover{color:var(--mid);background:var(--oat);}
.idea-pill-reject{background:#fff;color:var(--burgundy);border-color:var(--burgundy);}
.idea-pill-reject:hover{background:var(--burgundy);color:#fff;}
.idea-pill-accept{background:#fff;color:#2a5a1f;border-color:#2a5a1f;}
.idea-pill-accept:hover{background:#2a5a1f;color:#fff;}
.idea-pill-save{background:var(--terra);color:#fff;border-color:var(--terra);padding:12px 22px;font-size:14px;font-weight:700;box-shadow:0 4px 14px -6px rgba(255,90,48,.4);}
.idea-pill-save:hover{background:#FF7042;border-color:#FF7042;box-shadow:0 6px 18px -6px rgba(255,90,48,.5);}
/* Scale on the pill, glow on a ::after opacity layer — both composite on the
   GPU; the old single keyframe repainted the shadow every frame. */
.idea-pill-save-pulse{position:relative;animation:idea-pill-pulse 1.8s ease-in-out infinite;}
.idea-pill-save-pulse::after{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:0 8px 24px -6px rgba(255,90,48,.55);opacity:0;pointer-events:none;animation:idea-pill-glow 1.8s ease-in-out infinite;}
@keyframes idea-pill-pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.04);}}
@keyframes idea-pill-glow{0%,100%{opacity:0;}50%{opacity:1;}}

/* Saved tab empty state */
.idea-saved-empty{text-align:center;padding:48px 24px;color:var(--light);font-size:14px;background:#fff;border:1px dashed var(--taupe2);border-radius:var(--radius-lg);}

/* ── Feed preview ─────────────────────────────────────────────────────────── */
.feed-loading,.feed-empty{padding:48px 24px;text-align:center;color:var(--light);font-size:14px;}
.feed-layout{display:grid;grid-template-columns:minmax(0,480px) 320px;gap:32px;align-items:flex-start;max-width:880px;}
.feed-phone{background:#fff;border:1px solid var(--taupe2);border-radius:var(--radius-lg);padding:14px;box-shadow:var(--shadow);width:100%;}

/* Feed preview platform tabs (light theme) */
.feed-tabs{display:inline-flex;gap:4px;background:var(--oat);border:1px solid var(--taupe2);padding:4px;border-radius:999px;margin-bottom:18px;}
.feed-tab{border:none;background:none;color:var(--mid);font-family:var(--font);font-size:13px;font-weight:600;padding:6px 18px;border-radius:999px;cursor:pointer;transition:background .15s,color .15s;}
.feed-tab:hover{color:var(--charcoal);}
.feed-tab.active{background:var(--terra);color:#fff;}

/* TikTok profile grid (3-col 9:16 covers) */
.feed-phone-tt{background:#000;border-color:#1a1a1a;}
.ttg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;}
.ttg-tile{position:relative;aspect-ratio:9/16;background:#111;border-radius:2px;overflow:hidden;cursor:pointer;}
.ttg-tile img{width:100%;height:100%;object-fit:cover;display:block;}
.ttg-empty{width:100%;height:100%;background:repeating-linear-gradient(45deg,#161616,#161616 8px,#1d1d1d 8px,#1d1d1d 16px);}
.ttg-views{position:absolute;left:6px;bottom:6px;display:flex;align-items:center;gap:3px;color:#fff;font-size:11px;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.6);}
.ttg-tile .feed-tile-badge{position:absolute;top:6px;left:6px;bottom:auto;}
.feed-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;}
.feed-tile{position:relative;aspect-ratio:1080/1440;background:var(--oat);border-radius:2px;overflow:hidden;cursor:pointer;}
.feed-tile img,.feed-tile video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease;}
.feed-tile:hover img{transform:scale(1.04);}
.feed-tile-scheduled{outline:2px solid var(--terra);outline-offset:-2px;}
.feed-tile-scheduled.feed-tile-approved {outline-color:var(--green);}
.feed-tile-scheduled.feed-tile-submitted{outline-color:var(--blue);}
.feed-tile-scheduled.feed-tile-needs    {outline-color:var(--amber);}
.feed-tile-scheduled.feed-tile-draft    {outline-color:var(--mid);}
.feed-tile-badge{position:absolute;left:4px;bottom:4px;background:var(--terra);color:#fff;font-size:9px;font-weight:700;letter-spacing:.03em;padding:3px 6px;border-radius:3px;text-transform:uppercase;line-height:1;max-width:calc(100% - 8px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.feed-tile-badge-scheduled{background:var(--terra);}
.feed-tile-badge-approved {background:var(--green);}
.feed-tile-badge-submitted{background:var(--blue);}
.feed-tile-badge-needs    {background:var(--amber);}
.feed-tile-badge-draft    {background:rgba(10,10,10,.78);}
.feed-tile-icon{position:absolute;top:5px;right:5px;color:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));pointer-events:none;}
.feed-tile[draggable="true"]{cursor:grab;}
.feed-tile-dragover{outline:2px dashed var(--terra) !important;outline-offset:-2px;}
.feed-pin-btn{position:absolute;top:5px;left:5px;width:22px;height:22px;border:none;border-radius:50%;background:rgba(10,10,10,.55);color:#fff;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;opacity:0;transition:opacity .15s ease;}
.feed-tile:hover .feed-pin-btn{opacity:1;}
.feed-pin-btn.pinned{opacity:1;background:var(--charcoal);}
.feed-pin-btn:hover{background:var(--charcoal);}
.feed-tile-lifting{transform:scale(.94);opacity:.85;}
.feed-grid-editing .feed-tile,.feed-grid-editing .feed-tile img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;}

/* Right-side panel */
.feed-side{display:flex;flex-direction:column;gap:14px;}
.feed-side-card{background:#fff;border:1px solid var(--taupe2);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow);}
.feed-side-title{font-family:var(--font-display);font-size:12px;font-weight:600;color:var(--light);margin-bottom:12px;}
.feed-side-row{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-bottom:0.5px solid var(--taupe-pale);font-size:13.5px;color:var(--charcoal);}
.feed-side-row:last-child{border-bottom:none;}
.feed-side-label{color:var(--mid);}
.feed-side-val{font-family:var(--font-display);font-weight:700;color:var(--charcoal);}
.feed-side-empty{font-size:13px;color:var(--light);line-height:1.5;}

.feed-upcoming-row{display:flex;align-items:center;gap:10px;width:100%;padding:8px 4px;border:none;background:none;cursor:pointer;text-align:left;border-radius:6px;transition:background .15s;}
.feed-upcoming-row:hover{background:var(--oat);}
.feed-upcoming-thumb{width:36px;height:45px;border-radius:4px;overflow:hidden;flex-shrink:0;background:var(--taupe-pale);}
.feed-upcoming-thumb img,.feed-upcoming-thumb video{width:100%;height:100%;object-fit:cover;display:block;}
.feed-upcoming-meta{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.feed-upcoming-date{font-size:11px;font-weight:600;color:var(--terra);}
.feed-upcoming-title{font-size:13px;color:var(--charcoal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.feed-toggle-row{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--charcoal);cursor:pointer;padding:4px 0;}
.feed-toggle-row input[type=checkbox]{accent-color:var(--terra);width:15px;height:15px;cursor:pointer;}
.feed-side-help{font-size:11.5px;color:var(--light);line-height:1.5;margin-top:6px;}
.feed-side-legend .feed-legend-row{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--mid);padding:4px 0;}
.feed-legend-swatch{display:inline-block;width:11px;height:11px;border-radius:3px;flex-shrink:0;}
.feed-legend-swatch.sched     {background:var(--terra);}
.feed-legend-swatch.approved  {background:#2a5a1f;}
.feed-legend-swatch.submitted {background:#1060c0;}
.feed-legend-swatch.needs     {background:#b06800;}
.feed-legend-swatch.draft     {background:rgba(10,10,10,.78);}.idea-saved-section{margin-top:12px;}
.idea-saved-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.idea-saved-title{font-size:12px;font-weight:600;color:var(--light);}
.gen-progress{background:var(--oat);border-radius:4px;height:5px;overflow:hidden;}
.gen-progress-fill{background:var(--terra);height:100%;width:0;transition:width .3s ease;}
.gen-status{font-size:12px;color:var(--light);margin-top:10px;min-height:18px;font-style:italic;}
#ideas-plan-list{display:flex;flex-direction:column;gap:7px;}
.ideas-plan-row{border:1px solid var(--taupe2);border-radius:10px;background:#fff;padding:12px 14px;transition:border-color .12s;}
.ideas-plan-row:hover{border-color:var(--mid);}
.ideas-plan-head{display:flex;align-items:center;gap:10px;}
.ideas-plan-check{display:flex;align-items:center;gap:10px;flex:1;min-width:0;cursor:pointer;}
.ideas-plan-row input[type="checkbox"]{flex-shrink:0;width:16px;height:16px;accent-color:var(--charcoal);}
.ideas-plan-hook{font-size:13.5px;font-weight:600;color:var(--charcoal);line-height:1.35;}
.ideas-plan-toggle{flex-shrink:0;width:22px;height:22px;border:none;background:none;color:var(--light);font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .18s,color .12s;}
.ideas-plan-toggle:hover{color:var(--charcoal);}
.ideas-plan-row.open .ideas-plan-toggle{transform:rotate(180deg);}
.ideas-plan-desc{display:none;margin-top:9px;padding-top:9px;border-top:1px solid var(--taupe2);}
.ideas-plan-row.open .ideas-plan-desc{display:block;}
.ideas-plan-fmt{display:inline-block;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--terra);margin-bottom:5px;}
.ideas-plan-desc-text{font-size:12.5px;color:var(--mid);line-height:1.55;}.idea-anchor{margin-top:auto;padding-top:10px;border-top:1px dashed var(--taupe2);font-size:11.5px;color:var(--mid);line-height:1.5;}
.idea-anchor-k{color:var(--terra);font-weight:600;}
.idea-admin-meta{margin-top:14px;}
.idea-admin-meta .idea-meta{border:1px solid var(--taupe2);border-radius:20px;background:var(--oat);padding:12px 14px;font-size:12px;color:var(--mid);}
.idea-admin-meta summary{cursor:pointer;font-weight:700;color:var(--terra);list-style:none;letter-spacing:.02em;}
.idea-admin-meta summary::-webkit-details-marker{display:none;}
.idea-meta-body{margin-top:10px;display:flex;flex-direction:column;gap:7px;}
.idea-meta-grp{line-height:1.5;}
.idea-meta-k{font-weight:600;color:var(--charcoal);font-size:11px;margin-right:6px;}
.idea-meta-grp ul{margin:4px 0 0;padding-left:16px;}
.idea-meta-grp li{margin:2px 0;}@keyframes idea-pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.03);}}
.idea-saved-card{background:#fff;border:1px solid var(--taupe2);border-radius:var(--radius-lg);padding:14px 18px;display:flex;align-items:flex-start;gap:12px;margin-bottom:8px;}
.idea-saved-body{flex:1;min-width:0;}
.idea-saved-hook{font-size:14px;font-weight:700;letter-spacing:-.01em;color:var(--charcoal);margin-bottom:3px;}
.idea-saved-desc{font-size:12px;color:var(--mid);line-height:1.5;}
.idea-saved-remove{background:none;border:none;cursor:pointer;color:var(--light);font-size:16px;line-height:1;padding:2px;flex-shrink:0;transition:color .15s;}
.idea-saved-remove:hover{color:var(--charcoal);}
.idea-saved-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.idea-saved-seed{background:none;border:1px solid var(--taupe2);color:var(--mid);border-radius:7px;padding:5px 10px;font-size:11.5px;font-weight:600;font-family:var(--font);cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s,background .15s;}
.idea-saved-seed:hover{border-color:var(--terra);color:var(--terra);background:var(--terra-pale);}
/* Mid-flow "topics changed" prompt above the concept card */
.idea-regen-hint{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--terra-pale);border:1px solid rgba(255,90,48,.25);border-radius:10px;padding:9px 10px 9px 14px;margin-bottom:12px;font-size:12.5px;color:var(--terra);font-weight:600;}
.idea-regen-hint .btn-sm{flex-shrink:0;}

/* ── Scheduler tab ── */
.storage-usage{margin:8px 0 24px;padding:12px 16px;background:#fff;border:0.5px solid var(--taupe2);border-radius:8px;}
.storage-usage-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:8px;flex-wrap:wrap;}
.storage-usage-label{font-size:12px;color:var(--charcoal);font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.storage-usage-hint{font-size:11px;color:var(--light);font-weight:400;}
.storage-usage-figs{font-size:12px;color:var(--mid);font-weight:600;font-variant-numeric:tabular-nums;}
.storage-usage-figs.danger{color:var(--red);}
.storage-usage-bar{height:6px;background:var(--taupe-pale);border-radius:4px;overflow:hidden;}
.storage-usage-fill{height:100%;background:var(--terra);transition:width .3s;}
.storage-usage-actions{margin-top:10px;display:flex;gap:8px;justify-content:flex-end;}
.storage-cleanup-btn{font-size:11px;color:var(--mid);background:none;border:1px solid var(--taupe2);border-radius:6px;padding:5px 10px;cursor:pointer;transition:border-color .15s,color .15s;}
.storage-cleanup-btn:hover:not(:disabled){border-color:var(--charcoal);color:var(--charcoal);}
.storage-cleanup-btn:disabled{opacity:.6;cursor:not-allowed;}
.storage-usage-fill.danger{background:var(--red);}

/* ── Org-wide storage browser ─────────────────────────────────────────── */
.stor-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:4px;}
.stor-chips{display:flex;gap:6px;flex-wrap:wrap;}
.stor-chip{font-family:var(--font);font-size:12px;font-weight:600;color:var(--mid);background:var(--white);border:1px solid var(--taupe2);border-radius:7px;padding:5px 11px;cursor:pointer;transition:border-color .12s,color .12s,background .12s;}
.stor-chip:hover{border-color:var(--charcoal);color:var(--charcoal);}
.stor-chip.active{background:var(--terra-pale);border-color:var(--terra);color:var(--terra);}
.stor-toggle{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--mid);cursor:pointer;}
.stor-toggle input{accent-color:var(--terra);cursor:pointer;}
.stor-select{font-family:var(--font);font-size:12px;font-weight:600;color:var(--mid);background:var(--white);border:1px solid var(--taupe2);border-radius:7px;padding:5px 9px;cursor:pointer;margin-left:auto;}

.stor-card.held{opacity:.62;}
.stor-card.sel{border-color:var(--terra);box-shadow:0 0 0 1px var(--terra);}
.stor-check{position:absolute;top:6px;left:6px;width:22px;height:22px;border-radius:6px;border:1px solid rgba(255,255,255,.75);background:rgba(19,19,19,.45);color:#fff;font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;}
.stor-check:hover{background:rgba(19,19,19,.7);}
.stor-check.on{background:var(--terra);border-color:var(--terra);}
.stor-lock{position:absolute;top:6px;left:6px;width:22px;height:22px;border-radius:6px;background:rgba(19,19,19,.45);color:#fff;display:flex;align-items:center;justify-content:center;}
.stor-size{position:absolute;right:6px;bottom:6px;font-size:10.5px;font-weight:600;color:#fff;background:rgba(19,19,19,.6);border-radius:5px;padding:2px 6px;font-variant-numeric:tabular-nums;}

.stor-selbar{position:sticky;bottom:16px;z-index:40;display:flex;align-items:center;gap:12px;margin-top:20px;padding:11px 16px;background:var(--white);border:1px solid var(--taupe2);border-radius:9px;box-shadow:0 4px 18px rgba(19,19,19,.1);}
.stor-selbar-txt{font-size:13px;color:var(--charcoal);margin-right:auto;font-variant-numeric:tabular-nums;}

.stor-lb{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:9999;display:flex;align-items:center;justify-content:center;flex-direction:column;}
.stor-lb-stage{flex:0 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;padding:44px 64px 0;}
.stor-lb-stage img,.stor-lb-stage video{max-width:88vw;max-height:72vh;border-radius:8px;object-fit:contain;}
.stor-lb-foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;width:min(88vw,900px);padding:16px 0 22px;color:#fff;}
.stor-lb-name{font-size:14px;font-weight:600;}
.stor-lb-meta{font-size:12px;color:rgba(255,255,255,.62);margin-top:2px;}
.stor-lb-held{font-size:12px;color:rgba(255,255,255,.62);}
.stor-lb-posts{font-size:12px;color:rgba(255,255,255,.62);margin-top:6px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.stor-lb-post{font-family:var(--font);font-size:12px;font-weight:600;color:#fff;background:rgba(255,255,255,.12);border:none;border-radius:6px;padding:4px 9px;cursor:pointer;}
.stor-lb-post:hover{background:rgba(255,255,255,.24);}
.stor-lb-count{margin-left:auto;font-size:12px;color:rgba(255,255,255,.62);font-variant-numeric:tabular-nums;}
.stor-lb-close{position:absolute;top:16px;right:18px;width:34px;height:34px;border:none;border-radius:8px;background:rgba(255,255,255,.12);color:#fff;font-size:22px;line-height:1;cursor:pointer;}
.stor-lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:56px;border:none;border-radius:8px;background:rgba(255,255,255,.12);color:#fff;font-size:26px;line-height:1;cursor:pointer;}
.stor-lb-nav:hover,.stor-lb-close:hover{background:rgba(255,255,255,.22);}
.stor-lb-nav.prev{left:14px;}
.stor-lb-nav.next{right:14px;}
@media (max-width:760px){
  #storage-grid{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:10px;}
  .stor-select{margin-left:0;}
  .stor-lb-stage{padding:44px 12px 0;}
  .stor-lb-foot{width:92vw;}
  .stor-lb-count{margin-left:0;width:100%;}
  .stor-lb-nav{width:34px;height:46px;font-size:22px;}
}

.sched-section{margin-bottom:32px;}
.sched-section-label{font-size:12px;font-weight:600;color:var(--light);margin-bottom:12px;display:flex;align-items:center;gap:8px;}
.sched-section-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;padding:1px 7px;border-radius:20px;background:var(--taupe);color:var(--mid);font-size:10px;font-weight:700;}.sched-pill{display:inline-flex;align-items:center;padding:2px 10px;border-radius:20px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
.sched-pill-queued{background:var(--terra-pale);color:var(--terra);}
.sched-pill-failed{background:#fce4e4;color:var(--red);}
.sched-pill-published{background:var(--green-bg);color:var(--green);}.sched-err{font-size:12px;color:var(--red);background:#fce4e4;border-radius:6px;padding:6px 10px;margin-bottom:8px;font-family:monospace;}
/* ── Grid view (Manychat-style thumbnail picker) ─────────────────────────── */
.sched-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;}
.sched-tile{position:relative;aspect-ratio:1/1;border-radius:10px;overflow:hidden;background:var(--oat);border:1px solid var(--taupe2);padding:0;cursor:pointer;transition:transform .12s,border-color .15s;font:inherit;color:inherit;}
.sched-tile:hover{border-color:var(--terra);transform:translateY(-1px);}
.sched-tile-failed{border:2px solid #c0392b;}
.sched-tile-failed:hover{border-color:#c0392b;}
.sched-tile img,.sched-tile video{width:100%;height:100%;object-fit:cover;display:block;background:#000;}
.sched-tile-vidicon{position:absolute;top:6px;left:6px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);pointer-events:none;}
.sched-tile-vidicon svg{width:12px;height:12px;}
.sched-tile-noimg{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--light);background:repeating-linear-gradient(45deg,var(--oat),var(--oat) 6px,#f0eae3 6px,#f0eae3 12px);}
.sched-tile-pill{position:absolute;top:6px;right:6px;padding:2px 8px;border-radius:20px;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:rgba(255,255,255,.86);color:var(--charcoal);box-shadow:0 1px 2px rgba(0,0,0,.08);}
.sched-tile-pill.queued{background:rgba(251,234,227,.95);color:var(--terra);}
.sched-tile-pill.failed{background:rgba(252,228,228,.95);color:var(--red);}
.sched-tile-pill.published{background:rgba(228,244,234,.95);color:var(--green);}
.sched-tile-pill.awaiting{background:rgba(245,236,214,.95);color:#8a6d1f;}
.sched-tile-failed{border-color:#f3c2c2;}
.sched-tile-published{opacity:.85;}
.sched-tile-published:hover{opacity:1;}

/* ── Scheduler preview modal (IG-style phone mockup + side panel) ────────── */
/* z 900: above mobile-topbar (800) and sidebar (850) so the close X stays reachable */
.sched-preview-overlay{position:fixed;inset:0;background:rgba(10,10,10,.6);z-index:900;display:flex;align-items:flex-start;justify-content:center;padding:48px 24px 24px;opacity:0;pointer-events:none;transition:opacity .18s;overflow-y:auto;}
.sched-preview-overlay.open{opacity:1;pointer-events:auto;}
.sched-preview-shell{position:relative;display:flex;gap:24px;align-items:flex-start;max-width:880px;margin:auto 0;}
.sched-preview-close{position:fixed;top:20px;right:20px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:none;font-size:22px;line-height:1;cursor:pointer;color:var(--charcoal);box-shadow:0 4px 14px rgba(0,0,0,.25);z-index:901;display:flex;align-items:center;justify-content:center;padding:0;transition:transform .12s,background .15s;}
.sched-preview-close:hover{background:#fff;transform:scale(1.06);}
.sched-preview-phone{width:320px;flex-shrink:0;}
.sched-preview-info{width:280px;flex-shrink:0;background:#fff;border-radius:14px;padding:20px;color:var(--charcoal);}
.sched-preview-pill-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.sched-preview-kind{font-size:12px;color:var(--light);font-weight:600;}
.sched-preview-time{font-family:var(--font-display);font-size:18px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px;}
.sched-preview-title{font-size:13px;color:var(--mid);margin-bottom:8px;}
.sched-preview-actions{display:flex;flex-direction:column;gap:8px;margin-top:16px;}
.sched-preview-actions .btn-sm{justify-content:center;width:100%;}
.spv-actions-drop{width:100%;}
.spv-kebab-btn{font-size:16px;line-height:1;letter-spacing:2px;}
.spv-actions-drop .kdrop-menu{top:auto;bottom:calc(100% + 5px);left:0;right:0;min-width:100%;}
.spv-actions-drop a.kdrop-item{text-decoration:none;}

/* IG phone mockup */
.igp{background:#000;color:#fff;border-radius:32px;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:14px;line-height:1.45;box-shadow:0 14px 40px rgba(0,0,0,.4);border:1px solid #1a1a1a;}
.igp-status{display:flex;justify-content:space-between;align-items:center;padding:14px 22px 6px;font-size:14px;font-weight:600;}
.igp-time{font-weight:600;letter-spacing:-.01em;}
.igp-status-icons{display:flex;align-items:center;gap:6px;color:#fff;}
.igp-status-icons svg{height:11px;width:auto;}.igp-icon-btn{background:none;border:none;color:#fff;cursor:default;pointer-events:none;padding:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;}
.igp-icon-btn svg{width:24px;height:24px;display:block;}.igp-account{display:flex;align-items:center;gap:11px;padding:10px 14px;}
.igp-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#feda75 0%,#fa7e1e 25%,#d62976 50%,#962fbf 75%,#4f5bd5 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;border:1.5px solid #000;box-shadow:0 0 0 1.5px #fa7e1e;}
.igp-account-handle{flex:1;font-size:14px;font-weight:600;}
.igp-account-more svg{width:18px;height:18px;color:#fff;}
.igp-media{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;background:#111;}
.igp-media-empty{display:flex;align-items:center;justify-content:center;color:#666;font-size:12px;}
.igp-media-wrap{position:relative;}
.igp-carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;}
.igp-carousel::-webkit-scrollbar{display:none;}
.igp-carousel .igp-media{flex:0 0 100%;scroll-snap-align:start;}
.igp-carousel-count{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.65);color:#fff;font-size:11px;padding:3px 8px;border-radius:11px;pointer-events:none;}
.igp-car-nav{position:absolute;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.9);color:#111;border:0;cursor:pointer;font-size:17px;line-height:22px;text-align:center;padding:0;}
.igp-car-prev{left:8px;}
.igp-car-next{right:8px;}
.igp-dots{display:flex;justify-content:center;gap:4px;padding:8px 0;background:#000;}
.igp-dot{width:5px;height:5px;border-radius:50%;background:#555;}
.igp-dot.active{background:#0095f6;}
.igp-actions{display:flex;align-items:center;justify-content:space-between;padding:8px 12px 4px;}
.igp-actions-left{display:flex;align-items:center;gap:14px;}
.igp-actions .igp-icon-btn svg{width:26px;height:26px;}
.igp-caption{padding:2px 14px 10px;font-size:13.5px;color:#fff;word-break:break-word;line-height:1.5;}
.igp-cap-handle{font-weight:600;margin-right:6px;}
.igp-cap-text{color:#fff;}
.igp-hashtags{color:#7caee6;margin-top:4px;}
.igp-cap-body{position:relative;}
.igp-cap-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.igp-cap-clamp.clamped{cursor:pointer;}
.igp-cap-more{display:none;}
.igp-cap-clamp.clamped .igp-cap-more{display:block;position:absolute;right:0;bottom:0;background:#000;color:#888;padding-left:6px;}
.igp-cap-empty{color:#666;font-style:italic;}
.igp-scheduled{margin:0 14px 16px;padding:9px 12px;background:rgba(255,90,48,.15);border:1px solid rgba(255,90,48,.4);color:#ffb39e;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-radius:8px;text-align:center;}

/* IG home-feed chrome — stories strip + bottom nav, to fill the phone to a
   9:16-ish height so switching to the TikTok tab isn't a jarring jump. */
.igp-topbar{display:flex;align-items:center;justify-content:space-between;padding:6px 16px 12px;}
.igp-logo{font-size:23px;font-weight:600;letter-spacing:-.3px;color:#fff;font-family:'Snell Roundhand','Segoe Script','Brush Script MT',cursive;}
.igp-topbar-icons{display:flex;gap:18px;}
.igp-topbar-icons svg{width:23px;height:23px;color:#fff;}
.igp-stories{display:flex;gap:14px;padding:2px 14px 12px;border-bottom:.5px solid #1c1c1c;overflow:hidden;}
.igp-story{display:flex;flex-direction:column;align-items:center;gap:4px;flex:none;width:56px;}
.igp-story-ring{width:54px;height:54px;border-radius:50%;padding:2.5px;box-sizing:border-box;background:linear-gradient(45deg,#feda75 0%,#fa7e1e 25%,#d62976 50%,#962fbf 75%,#4f5bd5 100%);}
.igp-story-you{background:#333;}
.igp-story-av{width:100%;height:100%;border-radius:50%;box-sizing:border-box;background:#262626;color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;border:2px solid #000;}
.igp-story-name{font-size:9.5px;color:#bbb;max-width:54px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.igp-tabbar{display:flex;justify-content:space-around;align-items:center;padding:11px 14px 16px;border-top:.5px solid #1c1c1c;background:#000;}
.igp-tabbar svg{width:24px;height:24px;color:#fff;}
.igp-tab-av{width:24px;height:24px;border-radius:50%;background:#262626;color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;border:1.5px solid #fff;}

/* Preview platform tabs (Instagram / TikTok) */
.sched-preview-col{display:flex;flex-direction:column;gap:12px;width:320px;flex-shrink:0;}
.spv-tabs{display:flex;gap:6px;background:rgba(255,255,255,.12);padding:4px;border-radius:999px;align-self:center;}
.spv-tab{border:none;background:none;color:rgba(255,255,255,.7);font-family:var(--font);font-size:13px;font-weight:600;padding:6px 18px;border-radius:999px;cursor:pointer;transition:background .15s,color .15s;}
.spv-tab:hover{color:#fff;}
.spv-tab.active{background:#fff;color:var(--charcoal);}
.sched-preview-col .sched-preview-phone{width:100%;}

/* TikTok phone mockup */
.ttp{border-radius:32px;overflow:hidden;box-shadow:0 14px 40px rgba(0,0,0,.4);border:1px solid #1a1a1a;background:#000;}
.ttp-media-wrap{position:relative;width:100%;aspect-ratio:9/19;background:#000;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;}
.ttp-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.ttp-media-empty{display:flex;align-items:center;justify-content:center;color:#666;font-size:13px;}
.ttp-overlay{position:absolute;inset:0;color:#fff;display:flex;flex-direction:column;background:linear-gradient(to bottom,rgba(0,0,0,.45) 0%,transparent 16%,transparent 52%,rgba(0,0,0,.6) 100%);}
.ttp-status{display:flex;justify-content:space-between;align-items:center;padding:13px 22px 0;font-size:14px;font-weight:600;}
.ttp-status-icons{display:flex;align-items:center;gap:6px;}
.ttp-status-icons svg{height:11px;width:auto;}
.ttp-top{display:flex;gap:20px;justify-content:center;align-items:center;padding:12px 0 0;font-size:15px;font-weight:600;}
.ttp-top-tab{color:rgba(255,255,255,.6);position:relative;text-shadow:0 1px 2px rgba(0,0,0,.4);}
.ttp-top-tab.active{color:#fff;}
.ttp-top-tab.active::after{content:'';position:absolute;left:50%;transform:translateX(-50%);bottom:-7px;width:20px;height:2.5px;background:#fff;border-radius:2px;}
.ttp-scheduled{position:absolute;top:74px;left:50%;transform:translateX(-50%);white-space:nowrap;padding:5px 12px;background:rgba(255,90,48,.92);color:#fff;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.3);}
.ttp-rail{position:absolute;right:9px;bottom:96px;display:flex;flex-direction:column;align-items:center;gap:17px;}
.ttp-avatar{position:relative;width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#25f4ee,#fe2c55);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:17px;border:2px solid #fff;margin-bottom:7px;}
.ttp-plus{position:absolute;bottom:-9px;left:50%;transform:translateX(-50%);width:19px;height:19px;border-radius:50%;background:#fe2c55;color:#fff;font-size:14px;line-height:19px;text-align:center;font-weight:700;}
.ttp-action{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.5);}
.ttp-action svg{width:31px;height:31px;color:#fff;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45));}
.ttp-disc{width:42px;height:42px;border-radius:50%;background:radial-gradient(circle,#444 0%,#111 70%);display:flex;align-items:center;justify-content:center;border:6px solid #2a2a2a;}
.ttp-disc svg{width:16px;height:16px;color:#fff;}
.ttp-bottom{margin-top:auto;padding:0 76px 12px 14px;display:flex;flex-direction:column;gap:7px;}
.ttp-handle{font-size:15px;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.55);}
.ttp-caption{font-size:13px;line-height:1.45;text-shadow:0 1px 3px rgba(0,0,0,.55);word-break:break-word;}
.ttp-tags{font-weight:600;}
.ttp-cap-empty{color:rgba(255,255,255,.65);font-style:italic;}
.ttp-music{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:500;text-shadow:0 1px 3px rgba(0,0,0,.55);}
.ttp-music svg{width:14px;height:14px;flex:none;}
.ttp-tabbar{display:flex;justify-content:space-around;align-items:center;padding:9px 12px 15px;background:#000;}
.ttp-tabbar svg{width:23px;height:23px;color:#fff;}
.ttp-tab-plus{width:44px;height:29px;border-radius:9px;background:#fff;color:#000;font-size:21px;font-weight:700;line-height:27px;text-align:center;box-shadow:-4px 0 0 -1px #25f4ee,4px 0 0 -1px #fe2c55;}

/* LinkedIn phone mockup */
.lip{background:#f3f2ef;color:#191919;border-radius:32px;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:14px;line-height:1.45;box-shadow:0 14px 40px rgba(0,0,0,.4);border:1px solid #ddd;display:flex;flex-direction:column;min-height:600px;}
.lip-status{display:flex;justify-content:space-between;align-items:center;padding:14px 22px 6px;font-size:14px;font-weight:600;background:#fff;}
.lip-status-icons{display:flex;align-items:center;gap:6px;color:#191919;}
.lip-status-icons svg{height:11px;width:auto;}
.lip-topbar{display:flex;align-items:center;gap:10px;padding:8px 14px 10px;background:#fff;border-bottom:1px solid #e6e6e6;}
.lip-avatar{width:44px;height:44px;border-radius:50%;background:#0a66c2;color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex:none;}
.lip-avatar-sm{width:30px;height:30px;font-size:13px;}
.lip-search{flex:1;display:flex;align-items:center;gap:7px;background:#edf3f8;border-radius:5px;padding:6px 10px;color:#5b6770;font-size:13.5px;}
.lip-search svg{width:15px;height:15px;flex:none;}
.lip-topbar-chat svg{width:22px;height:22px;color:#5b6770;display:block;}
.lip-card{background:#fff;margin-top:8px;padding:12px 0 4px;}
.lip-head{display:flex;align-items:flex-start;gap:9px;padding:0 14px 8px;}
.lip-head-meta{flex:1;min-width:0;}
.lip-name{font-size:14px;font-weight:600;line-height:1.3;}
.lip-sub{font-size:12px;color:#5b6770;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lip-time{font-size:12px;color:#5b6770;display:flex;align-items:center;gap:2px;}
.lip-globe svg{width:12px;height:12px;display:block;color:#5b6770;}
.lip-follow{color:#0a66c2;font-size:13.5px;font-weight:600;flex:none;}
.lip-text{padding:0 14px 10px;font-size:13.5px;word-break:break-word;line-height:1.5;}
.lip-tags{color:#0a66c2;font-weight:600;}
.lip-text-empty{color:#999;font-style:italic;}
.lip-media{display:block;width:100%;max-height:340px;object-fit:cover;background:#eee;}
.lip-actions{display:flex;justify-content:space-around;align-items:center;border-top:1px solid #e6e6e6;margin-top:4px;padding:8px 4px 6px;}
.lip-actions span{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11.5px;font-weight:600;color:#5b6770;}
.lip-actions svg{width:20px;height:20px;}
.lip-scheduled{margin:12px 14px;padding:9px 12px;background:rgba(255,90,48,.09);border:1px solid rgba(255,90,48,.35);color:#b03c22;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-radius:8px;text-align:center;}
.lip-tabbar{display:flex;justify-content:space-around;align-items:flex-start;margin-top:auto;padding:8px 6px 14px;background:#fff;border-top:1px solid #e6e6e6;}
.lip-tabbar span{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:9.5px;font-weight:500;color:#5b6770;max-width:64px;text-align:center;}
.lip-tabbar span.active{color:#191919;}
.lip-tabbar svg{width:22px;height:22px;}

/* Scheduler preview — mobile layout */

/* Best-time-to-post suggestions below the time picker in the post modal */
#pm-best-times{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;color:var(--mid);}
.pm-best-label{flex-shrink:0;color:var(--light);font-size:11px;font-weight:600;}
.pm-best-chip{flex-shrink:0;padding:2px 9px;border-radius:20px;background:var(--terra-pale);color:var(--terra);border:none;font-size:11px;font-weight:600;cursor:pointer;font-family:var(--font);transition:background .12s;}
.pm-best-chip:hover{background:var(--terra);color:#fff;}

/* Carousel slots inside the post modal */
.pm-carousel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:10px;}
.pm-carousel-slot{position:relative;aspect-ratio:1/1;border-radius:6px;overflow:hidden;background:var(--taupe-pale);cursor:grab;}
.pm-carousel-slot.dragging{opacity:.4;}
.pm-carousel-slot.drag-over{outline:2px solid var(--terra);outline-offset:1px;}
.pm-carousel-slot img,.pm-carousel-slot video{width:100%;height:100%;object-fit:cover;display:block;}
.pm-carousel-remove{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;border:none;background:rgba(0,0,0,.55);color:#fff;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;}
.pm-carousel-remove:hover{background:rgba(0,0,0,.78);}
.pm-carousel-dl{position:absolute;top:4px;left:4px;width:20px;height:20px;border-radius:50%;border:none;background:rgba(0,0,0,.55);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;}
.pm-carousel-dl svg{width:11px;height:11px;}
.pm-carousel-dl:hover{background:rgba(0,0,0,.78);}
.pm-carousel-idx{position:absolute;bottom:4px;left:4px;background:rgba(0,0,0,.6);color:#fff;font-size:10px;font-weight:600;padding:1px 6px;border-radius:10px;}
.pm-carousel-add{font-size:12px;color:var(--terra);background:none;border:none;cursor:pointer;padding:4px 0;font-weight:600;font-family:var(--font);}
.pm-carousel-add:hover{text-decoration:underline;}
.pm-carousel-add-lib{color:var(--mid);margin-left:12px;}.pm-extra-field{display:flex;flex-direction:column;gap:6px;}
.pm-extra-field + .pm-extra-field{margin-top:20px;}
.pm-extra-field label{font-size:11px;color:var(--mid);font-weight:600;display:flex;align-items:center;gap:6px;}
.pm-extra-hint{color:var(--light);font-weight:400;font-size:10px;}
.pm-extra-field input[type=text],
.pm-extra-field input[type=url],
.pm-extra-field textarea{width:100%;padding:8px 10px;border:0.5px solid var(--taupe2);border-radius:6px;font-family:var(--font);font-size:13px;background:#fff;color:var(--charcoal);resize:vertical;}
.pm-extra-field input[type=text]:focus,
.pm-extra-field input[type=url]:focus,
.pm-extra-field textarea:focus{outline:none;border-color:var(--terra);}
.pm-tag-canvas{position:relative;max-width:240px;margin-top:6px;border-radius:6px;overflow:hidden;cursor:crosshair;line-height:0;}
.pm-tag-canvas img{width:100%;display:block;user-select:none;}
.pm-tag-dot{position:absolute;transform:translate(-50%,4px);background:rgba(31,30,28,0.85);color:#fff;font-size:10px;font-weight:600;line-height:1;padding:4px 7px;border-radius:99px;white-space:nowrap;cursor:pointer;}
.pm-tag-dot::before{content:'';position:absolute;top:-4px;left:50%;transform:translateX(-50%);border:4px solid transparent;border-bottom-color:rgba(31,30,28,0.85);border-top:0;}
.pm-tag-dot:hover{background:var(--terra);}
.pm-tag-dot:hover::before{border-bottom-color:var(--terra);}
/* Story posts: overlay + link replace caption/hashtags/extras */
#post-modal-overlay.pm-story #pm-caption-block,
#post-modal-overlay.pm-story #pm-hashtags-block,
#post-modal-overlay.pm-story #pm-extras-block,
#post-modal-overlay.pm-story #pm-carousel-pill,
#post-modal-overlay.pm-story .pm-rail-item[data-pane="instagram"]{display:none !important;}
/* ── Simple read-only post view (client_viewer) — mono-terra, warm + flat ── */
.post-modal.pm-simple{width:920px;height:auto;max-height:90vh;}
/* Org-side client preview keeps the editor's window size; the narrower
   viewer content centres with whitespace either side. */
.post-modal.pm-simple.pm-preview{width:1150px;height:90vh;}
/* Head + tab row hold the exact editor layout so the switch doesn't jump */
.pm-simple.pm-preview .pm-body > .pm-head{padding:16px 52px 12px 22px;}
.pm-simple.pm-preview #pm-tabbar{padding:8px 16px 10px;}
/* Mirror the editor's column skeleton: empty 188px rail on the left and a
   296px aside, so the divider lines and column widths never move. */
.pm-preview .pmv-cols::before{content:'';width:188px;flex-shrink:0;border-right:1px solid var(--taupe);}
.pm-preview .pmv-aside{width:296px;}
.pm-simple .pm-close-btn{background:rgba(255,255,255,.9);color:var(--charcoal);box-shadow:0 1px 4px rgba(0,0,0,.15);}
.pm-simple .pm-close-btn:hover{background:#fff;}
/* The shared head + tabbar live after pm-viewer-view in the DOM (the composer
   is the primary layout) — pull them to the top and onto the same 26px gutter
   as the viewer content and action bar. */
.pm-simple .pm-body > .pm-head{order:-2;padding:16px 52px 10px 26px;}
.pm-simple #pm-tabbar{order:-1;padding:8px 26px 10px;}
#pm-viewer-view{display:flex;flex-direction:column;flex:1;min-height:0;}
.pmv-cols{display:flex;flex:1;min-height:0;}
.pmv-main{flex:1;min-width:0;overflow-y:auto;}
.pmv-aside{width:248px;flex-shrink:0;background:var(--oat);border-left:1px solid var(--taupe);padding:18px 20px 24px;overflow-y:auto;}
.pmv-aside .pm-lbl{display:block;margin:14px 0 6px;}
.pmv-aside-val{font-size:13.5px;font-weight:600;color:var(--charcoal);line-height:1.45;}
.pmv-media{position:relative;width:100%;background:#000;display:flex;align-items:center;justify-content:center;max-height:52vh;overflow:hidden;}
.pmv-media img,.pmv-media video{width:auto;max-width:100%;height:auto;max-height:52vh;object-fit:contain;display:block;background:#000;}
.pmv-media video{min-height:200px;}
.pmv-content{padding:20px 26px 24px;display:flex;flex-direction:column;gap:18px;}
.pmv-revision-note{background:var(--amber-bg);border:1px solid #E5D3AC;border-radius:10px;padding:13px 15px;}
.pmv-revision-note .pm-fb-text{padding-top:11px;}
.pmv-caption{font-size:15px;line-height:1.6;color:var(--charcoal);white-space:pre-wrap;}
.pmv-hashtags{font-size:14px;line-height:1.6;color:var(--terra);font-weight:500;}
.pmv-cover{position:relative;width:116px;aspect-ratio:9/16;border-radius:10px;overflow:hidden;border:1px solid var(--taupe2);background:#000;}
.pmv-cover img{width:100%;height:100%;object-fit:cover;display:block;}
.pmv-cover-note{font-size:12px;color:var(--light);margin-top:7px;}
/* Hover-to-download buttons over the media + reel cover */
.pmv-dl{position:absolute;border:none;background:rgba(0,0,0,.55);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s,background .15s;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.pmv-dl:hover{background:rgba(0,0,0,.82);}
.pmv-dl.busy svg,.pm-media-dl-btn.busy svg,.pm-carousel-dl.busy svg{display:none;}
.pmv-dl.busy::after,.pm-media-dl-btn.busy::after,.pm-carousel-dl.busy::after{content:'';width:13px;height:13px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;}
.pm-carousel-dl.busy::after{width:10px;height:10px;}
.pmv-dl.dl-ready,.pm-media-dl-btn.dl-ready,.pm-carousel-dl.dl-ready{background:var(--terra);opacity:1;animation:dl-ready-pulse 1.2s ease-in-out infinite;}
@keyframes dl-ready-pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.12);}}
.pmv-dl-media{top:12px;left:12px;width:36px;height:36px;border-radius:9px;}
.pmv-dl-media svg{width:18px;height:18px;}
.pmv-media:hover .pmv-dl-media{opacity:1;}
/* Timestamped video notes — custom stage player + notes rail in the aside */
.cmt-ts-chip{flex-shrink:0;border:none;cursor:pointer;font-family:var(--font);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--t5);background:var(--t1);border-radius:5px;padding:2px 6px;line-height:1.3;}
.cmt-ts-chip:hover{background:var(--t2);}
.cmt-flash{animation:cmtFlash 1.2s ease;}
@keyframes cmtFlash{0%,40%{background:var(--t1);border-color:var(--t3);}100%{background:#faf9f7;border-color:var(--taupe2);}}

.pmv-media.pmv-stage{flex-direction:column;align-items:stretch;max-height:none;padding:18px 24px 0;}
.pmv-stage .pmv-vidwrap{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;}
.pmv-stage video{max-height:46vh;min-height:200px;cursor:pointer;}
.pmv-bigplay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity .18s;}
.pmv-bigplay.show{opacity:1;}
.pmv-bigplay span{width:54px;height:54px;border-radius:50%;background:rgba(13,12,11,.6);display:flex;align-items:center;justify-content:center;}
.pmv-bigplay svg{width:20px;height:20px;color:#fff;margin-left:3px;}
.pmv-scrub{position:relative;height:26px;cursor:pointer;touch-action:none;margin-top:8px;}
.pmv-scrub-track{position:absolute;left:0;right:0;top:11px;height:4px;border-radius:2px;background:rgba(255,255,255,.18);}
.pmv-scrub-fill{position:absolute;left:0;top:11px;height:4px;border-radius:2px;background:var(--terra);pointer-events:none;}
.pmv-scrub-head{position:absolute;top:6px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.5);pointer-events:none;transition:transform .1s;}
.pmv-scrub:hover .pmv-scrub-head{transform:scale(1.15);}
.pmv-pin{position:absolute;top:8px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--terra);border:2px solid #000;cursor:pointer;padding:0;transition:transform .12s;}
.pmv-pin:hover,.pmv-pin.hot{transform:scale(1.5);background:var(--t3);}
.pmv-tip{position:absolute;bottom:28px;transform:translateX(-50%);background:#fff;color:var(--charcoal);border-radius:8px;padding:7px 10px;font-size:12px;line-height:1.4;white-space:nowrap;box-shadow:0 6px 22px -6px rgba(0,0,0,.45);pointer-events:none;opacity:0;transition:opacity .12s;z-index:2;}
.pmv-tip.show{opacity:1;}
.pmv-tip b{font-variant-numeric:tabular-nums;color:var(--t5);margin-right:6px;}
.pmv-stagectrls{display:flex;align-items:center;gap:12px;padding:2px 0 14px;}
.pmv-playbtn,.pmv-mutebtn{width:30px;height:30px;border:none;border-radius:7px;background:rgba(255,255,255,.12);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;}
.pmv-playbtn:hover,.pmv-mutebtn:hover{background:rgba(255,255,255,.22);}
.pmv-playbtn svg,.pmv-mutebtn svg{width:13px;height:13px;color:#fff;display:block;}
.pmv-mutebtn{margin-left:auto;}
.pmv-timetxt{font-size:12.5px;color:rgba(255,255,255,.85);font-variant-numeric:tabular-nums;}
.pmv-timetxt .pmv-dur{color:rgba(255,255,255,.4);}

.pmv-aside.has-notes{width:320px;display:flex;flex-direction:column;overflow:hidden;padding-bottom:0;}
.pmv-aside.has-notes #pmv-comments-block{display:flex;flex-direction:column;flex:1;min-height:0;margin:16px -20px 0;border-top:1px solid var(--taupe);padding:12px 14px 0;}
.pmv-notes-head{padding:0 6px;}
#pmv-cmt-list{flex:1;min-height:60px;overflow-y:auto;padding:2px 2px 10px;}
#pmv-cmt-list .sp-cmt{background:#fff;}
#pmv-cmt-list .sp-cmt.pmv-seekable{cursor:pointer;}
#pmv-cmt-list .sp-cmt.pmv-seekable:hover{border-color:var(--taupe2);}
#pmv-cmt-list .sp-cmt.active{background:var(--t1);border-color:var(--t3);}
#pmv-cmt-list .sp-cmt.active .cmt-ts-chip{background:var(--terra);color:#fff;}
.pmv-composer{border-top:1px solid var(--taupe);margin:0 -14px;padding:10px 14px 14px;}
.pmv-pinrow{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.pmv-pinchip{display:inline-flex;background:var(--t1);color:var(--t5);font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums;border-radius:5px;padding:3px 7px;line-height:1.3;}
.sp-cmt-edit{border:none;background:none;color:var(--light);font-family:var(--font);font-size:11px;font-weight:600;cursor:pointer;padding:0 2px;}
.sp-cmt-edit:hover{color:var(--charcoal);}
.sp-cmt-head .sp-cmt-edit{margin-left:auto;}
.sp-cmt-head .sp-cmt-edit + .sp-cmt-del{margin-left:0;}
.sp-cmt-editbox .sp-cmt-input{width:100%;}
.sp-cmt-editbtns{display:flex;gap:6px;margin-top:6px;}
.pmv-revnote-actions{display:flex;gap:10px;margin-top:8px;}
.pmv-revnote-del:hover{color:var(--red);}
.pmv-car-nav{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;border:none;background:rgba(255,255,255,.85);color:var(--charcoal);font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;padding:0 0 2px;}
.pmv-car-nav:hover{background:#fff;}
.pmv-car-nav.prev{left:10px;}
.pmv-car-nav.next{right:10px;}
.pmv-car-count{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.55);color:#fff;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;z-index:2;}
.pmv-dl-cover{bottom:7px;right:7px;width:30px;height:30px;border-radius:8px;}
.pmv-dl-cover svg{width:15px;height:15px;}
.pmv-cover:hover .pmv-dl-cover{opacity:1;}
@media(hover:none){.pmv-dl{opacity:.9;}}
/* Viewer approval actions stick to the bottom of the modal so Approve / Request
   changes are always reachable without scrolling. The redundant Done button is
   dropped — the top-right X closes. */
.pm-simple #pm-viewer-section{position:sticky;bottom:0;z-index:2;background:#fff;border-top:0.5px solid var(--taupe2);border-radius:0 0 10px 10px;padding:14px 26px 16px;display:flex;flex-direction:column;flex-shrink:0;}
.pm-simple #pm-viewer-actions .approval-approve-btn,
.pm-simple #pm-viewer-actions .approval-revision-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;text-align:center;align-self:stretch;padding:11px 18px;font-size:13.5px;}
.post-modal.pm-simple .pm-modal-footer{display:none;}

/* Read-only fields for client_viewers — clearly inert, not just non-saving */
.pm-body input:disabled,
.pm-body textarea:disabled,
.pm-body select:disabled{background:var(--oat)!important;color:var(--mid)!important;-webkit-text-fill-color:var(--mid);cursor:not-allowed;border-color:var(--taupe2)!important;opacity:1;}

/* Reel cover scrubber — blurred strip with a draggable sharp viewport
   (inset from the strip edges) and an upload/cover tile sitting alongside
   with a clear gap between them. */
.pm-reelcover-scrubber{margin-top:10px;display:flex;flex-direction:column;gap:8px;}
.pm-rcs-row{display:flex;gap:12px;align-items:stretch;}
.pm-rcs-strip{position:relative;flex:1;min-width:0;height:213px;border-radius:10px;overflow:hidden;background:#000;border:1px solid var(--taupe2);user-select:none;}
.pm-rcs-bg{position:absolute;inset:0;width:100%;height:100%;background-repeat:no-repeat;background-position:0 50%;filter:blur(22px) brightness(0.82);transform:scale(1.15);pointer-events:none;}
.pm-rcs-viewport{position:absolute;top:8px;left:8px;width:120px;height:197px;border-radius:6px;overflow:hidden;cursor:grab;box-shadow:0 0 0 2px var(--terra),0 4px 18px rgba(0,0,0,.45);touch-action:none;will-change:transform;}
.pm-rcs-viewport:active{cursor:grabbing;box-shadow:0 0 0 2px var(--terra),0 6px 22px rgba(0,0,0,.55);}
.pm-rcs-fg{width:100%;height:100%;display:block;pointer-events:none;background-color:#000;background-repeat:no-repeat;background-position:0 0;}
.pm-rcs-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;background:#000;}
.pm-rcs-viewport-hint{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.72);color:#fff;font-size:10.5px;font-weight:600;padding:3px 8px;border-radius:4px;letter-spacing:.02em;opacity:0;transition:opacity .15s;pointer-events:none;white-space:nowrap;}
.pm-rcs-viewport:hover .pm-rcs-viewport-hint{opacity:1;}

.pm-rcs-tile{position:relative;flex:0 0 120px;width:120px;height:213px;border:1.5px dashed var(--taupe2);border-radius:8px;background:#fafaf8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--mid);font-size:13px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s,color .15s;text-align:center;overflow:hidden;padding:0;font-family:inherit;}
.pm-rcs-tile:hover{border-color:var(--terra);background:#fff7f2;color:var(--terra);}
.pm-rcs-tile:focus-visible{outline:2px solid var(--terra);outline-offset:2px;}
.pm-rcs-tile-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;}
.pm-rcs-tile-empty svg{margin-bottom:4px;}
.pm-rcs-tile-title{font-size:13px;font-weight:600;line-height:1.1;}
.pm-rcs-tile-sub{font-size:11px;font-weight:500;color:var(--light);}
.pm-rcs-tile:hover .pm-rcs-tile-sub{color:var(--terra);}
.pm-rcs-tile-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.pm-rcs-tile-remove{position:absolute;top:6px;right:6px;width:22px;height:22px;border:none;background:rgba(10,10,10,.7);color:#fff;border-radius:50%;font-size:16px;font-weight:600;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;opacity:0;transition:opacity .12s,background .12s,transform .12s;z-index:2;font-family:inherit;}
.pm-rcs-tile:hover .pm-rcs-tile-remove{opacity:1;}
.pm-rcs-tile-remove:hover{background:#000;transform:scale(1.08);}
.pm-rcs-tile.is-uploading{cursor:wait;}
.pm-rcs-tile.is-uploading::after{content:'Uploading…';position:absolute;inset:0;background:rgba(10,10,10,.55);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;z-index:3;letter-spacing:.02em;}
.pm-rcs-tile.is-grabbing{cursor:wait;}
.pm-rcs-tile.is-grabbing::after{content:'Grabbing frame…';position:absolute;inset:0;background:rgba(10,10,10,.55);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;z-index:3;letter-spacing:.02em;}

.pm-rcs-meta{display:flex;align-items:center;gap:10px;}
.pm-reelcover-scrub-time{font-size:11.5px;color:var(--mid);font-family:monospace;font-variant-numeric:tabular-nums;}

/* Location picker */
.pm-location-wrap{position:relative;}
#pm-location-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--light);font-size:16px;cursor:pointer;padding:0 4px;}
.pm-location-results{display:flex;flex-direction:column;gap:2px;max-height:180px;overflow-y:auto;border:0.5px solid var(--taupe2);border-radius:6px;background:#fff;}
.pm-location-results:empty{display:none;border:none;}
.pm-location-item{text-align:left;padding:8px 10px;border:none;background:none;cursor:pointer;font-family:var(--font);border-bottom:0.5px solid var(--taupe-pale);}
.pm-location-item:last-child{border-bottom:none;}
.pm-location-item:hover{background:var(--taupe-pale);}
.pm-location-name{font-size:13px;color:var(--charcoal);font-weight:500;}
.pm-location-sub{font-size:11px;color:var(--mid);margin-top:2px;}
.pm-location-empty{padding:8px 10px;font-size:12px;color:var(--mid);}
.pm-location-selected{font-size:12px;color:var(--charcoal);background:var(--taupe-pale);padding:6px 10px;border-radius:6px;}.pm-location-hint{font-size:11px;color:var(--light);line-height:1.5;margin-top:6px;}
.pm-location-pin{font-weight:600;}
.pm-location-sub-inline{color:var(--mid);}

/* Reel audio picker */
.pm-au{gap:10px;}
.pm-au-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;min-height:28px;}
.pm-au-seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:2px;border-radius:8px;background:var(--oat);}
.pm-au-seg button{border:1px solid transparent;background:transparent;font-family:var(--font);font-size:12px;padding:3px 10px;border-radius:6px;color:var(--mid);cursor:pointer;}
.pm-au-seg button:hover{color:var(--charcoal);}
.pm-au-seg button[aria-checked="true"]{background:var(--t1);border-color:var(--t2);color:var(--terra-light);}
.pm-au-search{position:relative;}
.pm-au-search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--light);pointer-events:none;}
.pm-au-search input[type=text]{padding-left:31px;}
.pm-au-replacing{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--mid);background:var(--oat);padding:7px 10px;border-radius:6px;}
.pm-au-replacing b{font-weight:500;color:var(--charcoal);}
.pm-au-link{border:none;background:none;padding:0;font-family:var(--font);font-size:12px;color:var(--terra-light);text-decoration:underline;text-underline-offset:2px;cursor:pointer;}
.pm-au-body{display:flex;flex-direction:column;gap:7px;}
.pm-au-h{font-size:12px;font-weight:500;color:var(--mid);}
.pm-au-list{border:1px solid var(--taupe2);border-radius:8px;overflow:hidden;background:#fff;}
.pm-au-row{position:relative;display:flex;align-items:center;gap:4px;padding-right:8px;height:56px;border-bottom:1px solid var(--hairline);}
.pm-au-row:last-child{border-bottom:none;}
.pm-au-row:hover{background:#f7f6f0;}
.pm-au-row.playing{background:var(--t1);}
.pm-au-main{flex:1;min-width:0;height:100%;display:flex;align-items:center;gap:12px;padding:0 8px 0 12px;border:none;background:none;text-align:left;font-family:var(--font);color:var(--charcoal);cursor:pointer;}
.pm-au-main{text-decoration:none;}
.pm-au-nopv{cursor:default;}
.pm-au-nopv .pm-au-ov{display:none;}
.pm-au-tag{font-size:11px;color:var(--light);white-space:nowrap;}
.pm-au-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.pm-au-t{font-size:13.5px;font-weight:500;color:var(--charcoal);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pm-au-s{font-size:12px;color:var(--mid);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pm-au-dur{font-size:12px;color:var(--light);font-variant-numeric:tabular-nums;white-space:nowrap;}
.pm-au-row.playing .pm-au-dur{color:var(--terra-light);}
.pm-au-prog{position:absolute;left:0;bottom:-1px;height:2px;width:calc(var(--p,0)*100%);background:var(--terra);display:none;}
.pm-au-row.playing .pm-au-prog{display:block;}
.pm-au-use{flex:none;font-family:var(--font);font-size:12px;font-weight:500;padding:4px 12px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--charcoal);cursor:pointer;}
.pm-au-row:hover .pm-au-use,.pm-au-row.playing .pm-au-use,.pm-au-use:focus-visible{border-color:var(--taupe2);background:#fff;}
.pm-au-row .pm-au-use:hover{border-color:var(--terra);color:var(--terra-light);}
.pm-au-more{display:block;width:100%;border:none;background:#fff;padding:9px;font-family:var(--font);font-size:12px;color:var(--mid);cursor:pointer;}
.pm-au-more:hover{color:var(--charcoal);background:#f7f6f0;}
.pm-au-foot{font-size:11px;color:var(--light);}
.pm-au-cover{position:relative;width:36px;height:36px;border-radius:4px;flex:none;overflow:hidden;background:var(--taupe);}
.pm-au-cover.lg{width:46px;height:46px;border-radius:6px;}
.pm-au-cover.round{border-radius:50%;}
.pm-au-cover img{width:100%;height:100%;object-fit:cover;display:block;}
.pm-au-ov{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(19,19,19,.5);color:#fff;opacity:0;transition:opacity .12s;}
.pm-au-main:hover .pm-au-ov,.pm-au-main:focus-visible .pm-au-ov,.pm-au-row.playing .pm-au-ov{opacity:1;}
.pm-au-card .pm-au-ov{display:none;}
.pm-au-eq{display:none;align-items:flex-end;gap:2px;height:14px;}
.pm-au-eq i{display:block;width:3px;height:40%;background:#fff;border-radius:1px;animation:pmAuEq .9s ease-in-out infinite;}
.pm-au-eq i:nth-child(2){animation-delay:-.3s;}
.pm-au-eq i:nth-child(3){animation-delay:-.6s;}
.pm-au-row.playing .pm-au-eq{display:flex;}
.pm-au-row.playing .pm-au-i-play{display:none;}
@keyframes pmAuEq{0%,100%{height:30%;}50%{height:100%;}}
.pm-au-skel{display:flex;align-items:center;gap:12px;padding:0 12px;height:56px;border-bottom:1px solid var(--hairline);}
.pm-au-skel:last-child{border-bottom:none;}
.pm-au-skel b{display:block;border-radius:4px;background:linear-gradient(90deg,#f7f6f0 0%,#e7e5da 50%,#f7f6f0 100%);background-size:200% 100%;animation:pmAuSh 1.3s linear infinite;}
.pm-au-skel .c{width:36px;height:36px;flex:none;}
.pm-au-skel span{flex:1;display:flex;flex-direction:column;gap:6px;}
.pm-au-skel span b:first-child{height:10px;width:42%;}
.pm-au-skel span b:last-child{height:9px;width:24%;}
@keyframes pmAuSh{from{background-position:200% 0;}to{background-position:-200% 0;}}
.pm-au-empty{padding:12px 14px;border:1px solid var(--taupe2);border-radius:8px;}
.pm-au-empty-t{font-size:13px;color:var(--charcoal);}
.pm-au-empty-s{margin-top:3px;font-size:12px;line-height:1.5;color:var(--mid);}
.pm-au-card{border:1px solid var(--taupe2);border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:12px;background:#fff;}
.pm-au-top{display:flex;align-items:center;gap:12px;}
.pm-au-actions{display:flex;align-items:center;gap:2px;margin-left:auto;}
.pm-au-ghost{border:none;background:transparent;font-family:var(--font);font-size:12px;font-weight:500;color:var(--mid);padding:5px 10px;border-radius:6px;cursor:pointer;}
.pm-au-ghost:hover{color:var(--charcoal);background:var(--oat);}
.pm-au-x{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:6px;color:var(--light);cursor:pointer;padding:0;}
.pm-au-x:hover{background:var(--oat);color:var(--charcoal);}
.pm-au-usage{display:flex;flex-direction:column;gap:6px;}
.pm-au-bar{position:relative;height:6px;border-radius:3px;background:var(--taupe);}
.pm-au-used{position:absolute;left:0;top:0;bottom:0;width:calc(var(--used)*100%);background:var(--terra);border-radius:3px;}
.pm-au-gap{position:absolute;right:0;top:0;bottom:0;left:calc(var(--used)*100%);background:repeating-linear-gradient(135deg,rgba(133,79,11,.5) 0 2px,transparent 2px 5px);border-radius:0 3px 3px 0;}
.pm-au-ph{position:absolute;top:-5px;bottom:-5px;width:2px;margin-left:-1px;left:calc(var(--head,0)*100%);background:var(--charcoal);border-radius:1px;}
.pm-au-usage-row{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--mid);font-variant-numeric:tabular-nums;}
.pm-au-warn{font-size:12px;line-height:1.45;color:var(--amber);background:var(--amber-bg);padding:7px 10px;border-radius:6px;}
.pm-au-mix{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--hairline);}
.pm-au-mix-l{font-size:12px;font-weight:500;color:var(--mid);}
.pm-au-mix-desc{margin-top:-4px;font-size:12px;color:var(--mid);}
.pm-au-sliders{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;}
.pm-au-sl{display:grid;grid-template-columns:auto minmax(60px,1fr) 3em;align-items:center;gap:10px;font-size:12px;color:var(--mid);}
.pm-au-sl input{width:100%;margin:0;accent-color:var(--terra);}
.pm-au-sl output{text-align:right;color:var(--charcoal);font-variant-numeric:tabular-nums;}
.pm-au-foot-row{display:flex;align-items:center;gap:12px;}
.pm-au-pv-time{font-size:12px;color:var(--light);font-variant-numeric:tabular-nums;}
.pm-au-notice{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:8px;background:var(--oat);}
.pm-au-notice-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.pm-au-notice-t{font-size:13px;font-weight:500;color:var(--charcoal);}
.pm-au-notice-s{margin-top:3px;font-size:12px;line-height:1.5;color:var(--mid);}
.pm-au button:focus-visible{outline:2px solid var(--terra);outline-offset:2px;}
.pm-au .pm-au-main:focus-visible{outline-offset:-2px;}
@media (max-width:560px){.pm-au-sliders{grid-template-columns:1fr;}.pm-au-row:not(.playing) .pm-au-dur{display:none;}}
@media (hover:none){.pm-au-use{border-color:var(--taupe2);background:#fff;}}
@media (prefers-reduced-motion:reduce){.pm-au-eq i{animation:none;height:55%;}.pm-au-eq i:nth-child(2){height:100%;}.pm-au-skel b{animation:none;}}

.pm-extra-field .pm-trial-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--taupe2);border-radius:8px;cursor:pointer;font-size:inherit;font-weight:400;transition:border-color .18s,background .18s;}
.pm-extra-field .pm-trial-toggle:has(input:checked){border-color:var(--terra);background:rgba(255,90,48,.05);}
.pm-trial-title{display:block;font-size:13px;font-weight:500;color:var(--charcoal);}
.pm-trial-sub{display:block;margin-top:2px;font-size:11.5px;line-height:1.45;color:var(--mid);}
.pm-trial-toggle .koda-switch:focus-visible{outline:2px solid var(--terra);outline-offset:2px;}

.pm-tt-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--charcoal);cursor:pointer;}
.pm-tt-check input{cursor:pointer;accent-color:var(--terra);}
.pm-tt-who{display:flex;align-items:center;gap:12px;}
.pm-tt-avatar{width:36px;height:36px;border-radius:50%;background:var(--charcoal);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:500;overflow:hidden;flex-shrink:0;}
.pm-tt-avatar img{width:100%;height:100%;object-fit:cover;}
.pm-tt-who-label{display:block;font-size:12px;color:var(--mid);}
.pm-tt-who-name{display:block;font-size:14px;font-weight:500;color:var(--charcoal);}
.pm-tt-label{font-size:12px;font-weight:500;color:var(--mid);margin-bottom:8px;}
.pm-tt-seg{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;background:var(--oat);border-radius:8px;padding:3px;}
.pm-tt-seg label{position:relative;text-align:center;font-size:13px;color:var(--mid);padding:8px 4px;border-radius:6px;cursor:pointer;}
.pm-tt-seg label:has(input:checked){background:#fff;color:var(--charcoal);font-weight:500;box-shadow:0 1px 2px rgba(19,19,19,.08);}
.pm-tt-seg input,.pm-tt-chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0;}
.pm-tt-seg label:has(input:focus-visible),.pm-tt-chip:has(input:focus-visible){outline:2px solid var(--terra);outline-offset:2px;}
.pm-tt-chips{display:flex;gap:8px;flex-wrap:wrap;}
.pm-tt-chip{position:relative;display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--mid);border:1px solid var(--taupe);border-radius:999px;padding:7px 14px;cursor:pointer;}
.pm-tt-chip svg{display:none;color:var(--terra);}
.pm-tt-chip:has(input:checked){color:var(--t6);background:var(--terra-pale);border-color:var(--terra);}
.pm-tt-chip:has(input:checked) svg{display:block;}
.pm-tt-chip:has(input:disabled){color:var(--light);background:none;border:1px dashed var(--taupe2);cursor:not-allowed;}
.pm-tt-commercial{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:18px;border-top:1px solid var(--taupe);cursor:pointer;}
.pm-tt-commercial .koda-switch:focus-visible{outline:2px solid var(--terra);outline-offset:2px;}
.pm-tt-foot{font-size:12px;color:var(--mid);}
.pm-tt-foot:empty{display:none;}

/* ── Mobile-only critical overrides (placed last so source-order wins
    over any earlier desktop rules) ──────────────────────────────── */

/* Compact empty state for the ideas stack — replaces the dashed CTA
   box so the area collapses to natural content height when there's
   nothing to show. */
.idea-empty-inline{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--oat);border:1px solid var(--taupe2);border-radius:10px;flex-wrap:wrap;}
.idea-empty-msg{font-size:13px;color:var(--mid);flex:1;min-width:0;line-height:1.4;}
.idea-empty-inline .btn-sm{flex-shrink:0;}

/* ── Responsive overrides ──────────────────────────────────────────
   Every @media block lives here at the end of the file. Source
   order is min-width first, then max-width widest-to-narrowest, so
   narrower-screen rules naturally win without needing !important. */

@media(min-width:1025px){
.sidebar-collapse-btn{display:flex;}

  /* Hover-to-expand rail. Hovering the collapsed rail grows the grid column
     back to full width, so the main content slides across with it (and back
     out when you leave) — it animates via the grid-template-columns transition
     on #page-app.active. The icon-only styling below is scoped :not(:hover),
     so hovering just restores the normal expanded sidebar; nothing to
     re-declare. */
  #page-app.sidebar-collapsed:has(.sidebar.hover-open){grid-template-columns:var(--sidebar-w) 1fr;}

  /* Collapsed rail — hide every text element + extras that don't fit */
  .sidebar.collapsed:not(.hover-open) .sidebar-org,
  .sidebar.collapsed:not(.hover-open) .nav-section,
  .sidebar.collapsed:not(.hover-open) .nav-divider span,
  .sidebar.collapsed:not(.hover-open) .nav-cc-submenu,
  .sidebar.collapsed:not(.hover-open) .nav-caret,
  .sidebar.collapsed:not(.hover-open) .nav-badge,
  .sidebar.collapsed:not(.hover-open) .sidebar-org-meta,
  .sidebar.collapsed:not(.hover-open) .sidebar-agency,
  .sidebar.collapsed:not(.hover-open) .sc-text,
  .sidebar.collapsed:not(.hover-open) .sc-updown,
  .sidebar.collapsed:not(.hover-open) #sidebar-shared-section,
  .sidebar.collapsed:not(.hover-open) .sidebar-feedback-btn,
  .sidebar.collapsed:not(.hover-open) .user-name,
  .sidebar.collapsed:not(.hover-open) .sidebar-more-btn{display:none!important;}

  /* Collapsed: home and the avatar stay on ONE line, as they are expanded —
     28px button + 32px avatar fits the 72px rail. Stacking them here is what
     made home drift a row as the rail opened, so the pointer lost it. */
  /* Padding and button size match the expanded row (0 12px 12px / 28px), so the
     home button keeps the same centre-line as the rail opens — otherwise the
     pointer drifts off it mid-expand, which is the whole bug. */
  /* Collapsed: stacked again, home above the avatar, both centred in the rail. */
  /* The nav scrolls under a fixed header, so a full rule (matching the footer's) marks the edge; it stands in for the "Daily" hairline. */
  .sidebar.collapsed:not(.hover-open) .sidebar-client-header{flex-direction:column;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,0.1);}
  .sidebar.collapsed:not(.hover-open) #sidebar-client-content .nav{padding-top:8px;}
  .sidebar.collapsed:not(.hover-open) #sidebar-client-content .nav>.nav-divider:first-child{display:none;}
  .sidebar.collapsed:not(.hover-open) .sidebar-home-btn{margin:0 auto;width:32px;height:32px;align-self:auto;border-radius:8px;}
  .sidebar.collapsed:not(.hover-open) .sc-avatar{margin:0 auto;width:32px;height:32px;font-size:12px;border-radius:8px;}

  /* Nav items become centred icon-only buttons */
  .sidebar.collapsed:not(.hover-open) .nav-item{justify-content:center;padding:10px 0;gap:0;font-size:0;border-left-width:0;position:relative;border-radius:6px;margin:1px 12px;}
  .sidebar.collapsed:not(.hover-open) .nav-item:hover{background:rgba(255,255,255,0.08);}
  .sidebar.collapsed:not(.hover-open) .nav-item.active{background:rgba(255,90,48,0.34);}
  .sidebar.collapsed:not(.hover-open) .nav-item svg{width:18px;height:18px;opacity:0.85;}
  .sidebar.collapsed:not(.hover-open) .nav-item.active svg{opacity:1;}

  /* Setup pill collapses to a small numbered corner badge so a 6+ char
     "N to do" string doesn't take over the 72px rail. The " to do" suffix
     hides; the number sits in the icon's top-right corner. */
  .sidebar.collapsed:not(.hover-open) .nav-setup-pill{
    position:absolute;
    top:4px;
    right:4px;
    margin:0;
    padding:0;
    min-width:15px;
    height:15px;
    border-radius:100px;
    font-size:9px;
    line-height:1;
    justify-content:center;
    box-shadow:0 0 0 2px var(--t6);
  }
  .sidebar.collapsed:not(.hover-open) .nav-setup-pill-label{display:none;}

  /* Section dividers collapse to a centred hairline */
  /* The label is hidden in the rail, so flex:1 stretched this hairline to the
     full column width and it ran under the icon block. Fixed short rule,
     centred, with room either side of it. */
  .sidebar.collapsed:not(.hover-open) .nav-divider{padding:12px 0 10px;justify-content:center;}
  .sidebar.collapsed:not(.hover-open) .nav-divider::before{flex:0 0 auto;width:24px;}
  .sidebar.collapsed:not(.hover-open) .nav-divider::after{display:none;}

  /* Logo: hide the wordmark and show the brand mark so the rail stays tidy. */
  /* Height-matched to the expanded logo row (54px): the rail swaps a 22px
     wordmark for a 36px brandmark, and the extra height pushed every row below
     it down — which is what dragged the home button off the pointer on expand. */
  .sidebar.collapsed:not(.hover-open) .sidebar-logo{padding:9px 0;text-align:center;border-bottom:1px solid rgba(255,255,255,0.1);}
  .sidebar.collapsed:not(.hover-open) .sidebar-logo-img{display:none;}
  .sidebar.collapsed:not(.hover-open) .sidebar-logo::before{
    content:'';
    display:block;
    width:36px;
    height:36px;
    margin:0 auto;
    background:url('/koda-brandmark-white.png?v=1') center/contain no-repeat;
  }
  .sidebar.collapsed:not(.hover-open) .sc-switch{justify-content:center;padding:0;background:none;}
  .sidebar.collapsed:not(.hover-open) .sc-avatar{margin:0 auto;width:32px;height:32px;font-size:12px;border-radius:8px;}

  /* Footer: just avatar + collapse button, stacked and centred */
  .sidebar.collapsed:not(.hover-open) .sidebar-footer{padding:8px 0;}
  .sidebar.collapsed:not(.hover-open) .user-pill{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:6px 0;border:none;background:none;}
  .sidebar.collapsed:not(.hover-open) .user-avatar{margin:0;}

}

@media(max-width:1100px){
.ig-stats-row{grid-template-columns:repeat(3,1fr);}}

@media(max-width:1024px){
  #page-app.active{display:block;padding:0;gap:0;background:var(--oat);}
  .cc-back-btn{display:none;}
  .sidebar{position:fixed;top:0;left:0;width:280px;height:100vh;height:100dvh;transform:translateX(-100%);transition:transform .22s ease-out;z-index:850;padding-top:env(safe-area-inset-top);padding-bottom:calc(env(safe-area-inset-bottom) + 8px);border-radius:0;overscroll-behavior:contain;}
  .sidebar.open{transform:translateX(0);box-shadow:8px 0 32px rgba(0,0,0,.15);}
  #mobile-topbar{display:flex!important;padding-top:env(safe-area-inset-top)!important;height:calc(52px + env(safe-area-inset-top))!important;}
  /* Drawer sits above the top/bottom bars; the dim overlay covers them too */
  #mobile-overlay.open{display:block!important;z-index:840!important;animation:fadeIn .2s ease-out;}
  .main{padding-top:calc(52px + env(safe-area-inset-top));border-radius:0;box-shadow:none;min-height:100vh;}
  .sidebar-logo{padding-top:1.5rem;}
}

@media(max-width:900px){
.ig-insights-row-2{grid-template-columns:1fr;}
}

@media(max-width:768px){
.sidebar-logo{padding:1.5rem 1.25rem 1.25rem;}
  .sidebar-org{margin-top:12px;font-size:12px;line-height:1.2;}
  .sidebar-client-header{padding-top:1.25rem;}

  /* Main content sits below the 52px topbar; viewers also get a 68px bottom nav */
  .main.viewer-mobile{padding-bottom:68px;}
  .view{padding:16px;max-width:100%;}
  .view-header{margin-bottom:18px;}
  .view-title{font-size:23px;letter-spacing:-.03em;}
  .view-subtitle{font-size:12px;}

  /* Stat/form grids collapse */
  .stat-grid{grid-template-columns:1fr 1fr;}
  /* Phones: hero full row + pair; Active clients is noise on mobile */
  #view-dashboard .stat-card:nth-child(4){display:none;}
  /* Add client collapses to a corner plus; Import is desktop-only */
  .view-header{position:relative;}
  .view-header .import-btn{display:none;}
  #dash-more-drop{display:none;}
  /* Titles are gone — without a min-height the 40px corner plus overhangs
     whatever sits under a one-line header. */
  .view-header:has(.add-client-btn){min-height:46px;}
  .view-header .add-client-btn{position:absolute;top:2px;right:0;width:40px;height:40px;padding:0;font-size:0;border-radius:12px;}
  .view-header .add-client-btn .acb-label{display:none;}
  /* Geometric plus — font glyphs never centre optically */
  .view-header .add-client-btn::before,.view-header .add-client-btn::after{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;border-radius:1px;}
  .view-header .add-client-btn::before{width:16px;height:2px;}
  .view-header .add-client-btn::after{width:2px;height:16px;}
  /* The emptied actions row shouldn't leave a gap under the title */
  .view-header:has(.add-client-btn){gap:0;}
  .view-header:has(.add-client-btn) > div:first-child{padding-right:52px;}
  /* Recent clients compress to one-line rows: avatar · name · state chips */
  #dash-clients{grid-template-columns:1fr;gap:8px;}
  #dash-clients .client-card{display:flex;align-items:center;gap:12px;padding:17px 16px;}
  #dash-clients .client-card-top{margin:0;flex-shrink:0;}
  #dash-clients .client-avatar{width:34px;height:34px;font-size:12px;}
  #dash-clients .client-biz,#dash-clients .client-handles,#dash-clients .client-kebab,#dash-clients .client-meta .badge{display:none;}
  #dash-clients .client-meta{flex:1;min-width:0;justify-content:flex-end;}
  #dash-clients .client-pulse{position:static;transform:none;opacity:1;pointer-events:auto;}
  .form-row{grid-template-columns:1fr;}

  /* Client overview — 2-col grid stacks; cards stay readable */
  #ct-overview > div[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important;gap:1rem!important;}
  #ct-overview > div[style*="grid-template-columns:1fr 1fr"] > div{min-width:0;}
  /* Brand tab — the Brand-intelligence pairs and the colours picker stack too */
  #ct-brand div[style*="grid-template-columns:1fr 1fr"],#ct-brand div[style*="grid-template-columns:auto 1fr"]{grid-template-columns:1fr!important;gap:1rem!important;}
  #ct-brand div[style*="grid-template-columns:1fr 1fr"] > div,#ct-brand div[style*="grid-template-columns:auto 1fr"] > div{min-width:0;}
  #ct-overview{min-width:0;}
  #ct-overview .stat-card{min-width:0;}
  /* Header actions wrap onto their own left-aligned row, so a right-anchored
     menu runs off the screen edge. */
  .cd-more-drop .kdrop-menu{left:0;right:auto;}
  .setup-body,.cd-details{grid-template-columns:1fr;gap:16px;}
  /* Long emails / URLs / handles wrap instead of pushing the card wider than
     the screen (the flex value column has no intrinsic wrap otherwise). */
  .cd-info-item{min-width:0;}
  .cd-info-item span,.cd-info-link{min-width:0;overflow-wrap:anywhere;}
  .cd-photo-wrap{gap:0.75rem;min-width:0;}
  .cd-photo-wrap .view-title{overflow-wrap:anywhere;}
  /* The cover strip is a soft gradient placeholder with no image — on a phone
     it just reads as a large empty gap, so shrink it right down. */
  .cd-cover{height:72px;margin-bottom:16px;}
  .cd-cover.has-image{height:120px;}
  /* Belt-and-braces: nothing in the client area should scroll the page
     sideways on a phone. */
  .main{overflow-x:hidden;}

  /* Org settings → Report branding: logo + colours stack, 3-col palette → 1-col */
  .settings-section > div[style*="grid-template-columns:auto 1fr"]{grid-template-columns:1fr!important;gap:1.5rem!important;}
  .settings-section .org-color-field + .org-color-field,
  .settings-section div[style*="repeat(3,1fr)"]{grid-template-columns:1fr!important;}
  .org-color-row{flex-wrap:wrap;}
  .org-color-row input[type=text]{min-width:0;flex:1;}

  /* View headers — stack the title/subtitle and the right-side actions
     so the page header lays out cleanly on a phone instead of competing
     for horizontal space. */
  .view-header{flex-direction:column;align-items:stretch;gap:12px;}
  .view-header > div:first-child{min-width:0;}
  .view-header > div:not(:first-child),
  .view-header > button{display:flex;flex-wrap:wrap;gap:8px;}
  .view-header .btn-sm{padding:9px 14px;font-size:13px;}

  /* Dashboard tab bar — tabs left, month nav inline on the right */
  .dash-tabbar{flex-wrap:nowrap;gap:8px;}
  .dash-tab{padding:9px 13px;}
  #dash-cal-controls{flex-wrap:nowrap;flex-shrink:0;gap:2px;margin-bottom:5px!important;}
  #dash-cal-controls .cal-month-label{min-width:0;font-size:13px;}
  #dash-cal-controls .cal-nav-btn{width:26px;height:26px;font-size:17px;}

  /* Calendar — tighter cells so the week fits */
  .cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));}
  .cal-cell{min-height:64px;padding:3px;}
  .cal-cell-top{margin-bottom:3px;min-height:20px;}
  .cal-day-num{font-size:11px;width:20px;height:20px;}
  .cal-day-header{font-size:9px;padding:6px 0 5px;}
  .cal-nav{flex-wrap:wrap;gap:4px;margin-bottom:12px;}
  .cal-month-label{min-width:120px;font-size:14px;}
  .cal-add-btn{opacity:1;width:18px;height:18px;font-size:13px;}

  /* Colour key collapses behind a button on phones */
  .cal-legend-btn{display:inline-flex;align-items:center;margin-left:auto;border:none;background:none;padding:6px 4px;font-family:var(--font);font-size:12px;font-weight:500;color:var(--mid);text-decoration:underline;text-underline-offset:2px;cursor:pointer;}
  .cal-legend-btn.on{color:var(--terra);}
  .cal-legend{display:none;margin:0 0 12px;}
  .cal-legend.open{display:flex;}

  /* Calendar inline viewers panel — inputs stack so they fit */

  /* Notion-style month: cells show colour dots only; tapping a day lists its
     posts in #cal-day-list below the grid, tapping an item opens the modal. */
  .cal-view-toggle{display:none;}
  #cal-grid .cal-cell{min-height:56px;padding:5px 2px 6px;cursor:pointer;display:flex;flex-direction:column;align-items:center;}
  #cal-grid .cal-cell-top{justify-content:center;margin-bottom:2px;}
  #cal-grid .cal-add-btn{display:none;}
  #cal-grid .cal-shoots{display:none;}
  #cal-grid .cal-cell.selected{background:var(--t1);}
  #cal-grid .cal-cell.selected .cal-day-num{background:var(--terra);color:#fff;}
  #cal-grid .cal-posts{flex-direction:row;flex-wrap:wrap;gap:4px;justify-content:center;align-items:center;}
  #cal-grid .cal-post-chip{
    width:9px;height:9px;padding:0;border-radius:50%;border-left:none;margin:0;flex:none;
    background-color:var(--chip-colour,#a09890)!important;
    color:transparent!important;font-size:0;line-height:0;overflow:hidden;
    pointer-events:none;
  }
  #cal-grid .cal-post-chip *{display:none;}
  /* Week view keeps the old colour-pill treatment */
  #cal-week .cal-post-chip{
    height:11px;padding:0;border-radius:3px;border-left:none;
    background-color:var(--chip-colour,#a09890)!important;
    color:transparent!important;font-size:0;line-height:0;margin-bottom:3px;
    overflow:hidden;
  }
  #cal-week .cal-post-chip .cal-status-dot{display:none;}
  /* Dashboard calendar: stacked colour lines + tap-a-day list below */
  #dash-cal-grid .cal-cell{cursor:pointer;}
  #dash-cal-grid .cal-cell.selected{background:var(--t1);}
  #dash-cal-grid .cal-cell.selected .cal-day-num{background:var(--terra);color:#fff;}
  #dash-cal-grid .cal-post-chip{
    height:11px;padding:0;border-radius:3px;border-left:none;margin-bottom:3px;
    background-color:var(--chip-colour,#a09890)!important;
    color:transparent!important;font-size:0;line-height:0;overflow:hidden;
    pointer-events:none;
  }
  #dash-cal-grid .cal-post-chip *{display:none;}

  .cal-day-list{margin-top:14px;}
  .cal-dl-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:15px;font-weight:700;color:var(--charcoal);margin-bottom:4px;}
  .cal-dl-row{display:flex;align-items:center;gap:11px;padding:11px 2px;border-bottom:1px solid var(--taupe);cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;}
  .cal-dl-row:active{background:var(--oat);}
  .cal-dl-bar{width:3px;align-self:stretch;border-radius:2px;flex-shrink:0;}
  .cal-dl-main{flex:1;min-width:0;}
  .cal-dl-title{font-size:14px;font-weight:600;color:var(--charcoal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .cal-dl-sub{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--mid);margin-top:2px;}
  .cal-dl-sub .cal-status-dot{flex-shrink:0;}
  .cal-dl-thumb{width:38px;height:38px;border-radius:7px;object-fit:cover;flex-shrink:0;background:var(--taupe);}
  .cal-dl-empty{font-size:13px;color:var(--light);padding:16px 2px;}

  /* Filter chips — tighter so all three + the view toggle share one row */
  .dash-cal-filters{gap:6px;}
  .dash-cal-filters .dash-cal-dd-btn{padding:5px 8px;font-size:11px;white-space:nowrap;}

  /* Dashboard month grid in dots mode — compact heatmap cells */
  .dash-cal .cal-cell{min-height:44px;padding:4px 2px;}
  .dash-cal .cal-cell-top{margin-bottom:0;min-height:18px;justify-content:center;}
  .cal-cell-dots{display:flex;gap:2px;justify-content:center;align-items:center;margin-top:3px;}
  .cal-cell-dots .cal-status-dot{width:5px;height:5px;margin-left:0;}
  .cal-cell-dots .cal-status-dot.failed{width:5px;height:5px;font-size:0;line-height:5px;}
  .cal-cell-dots .more{font-size:8px;font-weight:700;color:var(--mid);}

  /* Generic modals: clear the 52px topbar (z 800) and the safe areas, and
     never let a card taller than the sheet spill off the top. */
  .modal-overlay{z-index:900;padding:calc(env(safe-area-inset-top) + 12px) 12px calc(env(safe-area-inset-bottom) + 12px);}
  .modal-overlay > *{width:100%!important;max-width:100%!important;max-height:100%!important;overflow-y:auto;overscroll-behavior:contain;}

  /* Share sheet becomes a bottom sheet on phones */
  #cal-viewers-panel{align-items:flex-end;padding:calc(env(safe-area-inset-top) + 24px) 0 0;}
  .cal-share-card{border-radius:16px 16px 0 0;padding:10px 18px calc(env(safe-area-inset-bottom) + 24px)!important;}
  .cal-share-grab{display:block;width:36px;height:4px;border-radius:99px;background:var(--taupe2);margin:0 auto 16px;}
  #cal-viewers-panel .modal-close{top:14px;right:10px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;}
  .cal-share-head{margin-left:-8px;}
  .cal-share-back{width:44px;height:44px;}
  .cal-share-primary{height:48px;}
  .cal-share-primary + .cal-share-primary{height:44px;}

  /* Post modal: sits inside viewport with margin so the user clearly sees
     it as a sheet, not a page. Content re-ordered for mobile flow:
     media → title → caption → hashtags → date/time/platform → notes →
     IG extras → approval. Sticky footer with primary CTA on-brand. */
  .post-modal-overlay{
    padding:calc(env(safe-area-inset-top) + 12px) 12px calc(env(safe-area-inset-bottom) + 12px);
    align-items:stretch;
    z-index:900; /* above mobile-topbar (800) so the close X is never covered */
  }
  .post-modal{width:100%;max-width:100%;height:100%;max-height:100%;border-radius:14px;display:flex;flex-direction:column;}
  /* Belt-and-braces: hide the mobile topbar while the post modal is open
     so it can't peek over the modal's top edge. */
  body.post-modal-open #mobile-topbar{display:none !important;}
  /* Single scroll on phones: pm-body scrolls, the columns stack. */
  .pm-body{display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;padding-bottom:8px;}
  #pm-viewer-view{flex:1 0 auto;overflow:visible;display:flex;flex-direction:column;}
  /* Viewer modal columns stack: media → details → schedule aside. The aside
     grows so short posts still end the sheet on oat, not a white void. */
  .pmv-cols{flex-direction:column;flex:1 0 auto;min-height:0;}
  .pmv-main{overflow:visible;flex:none;}
  .pmv-aside{width:100%;border-left:none;border-top:1px solid var(--taupe);padding:16px 26px;flex:1 0 auto;}
  /* Stacked layout: the notes rail flows in-page instead of inner-scrolling */
  .pmv-aside.has-notes{width:100%;display:block;overflow:visible;padding-bottom:0;}
  .pmv-aside.has-notes #pmv-comments-block{margin:16px -26px 0;padding:12px 20px 0;}
  #pmv-cmt-list{overflow:visible;max-height:none;}
  .pmv-composer{margin:0 -20px;padding:10px 20px 16px;}
  /* Touch-sized player: taller scrub lane, finger-sized pins and buttons.
     The hover tooltip has no meaning on touch — tapping a pin flashes the
     note itself instead. */
  .pmv-media.pmv-stage{padding:12px 16px 0;}
  .pmv-scrub{height:36px;}
  .pmv-scrub-track,.pmv-scrub-fill{top:16px;}
  .pmv-scrub-head{top:10px;width:18px;height:18px;margin-left:-9px;}
  .pmv-pin{top:11px;width:14px;height:14px;margin-left:-7px;}
  .pmv-tip{display:none;}
  .pmv-stagectrls{gap:16px;padding-bottom:16px;}
  .pmv-playbtn,.pmv-mutebtn{width:40px;height:40px;border-radius:9px;}
  .pmv-playbtn svg,.pmv-mutebtn svg{width:16px;height:16px;}
  .sp-cmt-edit{font-size:12px;padding:4px 6px;}
  .sp-cmt-del{font-size:18px;padding:2px 6px;}
  /* No editor column skeleton on mobile — stacked layout, aside spans full width */
  .pm-preview .pmv-cols::before{content:none;}
  .pm-preview .pmv-aside{width:100%;}
  /* Condensed preview head: the pills say where you are, the compact status
     chip sits beside them instead of wrapping to its own line */
  .pm-simple.pm-preview .pm-title-display{display:none;}
  .pm-simple.pm-preview .pm-head-status{font-size:10.5px;padding:4px 8px;}
  /* Sync state condenses to the green source dot on the tab itself */
  .pm-tab-source{display:inline-block;}
  .pm-sync-pill{display:none;}
  /* Tighter compose flow: no Media label, pills tuck up under the title */
  .pm-visual-section{padding:2px 0 4px;}
  .post-modal.pm-simple{width:100%;}
  /* Clip children to the sheet's rounded corners; drop the white strip the
     8px body padding left under the oat aside. */
  .post-modal{overflow:hidden;}
  .pm-simple .pm-body{padding-bottom:0;}
  /* Head condensed: icon + eyebrow dropped, title + status chip on one row.
     Long titles ellipsize so the chip never wraps to a second line. */
  .pm-head{padding:14px 52px 8px 14px;}
  .pm-head > div:not(.pm-head-icon){flex:1 1 auto;min-width:0;}
  .pm-head > div:not(.pm-head-icon) > div{min-width:0;}
  .pm-head-status{flex-shrink:0;white-space:nowrap;font-size:11px;padding:4px 10px;gap:6px;}
  .pm-head-icon{display:none;}
  .pm-eyebrow{display:none;}
  .pm-title-display{font-size:18px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .pm-view-switch{flex-shrink:0;}
  /* Single scroll row — pmToggleAddMenu pins the add menu to the viewport
     so this container can't clip it. */
  .pm-tabbar{padding:6px 8px 8px;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;}
  .pm-tab{padding:7px 10px;flex-shrink:0;}
  .pm-tab-add-wrap{flex-shrink:0;}
  /* Add-platform collapses to a "+" chip */
  .pm-tab-add{font-size:15px;padding:5px 13px;}
  .pm-tab-add-txt{display:none;}
  /* Pills only — the "Post type" label is redundant on a phone */
  .pm-kind-pills-label{display:none;}
  /* Caption toolbar: one line — length dropdown hides, Rewrite asks on tap (pmRewriteLengthMenu) */
  .pm-caption-tools{padding:6px 8px;flex-wrap:nowrap;}
  .pm-ai-btns{flex-wrap:nowrap;flex:1;min-width:0;}
  .pm-rewrite-group{flex-shrink:0;}
  .pm-rewrite-group .ksel{display:none;}
  .pm-rewrite-group #pm-ai-rewrite-btn{border-radius:6px;}
  .pm-ai-btns #pm-transcribe-btn{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .pm-spell-btn{flex-shrink:0;}
  /* Media fills the width; the carousel pill becomes a thin dashed bar below */
  .pm-media-row{flex-direction:column;gap:8px;}
  .pm-media-wrap{width:100%;}
  .pm-carousel-pill{flex:none;width:100%;flex-direction:row;gap:8px;padding:9px 0;font-size:12px;}
  .pm-carousel-pill svg{width:14px;height:14px;}
  .pm-carousel-pill-text{display:block;}
  /* Four approval tabs don't fit a phone width — let them scroll */
  .apv-tabs{overflow-x:auto;overscroll-behavior-x:contain;}
  .apv-tab{white-space:nowrap;padding:9px 10px;flex-shrink:0;font-size:12.5px;}
  .apv-t-long{display:none;}
  /* iOS zooms the viewport when a focused field is under 16px */
  .approval-revision-input,#apv-date-from,#apv-date-to{font-size:16px;}
  .pm-cols{flex-direction:column;flex:none;min-height:0;}
  .pm-rail{width:100%;flex-direction:row;overflow-x:auto;overscroll-behavior-x:contain;border-right:none;border-bottom:1px solid var(--taupe);padding:8px 10px;gap:4px;}
  /* Edge haze on whichever side has more rail off-screen (classes from _pmRailFade) */
  .pm-rail.fade-r{-webkit-mask-image:linear-gradient(to left,transparent,#000 32px);mask-image:linear-gradient(to left,transparent,#000 32px);}
  .pm-rail.fade-l{-webkit-mask-image:linear-gradient(to right,transparent,#000 32px);mask-image:linear-gradient(to right,transparent,#000 32px);}
  .pm-rail.fade-l.fade-r{-webkit-mask-image:linear-gradient(to right,transparent,#000 32px,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(to right,transparent,#000 32px,#000 calc(100% - 32px),transparent);}
  .pm-rail-item{width:auto;white-space:nowrap;padding:8px 10px;flex-shrink:0;}
  .pm-rail-item.active::before{display:none;}
  .pm-center{overflow:visible;max-height:none;padding:12px 16px 18px;}
  .pm-sched{width:100%;border-left:none;border-top:1px solid var(--taupe);overflow:visible;padding:16px;}
  .pm-title-input{font-size:19px;min-height:36px;}

  /* Footer: sticky bar — kebab + the one state-computed primary split. */
  .pm-modal-footer{order:11;position:sticky;bottom:0;background:#fff;padding:12px 14px calc(12px + env(safe-area-inset-bottom));gap:8px;flex-wrap:wrap;border-top:1px solid var(--taupe2);border-radius:0 0 14px 14px;}
  .pm-modal-footer .btn-sm{font-size:14px;padding:13px 16px;min-height:48px;justify-content:center;font-weight:600;}
  .pm-modal-footer #pm-save-status{order:-1;width:100%;margin:0 0 2px;text-align:center;font-size:11px;}
  .pm-modal-footer #pm-save-status:empty{display:none;}
  .pm-modal-footer > div{display:none;} /* desktop flex spacer — wraps into a blank row here */
  .pm-modal-footer .pm-foot-kebab{display:block;order:2;flex:0 0 auto;position:static;} /* static: menu anchors to the full-width footer so right:0 can't clip */
  .pm-modal-footer .pm-foot-kebab-btn{min-height:48px;padding:0 14px;}
  .pm-modal-footer #pm-foot-pill{order:1;flex:1;justify-content:center;min-height:44px;}
  .pm-modal-footer #pm-retry-btn{order:3;flex:1;}
  .pm-modal-footer .pm-split{order:4;flex:1;display:flex;}
  .pm-modal-footer .pm-split > .btn-sm:first-child{flex:1;font-weight:700;}

  /* Close X — prominent terra button top-right inside the modal */
  .pm-close-btn{top:12px;right:10px;width:30px;height:30px;font-size:16px;background:#fff;color:var(--charcoal);border:1px solid var(--taupe2);box-shadow:0 1px 3px rgba(0,0,0,0.06);z-index:2;}
  .pm-close-btn::after{content:'';position:absolute;inset:-9px;} /* 48px hit area */
  .pm-close-btn:hover{background:var(--terra-pale);color:var(--terra);border-color:var(--terra);}

  /* IG/Scheduler usage bar wraps nicely */
  .storage-usage-row{flex-direction:column;align-items:flex-start;gap:4px;}

  /* Best-time suggestions: allow wrap on mobile (they overflow otherwise) */
  #pm-best-times{flex-wrap:wrap;}

  /* Content creation — cards comfortably stack on phones */
  .cc-feature-grid{grid-template-columns:1fr;gap:12px;}
  .cc-feature-card{padding:20px;}
  .cc-feature-name{font-size:16px;}
  .cc-feature-desc{font-size:13.5px;}
  /* Task detail panel: fields stack full-width instead of wrapping unevenly */
  .task-detail-panel{padding:14px 12px;}
  .task-detail-row{flex-direction:column;gap:12px;}
  .task-detail-field{min-width:0;width:100%;}
  .task-detail-input{width:100%;min-width:0;max-width:100%;font-size:14px;}
  input[type="date"].task-detail-input{-webkit-appearance:none;appearance:none;min-height:38px;}
  .task-detail-actions{flex-wrap:wrap;gap:8px;}

  /* Shoot plan preview bar: title + one tidy meta row; Export/Archive appear
     once the plan is open instead of crowding the collapsed card */
  .sp-plan-bar{padding:14px 16px;gap:10px;}
  .sp-plan-title{font-size:19px;}
  .sp-plan-meta{margin-top:8px;gap:5px 12px;font-size:12px;}
  .sp-plan-actions{display:none;}
  .sp-plan.open .sp-plan-actions{display:flex;}
  .sp-plan-actions .btn-sm{font-size:12px;padding:6px 10px;}

  /* Caption generator form: all four fields stack */
  .cap-form-card{padding:18px;}
  .cap-form-row{flex-direction:column;gap:14px;}
  .cap-form-row .field{min-width:0;width:100%;}
  .cap-form-row .field[style*="flex:2"]{flex:none!important;}
  #cap-generate-btn{width:100%;justify-content:center;padding:12px 16px;}

  /* Caption result footer: rating top, actions stacked below — no overflow */
  .cap-result-card,.cap-history-card{padding:14px;}
  .cap-result-footer,.cap-history-footer{flex-direction:column;align-items:stretch;gap:10px;}
  .cap-history-stars{justify-content:flex-start;}
  .cap-result-actions{gap:4px;width:100%;}
  .cap-result-actions .btn-sm{flex:none;font-size:11.5px;padding:7px 8px;}
  .cap-result-actions .cap-icon-btn{padding:7px 6px;}
  .cap-result-actions .btn-glow{flex:1;justify-content:center;}
  .cap-rated-confirm{max-width:100%;flex-wrap:wrap;}
  .cap-rated-text{white-space:normal;}

  /* Content ideas — bigger swipe surface, accepted ideas collapsible */
  .idea-card{padding:20px;border-radius:16px;}  .idea-topics-row{gap:8px;}
  .idea-topic-input{padding:9px 12px;border:1px solid var(--taupe2);border-radius:8px;background:#fff;min-width:0;flex:1;font-size:14px;}

  /* Viewer-specific bottom nav + topbar variant */
  #mobile-topbar.viewer-active{display:flex!important;}
  #viewer-mobile-nav.viewer-active{display:flex!important;}

  /* Inbox — comfy search (pill sizing lives in the ≤1024px block) */
  .inbox-search{font-size:14px;}
  .inbox-search-wrap{height:38px;}
  /* No hover on touch: keep the kebab visible, hide the X (swipe dismisses),
     and truncate long senders so the timestamp never wraps below. */
  .inbox-kebab{width:32px;height:32px;opacity:1;}
  .inbox-dismiss-x{display:none;}
  .inbox-showmore{padding:13px;font-size:13px;}
  .inbox-row{align-items:stretch;}
  .inbox-item{padding:12px 12px;gap:10px;}
  .inbox-meta{flex-wrap:nowrap;gap:6px;}
  .inbox-sender{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .inbox-time{flex-shrink:0;}
  /* Scheduler tiles — 3-up on phone */
  .sched-grid{grid-template-columns:repeat(3,1fr);gap:6px;}
  .sched-tile-pill{font-size:9px;padding:2px 6px;top:4px;right:4px;}
  .sched-tile-vidicon{width:18px;height:18px;top:4px;left:4px;}
  .storage-cleanup-btn{font-size:12px;padding:7px 12px;}

  /* Post modal — auto-save status nudged so it sits between Delete and the buttons */
  .pm-save-status{margin-left:6px;font-size:11px;}
  .pm-upload-progress-wrap{max-width:200px;}

  /* Upload progress bar inside the placeholder needs breathing room */
  #pm-media-placeholder{min-height:140px;padding:16px;}
  .upcoming-task-row .task-due{font-size:10px;padding:2px 6px;flex-shrink:0;}
  .ig-stats-row{grid-template-columns:repeat(2,1fr);}
  .ig-stats-primary{grid-template-columns:1fr;}
  .comp-bench-row{grid-template-columns:16px minmax(100px,1fr) 1fr 64px;gap:8px;}
  .ig-heatmap{grid-template-columns:30px repeat(24,minmax(8px,1fr));}
  .ig-heatmap-day{font-size:10px;}  /* 16px+ stops iOS Safari from auto-zooming on focus */
  input[type=text],input[type=email],input[type=password],input[type=number],
  input[type=date],input[type=time],input[type=search],input[type=url],
  textarea,select{font-size:16px;}

  /* Content ideas — comfortably-sized swipe box, stacked action pills */
  .idea-stack-wrap{height:320px;width:100%;margin-bottom:18px;}
  .idea-card{padding:16px 18px;overflow:auto;gap:10px;}
  .idea-hook{font-size:16px;line-height:1.3;}
  .idea-desc{font-size:13px;line-height:1.5;color:var(--mid);}
  .idea-format{font-size:9px;padding:2px 7px;align-self:flex-start;}
  /* Action pills: ✕ and ✓ share a row, Save is full-width below as the
     primary action, Reset is a subtle text button at the bottom. */
  .idea-actions-row{flex-wrap:wrap;gap:8px;}  .idea-pill{padding:11px 14px;font-size:13px;justify-content:center;}
  .idea-pill-reject,.idea-pill-accept{flex:1 1 calc(50% - 4px);}
  .idea-pill-save{order:3;flex:1 1 100%;padding:13px 18px;font-size:14.5px;}
  .idea-pill-reset{order:4;flex:1 1 100%;background:transparent;border-color:transparent;color:var(--light);}
  .idea-pill-reset:hover{background:var(--oat);}

  /* Tabs — tighter padding on phones */
  .idea-tab{padding:9px 14px;font-size:13px;}

  /* Feed preview: side panel stacks below grid on mobile */
  .feed-layout{grid-template-columns:1fr;gap:16px;}
  .feed-phone{max-width:none;}

  /* Analytics header compression: bare-number period pills + Export share
     one row; range + comparison share the next */
  .ig-toolbar{gap:8px;margin-bottom:12px;}
  .ig-tf-btn{padding:7px 9px;font-size:11px;}
  .ig-period-range{margin:0 0 14px;font-size:11px;white-space:nowrap;overflow:hidden;}

  /* Competitors: self-benchmark status centres on phones; metric picker
     collapses to a three-dot button */
  .comp-self-placeholder{justify-content:center;text-align:center;padding:11px 14px;}
  .comp-bench-metric #comp-bench-btn-label,.comp-bench-metric>svg{display:none;}
  .comp-bench-dots{display:inline;font-size:17px;line-height:1;}
  .comp-bench-metric{padding:2px 10px;}

  /* Brand intelligence review: one-row stepper tabs, icon regenerate,
     two-per-line key targets */
  .ig-ai-tabs{flex-wrap:nowrap;gap:0;}
  .ig-ai-tab{flex:1;justify-content:center;padding:8px 2px;font-size:12px;white-space:nowrap;}
  .ig-ai-step,.ig-ai-tab-full{display:none;}
  .ig-ai-tab-short{display:inline;}
  .ig-ai-regen{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:15px;flex:0 0 auto;}
  .ig-ai-regen-txt{display:none;}
  .ig-ai-pills{display:grid;grid-template-columns:1fr 1fr;}
  .ig-ai-pill{justify-content:center;text-align:center;}
  .ig-ai-pill:last-child:nth-child(odd){grid-column:1 / -1;}
}

/* Post composer, phones: full-screen sheet, one tab row, Details + "Goes out"
   open bottom sheets (pmOpenSheet), media actions under the media, and a
   typing bar over the keyboard (pm-typing). */
@media(max-width:768px){
  .post-modal-overlay{padding:calc(env(safe-area-inset-top) + 6px) 0 0;}
  .post-modal{border-radius:14px 14px 0 0;}
  .pm-modal-footer{border-radius:0;}
  .pm-close-btn{border:none;background:var(--oat);box-shadow:none;}

  .post-modal:not(.pm-simple) #pm-modal-title{display:none;}
  .post-modal:not(.pm-simple) .pm-m-title{display:block;border:none;background:none;padding:0;text-align:left;cursor:pointer;max-width:100%;text-decoration:underline dotted var(--taupe2);text-underline-offset:5px;}
  .post-modal:not(.pm-title-edit) .pm-caption-wrap{display:none;}

  .pm-rail{display:none;}
  #pm-pane-compose{display:block;}
  .pm-details{display:block;margin-top:22px;}
  .pm-details .pm-lbl-row{margin-bottom:6px;}
  .pm-details-list{border:1px solid var(--taupe);border-radius:10px;overflow:hidden;}
  .pm-detail-row{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:0 14px;border:none;border-bottom:1px solid var(--taupe);background:#fff;font-family:var(--font);font-size:14px;font-weight:500;color:var(--charcoal);text-align:left;cursor:pointer;}
  .pm-detail-row:last-child{border-bottom:none;}
  .pm-detail-row span{flex:none;}
  .pm-detail-row em{font-style:normal;margin-left:auto;min-width:0;color:var(--light);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .pm-detail-row em.set{color:var(--mid);}
  .pm-detail-row::after{content:'';flex:none;width:7px;height:7px;border-right:1.5px solid var(--light);border-top:1.5px solid var(--light);transform:rotate(45deg);margin-left:2px;}

  /* Bottom sheets: the non-compose panes and the Schedule aside */
  .pm-sched{display:none;}
  .pm-msheet-scrim{position:fixed;inset:0;background:rgba(30,24,20,.4);z-index:20;}
  .pm-sheet-open .pm-msheet-scrim{display:block;animation:fadeIn .18s ease-out;}
  .pm-sheet-open .pm-pane.open:not(#pm-pane-compose),.pm-sheet-when .pm-sched{display:block;position:fixed;left:0;right:0;bottom:0;z-index:21;width:auto;max-height:85vh;max-height:85dvh;overflow-y:auto;overscroll-behavior:contain;background:#fff;border:none;border-radius:16px 16px 0 0;padding:0 16px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px rgba(20,15,10,.18);animation:sheetUp .24s cubic-bezier(.22,1,.36,1);}
  .pm-msheet-head{display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:0;z-index:2;background:#fff;padding:16px 0 10px;margin-bottom:4px;font-size:15px;font-weight:600;color:var(--charcoal);}
  .pm-msheet-head button{border:none;background:none;padding:8px 0 8px 12px;font-family:var(--font);font-size:14px;font-weight:600;color:var(--terra);cursor:pointer;}
  .pm-msheet-head + .pm-lbl-row,.pm-msheet-head + .pm-sched-head{display:none;}
  .pm-sched .pm-msheet-head + .pm-sched-head + .pm-lbl{margin-top:0;}
  .pm-best-chip{padding:8px 12px;}

  /* Footer: "Goes out" chip beside the primary */
  .pm-modal-footer .pm-when-chip{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;order:0;flex:0 1 auto;min-width:0;max-width:46%;min-height:48px;padding:0 12px;border:1px solid var(--taupe2);border-radius:8px;background:#fff;font-family:var(--font);color:var(--charcoal);cursor:pointer;line-height:1.2;}
  .pm-when-chip small{font-size:11px;color:var(--light);}
  .pm-when-chip b{font-size:13px;font-weight:600;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .pm-when-chip.empty b{color:var(--terra);}
  .pm-simple .pm-when-chip{display:none !important;}
  .pm-modal-footer .pm-split > .btn-sm:first-child,.pm-modal-footer #pm-retry-btn{white-space:nowrap;padding-inline:10px;}
  .pm-modal-footer .pm-split-caret{padding-inline:12px;}
  .pm-modal-footer .pm-foot-kebab-btn{padding:0 12px;}

  /* Post type as one segmented control */
  .pm-kind-pills{gap:2px;padding:3px;background:var(--oat);border-radius:9px;}
  .pm-kind-pill{flex:1;justify-content:center;border:none;background:none;padding:9px 0;border-radius:7px;font-size:12.5px;}
  .pm-kind-pill.active{background:#fff;color:var(--charcoal);box-shadow:0 1px 2px rgba(10,10,10,.08);}
  .pm-kind-pill:not(.active):hover{color:var(--mid);}

  /* Upload: two equal buttons */
  #pm-media-placeholder{flex-direction:row;min-height:0;padding:0;border:none;background:none;gap:8px;}
  #pm-media-placeholder > svg,#pm-media-placeholder > span:not(.pm-zone-phone),.pm-zone-lib-d{display:none;}
  .pm-zone-phone,.pm-zone-library-btn{flex:1;display:flex;align-items:center;justify-content:center;min-height:48px;margin:0;border:1px solid var(--taupe2);border-radius:8px;background:#fff;font-family:var(--font);font-size:14px;font-weight:600;color:var(--charcoal);text-decoration:none;}
  .pm-zone-lib-m{display:inline;}
  #pm-media-placeholder:has(.pm-upload-progress-wrap){min-height:120px;padding:16px;border:1.5px dashed var(--taupe2);}
  #pm-media-placeholder .pm-upload-progress-wrap{flex:1;max-width:none;}

  /* Media actions under the media; the overlay icons go */
  .pm-media-dl-btn,.pm-media-crop-btn,.pm-media-remove-btn,.pm-media-warn-btn{display:none !important;}
  .pm-media-actions.on{display:flex;margin-top:8px;border:1px solid var(--taupe);border-radius:8px;overflow:hidden;}
  .pm-media-actions button{flex:1;min-height:44px;border:none;border-right:1px solid var(--taupe);background:#fff;font-family:var(--font);font-size:13px;font-weight:600;color:var(--charcoal);cursor:pointer;}
  .pm-media-actions button:last-child{border-right:none;}
  .pm-media-actions .pm-ma-danger{color:var(--red);}
  .pm-media-warn-line:not(:empty){display:block;margin-top:8px;padding:9px 12px;border-radius:8px;background:var(--amber-bg);color:var(--amber);font-size:12.5px;line-height:1.45;}

  /* Caption tools: nothing truncates */
  .pm-m-hide{display:none;}
  .pm-ai-btns #pm-transcribe-btn{overflow:visible;}

  /* Typing mode */
  .pm-typing .pm-modal-footer,.pm-typing .pm-caption-tools{display:none;}
  .pm-typing .pm-body{padding-bottom:60px;}
  .pm-typing .pm-type-bar{display:flex;align-items:center;gap:8px;position:fixed;top:0;left:0;right:0;z-index:30;padding:7px 12px;background:#fff;border-top:1px solid var(--taupe2);box-shadow:0 -2px 10px rgba(10,10,10,.06);}
  .pm-type-bar button{min-height:36px;padding:0 12px;border:1px solid var(--taupe2);border-radius:7px;background:#fff;font-family:var(--font);font-size:13px;font-weight:600;color:var(--charcoal);cursor:pointer;}
  .pm-typing-tags .pm-tb-cap{display:none;}
  .pm-type-bar .pm-counter{margin-left:auto;}

  /* Instagram features sheet: a row per feature, one open at a time (pmIgToggle) */
  #pm-pane-instagram .pm-extra-field{position:relative;gap:10px;margin:0;padding:0;border-top:1px solid var(--taupe);}
  #pm-pane-instagram .pm-msheet-head + .pm-extra-field{border-top:none;}
  #pm-pane-instagram .pm-extra-field > label{display:none;}
  #pm-pane-instagram .pm-extra-field:not(.open) > :not(.pm-igrow){display:none !important;}
  #pm-pane-instagram .pm-extra-field.open{padding-bottom:18px;}
  .pm-igrow{display:flex;align-items:center;gap:12px;width:100%;min-height:58px;padding:0;border:none;background:none;font-family:var(--font);color:var(--charcoal);text-align:left;cursor:pointer;}
  .pm-igrow-ic{width:32px;height:32px;border-radius:8px;background:var(--oat);color:var(--mid);display:grid;place-items:center;flex:none;transition:background .15s,color .15s;}
  .open > .pm-igrow .pm-igrow-ic{background:var(--terra-pale);color:var(--terra);}
  .pm-igrow-t{font-size:15px;font-weight:500;flex:none;}
  .pm-igrow em{font-style:normal;margin-left:auto;min-width:0;font-size:13.5px;color:var(--light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .pm-igrow em.set{color:var(--mid);}
  .open > .pm-igrow em{visibility:hidden;}
  .pm-igrow::after{content:'';flex:none;width:7px;height:7px;border-right:1.5px solid var(--light);border-bottom:1.5px solid var(--light);transform:rotate(-45deg);margin:0 4px 0 2px;transition:transform .15s;}
  .open > .pm-igrow::after{transform:rotate(45deg);margin-top:-4px;}
  #pm-pane-instagram .pm-extra-field input[type=text],#pm-pane-instagram .pm-extra-field textarea{min-height:46px;padding:12px 14px;border:1px solid var(--taupe2);border-radius:8px;font-size:16px;}
  #pm-pane-instagram .pm-extra-field textarea{min-height:84px;}
  #pm-pane-instagram .pm-location-wrap input{padding-left:40px !important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239A9A98' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 14px center;}
  #pm-location-clear{display:none !important;}
  .pm-location-results{max-height:240px;border:1px solid var(--taupe2);border-radius:8px;}
  .pm-location-item{min-height:52px;padding:10px 14px;}
  .pm-location-name{font-size:15px;}
  .pm-location-sub{font-size:12.5px;}
  .pm-location-hint{font-size:12.5px;margin-top:0;}
  #pm-loc-field.has-loc .pm-location-wrap{display:none;}
  .pm-location-selected{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;padding:12px 14px;border:1px solid var(--terra);border-radius:8px;background:var(--terra-pale);font-size:15px;}
  .pm-location-selected .pm-location-sub-inline{font-size:13px;}
  .pm-location-remove{display:block;margin-left:auto;border:none;background:none;padding:6px 0 6px 10px;font-family:var(--font);font-size:13.5px;font-weight:600;color:var(--terra);cursor:pointer;}
  .pm-ig-out,.pm-ig-tip{display:block;font-size:12.5px;line-height:1.45;color:var(--light);}
  .pm-ig-tip{font-size:13.5px;color:var(--mid);}
  .pm-ig-sug:not(:empty){display:block;}
  .pm-ig-sug-t{font-size:12px;font-weight:600;color:var(--mid);margin-bottom:6px;}
  .pm-ig-sug-row{display:flex;flex-wrap:wrap;gap:6px;}
  .pm-ig-chip{min-height:36px;padding:0 13px;border:1px dashed var(--taupe2);border-radius:20px;background:#fff;font-family:var(--font);font-size:13.5px;font-weight:500;color:var(--charcoal);cursor:pointer;}
  .pm-fc-move{display:flex;align-items:center;align-self:flex-start;min-height:40px;padding:0 14px;border:1px solid var(--terra);border-radius:8px;background:var(--terra-pale);color:var(--terra);font-family:var(--font);font-size:13.5px;font-weight:600;cursor:pointer;}
  #pm-collaborators{display:none;}
  .pm-collab-m{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:46px;padding:6px 10px;border:1px solid var(--taupe2);border-radius:8px;background:#fff;cursor:text;}
  .pm-collab-m .pm-pillar-chips:empty{display:none;}
  #pm-pane-instagram .pm-collab-m input[type=text]{flex:1;min-width:120px;min-height:32px;padding:0 4px;border:none;}
  #pm-pane-instagram .pm-pillar-chip{font-size:13.5px;padding:6px 6px 6px 12px;}
  #pm-pane-instagram .pm-pillar-remove{font-size:17px;padding:0 4px;}
  /* Tag people: tap the photo, then name them in the box under the pin */
  #pm-pane-instagram .pm-igrow{order:-2;}
  #pm-tag-field .pm-ig-tip{order:-1;}
  #pm-tag-field .pm-ig-out{order:3;}
  #pm-tag-field .pm-tag-canvas{max-width:none;width:100%;border-radius:10px;cursor:pointer;}
  #pm-tag-field.has-canvas:not(.placing) .pm-tag-pop{display:none;}
  .pm-tag-pop{display:flex;flex-direction:column;gap:10px;}
  #pm-tag-field.placing .pm-tag-pop{position:absolute;left:10px;right:10px;z-index:3;padding:10px;background:#fff;border-radius:12px;box-shadow:0 10px 30px rgba(10,10,10,.3);}
  #pm-tag-field.placing .pm-tag-pop input{border-color:var(--terra) !important;}
  .pm-tag-pin{position:absolute;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px var(--terra),0 2px 8px rgba(0,0,0,.4);transform:translate(-50%,-50%);pointer-events:none;}
  #pm-tag-chips{margin-top:0 !important;}
  #pm-tag-chips:empty{display:none;}
  .pm-tag-dot{font-size:12px;padding:6px 9px;}
}

@media(max-width:680px){
.brand-signal-grid{grid-template-columns:1fr;}.brand-signal-card[style*="span 2"]{grid-column:auto !important;}
  .listening-grid{grid-template-columns:1fr;}.listening-thumb{flex-basis:80px;}
  .sched-preview-overlay{padding:60px 12px 24px;}
  .sched-preview-shell{flex-direction:column;gap:12px;width:100%;}
  .sched-preview-col{width:100%;max-width:400px;margin:0 auto;}
  .sched-preview-phone{width:100%;max-width:none;margin:0;}
  .sched-preview-info{width:100%;max-width:400px;margin:0 auto;}
  .sched-preview-close{top:calc(12px + env(safe-area-inset-top));right:12px;width:34px;height:34px;}
}

@media(max-width:380px){
.sched-grid{grid-template-columns:repeat(2,1fr);}
}

/* ── Viewer home: the client's own front page ──────────────────────────── */
.vh-loading{font-size:13px;color:var(--light);padding:24px 0;}
.vh-hero{background:var(--viewer-sidebar,var(--t6));color:#fff;border-radius:14px;padding:28px 30px;}
.vh-from{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:600;}
.vh-mark{width:26px;height:26px;border-radius:7px;background:#fff;color:var(--viewer-sidebar,var(--t6));
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;}
.vh-logo{background:#fff;border-radius:7px;padding:4px 7px;display:inline-flex;}
.vh-logo img{max-height:20px;width:auto;display:block;}
.vh-hi{font-size:13px;color:rgba(255,255,255,.72);margin-top:18px;}
.vh-title{font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:-.02em;margin:4px 0 0;line-height:1.15;}
.vh-line{font-size:14px;color:rgba(255,255,255,.8);margin:8px 0 0;max-width:48ch;}
.vh-cta{margin-top:18px;background:#fff;color:var(--viewer-sidebar,var(--t6));border:none;border-radius:6px;
  padding:11px 18px;font-family:var(--font);font-size:13.5px;font-weight:600;cursor:pointer;}
.vh-cta:hover{opacity:.9;}
.vh-sec{font-size:12px;font-weight:600;color:var(--mid);margin:28px 0 10px;}
.vh-card{background:#fff;border:1px solid var(--taupe2);border-radius:14px;padding:18px 22px;font-size:14px;line-height:1.6;}
.vh-card a{color:var(--viewer-accent,var(--terra-light));}
.vh-empty{color:var(--light);}
.vh-row{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:#fff;
  border:1px solid var(--taupe2);border-radius:12px;padding:14px 18px;margin-bottom:8px;cursor:pointer;
  font-family:var(--font);transition:border-color .15s;}
.vh-row:hover{border-color:var(--viewer-accent,var(--terra));}
.vh-row-when{font-size:12.5px;color:var(--mid);width:104px;flex-shrink:0;}
.vh-row-title{font-size:14.5px;font-weight:600;color:var(--charcoal);flex:1;min-width:0;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;}
.vh-foot{text-align:center;font-size:11px;color:var(--light);padding:30px 0 6px;}
@media(max-width:640px){
  .vh-hero{padding:22px 20px;}
  .vh-title{font-size:23px;}
  .vh-cta{display:block;width:100%;}
  .vh-row{flex-wrap:wrap;gap:6px 12px;}
  .vh-row-when{width:auto;}
  .vh-row-title{flex-basis:100%;white-space:normal;}
}

/* ════════════════════════════════════════════════════════════════════════
   CLIENT-VIEWER THEME — mono-terra (warm, flat, editorial).
   Scoped to body.viewer-theme so the agency UI is untouched.
   Reference: ui-previews/03-mono-terra.html
   ════════════════════════════════════════════════════════════════════════ */
:root{
  --t1:#ffebe6; --t2:#f9cabe; --t3:#f4a692; --t4:#ff5a30; --t5:#701c0a; --t6:#4c0c00;
}

/* ── Sidebar: deep-terra rail, cream text labels ───────────────────────── */
/* --viewer-* are set per session by applyViewerBrand() in nav.js; unset means
   the agency hasn't chosen a brand and the portal stays Koda's own. */
.viewer-theme .sidebar{background:var(--viewer-sidebar,var(--t6));box-shadow:0 10px 30px -10px rgba(40,12,6,.45);}
.viewer-theme .sidebar-logo-agency{filter:none;max-height:26px;background:#fff;border-radius:6px;padding:4px 7px;}
.viewer-theme .sidebar-agency{display:block;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#fff;font-size:15px;font-weight:600;letter-spacing:-.01em;}
.viewer-theme .btn-glow{background:var(--viewer-accent,var(--terra))!important;border-color:var(--viewer-accent,var(--terra))!important;}
.viewer-theme .btn-glow:hover{background:var(--viewer-accent,var(--terra-light))!important;box-shadow:none;}
.viewer-theme .sc-sub{display:none;}
.viewer-theme .sidebar-home-btn{color:rgba(255,255,255,.72);}
.viewer-theme .sidebar-home-btn:hover{background:rgba(255,255,255,.1);color:#fff;}
.viewer-theme .nav-item{color:rgba(239,239,230,.62);border-left-color:transparent;}
.viewer-theme .nav-item:hover{background:rgba(255,255,255,.07);color:#fff;}
.viewer-theme .nav-item:hover svg,.viewer-theme .nav-item.active svg{opacity:1;}
.viewer-theme .nav-item.active{color:#fff;background:var(--viewer-accent-soft,rgba(255,90,48,.34));border-left-color:var(--viewer-accent,var(--terra));}
.viewer-theme .nav-item svg{opacity:.82;}
.viewer-theme .nav-divider span{color:rgba(255,255,255,.42);}
.viewer-theme .nav-divider::before{background:rgba(255,255,255,.14);}
.viewer-theme .sidebar-footer{border-top-color:rgba(255,255,255,.1);}
.viewer-theme .sidebar-feedback-btn{color:rgba(255,255,255,.55);}
.viewer-theme .sidebar-feedback-btn:hover{color:#fff;}
.viewer-theme .beta-badge{background:rgba(255,255,255,.16);color:#fff;}
.viewer-theme .user-name{color:rgba(255,255,255,.82);}
.viewer-theme .sidebar-collapse-btn{color:rgba(255,255,255,.45);}
.viewer-theme .sidebar-collapse-btn:hover{background:rgba(255,255,255,.1);color:#fff;}
.viewer-theme .viewer-profile-pill{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);box-shadow:none;}
.viewer-theme .viewer-profile-pill:hover{border-color:rgba(255,255,255,.34);}
.viewer-theme .viewer-profile-avatar{background:var(--terra);}
.viewer-theme #viewer-profile-name{color:#fff!important;}
.viewer-theme #viewer-profile-email{color:rgba(255,255,255,.55)!important;}
/* Picker screen is a white overlay — keep the profile pill light even under viewer-theme */
.viewer-theme #viewer-picker .viewer-profile-pill{background:var(--white);border-color:var(--taupe2);box-shadow:var(--shadow);}
.viewer-theme #viewer-picker .viewer-profile-pill:hover{border-color:var(--mid);}
.viewer-theme #viewer-picker #viewer-profile-name{color:var(--charcoal)!important;}
.viewer-theme #viewer-picker #viewer-profile-email{color:var(--mid)!important;}
/* Picker overlay is z-index 9999 — keep the viewer profile modal above it */
#viewer-profile-modal{z-index:10000;}

/* ── Main canvas + page headers ────────────────────────────────────────── */
.viewer-theme .main{background:var(--oat);}
.viewer-theme .view-title{font-size:27px;letter-spacing:var(--tracking-display);}
.viewer-theme .tab-info{display:none!important;}
.viewer-theme .sched-section-label{color:var(--burgundy);opacity:.75;}

/* ── Active states: charcoal → terra ───────────────────────────────────── */
.viewer-theme .cal-view-btn.active{background:var(--terra);}
.viewer-theme .cal-day-num.today-num{background:var(--terra);}
.viewer-theme .apv-tab.active{color:var(--burgundy);border-bottom-color:var(--terra);}

/* ── Calendar — flat warm card ─────────────────────────────────────────── */
.viewer-theme .cal-grid{box-shadow:none;border:1px solid var(--taupe2);border-radius:14px;}
.viewer-theme .cal-day-header{background:var(--t1);color:var(--burgundy);font-weight:700;border-bottom-color:var(--taupe2);}
.viewer-theme .cal-cell{border-color:rgba(108,33,20,.08);}
.viewer-theme .cal-cell:hover{background:var(--t1);}
.viewer-theme .cal-cell.today{background:var(--t1);}
.viewer-theme .cal-cell.other-month{background:#faf7f4;}
.viewer-theme .cal-week-col-head{background:var(--t1);border-bottom-color:var(--taupe2);}
.viewer-theme .cal-week-col-head .cal-week-day{color:var(--burgundy);}

/* ── Feed preview ──────────────────────────────────────────────────────── */
.viewer-theme .feed-phone{box-shadow:none;border-radius:14px;border-color:var(--taupe2);}
.viewer-theme .feed-tabs{background:var(--t1);border-color:var(--t2);}
.viewer-theme .feed-tab.active{background:var(--terra);}.viewer-theme .sched-section-count{background:var(--t2);color:var(--burgundy);}.viewer-theme .apv-tabs{border-bottom-color:var(--taupe2);}

/* ── Shoot plans — warm cards ──────────────────────────────────────────── */
.viewer-theme .sp-plan{box-shadow:none;border-radius:14px;border-color:var(--taupe2);}
.viewer-theme .sp-plan.open{border-color:var(--t3);}

/* ── Account picker — warm landing ─────────────────────────────────────── */
.viewer-theme #viewer-picker{background:var(--oat)!important;}
.viewer-theme .viewer-picker-card{background:#fff;border-color:var(--taupe2);border-radius:14px;box-shadow:none;}
.viewer-theme .viewer-picker-card:hover{border-color:var(--terra);box-shadow:0 8px 22px -10px rgba(255,90,48,.3);}
.viewer-theme .viewer-picker-avatar{background:var(--t1);color:var(--burgundy);}

/* ── Overview layout grid (packer-positioned widgets + edit mode) ────────── */
.cd-grid{position:relative;}
.cd-grid .cd-widget{position:absolute;top:0;left:0;box-sizing:border-box;margin:0;overflow:hidden;}
.cd-grid.cd-anim{transition:height .3s cubic-bezier(.2,.75,.25,1);}
.cd-grid.cd-anim .cd-widget{transition:transform .3s cubic-bezier(.2,.75,.25,1),opacity .18s ease;}
.cd-w-off{display:none!important;}
body.ov-editing .cd-grid .cd-widget{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;}
@keyframes cdJig{from{rotate:-.12deg}to{rotate:.12deg}}
body.ov-editing .cd-grid .cd-widget{animation:cdJig .55s ease-in-out infinite alternate;}
body.ov-editing .cd-grid .cd-widget:nth-child(2n){animation-delay:-.28s;}
@media (prefers-reduced-motion:reduce){
  body.ov-editing .cd-grid .cd-widget{animation:none;}
  .cd-grid,.cd-grid .cd-widget{transition:none!important;}
}
.ov-card{display:flex;flex-direction:column;padding:16px 18px;}
/* The grid clips its widgets so drags stay tidy; a card's own menu has to
   escape that, and the transform on each widget makes its own stacking
   context — so the card lifts while its menu is open. */
.cd-grid .cd-widget.ov-card{overflow:visible;}
.ov-card.ov-menu-open{z-index:200;}
.ov-card-head{display:flex;align-items:center;gap:6px;margin-bottom:8px;}
.ov-card-title{flex:1;min-width:0;font-family:var(--font-display);font-size:12px;font-weight:600;color:var(--burgundy);
  background:none;border:none;padding:0;border-radius:4px;}
.ov-card-title::placeholder{color:var(--light);}
.ov-card-title:hover{background:var(--oat);box-shadow:0 0 0 4px var(--oat);}
.ov-card-title:focus{outline:none;background:var(--terra-pale);box-shadow:0 0 0 4px var(--terra-pale);}
.ov-card-shared{flex:none;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--terra-light);background:var(--terra-pale);border-radius:99px;padding:2px 8px;}
.ov-card-more{flex:none;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;
  background:none;color:var(--light);font-size:14px;line-height:1;border-radius:5px;cursor:pointer;opacity:0;padding:0;}
.ov-card:hover .ov-card-more,.ov-card-more:focus-visible{opacity:1;}
.ov-card-more:hover{background:var(--oat);color:var(--charcoal);}
.ov-card-body{flex:1;font-size:13.5px;line-height:1.55;color:var(--charcoal);white-space:normal;cursor:text;}
.ov-card-body a{color:var(--terra-light);}
.ov-card-empty{color:var(--light);}
.ov-card-input{display:block;width:100%;min-height:52px;font-family:var(--font);font-size:13.5px;line-height:1.55;
  color:var(--charcoal);background:none;border:none;padding:0;resize:none;overflow:hidden;caret-color:var(--terra);}
.ov-card-input:focus{outline:none;}
body.ov-editing .ov-card-body,body.ov-editing .ov-card-title{pointer-events:none;}
body.ov-editing .ov-card-more{display:none;}

.cd-w-remove{display:none;position:absolute;top:8px;left:8px;width:22px;height:22px;border-radius:50%;border:none;background:var(--charcoal);color:var(--white);font-size:14px;line-height:1;cursor:pointer;z-index:3;padding:0;}
body.ov-editing .cd-grid .cd-w-remove{display:block;}
.cd-w-remove:focus-visible{outline:2px solid var(--terra);outline-offset:2px;}
.cd-widget.cd-ghosted{background:var(--terra-pale);outline:2px dashed var(--terra);outline-offset:-2px;animation:none!important;rotate:none;}
.cd-widget.cd-ghosted > *{visibility:hidden;}
.cd-widget.cd-pending{outline:2px solid var(--t3);outline-offset:-2px;}
.cd-drag-ghost{position:fixed!important;z-index:300;pointer-events:none;margin:0;box-shadow:0 18px 40px -12px rgba(10,10,10,.35);rotate:.7deg;transform:scale(1.03);transition:none;animation:none!important;}
.cd-drag-ghost .cd-w-remove{display:block;}

/* Widget tray */
.cd-tray{position:fixed;left:0;right:0;bottom:0;background:var(--white);border-top:1px solid var(--taupe2);box-shadow:0 -12px 30px -18px rgba(10,10,10,.25);transform:translateY(105%);transition:transform .28s cubic-bezier(.2,.7,.3,1),background .15s;z-index:40;}
@media(min-width:1025px){
  .cd-tray{left:calc(var(--sidebar-w) + 20px);}
  #page-app.sidebar-collapsed .cd-tray{left:calc(var(--sidebar-w-collapsed) + 20px);}
}
body.ov-editing .setup-checklist{padding-left:40px;}
body.ov-editing .cd-tray{transform:translateY(0);}
body.ov-editing #ct-overview{padding-bottom:140px;}
.cd-tray.cd-drop-remove{background:var(--terra-pale);border-top-color:var(--terra);}
.cd-tray-inner{max-width:1100px;margin:0 auto;padding:14px 24px 18px;}
.cd-tray-head{display:flex;gap:12px;align-items:baseline;margin-bottom:10px;}
.cd-tray-title{font-size:12px;font-weight:600;color:var(--mid);}
.cd-tray-hint{font-size:12px;color:var(--light);}
.cd-tray-chips{display:flex;gap:10px;overflow-x:auto;padding-bottom:2px;}
.cd-chip{flex:none;min-width:150px;background:var(--t1);border:none;border-radius:10px;padding:10px 14px;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:pan-x;}
.cd-chip:focus-visible{outline:2px solid var(--terra);outline-offset:2px;}
.cd-chip .t{font-size:13px;font-weight:600;color:var(--charcoal);}
.cd-chip .sz{display:inline-block;font-size:11px;font-weight:600;color:var(--t5);background:var(--terra-pale);border-radius:4px;padding:1px 6px;margin-left:8px;vertical-align:1px;}
.cd-tray-empty{font-size:12.5px;color:var(--light);padding:6px 0;}

/* ── Automations ─────────────────────────────────────────────────────────── */
.auto-skeleton{height:118px;border-radius:12px;background:linear-gradient(90deg,var(--taupe) 25%,#efe9e2 50%,var(--taupe) 75%);background-size:200% 100%;animation:autoShimmer 1.3s infinite;margin-bottom:12px;}
@keyframes autoShimmer{0%{background-position:200% 0;}100%{background-position:-200% 0;}}
.auto-empty{font-size:13.5px;color:var(--mid);padding:22px;text-align:center;background:var(--white);border:1px solid var(--hairline);border-radius:12px;}

.auto-section-label{font-size:12px;font-weight:600;color:var(--light);margin:20px 0 8px;padding-left:2px;}
.auto-section:first-child .auto-section-label{margin-top:2px;}

.auto-card{background:var(--white);border:1px solid var(--hairline);border-radius:12px;padding:16px 18px;margin-bottom:12px;transition:border-color .15s,box-shadow .15s;}
.auto-card:hover{border-color:var(--taupe);box-shadow:0 2px 10px -4px rgba(10,10,10,.08);}
.auto-card.off{background:#faf7f3;}
.auto-top{display:flex;align-items:center;gap:12px;}
.auto-ic{width:34px;height:34px;border-radius:9px;background:var(--terra-pale);color:var(--terra);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.auto-ic svg{width:18px;height:18px;}
.auto-card.off .auto-ic{background:var(--taupe);color:var(--light);}
.auto-name{font-size:14.5px;font-weight:600;color:var(--charcoal);}
.auto-meta{font-size:11.5px;color:var(--mid);margin-top:2px;display:flex;align-items:center;gap:7px;}
.a-dot{width:3px;height:3px;border-radius:50%;background:var(--light);display:inline-block;}
.a-status{display:inline-flex;align-items:center;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.04em;}
.a-status.on{background:rgba(29,158,117,.12);color:var(--green);}
.a-status.off{background:var(--taupe);color:var(--mid);}

.a-toggle{position:relative;width:40px;height:23px;border-radius:20px;background:var(--taupe2);border:none;cursor:pointer;flex-shrink:0;transition:background .18s;padding:0;}
.a-toggle::after{content:"";position:absolute;top:2.5px;left:2.5px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .18s;}
.a-toggle.on{background:var(--terra);}
.a-toggle.on::after{transform:translateX(17px);}

.auto-logic{margin:13px 0 2px;padding:15px 16px;background:var(--oat);border:1px solid var(--hairline);border-radius:9px;font-size:13.5px;line-height:2.5;color:var(--charcoal);}
.auto-card.off .auto-logic{opacity:.55;filter:grayscale(1);}
.auto-card.off .auto-name{color:var(--mid);}
.auto-card.off .a-link{color:var(--mid);}
.auto-card.off .a-link:hover{color:var(--charcoal);}
.a-kw{color:var(--mid);font-weight:500;}
/* Chips share the inputs' height/radius so a builder row reads as one family. */
.a-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;margin:0;background:var(--white);border:1px solid var(--taupe2);border-radius:6px;font-size:13px;font-weight:600;line-height:1.35;color:var(--charcoal);}
.a-chip svg{width:13px;height:13px;opacity:.8;}
/* role-tinted pills: terra=trigger, green=timing, lilac=action/recipient */
.a-chip.accent,.a-chip.pc-terra{background:#f6d3c6;border-color:#e7b09c;color:#a5341b;}
.a-chip.pc-green{background:#cbe6d4;border-color:#a4d0b4;color:#2c6b46;}
.a-chip.pc-lilac{background:#dacef2;border-color:#bda7e8;color:#4a2996;}
.a-chip.pc-terra svg,.a-chip.pc-green svg,.a-chip.pc-lilac svg{opacity:.9;}

.auto-foot{display:flex;align-items:center;gap:14px;margin-top:12px;}
/* Device notifications view (iOS app only — nav item koda-app-gated) */
#nav-device-notifs{display:none;}
.koda-app #nav-device-notifs{display:flex;}
.ddn-card{background:#fff;border:1px solid var(--taupe2);border-radius:10px;padding:6px 18px;max-width:560px;}
.ddn-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--oat);cursor:pointer;font-size:14px;font-weight:500;}
.ddn-row:last-child{border-bottom:none;}
.a-link{font-size:12.5px;font-weight:600;color:var(--terra);cursor:pointer;background:none;border:none;padding:0;font-family:var(--font);}
.a-link:hover{text-decoration:underline;}
.a-link.muted{color:var(--mid);}
.a-link.muted:hover{color:var(--charcoal);}

/* inline editor */
.auto-editor{margin-top:14px;border-top:1px solid var(--hairline);padding-top:16px;}
.a-flow{position:relative;padding-left:30px;}
.a-flow::before{content:"";position:absolute;left:10px;top:14px;bottom:14px;width:2px;background:var(--taupe);}
.a-step{position:relative;margin-bottom:16px;}
.a-step:last-child{margin-bottom:0;}
.a-snum{position:absolute;left:-30px;top:9px;width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid var(--taupe2);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:var(--mid);z-index:1;}
.a-step.trigger .a-snum{background:var(--terra);border-color:var(--terra);color:#fff;}
.a-step.action .a-snum{background:var(--t6);border-color:var(--t6);color:var(--oat);}
.a-step-card{background:var(--oat);border:1px solid var(--hairline);border-radius:10px;padding:15px 17px;}
.a-kicker{font-size:12px;font-weight:600;color:var(--mid);margin-bottom:12px;}
.a-step.trigger .a-kicker{color:var(--terra);}
.a-step.action .a-kicker{color:var(--t5);}
.a-step-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13.5px;color:var(--charcoal);line-height:1.7;}

.a-inp{font-family:var(--font);font-size:13px;font-weight:600;line-height:1.2;color:var(--charcoal);background:#fff;border:1.5px solid var(--taupe2);border-radius:8px;padding:8px 13px;transition:border-color .15s,box-shadow .15s;}
.a-inp[type="number"]{width:66px;text-align:center;}
.a-inp.time{width:118px;}
.a-inp.sel{-webkit-appearance:none;appearance:none;padding-right:28px;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235A5A58' stroke-width='2.5'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 9px center;}
.a-inp.wide{width:240px;}
.a-inp:hover{border-color:var(--charcoal);}
.a-inp:focus{outline:none;border-color:var(--charcoal);box-shadow:0 0 0 3px rgba(33,32,31,.07);}

.a-recip{margin-top:16px;display:flex;flex-direction:column;gap:14px;}
.a-chips{display:flex;gap:9px;flex-wrap:wrap;}
.a-rchip{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--taupe2);border-radius:22px;padding:7px 8px 7px 15px;font-size:13px;line-height:1.2;}
.a-rchip svg{width:15px;height:15px;opacity:.7;margin-right:-2px;}
.a-rchip .nm{font-weight:600;color:var(--charcoal);}
.a-rchip .em{color:var(--mid);font-size:12px;}
.a-x{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:none;border:none;color:var(--light);cursor:pointer;font-size:16px;line-height:1;transition:background .15s,color .15s;}
.a-x:hover{color:var(--red);background:var(--terra-pale);}
.a-hint{font-size:12.5px;color:var(--mid);line-height:1.5;display:flex;gap:8px;align-items:flex-start;}
.a-hint svg{width:15px;height:15px;flex-shrink:0;margin-top:1px;opacity:.7;}
.a-hint.warn{background:#f7efdc;border:1px solid #eddcb6;padding:11px 13px;border-radius:9px;color:var(--amber);}
.a-hint.warn svg{color:var(--amber);opacity:1;}
.a-contact-add{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:2px;}
.a-inp.name{width:160px;}
.a-inp.email{width:230px;}
.a-editor-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;}

/* apply / import picker */
.a-picklist{max-height:240px;overflow-y:auto;margin:6px 0 4px;border:1px solid var(--hairline);border-radius:8px;}
.a-pick{display:flex;align-items:center;gap:10px;padding:9px 12px;font-size:13.5px;color:var(--charcoal);cursor:pointer;border-bottom:1px solid var(--hairline);}
.a-pick:last-child{border-bottom:none;}
.a-pick:hover{background:var(--oat);}
.a-pick input{accent-color:var(--terra);width:15px;height:15px;}

/* ── Signup onboarding wizard ─────────────────────────────────────────── */
.ob-overlay{position:fixed;inset:0;z-index:9990;background:var(--oat);display:flex;}
/* While the wizard is up the page behind must not scroll (in the iOS shell the
   webview otherwise scrolls the invisible app underneath — feels broken).
   WebKit ignores body overflow alone — the html element must be clamped too. */
html.ob-open,body.ob-open{overflow:hidden;height:100%;}
.koda-app .ob-overlay{padding-top:env(safe-area-inset-top);}
.ob-main{flex:1;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;min-width:0;}
/* Brand gradient, nothing painted over it — the copy sits high, on the red end,
   because the gradient fades too pale to carry white text lower down. */
.ob-side{width:min(36vw,500px);background:var(--grad-brand);color:var(--oat);display:flex;align-items:flex-start;justify-content:center;padding:18vh 48px 56px;text-align:center;position:relative;overflow:hidden;}
.ob-side-copy{position:relative;z-index:1;}
.ob-side h2{font-family:var(--font-display);font-size:clamp(28px,2.6vw,38px);font-weight:800;letter-spacing:-0.03em;line-height:1.1;margin-bottom:14px;}
.ob-side p{font-size:15px;line-height:1.6;color:var(--t1);max-width:340px;margin:0 auto;}
@media (max-width:900px){.ob-side{display:none;}}
.ob-head{display:flex;align-items:center;justify-content:space-between;padding:20px 28px;}
.ob-logo{height:26px;width:auto;}
.ob-stepper{display:flex;align-items:center;gap:12px;padding:6px 40px 18px;border-bottom:1px solid var(--hairline);}
.ob-ph{display:flex;align-items:center;gap:8px;}
.ob-ph .ic{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--taupe2);color:var(--light);display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:600;background:#fff;transition:background .2s,border-color .2s,color .2s;}
.ob-ph .lb{font-size:12.5px;font-weight:600;color:var(--light);transition:color .2s;}
.ob-ph.active .ic{border-color:var(--terra);color:var(--terra);}
.ob-ph.active .lb,.ob-ph.done .lb{color:var(--charcoal);}
.ob-ph.done .ic{background:var(--terra);border-color:var(--terra);color:#fff;}
.ob-track{flex:1;display:flex;gap:5px;}
.ob-track i{flex:1;height:2.5px;border-radius:2px;background:var(--taupe);transition:background .2s;}
.ob-track i.on{background:var(--terra);}
.ob-body{flex:1;display:flex;align-items:flex-start;padding:13vh 24px 48px;}
.ob-card{width:100%;max-width:520px;margin:0 auto;}
.ob-title{font-family:var(--font-display);font-size:26px;font-weight:800;letter-spacing:-0.03em;color:var(--charcoal);margin-bottom:6px;}
.ob-sub{font-size:14.5px;color:var(--mid);line-height:1.5;margin-bottom:24px;}
.ob-opts{display:flex;flex-direction:column;gap:9px;}
.ob-opt{text-align:left;padding:13px 16px;background:#fff;border:1.5px solid var(--hairline);border-radius:var(--radius-lg);font-family:var(--font);font-size:14.5px;font-weight:500;color:var(--charcoal);cursor:pointer;transition:border-color .15s,background .15s;}
.ob-opt:hover{border-color:var(--taupe2);}
.ob-opt.sel{border-color:var(--terra);background:var(--terra-pale);}
.ob-other{width:100%;margin-top:10px;padding:12px 14px;border:1.5px solid var(--hairline);border-radius:var(--radius-lg);font-family:var(--font);font-size:14px;background:#fff;color:var(--charcoal);}
.ob-other:focus{outline:none;border-color:var(--taupe2);}
.ob-actions{display:flex;align-items:center;justify-content:space-between;margin-top:30px;}
.ob-preauth-foot{margin:26px -30px 0;text-align:center;font-size:13px;color:var(--mid);}
.ob-preauth-foot a{color:var(--terra);font-weight:600;cursor:pointer;}
.ob-card select{width:100%;padding:11px 14px;border:1.5px solid var(--taupe2);border-radius:var(--radius);background:var(--white);color:var(--charcoal);font-family:var(--font);font-size:15px;}
@media (max-width:640px){
  .ob-preauth-foot{margin-inline:0;}
  .ob-head{padding:14px 18px;}
  .ob-body{padding:4vh 18px 40px;}
  .ob-title{font-size:23px;}
  .ob-sub{font-size:14px;margin-bottom:20px;}
  .ob-stepper{gap:8px;padding:2px 16px 14px;}
  .ob-ph .ic{width:22px;height:22px;font-size:11px;}
  .ob-ph .lb{display:none;}
  .ob-ph.active .lb{display:inline;}
  .ob-card .form-row{grid-template-columns:1fr;}
  .ob-actions{margin-top:24px;}
}

/* Until the first client exists, the add-client button pulses gently —
   a blurred halo (inner bright + wide soft), not a hard ring. */
@keyframes first-client-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(255,90,48,0),0 0 0 0 rgba(255,90,48,0);}
  50%{box-shadow:0 0 12px 3px rgba(255,90,48,.7),0 0 28px 12px rgba(255,90,48,.35);}
}
.first-client-glow{animation:first-client-pulse 2.2s ease-in-out infinite;}
@media (prefers-reduced-motion:reduce){.first-client-glow{animation:none;box-shadow:0 0 12px 3px rgba(255,90,48,.5);}}

/* ── Add-client wizard: reuses the ob-* shell as a fixed overlay view ── */
.acw-overlay{padding:0;max-width:none;}
.acw-overlay.active{display:flex;position:fixed;inset:0;z-index:9980;background:var(--oat);animation:acwOverlayIn .36s cubic-bezier(.22,1,.36,1);}
@keyframes acwOverlayIn{from{opacity:0;transform:translateX(56px);}to{opacity:1;transform:translateX(0);}}
/* In-flow footer: hugs the bottom on tall windows (margin-top:auto), scrolls
   with the form when it overflows — fixed corners collided with the actions. */
.acw-links-foot{display:flex;justify-content:center;align-items:center;margin-top:auto;padding:12px 28px 14px;}
@media (max-width:900px){.acw-links-foot{padding-bottom:22px;}}
@keyframes acwInFwd{from{opacity:0;transform:translateX(42px);}to{opacity:1;transform:translateX(0);}}
@keyframes acwInBack{from{opacity:0;transform:translateX(-42px);}to{opacity:1;transform:translateX(0);}}
.acw-in-fwd{animation:acwInFwd .32s cubic-bezier(.22,1,.36,1);}
.acw-in-back{animation:acwInBack .32s cubic-bezier(.22,1,.36,1);}
@media (prefers-reduced-motion:reduce){.acw-overlay.active,.acw-in-fwd,.acw-in-back{animation:none;}}
.acw-overlay .ob-body{padding-top:clamp(24px,7vh,72px);padding-bottom:24px;}
/* Connect-link modals must clear the wizard overlay (z-index 9980) */
#connect-link-modal,#msg-connect-link-modal,#tt-connect-link-modal,#li-connect-link-modal{z-index:9985;}
@media (max-width:640px){.acw-overlay .ob-body{padding-top:12px;}}
.acw-card{max-width:620px;}
/* One 12px rhythm between every control (matches the form-row column gap) */
.acw-step .acw-ff,.acw-step .form-row,.acw-url-row{margin-bottom:8px;}
.acw-step .form-row{gap:8px;}
.acw-step .form-row .acw-ff,.acw-url-row .acw-ff{margin-bottom:0;}
.acw-url-row .acw-ff{flex:1;}
.acw-found{margin-top:4px;border:1.5px solid var(--hairline);border-radius:var(--radius-lg);background:var(--white);padding:16px;}
.acw-found-head{display:flex;align-items:center;gap:12px;}
.acw-found-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;}
.acw-chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--charcoal);background:var(--terra-pale);border-radius:999px;padding:4px 10px;}
.acw-chip svg{color:var(--terra);flex-shrink:0;}
/* Visual step: logo + brand pack as a matched pair of drop tiles */
.acw-tiles{display:grid;grid-template-columns:1fr 1.4fr;gap:8px;margin-bottom:8px;}
.acw-tile{border:1.5px dashed var(--taupe2);border-radius:12px;background:var(--white);padding:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;cursor:pointer;transition:border-color .15s,background .15s;min-height:148px;margin:0;}
.acw-tile:hover,.acw-tile.drag{border-color:var(--terra);background:#fffdfb;}
.acw-tile.filled{border-style:solid;}
.acw-t-title{font-family:var(--font-display);font-size:13px;font-weight:700;color:var(--charcoal);letter-spacing:-.01em;}
.acw-t-sub{font-size:12px;color:var(--light);line-height:1.5;max-width:32ch;}
.acw-t-sub b{color:var(--terra);font-weight:600;text-decoration:underline;}
.acw-logo-ring{width:56px;height:56px;border-radius:50%;border:1.5px dashed var(--taupe2);display:flex;align-items:center;justify-content:center;color:var(--light);overflow:hidden;background:var(--white);flex-shrink:0;transition:border-color .15s;}
.acw-tile:hover .acw-logo-ring{border-color:var(--terra);color:var(--terra);}
.acw-tile.filled .acw-logo-ring{border-style:solid;}
.acw-logo-ring img{width:100%;height:100%;object-fit:cover;display:block;background:#fff;}
.acw-pack-ic{width:38px;height:38px;border-radius:10px;background:var(--terra-pale);color:var(--terra);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.acw-tile.filled .acw-pack-ic{background:var(--green-bg);color:var(--green);}

/* Visual step: colours as one chip-row control, label inside */
.acw-chips{padding:9px 12px 11px;border:1.5px solid var(--taupe2);border-radius:var(--radius);background:var(--white);margin-bottom:8px;}
.acw-chips-label{display:block;font-size:11px;font-weight:600;color:var(--light);margin-bottom:8px;}
.acw-chips-row{display:flex;flex-wrap:wrap;align-items:center;gap:7px;min-height:32px;}
.acw-swatch{position:relative;width:30px;height:30px;border-radius:50%;border:1px solid rgba(0,0,0,.12);flex-shrink:0;display:inline-block;}
.acw-swatch button{position:absolute;top:-6px;right:-6px;width:16px;height:16px;border-radius:50%;background:var(--charcoal);color:#fff;border:none;font-size:11px;line-height:1;cursor:pointer;display:none;align-items:center;justify-content:center;padding:0;}
.acw-swatch:hover button,.acw-swatch button:focus-visible{display:flex;}
.acw-chip-add{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:112px;height:30px;border:1.5px dashed var(--taupe2);border-radius:999px;padding:0 16px;background:none;font-size:12.5px;font-weight:600;color:var(--mid);cursor:pointer;flex-shrink:0;font-family:var(--font);transition:border-color .15s,color .15s;}
.acw-chip-add:hover{border-color:var(--terra);color:var(--terra);}
.acw-chip-hex{border:none;background:none;font-size:12.5px;font-family:ui-monospace,SFMono-Regular,monospace;color:var(--charcoal);width:110px;padding:6px 4px;}
.acw-chip-hex:focus{outline:none;}
.acw-chip-hex::placeholder{color:var(--light);font-family:var(--font);}
.acw-picker-hidden{position:absolute;width:1px;height:1px;opacity:0;border:0;padding:0;pointer-events:none;}

/* Wizard fields: the header lives inside the control and disappears once it
   holds a value — one text per field. Inputs/textareas use :placeholder-shown
   (every control carries a placeholder attr, kept transparent); selects always
   show their value so they carry no visible header; the date field hides its
   native dd/mm/yyyy chrome while empty so the header can sit there (.filled
   is toggled by JS since :placeholder-shown doesn't exist for dates). */
.acw-ff{position:relative;display:block;width:100%;min-width:0;}
.acw-ff input{width:100%;height:52px;padding:0 14px;border:1.5px solid var(--taupe2);border-radius:var(--radius);background:var(--white);color:var(--charcoal);font-family:var(--font);font-size:15px;caret-color:var(--terra);}
/* Selects are replaced by the ksel component (enhanceSelect in utils.js) —
   the visible control is .ksel-btn, so size that, not the hidden native. */
.acw-ff .ksel-btn{height:52px;padding:0 14px;font-size:15px;border-width:1.5px;border-radius:var(--radius);}
.acw-ff textarea{width:100%;min-height:88px;max-height:220px;padding:14px;border:1.5px solid var(--taupe2);border-radius:var(--radius);background:var(--white);color:var(--charcoal);font-family:var(--font);font-size:14px;line-height:1.5;resize:vertical;caret-color:var(--terra);}
.acw-ff :is(input,select,textarea):focus{outline:none;border-color:var(--charcoal);box-shadow:0 0 0 3px rgba(33,32,31,.07);}
.acw-ff > span:not(.ksel){position:absolute;left:15.5px;top:50%;transform:translateY(-50%);font-size:14.5px;color:var(--light);opacity:.75;pointer-events:none;}
.acw-ff textarea ~ span{top:25px;}
.acw-ff input:not([type="date"]):not(:placeholder-shown) ~ span,.acw-ff textarea:not(:placeholder-shown) ~ span{display:none;}
.acw-ff :is(input,textarea)::placeholder{color:transparent;}
.acw-ff input[type="date"]{min-width:0;max-width:100%;-webkit-appearance:none;appearance:none;}
.acw-ff input[type="date"]::-webkit-datetime-edit{color:transparent;-webkit-text-fill-color:transparent;}
.acw-ff:focus-within input[type="date"]::-webkit-datetime-edit,.acw-ff.filled input[type="date"]::-webkit-datetime-edit{color:var(--charcoal);-webkit-text-fill-color:var(--charcoal);}
.acw-ff:focus-within input[type="date"] ~ span,.acw-ff.filled input[type="date"] ~ span{display:none;}
/* Labeled variant: small static titles above fields, visible even when prefilled */
.acw-labels .acw-ff{display:flex;flex-direction:column;}
.acw-labels .acw-ff > span:not(.ksel){position:static;order:-1;transform:none;font-size:11.5px;font-weight:500;color:var(--light);opacity:1;margin:0 0 4px 2px;}
.acw-labels .acw-ff :is(input,textarea):not(:placeholder-shown) ~ span{display:block;}
.acw-labels .acw-ff :is(input,textarea)::placeholder{color:var(--light);opacity:.6;}
@media (max-width:640px){.acw-tiles{grid-template-columns:1fr;}}

/* Example captions step */
#acw-step-captions .acw-ff textarea{border:1.5px dashed var(--light);border-radius:24px;min-height:132px;padding:18px 22px;transition:border-color .25s;}
#acw-step-captions .acw-ff textarea ~ span{left:23.5px;top:29px;}
#acw-step-captions .acw-ff textarea:not(:placeholder-shown){border-style:solid;border-color:var(--t3);}
.acw-cap-count{font-size:12.5px;color:var(--light);}
.acw-cap-count.ok{color:var(--green);font-weight:600;}
.acw-cap-list{display:flex;flex-direction:column;gap:8px;margin-top:16px;}
.acw-cap-item{display:flex;align-items:flex-start;gap:10px;background:var(--white);border:1.5px solid var(--hairline);border-radius:16px;padding:12px 14px;}
.acw-cap-item .n{font-size:11px;font-weight:700;color:var(--terra);background:var(--terra-pale);border-radius:999px;padding:2px 8px;flex-shrink:0;margin-top:2px;}
.acw-cap-item p{flex:1;font-size:13.5px;line-height:1.5;color:var(--charcoal);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;}
.acw-cap-item button{background:none;border:none;color:var(--light);cursor:pointer;font-size:16px;line-height:1;padding:2px;flex-shrink:0;}
.acw-cap-item button:hover{color:var(--charcoal);}

/* Website field + manual-mode analyse button */
.acw-url-row{display:flex;gap:8px;}
.acw-scan-hint{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--mid);line-height:1.5;margin:4px 2px 14px;}
.acw-scan-hint svg{flex-shrink:0;margin-top:2px;color:var(--terra);}
.acw-url-row input{flex:1;}
.acw-analyse-btn{display:none;flex-shrink:0;align-self:center;}
.acw-manual .acw-analyse-btn{display:inline-flex;}

/* Guided ⇄ manual toggle link (bottom-right of the form column) */
.acw-manual-link{background:none;border:none;font-size:12.5px;font-weight:600;color:var(--light);cursor:pointer;padding:8px 10px;border-radius:6px;font-family:var(--font);}
.acw-manual-link:hover{color:var(--charcoal);background:rgba(58,51,46,.05);}

/* Manual mode: all step panels stacked into one page, wizard chrome hidden */
.acw-manual .ob-stepper{display:none;}
.acw-manual .ob-actions{display:none;}
.acw-manual .acw-step{display:block !important;border-top:1px solid var(--taupe);padding-top:1.5rem;margin-top:1.5rem;}
.acw-manual .acw-step::before{content:attr(data-mlabel);display:block;font-size:12px;font-weight:600;color:var(--light);margin-bottom:1.1rem;}
.acw-manual #acw-step-name{border-top:none;padding-top:0;margin-top:6px;}
.acw-manual-foot{display:none;gap:10px;margin-top:1.8rem;padding-bottom:2rem;}
.acw-manual .acw-manual-foot{display:flex;}
/* Step hidden for this role (viewer invites are admin-only) — wins over the
   manual-mode stack rule above. */
.acw-step.acw-hidden{display:none !important;}
/* Connect rows need a created client — the stacked manual form ends at Save instead. */
.acw-manual #acw-step-connect{display:none !important;}

/* More air between the form and the Back / Continue / Create client footer */
.acw-overlay .ob-actions{margin-top:56px;}

/* Client viewers step — the invite action carries the terra weight so it
   outpulls Create client below it. */
.acw-viewer-add{flex-shrink:0;align-self:center;height:52px;padding:0 22px;font-size:14px;border-radius:var(--radius);}
#acw-viewer-suggest{margin-bottom:8px;}

/* Post-create success + connect socials */
.acw-connect-hint{font-size:13px;color:var(--mid);margin:-10px 0 0;}
.acw-connect-modes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px;}
.acw-mode{position:relative;text-align:left;background:var(--white);border:1.5px solid var(--hairline);border-radius:var(--radius-lg);padding:14px 42px 14px 16px;cursor:pointer;font-family:var(--font);transition:border-color .15s,box-shadow .15s;}
.acw-mode:hover{border-color:var(--taupe2);}
.acw-mode.sel{border-color:var(--terra);box-shadow:0 0 0 3px rgba(255,90,48,0.1);}
.acw-mode-dot{position:absolute;top:15px;right:14px;width:16px;height:16px;border-radius:99px;border:1.5px solid var(--taupe2);background:var(--white);transition:border-color .15s,background .15s;}
.acw-mode.sel .acw-mode-dot{border-color:var(--terra);background:var(--terra);box-shadow:inset 0 0 0 3.5px var(--white);}
.acw-mode-t{display:block;font-size:13.5px;font-weight:700;color:var(--charcoal);}
.acw-mode-tag{font-size:10.5px;font-weight:600;color:var(--terra);background:var(--terra-pale);padding:2px 7px;border-radius:99px;margin-left:6px;vertical-align:1px;}
.acw-mode-s{display:block;font-size:12.5px;color:var(--mid);margin-top:3px;line-height:1.45;}
@media(max-width:560px){.acw-connect-modes{grid-template-columns:1fr;}}
.acw-connect-modes+.acw-connect-box{margin-top:12px;}
.acw-connect-box{border:1.5px solid var(--hairline);border-radius:var(--radius-lg);background:var(--white);padding:18px;margin:20px 0 22px;}
.acw-connect-head{font-family:var(--font-display);font-size:14px;font-weight:800;letter-spacing:-.01em;color:var(--charcoal);}
.acw-connect-hint{font-size:12.5px;color:var(--mid);line-height:1.55;margin-top:4px;}
#acw-connect-list{display:flex;flex-direction:column;margin-top:6px;}
.acw-connect-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--hairline);}
.acw-connect-row:last-child{border-bottom:none;padding-bottom:2px;}
.acw-connect-row>svg{width:22px;height:22px;color:var(--charcoal);flex-shrink:0;}
.acw-connect-row>div:not(.cr-actions){flex:1;min-width:0;}
.acw-connect-row .cr-name{font-size:13.5px;font-weight:600;color:var(--charcoal);}
.acw-connect-row .cr-sub{font-size:12px;color:var(--light);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.acw-connect-row .cr-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;}
@media (max-width:640px){
  .acw-connect-row .cr-actions .btn-sm{padding:6px 9px;}
}
/* iOS Safari zooms into any focused control under 16px — hold the wizard's
   fields at 16 on small screens so tapping a form never rescales the page. */
@media (max-width:900px){
  .acw-ff input,.acw-ff textarea,.ob-card select,.acw-chip-hex{font-size:16px;}
}

/* ── iOS shell (KodaApp UA) — glass topbar + full-screen auth ── */
/* Scoped to the same max-width:1024px breakpoint as #mobile-topbar itself
   (app.css:3716) — a wide iPad in landscape gets the normal sidebar/desktop
   chrome, not phone-only overrides with nothing to show a page title. */
.field-forgot{display:none;} /* unscoped: stays hidden above 1024px too, where auth.js's app-only pill has no layout to sit in */
@media(max-width:1024px){
/* Transparent frosted header: no logo, floating rounded-square menu button on
   the left, current-section icon chip on the right. */
.koda-app #mobile-topbar{background:transparent!important;border-bottom:none!important;}
/* Blur lives on a pseudo-element extended past the bar and masked to fade out,
   so the glass dissolves into the page instead of ending in a straight cut. */
.koda-app #mobile-topbar::before{content:'';position:absolute;inset:0 0 -18px 0;z-index:-1;pointer-events:none;
  -webkit-backdrop-filter:blur(20px) saturate(1.8);backdrop-filter:blur(20px) saturate(1.8);
  background:linear-gradient(rgba(239,239,230,.6),rgba(239,239,230,.2));
  -webkit-mask-image:linear-gradient(to bottom,#000 65%,transparent);mask-image:linear-gradient(to bottom,#000 65%,transparent);}
.koda-app #mobile-topbar-logo{display:none!important;}
/* Page titles move off the page into the topbar (label + section icon);
   the dashboard greeting stays — it's a greeting, not a title. */
.koda-app .view-title:not(#dash-greeting){display:none;}
.koda-app #mobile-topbar-label{font-size:15px!important;opacity:.8!important;}
.koda-app #mobile-topbar-icon{display:flex;align-items:center;justify-content:center;margin-left:auto;width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.65);border:1px solid rgba(33,32,31,.08);box-shadow:0 1px 5px rgba(0,0,0,.05);color:var(--charcoal);}
.koda-app #mobile-topbar-icon svg{width:17px;height:17px;}
.koda-app #mobile-topbar button[aria-label="Open menu"]{background:rgba(255,255,255,.65)!important;border:1px solid rgba(33,32,31,.08)!important;border-radius:12px!important;width:38px;height:38px;padding:0!important;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 5px rgba(0,0,0,.05);}
.koda-app #mobile-topbar-home{background:rgba(255,255,255,.65)!important;border:1px solid rgba(33,32,31,.08)!important;border-radius:12px!important;box-shadow:0 1px 5px rgba(0,0,0,.05);height:38px;padding:0 12px 0 9px!important;}

/* The webview draws edge-to-edge (viewport-fit=cover): page backgrounds bleed
   under the transparent status bar/home indicator; only content is padded out. */
.koda-app #page-auth{position:fixed;inset:0;overflow:hidden;overscroll-behavior:none;padding:calc(24px + env(safe-area-inset-top)) 24px calc(56px + env(safe-area-inset-bottom));}
.koda-app .auth-card{width:100%;max-width:400px;margin:0 auto;}
.koda-app #auth-login .field label{display:none;}
.koda-app #auth-login-desc{display:none;}
.koda-app .login-forgot-row{display:none;}
.koda-app .field-forgot{display:block;position:absolute;right:44px;top:50%;transform:translateY(-50%);font-size:12.5px;font-weight:600;color:var(--mid);cursor:pointer;-webkit-tap-highlight-color:transparent;}
.koda-app #auth-login .password-input-wrap input{padding-right:110px;}
.koda-app #auth-login .auth-switch{position:fixed;left:0;right:0;bottom:calc(16px + env(safe-area-inset-bottom));margin:0;z-index:2;}
/* Welcome-first login: logo floats in the upper space, headline + form sit in
   the lower third, terms foot flexes to the bottom. .app-welcome (set on boot
   by app.js) shows the hero CTA; tapping it reveals the email form. */
.koda-app #page-auth .auth-wrap{display:flex;flex-direction:column;height:100%;max-width:400px;margin:0 auto;}
.koda-app #page-auth .auth-card{display:flex;flex-direction:column;flex:1;min-height:0;}
.koda-app #auth-login-title{display:none;}
.koda-app #auth-login{display:flex;flex-direction:column;flex:1;min-height:0;}
/* OTP / forgot / reset panes centre mid-screen like the login form. auth.js
   shows them with style.display='' so the flex here takes effect. */
.koda-app #auth-otp,.koda-app #auth-forgot,.koda-app #auth-reset{display:flex;flex-direction:column;justify-content:center;flex:1;min-height:0;}
.koda-app #app-auth-hero{display:block!important;margin:auto 0;}
.koda-app .app-auth-title{font-family:var(--font-display);font-size:32px;font-weight:800;letter-spacing:-0.035em;color:var(--charcoal);line-height:1.12;margin-bottom:10px;}
.koda-app .app-auth-sub{font-size:15px;color:var(--mid);line-height:1.5;}
.koda-app #auth-login.app-welcome #app-auth-continue{display:flex!important;}
.koda-app #auth-login.app-welcome .field,
.koda-app #auth-login.app-welcome #login-btn,
.koda-app #auth-login.app-welcome #login-error{display:none!important;}
.koda-app #page-auth .btn{padding:16px;border-radius:16px;font-size:16px;}
.koda-app #page-auth .btn-google,.koda-app #page-auth .btn-apple{padding:16px;border-radius:16px;font-size:16px;margin-top:10px;}
.koda-app #page-auth .field input{padding:15px 16px;border-radius:14px;font-size:16px;}
.koda-app #page-auth .auth-foot{margin-top:1.5rem;}
}

/* ── iOS shell (KodaApp UA) — App Store review compliance ── */
/* 3.1.1: no purchase/upgrade surfaces in the app (accounts are billed on the
   web). 4.8: Google sign-in ships alongside Sign in with Apple, and only on
   builds with the KodaAuth plugin (.koda-oauth); signup stays web-only. */
.koda-app .nav-item[data-view="billing"]{display:none!important;}
.koda-app #view-billing{display:none!important;}
.koda-app #trial-banner{display:none!important;}
.koda-app #acct-upgrade-section{display:none!important;}
.koda-app #vp-upgrade-row{display:none!important;}
.koda-app #upgrade-org-modal{display:none!important;}
.koda-app #client-locked-upgrade{display:none!important;}
.koda-app #os-billing-section{display:none!important;}
.koda-app [data-lp="upgrade"]{display:none!important;}
.koda-app:not(.koda-oauth) .btn-google,.koda-app:not(.koda-oauth) .btn-apple{display:none!important;}
.koda-app #auth-signup .btn-google,.koda-app #auth-signup .btn-apple{display:none!important;}
.koda-app #auth-login:not(.app-welcome) .btn-google,.koda-app #auth-login:not(.app-welcome) .btn-apple{display:none!important;}
.koda-app #auth-login .divider{display:none!important;}
.koda-app #auth-login .auth-switch{display:none!important;}

/* ── Moodboard ──────────────────────────────────────────────────────────── */
.mb-boards{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:16px;}
.mb-chip{display:inline-flex;align-items:center;padding:5px 12px;border-radius:999px;font-size:12px;font-weight:600;background:#fff;border:1px solid var(--taupe2);color:var(--mid);cursor:pointer;font-family:var(--font);transition:border-color .15s,color .15s;}
.mb-chip:hover{border-color:var(--taupe);color:var(--charcoal);}
.mb-chip.on{background:var(--terra-pale);border-color:var(--terra);color:var(--terra);}
.mb-chip.mb-chip-new{border-style:dashed;font-weight:500;color:var(--light);}
.mb-chip .mb-count{font-weight:400;opacity:.65;margin-left:3px;}
.mb-chip .mb-dot{width:7px;height:7px;border-radius:50%;margin-right:6px;flex-shrink:0;background:var(--terra);}
.mb-c-green .mb-dot{background:var(--green);}
.mb-c-blue .mb-dot{background:var(--blue);}
.mb-c-amber .mb-dot{background:var(--amber);}
.mb-c-purple .mb-dot{background:var(--purple);}
.mb-c-slate .mb-dot{background:var(--charcoal);}
.mb-chip.on.mb-c-green{background:var(--green-bg);border-color:var(--green);color:var(--green);}
.mb-chip.on.mb-c-blue{background:var(--blue-bg);border-color:var(--blue);color:var(--blue);}
.mb-chip.on.mb-c-amber{background:var(--amber-bg);border-color:var(--amber);color:var(--amber);}
.mb-chip.on.mb-c-purple{background:var(--purple-bg);border-color:var(--purple);color:var(--purple);}
.mb-chip.on.mb-c-slate{background:var(--taupe);border-color:var(--taupe2);color:var(--charcoal);}
#cc-moodboard .view-header .btn-sm,#cc-moodboard .view-header .btn-cta-glow{height:36px;}
/* Board options menu (rename / colour / delete) on the active chip */
.mb-menu-wrap{position:relative;display:inline-flex;}
.mb-chip-menu{padding:5px 10px;line-height:1;}
.mb-menu{display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:60;width:180px;background:#fff;border:1px solid var(--taupe);border-radius:8px;box-shadow:0 8px 24px rgba(26,26,26,.14);padding:5px;}
.mb-menu.open{display:block;}
.mb-menu-item{display:block;width:100%;text-align:left;background:none;border:none;font-family:var(--font);font-size:12.5px;font-weight:500;color:var(--charcoal);padding:7px 9px;border-radius:5px;cursor:pointer;}
.mb-menu-item:hover{background:var(--oat);}
.mb-menu-danger{color:#c0392b;}
.mb-menu-danger:hover{background:#fff0ee;}
.mb-menu-swatches{display:flex;gap:6px;padding:8px 9px;}
/* Viewer mode — public boards render read-only with authoring chrome stripped */
.mb-readonly .view-header .btn-sm,.mb-readonly .view-header .btn-cta-glow,.mb-readonly .cc-back-btn,.mb-readonly .mb-x,.mb-readonly #mb-empty .btn-sm{display:none!important;}
/* Shoot-plan picker rows inside the koda-confirm overlay */
.mb-plan-list{display:flex;flex-direction:column;gap:6px;margin-bottom:1.25rem;max-height:280px;overflow-y:auto;}
.mb-plan-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--taupe2);border-radius:8px;background:var(--white);font-family:var(--font);font-size:13px;font-weight:600;color:var(--charcoal);cursor:pointer;transition:border-color .15s,background .15s;}
.mb-plan-opt:hover{border-color:var(--charcoal);}
.mb-plan-opt.sel{border-color:var(--terra);background:var(--terra-pale);}
.mb-plan-opt-date{font-size:11.5px;font-weight:500;color:var(--light);flex-shrink:0;}
.mb-plan-unlink{font-weight:500;color:var(--red);justify-content:center;}
.mb-swatch{width:15px;height:15px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--taupe2);cursor:pointer;padding:0;background:var(--terra);transition:transform .12s;}
.mb-swatch:hover{transform:scale(1.15);}
.mb-swatch.mb-c-green{background:var(--green);}
.mb-swatch.mb-c-blue{background:var(--blue);}
.mb-swatch.mb-c-amber{background:var(--amber);}
.mb-swatch.mb-c-purple{background:var(--purple);}
.mb-swatch.mb-c-slate{background:var(--charcoal);}
.mb-swatch.sel{box-shadow:0 0 0 2px var(--charcoal);}
/* Masonry — CSS columns keep native aspect ratios; DOM order still drives reorder */
.mb-grid{column-width:200px;column-gap:12px;}
@media (max-width:640px){
  .mb-grid{column-width:auto;column-count:2;column-gap:8px;}
  .mb-tile{margin-bottom:8px;}
}
.mb-tile{position:relative;display:inline-block;width:100%;vertical-align:top;margin:0 0 12px;background:#fff;border:1px solid var(--taupe);border-radius:10px;overflow:hidden;box-shadow:var(--shadow);break-inside:avoid;}
.mb-tile[draggable]{cursor:pointer;}
.mb-tile.mb-dragging{opacity:.35;}
/* Long press is ours (touch reorder) — no iOS image callout, text selection or native drag */
@media (pointer:coarse){.mb-tile[draggable],.mb-tile[draggable] img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;}}
.mb-tile[draggable]{-webkit-tap-highlight-color:transparent;}
.mb-tile.mb-pressing{transform:scale(.96);transition:transform .25s ease,opacity .15s ease;}
.mb-tile.mb-lifted{opacity:.3;}
.mb-tile.mb-landing{visibility:hidden;}
.mb-drop-line{position:fixed;height:3px;border-radius:2px;background:var(--terra);z-index:1001;pointer-events:none;opacity:0;transition:top .1s ease,left .1s ease,width .1s ease,opacity .12s ease;}
.mb-drop-line.on{opacity:1;}
.mb-ghost{position:fixed;left:0;top:0;margin:0;z-index:1000;pointer-events:none;will-change:transform;opacity:.9;box-shadow:0 12px 32px rgba(10,10,10,.22);}
.mb-ghost .mb-x{display:none;}
.mb-thumb{position:relative;background:var(--taupe);min-height:40px;}
.mb-thumb img,.mb-thumb video{width:100%;height:auto;display:block;}
.mb-badge{position:absolute;top:8px;left:8px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:5px;background:rgba(26,26,26,.72);color:#fff;z-index:2;}
.mb-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.88);display:flex;align-items:center;justify-content:center;z-index:2;pointer-events:none;}
.mb-play::after{content:'';width:0;height:0;border-left:10px solid var(--charcoal);border-top:6px solid transparent;border-bottom:6px solid transparent;margin-left:3px;}
.mb-scrim{position:absolute;left:0;right:0;bottom:0;padding:22px 10px 8px;background:linear-gradient(transparent,rgba(26,26,26,.66));opacity:0;transition:opacity .15s;z-index:2;pointer-events:none;}
.mb-scrim .mb-name{display:block;font-size:11.5px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mb-tile:hover .mb-scrim{opacity:1;}
.mb-x{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;border:none;padding:0;background:rgba(26,26,26,.6);color:#fff;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s;z-index:3;}
.mb-tile:hover .mb-x{opacity:1;}
/* Uploading tiles — the file's own preview, dimmed, with the percentage on top */
.mb-up-veil{position:absolute;inset:0;background:rgba(239,239,230,.55);display:flex;align-items:center;justify-content:center;z-index:2;}
.mb-up-pct{font-size:12px;font-weight:700;color:var(--charcoal);background:rgba(255,255,255,.9);padding:3px 9px;border-radius:999px;font-variant-numeric:tabular-nums;}
.mb-note-tile{background:var(--t1);border-color:var(--t2);padding:14px;}
.mb-note-body{font-size:12.5px;line-height:1.5;color:var(--burgundy);white-space:pre-wrap;}
.mb-note-src{margin-top:10px;font-size:10.5px;color:var(--burgundy);opacity:.55;}
/* Thumbless link tiles — caption card while the preview backfills */
.mb-link-card{background:var(--oat);padding:14px;cursor:pointer;}
.mb-link-card-body{font-size:12.5px;line-height:1.5;color:var(--charcoal);display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;}
.mb-link-card-src{margin-top:10px;font-size:10.5px;color:var(--light);}
/* Lightbox — frosted backdrop; the solid colour is the no-backdrop-filter fallback.
   z 900: above mobile-topbar (800) and sidebar (850) so the close X stays reachable */
.mb-lb{position:fixed;inset:0;z-index:900;background:#181512;display:flex;align-items:center;justify-content:center;padding:40px 72px;}
@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)){
  .mb-lb{background:rgba(24,21,18,.55);backdrop-filter:blur(20px) saturate(.8);-webkit-backdrop-filter:blur(20px) saturate(.8);}
}
.mb-lb{animation:mbLbFade .16s ease;}
.mb-lb.mb-lb-opening .mb-lb-inner{animation:mbLbPop .24s cubic-bezier(.2,.9,.3,1.05);}
@keyframes mbLbFade{from{opacity:0;}}
@keyframes mbLbPop{from{opacity:0;transform:scale(.94);}}
@media (prefers-reduced-motion:reduce){.mb-lb,.mb-lb.mb-lb-opening .mb-lb-inner{animation:none;}}
.mb-lb-inner{display:flex;align-items:center;gap:22px;max-width:100%;max-height:100%;}
.mb-lb-stage img,.mb-lb-stage video{max-width:min(62vw,860px);max-height:calc(100vh - 96px);border-radius:8px;display:block;box-shadow:0 12px 40px rgba(0,0,0,.4);}
.mb-lb-caption{width:340px;max-width:60vw;background:var(--oat);border-radius:10px;padding:22px;font-size:13.5px;line-height:1.6;color:var(--charcoal);}
.mb-lb-side{width:210px;flex-shrink:0;color:#fff;}
.mb-lb-name{font-size:14px;font-weight:700;word-break:break-word;}
.mb-lb-meta{font-size:12px;color:rgba(255,255,255,.65);margin-top:4px;}
.mb-lb-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;}
.mb-lb-actions .btn-sm{background:rgba(255,255,255,.94);border-color:transparent;color:var(--charcoal);}
.mb-lb-actions .btn-sm:hover{background:#fff;}
.mb-lb-arrow{position:fixed;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:none;padding:0;background:rgba(255,255,255,.12);color:#fff;font-size:26px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;}
.mb-lb-arrow:hover{background:rgba(255,255,255,.22);}
.mb-lb-prev{left:16px;}
.mb-lb-next{right:16px;}
.mb-lb-close{position:fixed;top:calc(env(safe-area-inset-top) + 16px);right:16px;z-index:901;width:36px;height:36px;border-radius:50%;border:none;padding:0;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--charcoal);font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.25);transition:transform .12s,background .15s;}
.mb-lb-close:hover{background:#fff;transform:scale(1.06);}
@media(max-width:720px){
  .mb-lb{padding:calc(env(safe-area-inset-top) + 64px) 16px 16px;}
  .mb-lb-inner{flex-direction:column;align-items:stretch;gap:12px;overflow-y:auto;}
  .mb-lb-stage img,.mb-lb-stage video{max-width:100%;max-height:60vh;margin:0 auto;}
  .mb-lb-side{width:auto;}
  .mb-lb-arrow{display:none;}
}

/* Paywall — a window over the blurred app. The solid tint is the
   no-backdrop-filter fallback, same pattern as the moodboard lightbox. */
html.paywall-open,body.paywall-open{overflow:hidden;}
.paywall-scrim{position:fixed;inset:0;z-index:9998;display:flex;align-items:center;justify-content:center;padding:32px 20px;overflow-y:auto;background:var(--oat);}
@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)){
  .paywall-scrim{background:rgba(19,19,19,.20);backdrop-filter:blur(16px) saturate(1.1);-webkit-backdrop-filter:blur(16px) saturate(1.1);}
}
.paywall-window{width:100%;max-width:1000px;margin:auto;background:var(--white);border:1px solid var(--taupe);border-radius:14px;box-shadow:0 24px 64px rgba(19,19,19,.24);padding:34px 34px 22px;display:flex;flex-direction:column;gap:22px;transition:max-width .22s ease;}
.paywall-head{text-align:center;}
.paywall-head h1{font-family:var(--font-display);font-size:26px;font-weight:800;letter-spacing:-0.03em;margin-bottom:8px;text-wrap:balance;}
.paywall-head p{font-size:14px;color:var(--mid);line-height:1.6;max-width:560px;margin:0 auto;}
#paywall-web{display:flex;flex-direction:column;gap:20px;}

.pw-plans{display:grid;gap:14px;align-items:stretch;padding-block:8px;}
.pw-plans.single{grid-template-columns:minmax(0,420px);justify-content:center;}
.pw-hero,.pw-small{background:var(--white);border-radius:12px;display:flex;flex-direction:column;text-align:left;}
.pw-hero{border:1.5px solid var(--charcoal);padding:22px;gap:13px;margin-block:-8px;box-shadow:0 10px 30px rgba(19,19,19,.08);}
.pw-plans:not(.single) .pw-hero{animation:pwFocus .18s ease-out;}
@keyframes pwFocus{from{opacity:.55;}to{opacity:1;}}
@media (prefers-reduced-motion:reduce){.pw-plans .pw-hero{animation:none;}}
.pw-small{border:1px solid var(--taupe);padding:20px;gap:12px;font-family:var(--font);color:var(--charcoal);cursor:pointer;transition:border-color .15s,background .15s;}
.pw-small:hover{border-color:var(--taupe2);background:#fdfcf9;}
.pw-small:focus-visible{outline:2px solid var(--terra);outline-offset:2px;}
.pw-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:20px;}
.pw-card-name{font-size:15px;font-weight:500;}
.pw-badge{font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--terra);color:var(--charcoal);padding:3px 7px;border-radius:5px;white-space:nowrap;}
.pw-match{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--mid);}
.pw-match::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--terra);flex-shrink:0;}
.pw-lead{font-size:18px;font-weight:500;letter-spacing:-0.01em;line-height:1.2;}
.pw-hero .pw-lead{font-size:22px;}
.pw-lead small{display:block;font-size:12.5px;font-weight:400;letter-spacing:0;color:var(--mid);margin-top:3px;}
.pw-price{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;}
.pw-amount{font-size:30px;font-weight:500;letter-spacing:-0.03em;font-variant-numeric:tabular-nums;}
.pw-hero .pw-amount{font-size:38px;}
.pw-per{font-size:12.5px;color:var(--mid);}
.pw-hero .btn-sm{justify-content:center;height:48px;font-size:15px;}
.pw-hero .btn-outline{height:44px;font-size:14px;margin-top:-5px;}
.pw-select{margin-top:auto;font-size:13.5px;font-weight:500;text-align:center;border:1px solid var(--taupe2);border-radius:8px;padding:11px 0;}
.pw-small:hover .pw-select{border-color:var(--charcoal);}
.pw-code{font-size:12px;color:var(--mid);text-align:center;}
.pw-link{background:none;border:none;padding:11px 2px;min-height:44px;font-family:var(--font);font-size:12.5px;color:var(--charcoal);text-decoration:underline;text-underline-offset:3px;cursor:pointer;}
.pw-link:hover{color:var(--terra-light);}
.bp-features a{color:inherit;text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--taupe2);}
.bp-features a:hover{color:var(--terra-light);text-decoration-color:currentColor;}

.paywall-foot{display:flex;align-items:center;justify-content:space-between;gap:4px 16px;flex-wrap:wrap;border-top:1px solid var(--taupe);padding-top:8px;}
.paywall-foot span{font-size:12.5px;color:var(--mid);}
.pw-foot-r{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
#paywall-ios{max-width:460px;margin:0 auto;text-align:center;}
#paywall-ios p{font-size:14px;color:var(--mid);line-height:1.6;}
@media (max-width:760px){
  .pw-plans,.pw-plans.single{grid-template-columns:minmax(0,1fr)!important;gap:8px;padding-block:0;}
  .pw-hero{margin-block:0;}
  .pw-small{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 12px;padding:13px 16px;}
  .pw-small .pw-lead{font-size:12.5px;font-weight:400;color:var(--mid);grid-row:2;}
  .pw-small .pw-lead small,.pw-small .pw-select{display:none;}
  .pw-small .pw-price{grid-column:2;grid-row:1 / 3;}
  .pw-small .pw-amount{font-size:20px;}
  .pw-small .pw-per{display:none;}
  .pw-small .pw-card-top{justify-content:flex-start;}
}
@media (max-width:640px){
  .paywall-scrim{padding:16px;align-items:flex-start;}
  .paywall-window{padding:22px 18px 16px;}
  .paywall-head h1{font-size:21px;}
  .pw-hero .pw-amount{font-size:34px;}
  .pw-hero .pw-lead{font-size:20px;}
  .paywall-foot{flex-direction:column;align-items:flex-start;gap:0;}
}
