/*
Theme Name: Deccan Digital Newsroom
Theme URI: https://deccandigital.hayax.in
Author: Deccan Digital Team
Description: Internal newsroom portal — news submission, daily rundown, teleprompter studio, production-hours and attendance tracking, script history, storage management and a full admin command centre, with six switchable design skins.
Version: 5.5.4
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: dd-newsroom
*/

/* ==========================================================================
   SKIN 1 — NEWSROOM BOLD  (neubrutalist)
   Hard black outlines, solid offset shadows, zero blur. Everything is a
   flat block that looks physically stacked on the page.
   ========================================================================== */

:root {
  --bg:#FFFCF2; --panel:#FFFFFF; --sunken:#F4F0E2; --line:#16140F;
  --ink:#16140F; --muted:#5F5B50;
  --accent:#FF6B2C; --accent-hi:#E85A1D; --on-accent:#16140F;
  --ok:#0E8A4F; --ok-bg:#C9F5DC; --warn:#8A5A00; --warn-bg:#FFE9A8;
  --bad:#D22B2B; --bad-bg:#FFD9D9; --neutral-bg:#EBE6D6;
  --shadow:4px 4px 0 var(--ink);
  --r:6px; --r-sm:4px; --pill:999px;
  --f-display:'Space Grotesk','Inter',sans-serif;
  --f-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,monospace;
  --f-dev:'Noto Sans Devanagari','Noto Sans',var(--f-body);
  --display-weight:700; --display-spacing:-.03em; --display-transform:none;
  --rule:2px;
}

[data-dd-theme="dark"] {
  --bg:#14120D; --panel:#1E1B14; --sunken:#0D0B08; --line:#F3F1EA;
  --ink:#F3F1EA; --muted:#A19C8E;
  --accent:#FF8A4C; --accent-hi:#FFA06B; --on-accent:#14120D;
  --ok:#4ADE80; --ok-bg:#123521; --warn:#FBBF24; --warn-bg:#3A2C0C;
  --bad:#FF6B6B; --bad-bg:#3A1717; --neutral-bg:#282419;
  --shadow:4px 4px 0 var(--ink);
}

[data-dd-skin="bold"] .dd-card,
[data-dd-skin="bold"] .dd-news-card,
[data-dd-skin="bold"] .dd-stat,
[data-dd-skin="bold"] .dd-rundown-item,
[data-dd-skin="bold"] .dd-rundown-total {
  border:var(--rule) solid var(--ink);
  box-shadow:var(--shadow);
}
[data-dd-skin="bold"] .dd-btn { border:var(--rule) solid var(--ink); box-shadow:3px 3px 0 var(--ink); }
[data-dd-skin="bold"] .dd-btn:hover { transform:translate(1px,1px); box-shadow:2px 2px 0 var(--ink); }
[data-dd-skin="bold"] .dd-btn:active { transform:translate(3px,3px); box-shadow:0 0 0 var(--ink); }
[data-dd-skin="bold"] .dd-btn-ghost { background:var(--panel); }
[data-dd-skin="bold"] .dd-badge { border:1.5px solid var(--ink); }
[data-dd-skin="bold"] .dd-topbar { border-bottom:var(--rule) solid var(--ink); }
[data-dd-skin="bold"] .dd-filter-pill { border:1.5px solid var(--ink); }
[data-dd-skin="bold"] .dd-field input,
[data-dd-skin="bold"] .dd-field select,
[data-dd-skin="bold"] .dd-field textarea { border:1.5px solid var(--ink); }
[data-dd-skin="bold"] .dd-logo-mark { border:var(--rule) solid var(--ink); box-shadow:3px 3px 0 var(--ink); }

/* ==========================================================================
   SKIN 2 — BROADSHEET  (minimalist editorial)
   Hairline rules, no shadows, a large type scale and a lot of air.
   ========================================================================== */

[data-dd-skin="broadsheet"] {
  --bg:#FDFCF9; --panel:#FFFFFF; --sunken:#F5F2EB; --line:#E6E1D6;
  --ink:#17150F; --muted:#7A7365;
  --accent:#A4161A; --accent-hi:#87090D; --on-accent:#FFFFFF;
  --ok:#1E6B3A; --ok-bg:#E6F0E8; --warn:#8A5A00; --warn-bg:#F8EFD9;
  --bad:#A4161A; --bad-bg:#F7E6E6; --neutral-bg:#EDE9DF;
  --shadow:none;
  --r:0; --r-sm:0; --pill:0;
  --f-display:'Newsreader',Georgia,serif;
  --display-weight:500; --display-spacing:-.02em; --display-transform:none;
  --rule:1px;
}

[data-dd-skin="broadsheet"][data-dd-theme="dark"] {
  --bg:#141210; --panel:#1B1815; --sunken:#0E0C0A; --line:#2E2921;
  --ink:#F2EEE4; --muted:#968E80;
  --accent:#E4574B; --accent-hi:#F27166; --on-accent:#141210;
  --ok:#68C68A; --ok-bg:#16281D; --warn:#E0AB4F; --warn-bg:#2C2412;
  --bad:#E4574B; --bad-bg:#2E1B18; --neutral-bg:#241F19;
  --shadow:none;
}

[data-dd-skin="broadsheet"] h1 { font-size:34px; line-height:1.12; }
[data-dd-skin="broadsheet"] h2 { font-size:23px; }
[data-dd-skin="broadsheet"] .dd-news-title { font-size:20px; line-height:1.25; }
[data-dd-skin="broadsheet"] .dd-card,
[data-dd-skin="broadsheet"] .dd-news-card,
[data-dd-skin="broadsheet"] .dd-stat { border-width:var(--rule); box-shadow:none; }
[data-dd-skin="broadsheet"] .dd-card-pad { padding:34px; }
[data-dd-skin="broadsheet"] .dd-news-body { padding:20px 22px 22px; }
[data-dd-skin="broadsheet"] .dd-container { max-width:760px; }
[data-dd-skin="broadsheet"] .dd-topbar { border-bottom-width:3px; border-bottom-style:double; }
[data-dd-skin="broadsheet"] .dd-btn { border-radius:0; font-weight:500; letter-spacing:.02em; }
[data-dd-skin="broadsheet"] .dd-btn-ghost { border-color:var(--ink); }
[data-dd-skin="broadsheet"] .dd-badge {
  background:none !important; border-bottom:1px solid currentColor;
  border-radius:0; padding:2px 0; margin-right:10px; letter-spacing:.1em;
}
[data-dd-skin="broadsheet"] .dd-feed-grid { gap:26px; }
[data-dd-skin="broadsheet"] .dd-modal-script { font-size:16px; line-height:1.85; }

/* ==========================================================================
   SKIN 3 — CONTROL ROOM  (bento)
   Tight rectangular modules packed edge to edge, dense and instrument-like.
   ========================================================================== */

[data-dd-skin="control"] {
  --bg:#EEF2F4; --panel:#FFFFFF; --sunken:#E2E9EC; --line:#CFD9DD;
  --ink:#0F1416; --muted:#56676D;
  --accent:#0E7490; --accent-hi:#0B5C73; --on-accent:#FFFFFF;
  --ok:#047857; --ok-bg:#D1FAE5; --warn:#B45309; --warn-bg:#FEF3C7;
  --bad:#BE123C; --bad-bg:#FFE4E6; --neutral-bg:#DBE3E6;
  --shadow:none;
  --r:12px; --r-sm:8px; --pill:6px;
  --f-display:'JetBrains Mono',ui-monospace,monospace;
  --display-weight:700; --display-spacing:-.04em; --display-transform:none;
}

[data-dd-skin="control"][data-dd-theme="dark"] {
  --bg:#080C0E; --panel:#111A1D; --sunken:#0B1113; --line:#1D2A2E;
  --ink:#E8EDEF; --muted:#7D8F95;
  --accent:#22D3EE; --accent-hi:#67E8F9; --on-accent:#070B0D;
  --ok:#34D399; --ok-bg:#052E22; --warn:#FBBF24; --warn-bg:#2E2408;
  --bad:#FB7185; --bad-bg:#33131C; --neutral-bg:#162126;
  --shadow:none;
}

/* Bento: small gaps, chunky modules, no floating shadows. */
[data-dd-skin="control"] .dd-feed-grid { gap:10px; }
[data-dd-skin="control"] .dd-stat-grid { gap:10px; }
[data-dd-skin="control"] .dd-rundown-list { gap:8px; }
[data-dd-skin="control"] .dd-stat { padding:20px; }
[data-dd-skin="control"] .dd-stat-value { font-size:34px; }
[data-dd-skin="control"] .dd-card,
[data-dd-skin="control"] .dd-news-card,
[data-dd-skin="control"] .dd-stat { box-shadow:none; border-width:1px; }
[data-dd-skin="control"] .dd-news-thumb { height:150px; }
[data-dd-skin="control"] .dd-badge { border-radius:5px; }
[data-dd-skin="control"] .dd-btn { border-radius:6px; }
[data-dd-skin="control"] .dd-topbar { border-bottom:2px solid var(--accent); }
[data-dd-skin="control"] .dd-stat-value,
[data-dd-skin="control"] .dd-news-title { font-family:var(--f-mono); }
[data-dd-skin="control"] .dd-logo-mark { border-radius:8px; }

/* ==========================================================================
   SKIN 4 — MIDNIGHT STUDIO  (soft modern)
   ========================================================================== */

[data-dd-skin="midnight"] {
  --bg:#F6F5FC; --panel:#FFFFFF; --sunken:#EDEBF8; --line:#E1DEF2;
  --ink:#191A26; --muted:#6B6A85;
  --accent:#6D5AE6; --accent-hi:#5B47D6; --on-accent:#FFFFFF;
  --ok:#10937A; --ok-bg:#D6F5EE; --warn:#B26A00; --warn-bg:#FDEED6;
  --bad:#D4356B; --bad-bg:#FCE3EC; --neutral-bg:#E6E4F2;
  --shadow:0 1px 2px rgba(25,26,38,.04), 0 10px 30px rgba(87,71,214,.08);
  --r:18px; --r-sm:11px; --pill:999px;
  --f-display:'Plus Jakarta Sans','Inter',sans-serif;
  --f-body:'Plus Jakarta Sans','Inter',sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,monospace;
  --display-weight:800; --display-spacing:-.03em; --display-transform:none;
}

[data-dd-skin="midnight"][data-dd-theme="dark"] {
  --bg:#0E0F17; --panel:#171827; --sunken:#0A0B12; --line:#25263A;
  --ink:#EEEDF6; --muted:#9A98B5;
  --accent:#8B7BFF; --accent-hi:#A395FF; --on-accent:#0E0F17;
  --ok:#3DDCB4; --ok-bg:#0D2E28; --warn:#F5C46B; --warn-bg:#332714;
  --bad:#FF7BA6; --bad-bg:#331926; --neutral-bg:#202132;
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 12px 34px rgba(0,0,0,.45);
}

[data-dd-skin="midnight"] .dd-btn-primary {
  background:linear-gradient(135deg, var(--accent) 0%, var(--accent-hi) 100%);
  border:none;
}
[data-dd-skin="midnight"] .dd-topbar { border-bottom:none; box-shadow:var(--shadow); position:relative; z-index:2; }
[data-dd-skin="midnight"] .dd-news-card { transition:transform .18s ease; }
[data-dd-skin="midnight"] .dd-news-card:hover { transform:translateY(-2px); }
[data-dd-skin="midnight"] .dd-stat { border-color:transparent; }
[data-dd-skin="midnight"] .dd-badge { font-family:var(--f-body); letter-spacing:0; text-transform:none; font-size:11px; }
[data-dd-skin="midnight"] .dd-logo-mark { border-radius:12px; background:linear-gradient(135deg, var(--accent), var(--accent-hi)); }

/* ==========================================================================
   SKIN 5 — JAPANDI
   Warm oak and muted sage, generous spacing, nothing shouting. Built for
   people who stare at this for hours.
   ========================================================================== */

[data-dd-skin="japandi"] {
  --bg:#F4F1EA; --panel:#FCFAF5; --sunken:#EAE5D9; --line:#DED6C6;
  --ink:#2E2A24; --muted:#7C7365;
  --accent:#6E7F63; --accent-hi:#5B6B51; --on-accent:#FCFAF5;
  --ok:#5F7A4F; --ok-bg:#E2EBDC; --warn:#A87F3D; --warn-bg:#F5EAD6;
  --bad:#A65A4E; --bad-bg:#F3E2DE; --neutral-bg:#E5DFD1;
  --shadow:0 1px 2px rgba(46,42,36,.03), 0 6px 18px rgba(46,42,36,.05);
  --r:12px; --r-sm:8px; --pill:999px;
  --f-display:'Nunito Sans',sans-serif;
  --f-body:'Nunito Sans',-apple-system,sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,monospace;
  --display-weight:700; --display-spacing:-.015em; --display-transform:none;
}

[data-dd-skin="japandi"][data-dd-theme="dark"] {
  --bg:#1F1C17; --panel:#282420; --sunken:#171410; --line:#3A342B;
  --ink:#EDE7DA; --muted:#9E9585;
  --accent:#9CB08C; --accent-hi:#B2C4A2; --on-accent:#1F1C17;
  --ok:#8FB07B; --ok-bg:#20301C; --warn:#D8B171; --warn-bg:#332715;
  --bad:#D4907F; --bad-bg:#33211D; --neutral-bg:#2E2921;
}

[data-dd-skin="japandi"] .dd-card-pad { padding:30px; }
[data-dd-skin="japandi"] .dd-news-body { padding:19px 21px 21px; }
[data-dd-skin="japandi"] .dd-feed-grid { gap:22px; }
[data-dd-skin="japandi"] body.dd-newsroom,
[data-dd-skin="japandi"] .dd-modal-script { line-height:1.7; }
[data-dd-skin="japandi"] .dd-badge { text-transform:none; letter-spacing:.02em; font-family:var(--f-body); font-weight:600; }
[data-dd-skin="japandi"] .dd-topbar { border-bottom:1px solid var(--line); }
[data-dd-skin="japandi"] .dd-btn { font-weight:600; }
[data-dd-skin="japandi"] .dd-logo-mark { border-radius:50%; }
[data-dd-skin="japandi"] .dd-ticker-wrap { background:var(--accent); }
[data-dd-skin="japandi"] .dd-ticker-label { background:rgba(0,0,0,.18); }

/* ==========================================================================
   SKIN 6 — GLASS
   Frosted panels, used only where text doesn't live: the top bar, the
   filter bar and modals. Content surfaces stay near-opaque so scripts
   remain readable and cheap phones don't have to blur a wall of text.
   ========================================================================== */

[data-dd-skin="glass"] {
  --bg:#E9EDFB; --panel:rgba(255,255,255,.93); --sunken:rgba(233,237,251,.85);
  --line:rgba(120,130,190,.22);
  --ink:#151A2E; --muted:#5D6684;
  --accent:#4F6BF6; --accent-hi:#3B57E0; --on-accent:#FFFFFF;
  --ok:#0E9B72; --ok-bg:rgba(16,185,129,.14); --warn:#B0730B; --warn-bg:rgba(245,158,11,.16);
  --bad:#D93A5B; --bad-bg:rgba(217,58,91,.13); --neutral-bg:rgba(120,130,190,.14);
  --shadow:0 2px 6px rgba(30,40,90,.06), 0 14px 40px rgba(50,70,180,.10);
  --r:16px; --r-sm:10px; --pill:999px;
  --f-display:'Outfit','Inter',sans-serif;
  --f-body:'Inter',-apple-system,sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,monospace;
  --display-weight:600; --display-spacing:-.02em; --display-transform:none;
}

[data-dd-skin="glass"][data-dd-theme="dark"] {
  --bg:#0B1024; --panel:rgba(24,30,56,.92); --sunken:rgba(12,17,38,.85);
  --line:rgba(150,170,255,.16);
  --ink:#EAEEFF; --muted:#939BC4;
  --accent:#7E96FF; --accent-hi:#9AACFF; --on-accent:#0B1024;
  --ok:#3EDCA8; --ok-bg:rgba(62,220,168,.14); --warn:#F2C05B; --warn-bg:rgba(242,192,91,.14);
  --bad:#FF7A9C; --bad-bg:rgba(255,122,156,.14); --neutral-bg:rgba(150,170,255,.12);
  --shadow:0 2px 6px rgba(0,0,0,.4), 0 16px 44px rgba(0,0,0,.45);
}

[data-dd-skin="glass"] body.dd-newsroom {
  background-image:
    radial-gradient(circle at 12% 8%, rgba(120,150,255,.30), transparent 42%),
    radial-gradient(circle at 88% 4%, rgba(190,140,255,.26), transparent 40%),
    radial-gradient(circle at 60% 96%, rgba(110,215,235,.22), transparent 46%);
  background-attachment:fixed;
}
[data-dd-skin="glass"][data-dd-theme="dark"] body.dd-newsroom {
  background-image:
    radial-gradient(circle at 12% 8%, rgba(70,95,220,.34), transparent 44%),
    radial-gradient(circle at 88% 4%, rgba(130,70,220,.30), transparent 42%),
    radial-gradient(circle at 60% 96%, rgba(30,150,180,.26), transparent 48%);
}

/* Blur is limited to chrome, never to a surface holding body text. */
[data-dd-skin="glass"] .dd-topbar,
[data-dd-skin="glass"] .dd-filter-bar,
[data-dd-skin="glass"] .dd-tabs,
[data-dd-skin="glass"] .dd-modal,
[data-dd-skin="glass"] .dd-bulk-bar,
[data-dd-skin="glass"] .dd-beats-strip {
  -webkit-backdrop-filter:blur(16px) saturate(150%);
  backdrop-filter:blur(16px) saturate(150%);
}
[data-dd-skin="glass"] .dd-topbar { background:rgba(255,255,255,.62); }
[data-dd-skin="glass"][data-dd-theme="dark"] .dd-topbar { background:rgba(20,26,52,.62); }
[data-dd-skin="glass"] .dd-card,
[data-dd-skin="glass"] .dd-news-card,
[data-dd-skin="glass"] .dd-stat,
[data-dd-skin="glass"] .dd-rundown-item { border:1px solid var(--line); }
[data-dd-skin="glass"] .dd-btn-primary { box-shadow:0 6px 18px rgba(79,107,246,.35); }
[data-dd-skin="glass"] .dd-logo-mark { border-radius:14px; }
[data-dd-skin="glass"] .dd-badge { text-transform:none; letter-spacing:.01em; font-family:var(--f-body); font-weight:600; }

@media (prefers-reduced-transparency:reduce) {
  [data-dd-skin="glass"] .dd-topbar,
  [data-dd-skin="glass"] .dd-filter-bar,
  [data-dd-skin="glass"] .dd-tabs,
  [data-dd-skin="glass"] .dd-modal,
  [data-dd-skin="glass"] .dd-bulk-bar,
  [data-dd-skin="glass"] .dd-beats-strip {
    -webkit-backdrop-filter:none; backdrop-filter:none;
  }
}

/* ==========================================================================
   BASE
   ========================================================================== */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}

/* The browser's own [hidden] rule is weaker than any author display
   declaration, so an element with display:flex stays visible even when
   the attribute is set. This makes the attribute authoritative again. */
[hidden]{display:none !important}

body.dd-newsroom{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--f-body); font-size:15px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
  transition:background-color .2s ease,color .2s ease;
}

img{max-width:100%;display:block}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-hi)}

h2 .dd-icon,h3 .dd-icon{color:var(--accent);vertical-align:-0.12em}

h1,h2,h3,h4{
  font-family:var(--f-display); font-weight:var(--display-weight);
  letter-spacing:var(--display-spacing); text-transform:var(--display-transform);
  margin:0 0 .4em; color:var(--ink);
}
h1{font-size:26px} h2{font-size:20px} h3{font-size:17px}

:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

.dd-mono-label{
  font-family:var(--f-mono);font-size:10.5px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
}

/* ==========================================================================
   ICONS
   One set, six personalities. Skins vary stroke weight, line caps and
   fill rather than shipping six separate icon sets.
   ========================================================================== */

.dd-icon{
  width:1.05em;height:1.05em;flex:0 0 auto;
  stroke-width:var(--icon-stroke,2);
  stroke-linecap:var(--icon-cap,round);
  stroke-linejoin:var(--icon-join,round);
  vertical-align:-0.15em;
}
.dd-icon-lg{width:1.4em;height:1.4em}
.dd-icon-xl{width:22px;height:22px}

:root{ --icon-stroke:2.6; --icon-cap:butt; --icon-join:miter; }
[data-dd-skin="broadsheet"]{ --icon-stroke:1.2; --icon-cap:butt; --icon-join:miter; }
[data-dd-skin="control"]{ --icon-stroke:2; --icon-cap:square; --icon-join:miter; }
[data-dd-skin="midnight"]{ --icon-stroke:2; --icon-cap:round; --icon-join:round; }
[data-dd-skin="japandi"]{ --icon-stroke:1.5; --icon-cap:round; --icon-join:round; }
[data-dd-skin="glass"]{ --icon-stroke:1.8; --icon-cap:round; --icon-join:round; }

/* Midnight gives its accent icons a soft glow. */
[data-dd-skin="midnight"] .dd-btn-primary .dd-icon{ filter:drop-shadow(0 0 4px rgba(255,255,255,.45)); }

/* ==========================================================================
   TOPBAR
   ========================================================================== */

.dd-topbar{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:13px 22px;border-bottom:var(--rule,1px) solid var(--line);
  background:var(--panel);flex-wrap:wrap;
}
.dd-logo{display:flex;align-items:center;gap:10px}
.dd-logo-mark{
  width:34px;height:34px;border-radius:var(--r-sm);background:var(--accent);
  color:var(--on-accent);font-family:var(--f-display);font-weight:700;font-size:14px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.dd-logo-text{font-family:var(--f-display);font-weight:var(--display-weight);font-size:19px}
.dd-logo-text span{color:var(--accent)}
.dd-pill-tag{
  font-family:var(--f-mono);font-size:10px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;padding:3px 9px;border-radius:var(--pill);
  border:1px solid var(--line);color:var(--muted);
}
.dd-topbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dd-user-chip{font-size:12.5px;color:var(--muted);line-height:1.3}
.dd-user-chip strong{color:var(--ink);display:block;font-size:13px}

/* ==========================================================================
   BUTTONS
   ========================================================================== */

.dd-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  font-family:var(--f-body);font-size:13.5px;font-weight:600;
  padding:9px 16px;border-radius:var(--r-sm);border:1px solid transparent;
  cursor:pointer;line-height:1.2;white-space:nowrap;
  transition:background-color .15s ease,border-color .15s ease,transform .05s ease;
}
.dd-btn:active{transform:translateY(1px)}
.dd-btn-primary{background:var(--accent);color:var(--on-accent)}
.dd-btn-primary:hover{background:var(--accent-hi);color:var(--on-accent)}
.dd-btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}
.dd-btn-ghost:hover{background:var(--sunken);color:var(--ink)}
.dd-btn-danger{background:transparent;border-color:var(--bad);color:var(--bad)}
.dd-btn-danger:hover{background:var(--bad-bg)}
.dd-btn-ok{background:var(--ok);color:#fff}
.dd-btn-sm{padding:6px 11px;font-size:12px}
.dd-btn-block{width:100%}
.dd-btn[disabled]{opacity:.5;cursor:not-allowed}

.dd-theme-toggle{
  width:36px;height:36px;border-radius:var(--pill);border:1px solid var(--line);
  background:var(--bg);display:flex;align-items:center;justify-content:center;
  cursor:pointer;color:var(--ink);flex-shrink:0;
}
.dd-theme-toggle:hover{border-color:var(--accent)}
.dd-theme-toggle svg{width:16px;height:16px}

/* ==========================================================================
   PRODUCTION TOGGLE
   ========================================================================== */

.dd-production-box{
  display:flex;align-items:center;gap:10px;background:var(--sunken);
  border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 12px;font-size:12px;
}
.dd-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex-shrink:0}
.dd-production-box.on .dd-dot{background:var(--ok);box-shadow:0 0 0 3px var(--ok-bg)}
.dd-production-hours{font-family:var(--f-mono);font-weight:700;font-size:13px;color:var(--ink)}

/* ==========================================================================
   TICKER
   ========================================================================== */

.dd-ticker-wrap{
  background:var(--bad);color:#fff;display:flex;align-items:center;
  overflow:hidden;white-space:nowrap;min-width:0;position:relative;
}
/* Opaque, and stacked above the track. A translucent label let the
   scrolling text show straight through it, which read as overlapping. */
.dd-ticker-label{
  position:relative;z-index:2;flex:0 0 auto;
  padding:8px 14px;
  background-color:var(--bad);
  background-image:linear-gradient(rgba(0,0,0,.3),rgba(0,0,0,.3));
  font-family:var(--f-mono);font-size:11px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;
}
/* The marquee clips inside its own box rather than the whole bar, so it
   physically cannot reach the label. */
.dd-ticker-viewport{flex:1 1 auto;min-width:0;overflow:hidden;position:relative;z-index:1}
.dd-ticker-track{
  display:flex;flex:0 0 auto;width:max-content;
  animation:dd-tick 42s linear infinite;padding:8px 0;
}
.dd-ticker-track:hover{animation-play-state:paused}
.dd-ticker-item{
  flex:0 0 auto;padding:0 32px;font-size:13px;font-weight:500;
  white-space:nowrap;border-right:1px solid rgba(255,255,255,.3);
}
@keyframes dd-tick{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ==========================================================================
   FILTER BAR
   ========================================================================== */

.dd-filter-bar{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  padding:14px 22px;border-bottom:1px solid var(--line);background:var(--panel);
}
.dd-filter-pill{
  padding:7px 14px;border-radius:var(--pill);border:1px solid var(--line);
  background:var(--bg);color:var(--muted);font-size:12.5px;font-weight:600;
  cursor:pointer;font-family:var(--f-body);
}
.dd-filter-pill:hover{border-color:var(--accent);color:var(--ink)}
.dd-filter-pill.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.dd-search-input{
  margin-left:auto;padding:8px 14px;border-radius:var(--pill);border:1px solid var(--line);
  background:var(--bg);color:var(--ink);font-size:13px;min-width:210px;font-family:var(--f-body);
}

/* ==========================================================================
   LAYOUT
   ========================================================================== */

.dd-container{max-width:900px;margin:0 auto;padding:28px 20px 90px}
.dd-container-wide{max-width:1280px;margin:0 auto;padding:28px 20px 90px}

.dd-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.dd-card-pad{padding:24px}

.dd-section-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}

/* ==========================================================================
   TABS (admin)
   ========================================================================== */

.dd-tabs{
  display:flex;gap:4px;padding:0 22px;background:var(--panel);
  border-bottom:1px solid var(--line);overflow-x:auto;
}
.dd-tab{
  padding:13px 16px;font-size:13.5px;font-weight:600;color:var(--muted);
  border-bottom:2px solid transparent;white-space:nowrap;
}
.dd-tab:hover{color:var(--ink)}
.dd-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.dd-tab-badge{
  display:inline-block;margin-left:6px;min-width:17px;padding:1px 5px;
  border-radius:999px;background:var(--bad);color:#fff;
  font-family:var(--f-mono);font-size:10px;font-weight:700;text-align:center;
}

/* ==========================================================================
   STAT CARDS
   ========================================================================== */

.dd-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:24px}
.dd-stat{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  padding:16px 18px;box-shadow:var(--shadow);
}
.dd-stat-label{
  display:flex;align-items:center;gap:6px;
  font-family:var(--f-mono);font-size:10px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);margin-bottom:6px;
}
.dd-stat-value{font-family:var(--f-display);font-size:28px;font-weight:700;line-height:1;letter-spacing:-.02em}
.dd-stat-sub{font-size:12px;color:var(--muted);margin-top:5px}
.dd-stat.is-accent .dd-stat-value{color:var(--accent)}
.dd-stat.is-ok .dd-stat-value{color:var(--ok)}
.dd-stat.is-warn .dd-stat-value{color:var(--warn)}

/* ==========================================================================
   TARGET RING
   ========================================================================== */

.dd-ring-wrap{display:flex;align-items:center;gap:14px}
.dd-ring{width:64px;height:64px;flex-shrink:0}
.dd-ring circle{fill:none;stroke-width:7}
.dd-ring .dd-ring-bg{stroke:var(--sunken)}
.dd-ring .dd-ring-fg{stroke:var(--accent);stroke-linecap:round;transition:stroke-dasharray .4s ease}
.dd-ring-text{font-family:var(--f-mono);font-size:15px;font-weight:700;fill:var(--ink)}

/* ==========================================================================
   BARS (hours chart)
   ========================================================================== */

.dd-bar-row{display:grid;grid-template-columns:150px 1fr 70px;gap:12px;align-items:center;margin-bottom:10px;font-size:13px}
.dd-bar-track{height:12px;background:var(--sunken);border-radius:var(--pill);overflow:hidden}
.dd-bar-fill{height:100%;background:var(--accent);border-radius:var(--pill)}
.dd-bar-value{font-family:var(--f-mono);font-size:12.5px;text-align:right;color:var(--muted)}

/* ==========================================================================
   SPARK CHARTS + AVATAR + ATTENDANCE GRID
   ========================================================================== */

.dd-spark{
  display:flex;align-items:flex-end;gap:3px;height:110px;
  padding:10px 0;border-bottom:1px solid var(--line);
}
.dd-spark-bar{
  flex:1;min-width:2px;background:var(--accent);border-radius:3px 3px 0 0;
  opacity:.85;transition:opacity .15s ease;
}
.dd-spark-bar:hover{opacity:1}
.dd-spark-alt .dd-spark-bar{background:var(--ok)}
.dd-spark-axis{
  display:flex;justify-content:space-between;margin-top:8px;
  font-family:var(--f-mono);font-size:10.5px;color:var(--muted);
}

.dd-avatar{
  width:60px;height:60px;border-radius:50%;flex-shrink:0;
  box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent);
  background:var(--accent);color:var(--on-accent);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-display);font-weight:700;font-size:19px;
}

.dd-att-grid{width:100%;border-collapse:collapse;font-size:12px}
.dd-att-grid th{
  font-family:var(--f-mono);font-size:9.5px;font-weight:600;color:var(--muted);
  padding:5px 2px;text-align:center;font-weight:600;
}
.dd-att-grid th:first-child{text-align:left;padding-left:10px;min-width:130px}
.dd-att-grid td{padding:3px 2px;text-align:center}
.dd-att-grid td:first-child{text-align:left;padding-left:10px;font-size:13px;white-space:nowrap}
.dd-att-cell{
  display:block;width:26px;height:24px;margin:0 auto;
  border-radius:5px;background:var(--sunken);color:var(--muted);
  font-size:11px;font-weight:700;cursor:pointer;border:none;
  text-align:center;text-align-last:center;
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  padding:0;
}
.dd-att-cell:hover{outline:1.5px solid var(--accent)}
.dd-att-present{background:var(--ok-bg);color:var(--ok)}
.dd-att-leave{background:var(--warn-bg);color:var(--warn)}
.dd-att-requested{background:var(--warn-bg);color:var(--warn);outline:1.5px dashed var(--warn)}
.dd-att-absent{background:var(--bad-bg);color:var(--bad)}
.dd-att-holiday{background:var(--neutral-bg);color:var(--muted)}
.dd-att-rejected{background:var(--bad-bg);color:var(--bad);opacity:.6}
.dd-att-weekend{opacity:.45}
.dd-att-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;font-size:12px;color:var(--muted)}
.dd-att-legend span{display:inline-flex;align-items:center;gap:6px}
.dd-att-swatch{width:13px;height:13px;border-radius:4px;display:inline-block}

/* Storage meter */
.dd-meter-bar{height:12px;border-radius:var(--pill);background:var(--sunken);overflow:hidden;margin:10px 0 6px}
.dd-meter-fill{height:100%;background:var(--ok);transition:width .3s ease}
.dd-meter-fill.warn{background:var(--warn)}
.dd-meter-fill.full{background:var(--bad)}

/* ==========================================================================
   BADGES
   ========================================================================== */

.dd-badge{
  display:inline-flex;align-items:center;gap:5px;font-family:var(--f-mono);
  font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:4px 10px;border-radius:var(--pill);white-space:nowrap;
}
.dd-badge-new{background:var(--neutral-bg);color:var(--muted)}
.dd-badge-reviewed{background:var(--warn-bg);color:var(--warn)}
.dd-badge-selected{background:var(--ok-bg);color:var(--ok)}
.dd-badge-used{background:var(--neutral-bg);color:var(--muted)}
.dd-badge-rejected{background:var(--bad-bg);color:var(--bad)}
.dd-badge-draft{background:var(--warn-bg);color:var(--warn)}

.dd-badge-overlay{
  position:absolute;padding:5px 11px;border-radius:var(--pill);
  font-family:var(--f-body);font-size:11px;font-weight:700;text-transform:uppercase;
  letter-spacing:.03em;background:rgba(10,10,10,.78);color:#fff;
}

/* ==========================================================================
   NEWS CARDS
   ========================================================================== */

.dd-feed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}

.dd-news-card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;position:relative;
}
.dd-news-card.is-checked{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}

.dd-card-check{position:absolute;top:10px;left:10px;z-index:3;width:20px;height:20px;cursor:pointer}

.dd-news-thumb{position:relative;height:170px;background:var(--sunken)}
.dd-news-thumb img{width:100%;height:100%;object-fit:cover}
.dd-news-thumb-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted);font-size:12px}
.dd-cat{top:10px;left:10px}
.dd-news-card.selectable .dd-cat{left:38px}
.dd-src{top:10px;right:10px;background:rgba(255,255,255,.22);backdrop-filter:blur(4px)}
.dd-imgcount{bottom:10px;right:10px}

.dd-news-body{padding:15px 17px;display:flex;flex-direction:column;gap:8px;flex:1}
.dd-news-meta-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-size:12px;color:var(--muted);min-width:0;
}
.dd-news-meta-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dd-news-title{font-size:17px;margin:0}
.dd-news-snippet{
  font-size:13px;color:var(--muted);background:var(--sunken);
  padding:9px 11px;border-radius:var(--r-sm);
}
.dd-news-feedback{font-size:12.5px;background:var(--warn-bg);color:var(--warn);padding:8px 10px;border-radius:var(--r-sm)}
.dd-news-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px}
.dd-news-actions .dd-btn{flex:1;min-width:78px}

.dd-empty{text-align:center;padding:70px 20px;color:var(--muted);grid-column:1/-1}
.dd-empty h3{color:var(--ink)}

/* Anything that can contain a pasted link or a long unbroken string. */
.dd-news-title,
.dd-news-snippet,
.dd-news-feedback,
.dd-modal-script,
.dd-comment-body,
.dd-rundown-title,
.dd-rundown-meta,
.dd-announce-body,
.dd-dupe-list li,
.dd-preview-body p {
  overflow-wrap:anywhere;
  word-break:break-word;
}

/* ==========================================================================
   FORMS
   ========================================================================== */

.dd-field{margin-bottom:20px}
.dd-field label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;margin-bottom:6px;flex-wrap:wrap}
.dd-optional-tag{
  font-family:var(--f-mono);font-size:10px;font-weight:500;letter-spacing:.05em;
  text-transform:uppercase;color:var(--muted);background:var(--sunken);padding:2px 6px;border-radius:4px;
}
.dd-field input[type=text],.dd-field input[type=url],.dd-field input[type=date],
.dd-field input[type=email],.dd-field input[type=number],.dd-field input[type=password],
.dd-field input[type=search],.dd-field select,.dd-field textarea{
  width:100%;font-family:var(--f-body);font-size:14px;padding:10px 12px;
  background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--ink);
}
.dd-field textarea{resize:vertical;min-height:90px}
.dd-field input:focus,.dd-field select:focus,.dd-field textarea:focus{
  outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent);
}
.dd-field-hint{font-size:12px;color:var(--muted);margin-top:5px}
.dd-script-editor textarea,.dd-script-editor .wp-editor-area{
  font-family:var(--f-dev)!important;font-size:15px;line-height:1.75;
}
.dd-fieldset-title{
  font-family:var(--f-mono);font-size:11px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--accent);margin:30px 0 14px;
}
.dd-fieldset-title:first-child{margin-top:0}

.dd-inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}
.dd-inline-form .dd-field{margin-bottom:0;flex:1;min-width:150px}

/* Upload zones */
.dd-dropzone{
  display:block;border:1.5px dashed var(--line);border-radius:var(--r-sm);
  padding:20px;text-align:center;color:var(--muted);font-size:13px;
  background:var(--bg);cursor:pointer;transition:border-color .15s ease,background-color .15s ease;
}
.dd-dropzone:hover{border-color:var(--accent)}
.dd-dropzone.dragover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}
.dd-dropzone input[type=file]{display:none}
.dd-preview-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.dd-preview-item{
  position:relative;width:72px;height:72px;border-radius:var(--r-sm);
  overflow:hidden;border:1px solid var(--line);background:var(--sunken);
}
.dd-preview-item img,.dd-preview-item video{width:100%;height:100%;object-fit:cover}
.dd-remove-file{
  position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;
  background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;
}
.dd-progress-bar{height:6px;border-radius:4px;background:var(--sunken);overflow:hidden;margin-top:10px;display:none}
.dd-progress-bar-fill{height:100%;width:0;background:var(--accent);transition:width .15s ease}
.dd-file-meta{font-size:11.5px;color:var(--muted);margin-top:5px;font-family:var(--f-mono)}

/* Script meter + autosave + dupes */
.dd-meter{
  display:flex;gap:14px;flex-wrap:wrap;align-items:center;
  font-family:var(--f-mono);font-size:11.5px;color:var(--muted);
  margin-top:8px;padding:8px 12px;background:var(--sunken);border-radius:var(--r-sm);
}
.dd-meter strong{color:var(--ink)}
.dd-notice{
  padding:11px 14px;border-radius:var(--r-sm);font-size:13px;margin-bottom:16px;
  border:1px solid var(--line);background:var(--panel);
}
.dd-notice-warn{background:var(--warn-bg);color:var(--warn);border-color:transparent}
.dd-notice-ok{background:var(--ok-bg);color:var(--ok);border-color:transparent}
.dd-notice-bad{background:var(--bad-bg);color:var(--bad);border-color:transparent}
.dd-dupe-list{list-style:none;margin:8px 0 0;padding:0;font-size:12.5px}
.dd-dupe-list li{padding:5px 0;border-top:1px solid color-mix(in srgb,var(--warn) 25%,transparent)}

/* ==========================================================================
   TABLES
   ========================================================================== */

.dd-table{width:100%;border-collapse:collapse;font-size:13.5px}
.dd-table th{
  text-align:left;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--line);
}
.dd-table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}
.dd-table tr:last-child td{border-bottom:none}
.dd-table-wrap{overflow-x:auto}

/* ==========================================================================
   BULK BAR
   ========================================================================== */

.dd-bulk-bar{
  position:sticky;top:0;z-index:50;display:none;gap:10px;align-items:center;flex-wrap:wrap;
  padding:12px 16px;background:var(--ink);color:var(--bg);border-radius:var(--r);margin-bottom:16px;
}
.dd-bulk-bar.open{display:flex}
.dd-bulk-bar select{
  padding:7px 10px;border-radius:var(--r-sm);border:1px solid transparent;
  background:var(--bg);color:var(--ink);font-size:13px;font-family:var(--f-body);
}
.dd-bulk-count{font-family:var(--f-mono);font-size:12.5px;font-weight:700}

/* ==========================================================================
   MODALS
   ========================================================================== */

.dd-modal-overlay{
  position:fixed;inset:0;background:rgba(10,10,10,.72);z-index:9999;
  display:none;align-items:center;justify-content:center;padding:20px;
}
.dd-modal-overlay.open{display:flex}
.dd-modal{
  background:var(--panel);border-radius:var(--r);max-width:740px;width:100%;
  max-height:88vh;overflow-y:auto;padding:26px;position:relative;
}
.dd-modal-close{
  position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;
  background:var(--sunken);border:none;cursor:pointer;font-size:16px;color:var(--ink);
}
.dd-modal-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:14px 0}
.dd-modal-media-grid img,.dd-modal-media-grid video{border-radius:var(--r-sm);width:100%;height:110px;object-fit:cover}
.dd-modal-script{
  white-space:pre-wrap;font-family:var(--f-dev);font-size:14.5px;line-height:1.75;
  background:var(--sunken);padding:16px;border-radius:var(--r-sm);
}

/* Teleprompter */
.dd-prompter-overlay{position:fixed;inset:0;background:#000;color:#fff;z-index:10000;display:none;flex-direction:column}
.dd-prompter-overlay.open{display:flex}
.dd-prompter-controls{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding:12px 20px;background:#111;border-bottom:1px solid #2a2a2a;
}
.dd-prompter-controls label{
  font-size:10px;color:#aaa;display:flex;flex-direction:column;gap:5px;
  font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.06em;
}
.dd-prompter-controls input[type=range]{width:110px;accent-color:#F97316}
.dd-prompter-stage{flex:1;overflow-y:auto;padding:60px 10%}
.dd-prompter-text{font-family:var(--f-dev);font-weight:600;text-align:center;white-space:pre-wrap;font-size:34px;line-height:1.6}
.dd-prompter-text.mirrored{transform:scaleX(-1)}

/* ==========================================================================
   LOGIN
   ========================================================================== */

.dd-login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:20px;position:relative}
.dd-login-theme-toggle{position:absolute;top:20px;right:20px}
.dd-login-card{width:100%;max-width:380px}
.dd-login-brand{text-align:center;margin-bottom:22px}
.dd-login-brand .dd-logo{justify-content:center}
.dd-login-brand p{font-size:13px;color:var(--muted);margin:10px 0 0}
.dd-login-error{
  background:var(--bad-bg);color:var(--bad);border-radius:var(--r-sm);
  padding:10px 14px;font-size:13px;margin-bottom:16px;
}

/* Payload containers read by JS only — never rendered directly. */
.dd-card-data{display:none}

/* ==========================================================================
   SKIN PICKER
   ========================================================================== */

.dd-skin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.dd-skin-card{
  border:2px solid var(--line);border-radius:var(--r);padding:16px;
  background:var(--panel);cursor:pointer;display:block;
}
.dd-skin-card.active{border-color:var(--accent)}
.dd-skin-card input{margin-right:8px}
.dd-skin-swatches{display:flex;gap:6px;margin:12px 0 10px}
.dd-skin-swatch{width:34px;height:34px;border-radius:6px;border:1px solid rgba(0,0,0,.12)}
.dd-skin-name{font-family:var(--f-display);font-weight:700;font-size:16px}
.dd-skin-desc{font-size:12.5px;color:var(--muted);margin-top:4px}

/* ==========================================================================
   MANUAL
   ========================================================================== */

.dd-manual-section{margin-bottom:34px}
.dd-manual-section h2{
  padding-bottom:8px;border-bottom:2px solid var(--line);margin-bottom:14px;
}
.dd-manual-section h3{
  font-size:15px;margin:22px 0 8px;color:var(--accent);
  font-family:var(--f-body);font-weight:700;letter-spacing:0;text-transform:none;
}
.dd-manual-section p{margin:0 0 12px}
.dd-manual-section ul,.dd-manual-section ol{padding-left:20px;margin:0 0 14px}
.dd-manual-section li{margin-bottom:8px}
.dd-manual-section code{
  background:var(--sunken);padding:2px 6px;border-radius:4px;
  font-family:var(--f-mono);font-size:12.5px;word-break:break-word;
}

/* ==========================================================================
   MOBILE BOTTOM NAV
   ========================================================================== */

.dd-mobile-nav{
  display:none;position:fixed;bottom:0;left:0;right:0;z-index:400;
  background:var(--panel);border-top:1px solid var(--line);
  padding:8px 4px calc(8px + env(safe-area-inset-bottom));
}
.dd-mobile-nav a{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
  font-size:10.5px;font-weight:600;color:var(--muted);padding:4px;
}
.dd-mobile-nav a.active{color:var(--accent)}
.dd-mobile-nav svg{width:19px;height:19px}

/* ==========================================================================
   ANNOUNCEMENT BANNER
   ========================================================================== */

.dd-announce{
  display:flex;align-items:flex-start;gap:12px;padding:13px 18px;
  border-bottom:1px solid var(--line);font-size:13.5px;line-height:1.5;
}
.dd-announce-info{background:var(--sunken);color:var(--ink)}
.dd-announce-warning{background:var(--warn-bg);color:var(--warn)}
.dd-announce-urgent{background:var(--bad-bg);color:var(--bad)}
.dd-announce-tag{
  font-family:var(--f-mono);font-size:10px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;padding:3px 8px;border-radius:var(--pill);
  background:rgba(0,0,0,.09);flex-shrink:0;
}
.dd-announce-body{flex:1;min-width:0}
.dd-announce-close{
  background:none;border:none;cursor:pointer;color:inherit;opacity:.6;
  font-size:15px;line-height:1;padding:2px 4px;flex-shrink:0;
}
.dd-announce-close:hover{opacity:1}

/* ==========================================================================
   BEATS
   ========================================================================== */

.dd-beats-strip{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:10px 22px;background:var(--panel);border-bottom:1px solid var(--line);
  font-size:12.5px;color:var(--muted);
}
.dd-beat-chip{
  background:var(--sunken);color:var(--ink);padding:3px 10px;
  border-radius:var(--pill);font-size:12px;font-weight:600;
}
.dd-beat-picker{display:flex;flex-wrap:wrap;gap:6px}
.dd-beat-picker label{
  display:inline-flex;align-items:center;gap:6px;padding:5px 11px;
  border:1px solid var(--line);border-radius:var(--pill);
  font-size:12.5px;font-weight:500;cursor:pointer;background:var(--bg);
}
.dd-beat-picker label:has(input:checked){
  border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);
}
.dd-beat-picker input{margin:0}

/* ==========================================================================
   PRIORITY
   ========================================================================== */

.dd-priority{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:26px;height:22px;padding:0 7px;border-radius:var(--r-sm);
  font-family:var(--f-mono);font-size:11.5px;font-weight:700;
  background:var(--accent);color:var(--on-accent);
}
.dd-priority-none{background:var(--neutral-bg);color:var(--muted)}

/* ==========================================================================
   RUNDOWN
   ========================================================================== */

.dd-rundown-head{
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  flex-wrap:wrap;margin-bottom:18px;
}
.dd-rundown-total{
  display:flex;gap:20px;flex-wrap:wrap;padding:14px 18px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow);margin-bottom:18px;
}
.dd-rundown-total div{display:flex;flex-direction:column;gap:3px}
.dd-rundown-total .v{font-family:var(--f-display);font-size:22px;font-weight:700;line-height:1}

.dd-rundown-list{display:flex;flex-direction:column;gap:10px}
.dd-rundown-item{
  display:flex;align-items:center;gap:14px;padding:14px 16px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow);
}
.dd-rundown-item.dd-dragging{opacity:.45}
.dd-rundown-item.dd-drop-target{border-color:var(--accent);border-style:dashed}
.dd-rundown-grip{
  cursor:grab;color:var(--muted);font-size:17px;line-height:1;
  user-select:none;padding:0 2px;flex-shrink:0;
}
.dd-rundown-grip:active{cursor:grabbing}
.dd-rundown-num{
  width:30px;height:30px;border-radius:var(--r-sm);flex-shrink:0;
  background:var(--accent);color:var(--on-accent);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-mono);font-weight:700;font-size:13px;
}
.dd-rundown-main{flex:1;min-width:0}
.dd-rundown-title{font-family:var(--f-display);font-weight:600;font-size:15.5px;margin:0 0 3px}
.dd-rundown-meta{font-size:12px;color:var(--muted)}
.dd-rundown-actions{display:flex;gap:6px;flex-shrink:0;flex-wrap:wrap}

/* ==========================================================================
   COMMENT THREAD
   ========================================================================== */

.dd-thread{display:flex;flex-direction:column;gap:12px;margin:14px 0}
.dd-comment{
  padding:11px 14px;border-radius:var(--r-sm);background:var(--sunken);font-size:13.5px;
}
.dd-comment.is-admin{
  background:color-mix(in srgb,var(--accent) 10%,transparent);
  border-left:3px solid var(--accent);
}
.dd-comment-head{
  display:flex;justify-content:space-between;gap:10px;align-items:baseline;
  margin-bottom:5px;font-size:11.5px;color:var(--muted);
}
.dd-comment-head strong{color:var(--ink);font-size:12.5px}
.dd-comment-body{white-space:pre-wrap;line-height:1.55}
.dd-comment-delete{
  background:none;border:none;color:var(--muted);cursor:pointer;
  font-size:11px;padding:0;text-decoration:underline;
}
.dd-comment-empty{color:var(--muted);font-size:13px;font-style:italic}

.dd-comment-dot{
  display:inline-block;width:7px;height:7px;border-radius:50%;
  background:var(--bad);margin-left:5px;vertical-align:middle;
}

/* ==========================================================================
   YOUTUBE FIELDS
   ========================================================================== */

.dd-collapsible{
  border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--bg);margin-bottom:20px;overflow:hidden;
}
.dd-collapsible > summary{
  padding:12px 15px;cursor:pointer;font-size:13px;font-weight:600;
  list-style:none;display:flex;align-items:center;gap:9px;
}
.dd-collapsible > summary::-webkit-details-marker{display:none}
.dd-collapsible > summary::before{content:'+';font-family:var(--f-mono);color:var(--accent);font-weight:700;flex:0 0 auto}
.dd-collapsible[open] > summary::before{content:'−'}
.dd-collapsible-inner{padding:4px 15px 15px}

.dd-char-count{font-family:var(--f-mono);font-size:11px;color:var(--muted);margin-top:4px}
.dd-char-count.over{color:var(--bad);font-weight:700}

.dd-copy-row{display:flex;gap:8px;align-items:flex-start}
.dd-copy-row > *:first-child{flex:1}

/* ==========================================================================
   VIDEO / STORY DETAILS PANEL
   ========================================================================== */

.dd-details-panel{
  margin-top:10px;padding:12px 14px;border-radius:var(--r-sm);
  background:var(--sunken);font-size:13px;
}
.dd-details-block{margin-bottom:12px}
.dd-details-block:last-child{margin-bottom:0}
.dd-details-block p{margin:5px 0 0;line-height:1.6;overflow-wrap:anywhere}
.dd-details-block .dd-mono-label{display:block;margin-bottom:2px}

/* ==========================================================================
   SOURCE DISCOVERY PANEL
   ========================================================================== */

.dd-sources-panel{
  margin-top:10px;padding:12px 14px;border-radius:var(--r-sm);
  background:var(--sunken);font-size:13px;
}
.dd-sources-status{margin:0 0 8px;color:var(--muted);font-size:12.5px}
.dd-sources-list{list-style:none;margin:0;padding:0}
.dd-sources-list li{padding:6px 0;border-top:1px solid var(--line)}
.dd-sources-list li:first-child{border-top:none}
.dd-sources-list a{font-weight:600;overflow-wrap:anywhere}
.dd-sources-date{color:var(--muted);font-size:11.5px;font-family:var(--f-mono);display:block;margin-top:2px}
.dd-sources-covered{
  background:var(--warn-bg);color:var(--warn);
  padding:9px 11px;border-radius:var(--r-sm);margin-bottom:10px;font-size:12.5px;
}
.dd-sources-covered ul{margin:6px 0 0;padding-left:18px}

/* ==========================================================================
   SEARCH RESULT BAR
   ========================================================================== */

.dd-search-note{
  padding:10px 14px;border-radius:var(--r-sm);background:var(--sunken);
  font-size:13px;color:var(--muted);margin-bottom:16px;
  display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width:820px){
  .dd-bar-row{grid-template-columns:110px 1fr 60px}
}

@media (max-width:640px){
  h1{font-size:22px}
  .dd-topbar{padding:11px 14px}
  .dd-container,.dd-container-wide{padding:18px 13px 100px}
  .dd-card-pad{padding:17px}
  .dd-feed-grid{grid-template-columns:1fr}
  .dd-user-chip{display:none}
  .dd-search-input{min-width:0;width:100%;margin-left:0}
  .dd-prompter-stage{padding:36px 6%}
  .dd-prompter-text{font-size:24px}
  .dd-tabs{padding:0 12px}
  .dd-mobile-nav{display:flex}
  .dd-stat-grid{grid-template-columns:repeat(2,1fr)}
  .dd-modal{padding:18px}
}
