*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#f7f6f2;--surf:#fff;--bord:#e8e5df;--text:#1a1916;--muted:#7a7770;
  --color-primary:#2d4a1a;--color-secondary:#e8b87a;--color-tertiary:#c8f0a0;
  --accent:var(--color-primary);--al:#edf2e8;--amb:#b5540a;--ambl:#fef3e8;
  --red:#c0392b;--redl:#fdecea;--blue:#1a4a8a;--bluel:#eaf0fb;
  --warn:#8a6a00;--warnl:#fffaeb;--purp:#5b2d8a;--purpl:#f0ebfa;
  --brand:var(--color-primary);
  --st-idea-bg:#e8ecf5;--st-idea-c:#2d3a5c;
  --st-dev-bg:#eff6ff;--st-dev-c:#1a3a8a;
  --st-photo-bg:#fe90d0;--st-photo-c:#7a0050;
  --st-onhold-bg:#ebebeb;--st-onhold-c:#444444;
  --st-listed-bg:#bfdbfe;--st-listed-c:#1d4ed8;
  --st-sold-bg:#dcfce7;--st-sold-c:#22c55e;
  --st-posted-bg:#dcfce7;--st-posted-c:#22c55e;
  --st-ranked-bg:#ede9fe;--st-ranked-c:#7c3aed;
  --st-archived-bg:#f3f4f6;--st-archived-c:#9ca3af;
  --st-toschedule-bg:#fec590;--st-toschedule-c:#6b3000;
  --st-testing-bg:#eabdff;--st-testing-c:#4a0080;
  --st-written-bg:#8bbdfe;--st-written-c:#0a2a6e;
  --st-live-bg:#8acc99;--st-live-c:#1a4d2e;
  --font:'DM Sans',sans-serif;--mono:'DM Mono',monospace;
  --drawer-w:280px;
  --topbar-h:52px;--nav-h:40px;--sticky-top:92px;
}
@media(prefers-color-scheme:dark){:root{
  --bg:#1a1916;--surf:#232220;--bord:#33312e;--text:#f0ede6;--muted:#8a8780;
  --color-primary:#52b788;--color-secondary:#e8b87a;--color-tertiary:#c8f0a0;
  --accent:var(--color-primary);--al:#0d2b1e;--amb:#e08a3c;--ambl:#2b1800;
  --red:#e05a4f;--redl:#2b0a08;--blue:#5a8fdf;--bluel:#0a1a30;
  --warn:#d4b400;--warnl:#1f1800;--purp:#a07de0;--purpl:#1e0f35;
  --st-idea-bg:#1f2937;--st-idea-c:#9ca3af;
  --st-dev-bg:#0d1f3c;--st-dev-c:#93c5fd;
  --st-photo-bg:#1e3a5f;--st-photo-c:#60a5fa;
  --st-onhold-bg:#2b1a00;--st-onhold-c:#fbbf24;
  --st-listed-bg:#1e3a8a;--st-listed-c:#93c5fd;
  --st-sold-bg:#052e16;--st-sold-c:#4ade80;
  --st-posted-bg:#052e16;--st-posted-c:#4ade80;
  --st-ranked-bg:#2e1065;--st-ranked-c:#a78bfa;
  --st-archived-bg:#1f2937;--st-archived-c:#6b7280;
  --st-toschedule-bg:#1e0f35;--st-toschedule-c:#a07de0;
  --st-testing-bg:#1f1800;--st-testing-c:#d4b400;
  --st-written-bg:#0d2b0a;--st-written-c:#4ade80;
  --st-live-bg:#052e16;--st-live-c:#4ade80;
}}
html{background:#ddd9d2}
@media(prefers-color-scheme:dark){html{background:#111}}
body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:16px;min-height:100vh}
#app{max-width:none;min-height:100vh;background:var(--bg);padding-bottom:60px}

/* ── Topbar ── */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#fff;border-bottom:3px solid var(--brand);position:sticky;top:0;z-index:100;flex-wrap:wrap;gap:8px;height:var(--topbar-h)}
.logo{font-size:20px;font-weight:500;display:flex;align-items:center;gap:10px;color:var(--brand);text-decoration:none}
.logo-svg{width:36px;height:36px;flex-shrink:0}
.topbar-right{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.kw-limit{font-size:13px;color:var(--muted);padding:3px 10px;border-radius:20px;border:1px solid var(--bord);font-family:var(--mono);cursor:default}
.save-ind{font-size:13px;padding:4px 8px;border-radius:4px;transition:all 0.3s;color:var(--muted)}
.save-ind.saving{color:var(--amb);background:var(--ambl)}
.save-ind.saved{color:var(--accent);background:var(--al)}
.slideout-save-ind{font-size:13px;color:var(--muted);white-space:nowrap;transition:color 0.2s;margin-left:auto}
.slideout-save-ind.saved{color:var(--accent)}
.customize-icon{display:inline-flex;align-items:center;color:var(--muted);cursor:pointer;margin-left:4px;opacity:0.5;transition:opacity 0.15s,color 0.15s;vertical-align:middle;position:relative}
.customize-icon:hover{opacity:1;color:var(--accent)}
.customize-icon::after{content:'Customize';position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%);background:var(--text);color:var(--surf);font-size:12px;padding:2px 6px;border-radius:3px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity 0.15s;z-index:20}
.customize-icon:hover::after{opacity:1}
.gear-btn{background:none;border:none;cursor:pointer;padding:6px;border-radius:6px;color:var(--muted);display:flex;align-items:center;transition:color 0.15s,background 0.15s}
.gear-btn:hover{color:var(--accent);background:var(--al)}
.topbar-icon-btn{display:flex;align-items:center;justify-content:center;padding:6px 8px}

/* ── Buttons ── */
.btn{padding:6px 12px;border-radius:6px;border:1px solid var(--bord);background:var(--surf);color:var(--text);cursor:pointer;font-family:var(--font);font-size:15px;font-weight:500;transition:background 0.15s}
.btn:hover{background:var(--bg)}
.btn-primary{background:var(--accent);color:white;border-color:var(--accent)}
.btn-primary:hover{opacity:0.9;background:var(--accent)}
.btn-danger{color:var(--red);border-color:transparent;background:none}
.btn-danger:hover{background:var(--redl)}
.btn-sm{padding:3px 8px;font-size:14px}
.btn-link{background:none;border:none;color:var(--accent);cursor:pointer;font-family:var(--font);font-size:14px;padding:0;text-decoration:underline;text-underline-offset:2px}
.btn-ghost{background:none;border:1px solid var(--bord);color:var(--muted);cursor:pointer;font-family:var(--font);font-size:14px;padding:3px 8px;border-radius:5px}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-ghost.active{border-color:var(--accent);color:var(--accent);background:var(--al)}

/* ── Mobile topbar ── */
.tb-mobile-only{display:none}
@media(max-width:600px){
  .tb-desktop-only{display:none}
  .tb-mobile-only{display:inline}
  th.col-kw,td.col-kw,tr:hover td.col-kw{position:static;z-index:auto}
}
/* ── Nav ── */
.nav{display:flex;gap:2px;padding:10px 16px 0;border-bottom:1px solid var(--bord);background:var(--surf);overflow-x:auto;position:sticky;top:var(--topbar-h);z-index:99;height:var(--nav-h)}
.nav-tab{padding:7px 14px;border-radius:6px 6px 0 0;cursor:pointer;font-size:15px;font-weight:500;color:var(--muted);border:1px solid transparent;border-bottom:none;margin-bottom:-1px;white-space:nowrap;user-select:none}
.nav-tab.active{background:var(--bg);color:var(--text);border-color:var(--bord);border-bottom-color:var(--bg)}
.nav-tab:hover:not(.active){color:var(--text)}

/* ── Layout ── */
.content{padding:16px;max-width:1400px;margin:0 auto}
#tab-keywords.content,#tab-postplanner.content{max-width:none;margin:0}
.arch-pill{font-size:13px;color:var(--muted);border-color:var(--bord);padding:2px 8px;border-radius:10px;cursor:pointer;white-space:nowrap}
.arch-pill:hover{color:var(--accent);border-color:var(--accent)}
.panel{background:var(--surf);border:1px solid var(--bord);border-radius:10px;padding:14px;margin-bottom:14px}
.panel-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}
@media(max-width:700px){.panel-grid-3{grid-template-columns:1fr}}
.ptrow{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.pt{font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:0.08em;color:var(--muted)}

/* ── Info tooltip ── */
.info-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1px solid var(--accent);background:var(--al);cursor:pointer;font-size:12px;color:var(--accent);font-weight:600;flex-shrink:0;user-select:none;pointer-events:auto}
.info-tip{display:none;position:absolute;right:0;top:20px;z-index:400;width:260px;background:var(--al);color:var(--text);border:1px solid var(--accent);border-radius:8px;padding:10px 12px;font-size:13px;font-weight:400;line-height:1.6;pointer-events:auto}
.info-btn:hover .info-tip{display:block}
.info-btn-r .info-tip{left:0;right:auto}
/* Mouse devices: hide the i-circle when it's nested in a label and trigger the
   tip by hovering the label text instead — cleaner desktop reading, same tip.
   Touch devices (no hover) keep the visible circle as the tap target. Icons
   that sit OUTSIDE a label (no selector match) are unaffected either way. */
@media (hover:hover) and (pointer:fine){
  label .info-btn,.form-label .info-btn{background:transparent;border-color:transparent;color:transparent}
  label:hover .info-tip,.form-label:hover .info-tip{display:block}
  label:has(.info-btn),.form-label:has(.info-btn){cursor:help}
}

/* ── Dashboard rows ── */
.crow{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;border-radius:6px;cursor:pointer;border-bottom:1px solid var(--bord);transition:background 0.12s}
.crow:last-child{border-bottom:none}
.crow:hover{background:var(--bg)}
.crow:hover .arr{opacity:1}
.arr{opacity:0;font-size:13px;color:var(--muted)}
.mbw{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:6px;cursor:pointer;transition:background 0.12s}
.mbw:hover{background:var(--bg)}
.mbw:hover .arr{opacity:1}
.bt{flex:1;height:5px;background:var(--bord);border-radius:3px;overflow:hidden}
.bf{height:100%;border-radius:3px;background:var(--accent)}

/* ── Badges & score rings ── */
.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:13px;font-weight:500;white-space:nowrap}
.badge-idea{background:var(--st-idea-bg);color:var(--st-idea-c)}
.badge-development{background:var(--st-dev-bg);color:var(--st-dev-c)}
.badge-photographed{background:var(--st-photo-bg);color:var(--st-photo-c)}
.badge-listed{background:var(--st-listed-bg);color:var(--st-listed-c)}
.badge-sold{background:var(--st-sold-bg);color:var(--st-sold-c)}
.badge-posted{background:var(--st-posted-bg);color:var(--st-posted-c)}
.badge-archived{background:var(--st-archived-bg);color:var(--st-archived-c)}
.badge-on-hold{background:var(--st-onhold-bg);color:var(--st-onhold-c)}
.badge-ranked{background:var(--st-ranked-bg);color:var(--st-ranked-c)}
.badge-to-schedule{background:var(--st-toschedule-bg);color:var(--st-toschedule-c)}
.badge-testing{background:var(--st-testing-bg);color:var(--st-testing-c)}
.badge-written{background:var(--st-written-bg);color:var(--st-written-c)}
.badge-live{background:var(--st-live-bg);color:var(--st-live-c)}
.badge-default{background:var(--bg);color:var(--muted)}
.rr{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:13px;font-weight:500;font-family:var(--mono);flex-shrink:0}
.rr-h{background:var(--al);color:var(--accent);border:2px solid var(--accent)}
.rr-m{background:var(--warnl);color:var(--warn);border:2px solid var(--warn)}
.rr-l{background:var(--redl);color:var(--red);border:2px solid var(--red)}
.rr-n{background:var(--bg);color:var(--muted);border:2px dashed var(--bord)}
.rr-h.inc,.rr-m.inc,.rr-l.inc{border-style:dashed}
.rr-bar{height:3px;border-radius:2px;margin-top:2px;background:var(--bord);overflow:hidden}
.rr-bf{height:100%;border-radius:2px}
.rr-tr{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:6px;cursor:pointer;border-bottom:1px solid var(--bord);transition:background 0.12s}
.rr-tr:last-child{border-bottom:none}
.rr-tr:hover{background:var(--bg)}
.rr-kw{font-size:15px;font-weight:500;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── Dashboard panels ── */
.up-row{display:grid;grid-template-columns:1fr 44px 110px 70px;gap:8px;align-items:center;padding:7px 8px;border-bottom:1px solid var(--bord);transition:background 0.12s;cursor:pointer}
.up-row:last-child{border-bottom:none}
.up-row:hover{background:var(--bg)}
.db{font-size:13px;font-family:var(--mono);padding:2px 6px;border-radius:10px;font-weight:500}
.db-u{background:var(--redl);color:var(--red)}
.db-s{background:var(--ambl);color:var(--amb)}
.db-o{background:var(--al);color:var(--accent)}
.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:14px}
.stat-card{background:var(--surf);border:1px solid var(--bord);border-radius:8px;padding:12px;cursor:pointer;transition:border-color 0.15s,background 0.15s}
.stat-card:hover{border-color:var(--accent);background:var(--al)}
.poll-stat-card{cursor:default}
.poll-stat-card:hover{border-color:var(--bord);background:var(--surf)}
.poll-stat-unvoted{background:var(--al);border-color:var(--accent)}
.poll-stat-unvoted:hover{background:var(--al);border-color:var(--accent)}
.poll-vote-btn{display:block;width:100%;padding:5px 8px;font-size:13px;font-family:var(--font);text-align:left;border:1px solid var(--bord);border-radius:5px;background:var(--surf);color:var(--text);cursor:pointer;margin-bottom:4px;transition:border-color 0.12s,background 0.12s}
.poll-vote-btn:hover{border-color:var(--accent);background:var(--surf);color:var(--accent)}
.stat-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:3px;line-height:1.4}
.stat-val{font-size:26px;font-weight:500;font-family:var(--mono)}
.stat-hint{font-size:13px;color:var(--accent);margin-top:3px}

/* ── Banners ── */
.review-banner,.dup-banner,.backup-banner,.info-banner{border-radius:8px;padding:10px 14px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.review-banner{background:#f0f8f3;border:1px solid var(--accent)}
.dup-banner{background:var(--ambl);border:1px solid var(--amb)}
.backup-banner{background:var(--bluel);border:1px solid var(--blue)}
.info-banner{background:var(--bg);border:1px solid var(--bord)}

/* ── Bulk bar ── */
.bulk-bar{display:none;background:#f0f8f3;border:1px solid var(--accent);border-radius:8px;padding:8px 12px;margin-bottom:10px;align-items:center;gap:6px;flex-wrap:wrap}
.bulk-bar.show{display:flex}
.bulk-count{font-size:15px;font-weight:500;color:var(--accent)}

/* ── Keywords layout with drawer ── */
.kw-layout{display:flex;gap:0;position:relative;height:calc(100vh - var(--sticky-top) - 110px);min-height:400px}
.kw-main{flex:1;min-width:0;display:flex;flex-direction:column;transition:margin-right 0.25s}
.kw-main.drawer-open{margin-right:calc(var(--drawer-w) + 12px)}
.filter-drawer{position:absolute;right:0;top:0;bottom:0;width:var(--drawer-w);background:var(--surf);border:1px solid var(--bord);border-radius:10px;display:none;flex-direction:column;overflow-y:auto;z-index:10}
.filter-drawer.open{display:flex}
.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--bord);flex-shrink:0}
.drawer-body{padding:12px 14px;flex:1;overflow-y:auto}
.drawer-footer{padding:10px 14px;border-top:1px solid var(--bord);display:flex;gap:6px;flex-shrink:0}
.filter-group{margin-bottom:14px}
.filter-label{font-size:13px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:6px;display:block}
.filter-select{width:100%;padding:6px 8px;border:1px solid var(--bord);border-radius:5px;background:var(--surf);color:var(--text);font-family:var(--font);font-size:14px;outline:none}
.filter-select:focus{border-color:var(--accent)}
.multi-check-wrap{border:1px solid var(--bord);border-radius:5px;background:var(--surf)}
.multi-check-scroll{height:160px;max-height:500px;overflow-y:auto;resize:vertical}
.multi-check-item{display:flex;align-items:center;gap:6px;padding:4px 8px;cursor:pointer;font-size:14px}
.multi-check-item:hover{background:var(--bg)}
.multi-check-item input{accent-color:var(--accent);width:13px;height:13px;flex-shrink:0}
.f-count{margin-left:auto;font-size:12px;color:var(--muted);padding-left:4px;flex-shrink:0}
.f-opt-empty{opacity:.45}
.fg-hd{display:flex;align-items:center;gap:6px;margin-bottom:0}
.fg-toggle{font-size:14px;color:var(--accent);cursor:pointer;background:none;border:none;font-family:var(--font);padding:0;display:flex;align-items:center;gap:4px}
.fg-toggle:hover{opacity:.75}
.fg-extras{display:flex;gap:8px;margin-left:auto}
.fg-body{padding-top:7px}
.range-row{display:flex;gap:4px;align-items:center}
.range-row input{flex:1;min-width:0;padding:5px 7px;border:1px solid var(--bord);border-radius:5px;background:var(--surf);color:var(--text);font-family:var(--font);font-size:14px;outline:none}
.range-row input:focus{border-color:var(--accent)}
.range-sep{font-size:13px;color:var(--muted)}
.filter-chips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}
.fchip{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:20px;font-size:13px;font-weight:500;background:var(--al);color:var(--accent);border:1px solid var(--accent)}
.fchip button{background:none;border:none;cursor:pointer;color:var(--accent);font-size:14px;line-height:1;padding:0}
.blank-check{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--muted);margin-top:5px;cursor:pointer}
.blank-check input{accent-color:var(--accent);width:12px;height:12px}

/* ── Table ── */
table{width:100%;border-collapse:collapse;font-size:15px}
.tbl-wrap{overflow-x:auto;overflow-y:auto;border-radius:10px;border:1px solid var(--bord);background:var(--surf);flex:1;min-height:0}
.tbl-wrap thead th{position:sticky;top:0;z-index:3}
th{font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:0.05em;color:var(--muted);padding:8px;border-bottom:2px solid var(--bord);white-space:nowrap;user-select:none;text-align:left;position:relative;cursor:default;background:var(--surf)}
th.sortable{cursor:pointer}
th.sortable:hover{color:var(--text)}
th.col-kw{position:sticky;left:0;background:var(--surf);z-index:11;min-width:200px}
td{padding:7px 8px;border-bottom:1px solid var(--bord);vertical-align:middle;white-space:nowrap}
td.col-kw{position:sticky;left:0;background:var(--surf);z-index:5;min-width:200px}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--bg)}
tr:hover td.col-kw{background:var(--bg)}
td.editing{padding:2px 3px;background:var(--al)!important}
td.editing input,td.editing select{width:100%;padding:4px 5px;border:1px solid var(--accent);border-radius:4px;background:var(--surf);color:var(--text);font-family:var(--font);font-size:14px;outline:none}
.col-resize{position:absolute;right:0;top:0;bottom:0;width:5px;cursor:col-resize;background:transparent}
.col-resize:hover{background:var(--accent)}
.col-ctx-menu{position:fixed;z-index:600;background:var(--surf);border:1px solid var(--bord);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,0.15);padding:4px 0;min-width:160px;font-size:14px}
.col-ctx-item{padding:7px 14px;cursor:pointer;white-space:nowrap;color:var(--text)}
.col-ctx-item:hover{background:var(--al);color:var(--accent)}
.col-picker{position:fixed;z-index:600;background:var(--surf);border:1px solid var(--bord);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,0.15);padding:10px 12px;min-width:180px;font-size:14px}
th.drag-over-left{border-left:3px solid var(--accent)!important}
th.drag-over-right{border-right:3px solid var(--accent)!important}
/* ── Bundle Wizard ───────────────────────────────────────────────────────────── */
.bw-wizard{background:var(--surf);border:1px solid var(--bord);border-radius:10px;padding:18px 20px;margin-bottom:14px}
.bw-wiz-hdr{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}
.bw-wiz-title{font-size:15px;font-weight:700;color:var(--text)}
.bw-wiz-sub{font-size:13px;color:var(--muted);margin-top:2px}
/* Holiday grid */
.bw-holiday-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:4px}
.bw-holiday-card{border:1px solid var(--bord);border-radius:8px;padding:10px 12px;cursor:pointer;transition:border-color .15s,background .15s;position:relative;background:var(--bg)}
.bw-holiday-card:hover{border-color:var(--accent);background:var(--al)}
.bw-holiday-card.bw-upcoming{border-color:var(--accent);background:var(--al)}
.bw-holiday-label{font-size:15px;font-weight:600;color:var(--text)}
.bw-holiday-months{font-size:12px;color:var(--muted);margin-top:2px}
.bw-holiday-badge{font-size:11px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-top:4px}
/* Slot selector */
.bw-slot-grid{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.bw-slot-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--bord);border-radius:7px;cursor:pointer;background:var(--bg);transition:border-color .12s}
.bw-slot-row:hover{border-color:var(--accent)}
.bw-slot-row input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;flex-shrink:0;cursor:pointer}
.bw-slot-empty{opacity:.45}
/* Keyword picker grid */
.bw-kw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px;max-height:380px;overflow-y:auto;margin-bottom:12px}
.bw-kw-grid-wide{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.bw-kw-card{border:1px solid var(--bord);border-radius:7px;padding:8px 10px;transition:border-color .12s,background .12s;background:var(--bg)}
.bw-kw-card:hover{border-color:var(--accent);background:var(--al)}
.bw-kw-card.bw-sel{border-color:var(--accent);background:var(--al)}
.bw-kw-row{display:flex;align-items:center;gap:6px;cursor:pointer;min-width:0}
.bw-kw-text{font-size:14px;font-weight:600;flex:1;min-width:0;white-space:normal;word-break:break-word;line-height:1.3}
.bw-kw-check{width:16px;height:16px;border-radius:3px;border:1.5px solid var(--bord);display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:var(--accent);flex-shrink:0;transition:border-color .12s}
.bw-sel .bw-kw-check{border-color:var(--accent);background:var(--accent);color:#fff}
.bw-expand-btn{background:none;border:none;cursor:pointer;color:var(--muted);font-size:14px;padding:0 2px;flex-shrink:0;line-height:1}
.bw-expand-btn:hover{color:var(--accent)}
.bw-kw-detail{margin-top:7px;padding-top:7px;border-top:1px solid var(--bord)}
.bw-flavor-dots{font-size:20px;color:var(--accent);letter-spacing:-2px;flex-shrink:0;white-space:nowrap;line-height:1}
/* Progress */
.bw-prog{display:inline-flex;align-items:center;gap:3px;flex-wrap:wrap}
.bw-prog-step{font-size:12px;padding:1px 6px;border-radius:10px;border:1px solid var(--bord);color:var(--muted);white-space:nowrap}
.bw-prog-step.done{background:var(--al);border-color:var(--accent);color:var(--accent)}
.bw-prog-step.current{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.bw-prog-sep{font-size:12px;color:var(--muted)}
/* Footer / chips */
.bw-wiz-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--bord)}
.bw-wiz-tag{background:var(--al);color:var(--accent);border:1px solid var(--accent);border-radius:4px;padding:1px 5px;font-size:11px;font-weight:600}
.bw-selected-wrap{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;min-height:36px}
.bw-sel-chip{display:inline-flex;align-items:center;gap:5px;background:var(--al);border:1px solid var(--accent);border-radius:20px;padding:3px 8px 3px 6px;font-size:14px}
.bw-kw-card.bw-swapping{border:1.5px dashed var(--muted);opacity:.7}
.bw-swap-banner{background:var(--al);border:1px solid var(--accent);border-radius:7px;padding:8px 12px;margin-bottom:10px;font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bw-empty{padding:24px;text-align:center;color:var(--muted);font-size:15px;line-height:1.6}
/* Saved bundles */
.bw-saved-section{margin-bottom:10px}
.bw-saved-bundle{background:var(--surf);border:1px solid var(--bord);border-radius:8px;padding:10px 12px}
.bw-saved-kw-chip{display:inline-flex;align-items:center;gap:4px;background:var(--bg);border:1px solid var(--bord);border-radius:6px;padding:3px 8px;cursor:pointer;font-size:13px;transition:border-color .12s}
.bw-saved-kw-chip:hover{border-color:var(--accent)}
.bw-saved-kw-row{display:flex;align-items:center;gap:5px;padding:3px 0;cursor:pointer;font-size:13px;border-radius:4px;transition:color .1s}
.bw-saved-kw-row:hover{color:var(--accent)}
.kw-name{font-weight:500;min-width:0;display:flex;align-items:center;gap:1px;overflow:hidden;white-space:nowrap}
.kw-text{overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
@media(max-width:640px){
  .kw-name{white-space:normal;flex-wrap:wrap}
  .kw-text{white-space:normal;overflow-wrap:normal;word-break:normal;text-overflow:clip;hyphens:none}
  .col-kw{min-width:0!important}
  #kw-tbody td,#kw-thead th{padding-left:6px;padding-right:6px}
}
.kw-sub{font-size:13px;color:var(--muted);margin-top:1px;white-space:normal}
.tag-chip{font-size:12px;padding:1px 5px;border-radius:3px;border:1px solid var(--bord);color:var(--muted);display:inline-block;margin:1px}
.cat-chip{font-size:12px;padding:1px 5px;border-radius:3px;border:1px solid var(--bord);color:var(--muted);display:inline-block;margin:1px}
.mo-chip{font-size:12px;padding:1px 4px;border-radius:3px;border:1px solid var(--bord);color:var(--muted);display:inline-block;margin:1px}
.chips{display:flex;flex-wrap:wrap;gap:1px}
.cb-wrap{display:flex;align-items:flex-start;gap:6px}

/* ── Grouped rows ── */
.grouped-row td{color:var(--muted);font-style:italic;background:var(--bg)}
.grouped-row:hover td{background:var(--bg)}
.grouped-kw-indent{padding-left:20px;display:flex;align-items:center;gap:4px}
.group-link-icon{font-size:12px;color:var(--muted);flex-shrink:0;font-family:var(--mono)}
.group-lead-icon{display:inline-flex;align-items:center;color:var(--muted);flex-shrink:0;opacity:0.6}
.show-stubs-wrap{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:14px;color:var(--muted)}
.show-stubs-wrap input{accent-color:var(--accent)}

/* ── Pagination ── */
.pag{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid var(--bord);font-size:15px;color:var(--muted);flex-wrap:wrap}
.pag-btn{padding:3px 10px;border-radius:5px;border:1px solid var(--bord);background:var(--surf);color:var(--text);cursor:pointer;font-size:14px;font-family:var(--font)}
.pag-btn:hover:not(:disabled){background:var(--bg);border-color:var(--accent);color:var(--accent)}
.pag-btn:disabled{opacity:0.4;cursor:default}
.pag-btn.active{background:var(--accent);color:white;border-color:var(--accent)}
.pag-size-sel{padding:3px 6px;border:1px solid var(--bord);border-radius:4px;background:var(--surf);color:var(--text);font-family:var(--font);font-size:14px;outline:none}

/* ── Empty ── */
.empty{text-align:center;padding:40px;color:var(--muted)}

/* ── Modal ── */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:200;align-items:flex-start;justify-content:center;padding:16px;overflow-y:auto}
.modal-overlay.open{display:flex}
.modal{background:var(--surf);border:1px solid var(--bord);border-radius:12px;width:100%;max-width:700px;padding:22px;margin-top:8px;margin-bottom:8px}
.modal-title{font-size:16px;font-weight:500;margin-bottom:4px}
.modal-sub{font-size:15px;color:var(--muted);margin-bottom:18px}
.modal-back{display:inline-flex;align-items:center;gap:5px;font-size:14px;color:var(--accent);cursor:pointer;background:none;border:none;font-family:var(--font);padding:0;margin-bottom:12px;text-decoration:underline;text-underline-offset:2px}
.form-row{margin-bottom:12px}
.form-label{font-size:14px;font-weight:500;color:var(--muted);margin-bottom:4px;display:block}
.form-hint{font-size:13px;color:var(--muted);margin-top:3px;line-height:1.5}
.form-input{width:100%;padding:7px 10px;border:1px solid var(--bord);border-radius:6px;background:var(--surf);color:var(--text);font-family:var(--font);font-size:15px;outline:none}
.form-input:focus{border-color:var(--accent)}
.form-input[readonly]{background:var(--bg);color:var(--muted);cursor:default}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:12px}
.form-row-4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:10px;margin-bottom:8px}
@media(max-width:500px){.form-row-2,.form-row-3,.form-row-4{grid-template-columns:1fr}}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px;padding-top:14px;border-top:1px solid var(--bord);flex-wrap:wrap}
.months-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}
.mo-tog{padding:4px;border:1px solid var(--bord);border-radius:5px;text-align:center;cursor:pointer;font-size:14px;font-weight:500;color:var(--muted);background:var(--surf)}
.mo-tog.sel{background:var(--accent);color:white;border-color:var(--accent)}
.adv-toggle{font-size:14px;color:var(--accent);cursor:pointer;margin-bottom:10px;display:inline-flex;align-items:center;gap:4px;background:none;border:none;font-family:var(--font);padding:0}
.adv-sec{border:1px solid var(--bord);border-radius:8px;padding:12px;margin-bottom:12px;display:none}
.adv-sec.open{display:block}
.s-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
@media(max-width:600px){
  .s-cards{grid-template-columns:1fr}
  .s-card{display:flex;align-items:baseline;gap:8px;text-align:left;padding:7px 12px}
  .s-card .sn{margin-bottom:0;flex-shrink:0}
  .s-card .sh{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
.s-card{border:1px solid var(--bord);border-radius:8px;padding:8px;cursor:pointer;text-align:center}
.s-card.sel{border-color:var(--accent);background:var(--al)}
.s-card .sn{font-size:14px;font-weight:500;margin-bottom:2px}
.s-card .sh{font-size:12px;color:var(--muted)}
.s-card.sel .sh{color:var(--accent)}
.serp-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.serp-card{border:2px solid transparent;border-radius:8px;padding:10px;cursor:pointer;text-align:center;transition:border-color 0.15s}
.serp-card.sel-tough{border-color:#c0706a}
.serp-card.sel-mixed{border-color:#c4a830}
.serp-card.sel-easy{border-color:#5aaa66}
.serp-label{font-size:14px;font-weight:500;margin-bottom:3px;color:#333}
.serp-desc{font-size:12px;color:#555;line-height:1.3}
.serp-learn{font-size:13px;color:var(--accent);cursor:pointer;background:none;border:none;font-family:var(--font);padding:0;margin-top:6px;display:inline-block}
.serp-edu{background:var(--bluel);border:1px solid var(--blue);border-radius:8px;padding:10px;margin-top:8px;font-size:13px;color:var(--blue);line-height:1.5;display:none}
.serp-edu.open{display:block}

/* ── Tag / Category chip input ── */
.tag-wrap{display:flex;flex-wrap:wrap;gap:4px;padding:5px 8px;border:1px solid var(--bord);border-radius:6px;background:var(--surf);min-height:36px;align-items:center;cursor:text;position:relative}
.tag-wrap:focus-within{border-color:var(--accent)}
.tag-pill{display:inline-flex;align-items:center;gap:4px;border-radius:4px;padding:2px 6px;font-size:14px;font-weight:500}
.tag-pill.tp-tag{background:var(--purpl);color:var(--purp)}
.tag-pill.tp-cat{background:var(--bluel);color:var(--blue)}
.tag-pill button{background:none;border:none;cursor:pointer;font-size:14px;line-height:1;padding:0;color:inherit;opacity:0.7}
.tag-pill button:hover{opacity:1}
.tag-in{border:none;outline:none;background:transparent;font-family:var(--font);font-size:15px;color:var(--text);min-width:80px;flex:1}
.tag-suggest{position:absolute;top:calc(100% + 2px);left:0;right:0;background:var(--surf);border:1px solid var(--accent);border-radius:6px;z-index:50;max-height:150px;overflow-y:auto;box-shadow:0 4px 12px rgba(0,0,0,0.12)}
.tag-sug-item{padding:7px 10px;font-size:14px;cursor:pointer;color:var(--text);display:flex;align-items:center;gap:6px}
.tag-sug-item:hover,.tag-sug-item.active{background:var(--al)}
.sug-type{font-size:12px;padding:1px 5px;border-radius:3px;font-weight:500}
.sug-type.t-tag{background:var(--purpl);color:var(--purp)}
.sug-type.t-cat{background:var(--bluel);color:var(--blue)}
.tag-warn{font-size:13px;color:var(--amb);margin-top:3px}

/* ── Category checkbox grid ── */
.cat-check-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;border:1px solid var(--bord);border-radius:6px;background:var(--surf);padding:6px}
.cat-check-item{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:14px;transition:background 0.1s}
.cat-check-item:hover{background:var(--bluel)}
.cat-check-item input{accent-color:var(--blue);width:13px;height:13px;flex-shrink:0;cursor:pointer}

/* ── Publish window chip ── */
.pw-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;font-size:13px;font-weight:500;white-space:nowrap}
.pw-open{background:var(--al);color:var(--accent)}
.pw-closing{background:var(--ambl);color:var(--amb)}
.pw-upcoming{background:var(--bluel);color:var(--blue)}
.pw-missed{background:var(--redl);color:var(--red)}
.pw-evergreen{background:var(--al);color:var(--accent)}
.pw-boost{background:var(--warnl);color:var(--warn)}

/* ── Slide-out panel ── */
.slideout-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.35);z-index:150;display:none}
.slideout-overlay.open{display:block}
.slideout-panel{position:fixed;top:0;right:0;bottom:0;width:min(82vw,1160px);background:var(--surf);border-left:1px solid var(--bord);z-index:151;display:flex;flex-direction:column;transform:translateX(100%);transition:transform 0.25s cubic-bezier(0.4,0,0.2,1);overflow:hidden}
.slideout-panel.open{transform:translateX(0)}
.slideout-header{padding:12px 20px;border-bottom:1px solid var(--bord);flex-shrink:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:52px}
.slideout-title{font-size:15px;font-weight:500;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.slideout-body{flex:1;overflow-y:auto;padding:20px}
.slideout-form-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.main-data-box{background:var(--bg);border-radius:8px;padding:10px 12px;margin-bottom:10px}
@media(max-width:860px){.slideout-form-cols{grid-template-columns:1fr}}
.slideout-footer{padding:12px 20px;border-top:1px solid var(--bord);flex-shrink:0;display:flex;gap:8px;align-items:center;background:var(--surf)}
.slideout-footer-left{display:flex;gap:8px;align-items:center;flex:1}
.slideout-footer-right{display:flex;gap:8px;align-items:center}
.slideout-dirty-badge{font-size:13px;color:var(--amb);background:var(--ambl);padding:2px 8px;border-radius:20px;display:none}
.slideout-autosave-note{font-size:13px;color:var(--accent);display:none}
@keyframes pulse-save{0%,100%{box-shadow:0 0 0 0 rgba(45,106,79,0.4)}50%{box-shadow:0 0 0 6px rgba(45,106,79,0)}}
.pulse{animation:pulse-save 0.5s ease}
.cluster-ref-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:13px;font-weight:500;background:var(--purpl);color:var(--purp);cursor:pointer;margin:2px;border:1px solid var(--purp);transition:background 0.1s}
.cluster-ref-chip:hover{background:var(--purp);color:#fff}
.sim-kw-link{font-size:14px;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px;display:block;padding:2px 0}
.var-area{background:var(--bg);border-radius:8px;padding:10px;margin-bottom:12px}
.var-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:14px;font-weight:500;color:var(--muted)}
.var-row{display:grid;grid-template-columns:1fr 80px 22px;gap:5px;margin-bottom:4px;align-items:center}
.var-row input{padding:4px 7px;border:1px solid var(--bord);border-radius:5px;background:var(--surf);color:var(--text);font-family:var(--font);font-size:14px;outline:none;width:100%}
.var-row input:focus{border-color:var(--accent)}
.rm-btn{background:none;border:none;cursor:pointer;color:var(--muted);font-size:15px;line-height:1;padding:0}
.rm-btn:hover{color:var(--red)}
.flyout{position:relative;display:inline-block}
.flyout-tip{display:none;position:absolute;left:0;top:calc(100% + 4px);z-index:300;width:280px;background:#1a1916;color:#f0ede6;border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.6;pointer-events:none}
.flyout:hover .flyout-tip{display:block}

/* ── Scheduled / repeat icon buttons ── */
.sched-icon-btn{background:none;border:none;cursor:pointer;padding:2px 3px;border-radius:4px;color:var(--muted);opacity:0.45;line-height:1;vertical-align:middle;display:inline-flex;align-items:center}
.sched-icon-btn:hover{opacity:0.75}
.sched-icon-btn.scheduled{color:var(--accent);opacity:1}
.repeat-icon-btn{background:none;border:none;cursor:pointer;padding:2px 3px;border-radius:4px;color:var(--muted);opacity:0.35;line-height:1;vertical-align:middle;display:inline-flex;align-items:center}
.repeat-icon-btn:hover{opacity:0.7}
.repeat-icon-btn.active{color:var(--accent);opacity:1}
.kw-icon-btn{margin-left:4px;flex-shrink:0}
.kw-cal-hover{opacity:0;transition:opacity 0.12s}
tr:hover .kw-cal-hover{opacity:1}
.adv-label-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}
.autofill-hint{font-size:12px;color:var(--muted);cursor:default;opacity:0.6;text-decoration:underline;text-underline-offset:2px;text-decoration-style:dashed}

/* ── Variant / similar kw ── */
.var-area{background:var(--bg);border-radius:8px;padding:10px;margin-bottom:12px}
.var-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:14px;font-weight:500;color:var(--muted)}

/* ── Settings page ── */
.settings-page{display:grid;grid-template-columns:200px 1fr;gap:0;min-height:500px}
@media(max-width:700px){.settings-page{grid-template-columns:1fr}}
.settings-nav{border-right:1px solid var(--bord);padding:16px 0}
.settings-nav-item{display:block;padding:8px 16px;font-size:15px;cursor:pointer;color:var(--muted);border-left:3px solid transparent;transition:all 0.12s;user-select:none}
.settings-nav-item.active{color:var(--accent);border-left-color:var(--accent);background:var(--al);font-weight:500}
.settings-nav-item:hover:not(.active){color:var(--text);background:var(--bg)}
.settings-content{padding:20px 24px;max-width:680px}
.settings-section{display:none}
.settings-section.active{display:block}
.ss{background:var(--surf);border:1px solid var(--bord);border-radius:10px;padding:14px;margin-bottom:14px}
.ss-title{font-size:14px;font-weight:500;margin-bottom:3px}
.ss-sub{font-size:14px;color:var(--muted);margin-bottom:12px}
.opt-list{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}
.opt-item{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:20px;font-size:14px;font-weight:500;border:1px solid var(--bord);background:var(--surf)}
.opt-item button{background:none;border:none;cursor:pointer;color:var(--muted);font-size:14px;line-height:1;padding:0}
.opt-item button:hover{color:var(--red)}
.opt-item[draggable]{cursor:grab;position:relative}
.opt-item[draggable]:active{cursor:grabbing}
.opt-item.dragging{opacity:0.35}
.opt-item.drag-insert::before{content:'';position:absolute;left:-4px;top:-2px;bottom:-2px;width:3px;background:var(--accent);border-radius:2px;pointer-events:none}
.drag-handle{color:var(--muted);font-size:13px;opacity:0.5;margin-right:2px;pointer-events:none}
.add-opt-row{display:flex;gap:6px;margin-top:8px}
.add-opt-row input{flex:1;padding:5px 8px;border:1px solid var(--bord);border-radius:5px;background:var(--surf);color:var(--text);font-family:var(--font);font-size:14px;outline:none}
.add-opt-row input:focus{border-color:var(--accent)}
.profile-btn{padding:5px 10px;border-radius:5px;border:1px solid var(--bord);background:var(--surf);color:var(--muted);cursor:pointer;font-family:var(--font);font-size:14px;transition:all 0.15s}
.profile-btn:hover{border-color:var(--accent);color:var(--accent)}
.profile-card{border:1px solid var(--bord);border-radius:8px;padding:10px 14px;cursor:pointer;min-width:130px;transition:border-color 0.15s,background 0.15s}
.profile-card:hover{border-color:var(--accent);background:var(--al)}
.profile-card-active{border-color:var(--accent);background:var(--al)}
.tag-mgmt-row{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--bord);font-size:15px}
.tag-mgmt-row:last-child{border-bottom:none}
.tag-mgmt-sel{background:var(--al)}
.weight-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.weight-label{font-size:14px;color:var(--muted);width:100px;flex-shrink:0}
.weight-slider{flex:1;accent-color:var(--accent)}
.weight-input{width:52px;padding:4px 6px;border:1px solid var(--bord);border-radius:5px;background:var(--surf);color:var(--text);font-family:var(--mono);font-size:14px;outline:none;text-align:center}
.weight-total{font-size:14px;font-weight:500;padding:6px 10px;border-radius:6px;display:inline-block;margin-top:4px}
.wt-ok{background:var(--al);color:var(--accent)}
.wt-bad{background:var(--redl);color:var(--red)}
.limit-bar{height:4px;background:var(--bord);border-radius:2px;margin-top:5px;overflow:hidden}
.limit-fill{height:100%;border-radius:2px;background:var(--accent)}
.suppressed-item{display:flex;align-items:center;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--bord);font-size:15px}
.suppressed-item:last-child{border-bottom:none}
.status-color-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--bord)}
.status-color-row:last-child{border-bottom:none}
.status-color-swatch{width:30px;height:26px;border-radius:4px;border:1px solid var(--bord);cursor:pointer;flex-shrink:0;padding:0;overflow:hidden}
.status-color-hex{width:72px;font-size:14px;font-family:var(--mono);padding:3px 6px;border:1px solid var(--bord);border-radius:4px;background:var(--surf);color:var(--text);flex-shrink:0}
.archived-item{display:flex;align-items:center;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--bord);font-size:15px}
.archived-item:last-child{border-bottom:none}

/* ── Cluster cards ── */
.cluster-card{background:var(--surf);border:1px solid var(--bord);border-radius:10px;margin-bottom:6px;transition:border-color 0.15s;overflow:hidden}
.cluster-card:hover{border-color:var(--accent)}
.cluster-hdr{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;cursor:pointer;user-select:none}
.cluster-body{border-top:1px solid var(--bord);padding:10px 14px;display:none}
.cluster-card.open .cluster-body{display:block}
.cluster-hdr-actions{display:flex;align-items:center;gap:6px}
.cluster-kw-row{display:flex;align-items:center;justify-content:space-between;padding:4px 4px;border-radius:5px;font-size:14px;cursor:pointer;transition:background 0.1s}
.cluster-kw-row:hover{background:var(--bg)}
.auth-row{display:flex;align-items:center;gap:8px;padding:5px 4px;border-bottom:1px solid var(--bord);font-size:14px;cursor:pointer;border-radius:4px;transition:background 0.1s}
.auth-row:hover{background:var(--bg)}
.auth-row:last-child{border-bottom:none}
.auth-step{display:flex;align-items:flex-start;gap:10px;padding:7px 0;border-bottom:1px solid rgba(26,74,138,0.15)}
.auth-step:last-child{border-bottom:none}
.auth-num{width:22px;height:22px;border-radius:50%;background:var(--blue);color:white;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;flex-shrink:0;margin-top:1px}
.pp-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(max-width:800px){.pp-grid{grid-template-columns:1fr}}

/* ── Authority Planner 2×2 grid ── */
.auth-2x2{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
@media(max-width:900px){.auth-2x2{grid-template-columns:1fr}}
.auth-card{background:var(--surf);border:1px solid var(--bord);border-radius:10px;overflow:hidden;display:flex;flex-direction:column}
.auth-card-hdr{padding:11px 14px;background:var(--al);border-bottom:1px solid var(--bord)}
.auth-card-hdr-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.auth-card-title{font-size:15px;font-weight:600;color:var(--accent)}
.auth-card-sub{font-size:13px;color:var(--muted);margin-top:2px}
.auth-card-body{overflow-y:auto;max-height:270px}
.auth-card-body .cluster-card{border-radius:0;border-left:none;border-right:none;border-top:none;margin-bottom:0}
.auth-card-body .cluster-card:first-child{border-top:none}
.auth-card-body .cluster-card:last-child{border-bottom:none}
.auth-card-body .cluster-card:hover{border-color:var(--bord)}
.auth-card-empty{padding:16px 14px;font-size:15px;color:var(--muted)}
.auth-flyout{background:var(--bluel);border-bottom:1px solid var(--blue);padding:12px 14px}
.auth-flyout-row{margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid rgba(26,74,138,0.12)}
.auth-flyout-row:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.auth-flyout-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--blue);margin-bottom:2px}
.auth-info-btn{background:none;border:1px solid var(--bord);cursor:pointer;color:var(--muted);padding:1px 7px;border-radius:4px;font-size:14px;font-family:var(--font);line-height:1.6;transition:all 0.1s}
.auth-info-btn:hover,.auth-info-btn.active{color:var(--blue);border-color:var(--blue);background:var(--bluel)}
.auth-show-more{display:block;width:100%;padding:8px 14px;text-align:center;font-size:14px;color:var(--accent);background:var(--surf);border:none;border-top:1px solid var(--bord);cursor:pointer;font-family:var(--font);transition:background 0.1s}
.auth-show-more:hover{background:var(--al)}
.auth-card-ghost{background:var(--bg);border:2px dashed var(--bord);border-radius:10px;display:flex;align-items:center;justify-content:center;min-height:120px}
.auth-card-full{min-height:400px}
.auth-card-full .auth-card-body{max-height:calc(100vh - 280px)}
.auth-info-box{background:var(--bluel);border:1px solid var(--blue);border-radius:10px;padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:700px){.auth-info-box{grid-template-columns:1fr}}

/* ── New authority planner layout ── */
.auth-tab-bar{display:flex;border-bottom:2px solid var(--bord);margin-bottom:14px}
.auth-type-btn{flex:1;display:flex;flex-direction:column;align-items:center;padding:9px 8px;border:none;border-bottom:3px solid transparent;cursor:pointer;background:transparent;font-family:var(--font);transition:background 0.15s,border-color 0.15s;min-width:0;text-align:center}
.auth-type-btn:hover{background:var(--al)}
.auth-type-btn.active{background:var(--surf);border:1px solid var(--bord);border-bottom:3px solid var(--accent);border-radius:6px 6px 0 0;position:relative;z-index:1;margin-bottom:-2px}
.auth-type-btn-name{font-size:15px;font-weight:600;color:var(--text)}
.auth-type-btn:hover .auth-type-btn-name,.auth-type-btn.active .auth-type-btn-name{color:var(--accent)}
.auth-type-btn-sub{font-size:13px;color:var(--muted);margin-top:2px}
.auth-type-btn.active .auth-type-btn-sub{color:var(--accent);opacity:0.8}
.auth-info-panel{background:var(--bluel);border:1px solid var(--blue);border-radius:8px;padding:12px 16px;margin-bottom:12px}
.auth-plan-filters{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--surf);border:1px solid var(--bord);border-radius:8px;margin-bottom:10px;flex-wrap:wrap}
.auth-plan-wrap{overflow-y:auto;border:1px solid var(--bord);border-radius:8px;background:var(--surf)}
.auth-plan-table{width:100%;border-collapse:collapse;table-layout:fixed}
@media(max-width:640px){
  .auth-plan-row td,.auth-plan-kw-tr td{padding-left:6px;padding-right:6px}
}
/* Locked-tier preview: real page content, top third visible, fading+blurring to bg */
.locked-wrap{position:relative;max-height:42vh;overflow:hidden}
.locked-wrap .locked-content{pointer-events:none;user-select:none;filter:saturate(0.9)}
.locked-fade{position:absolute;left:0;right:0;top:0;bottom:0;background:linear-gradient(to bottom,transparent 0%,transparent 12%,var(--bg) 88%);pointer-events:auto}
.locked-blur{position:absolute;left:0;right:0;top:30%;bottom:0;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);mask-image:linear-gradient(to bottom,transparent,black 55%);-webkit-mask-image:linear-gradient(to bottom,transparent,black 55%)}
.locked-center{position:absolute;left:0;right:0;top:46%;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:0 24px}
.locked-center .lk-icon{font-size:34px;line-height:1}
.locked-center .lk-title{font-size:18px;font-weight:600}
.locked-center .lk-desc{font-size:14px;color:var(--muted);max-width:440px;line-height:1.55}
.locked-center .lk-cta{font-size:13px;color:var(--accent);font-weight:600;text-decoration:underline}

/* Essential-data group headers: full-width shaded bars segmenting the box */
.ess-group-hd{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--muted);background:color-mix(in srgb,var(--text) 5%,var(--bg));padding:6px 12px;margin:14px -12px 10px}

/* Essential metrics row: labels get equal height so inputs/boxes align across columns */
.ess-metrics>div>.form-label{min-height:34px;display:flex;align-items:flex-end;gap:4px;line-height:1.25}
.ess-metrics .form-input{height:38px}
@media(max-width:500px){.ess-metrics>div>.form-label{min-height:0}}
.ics-chip{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted);background:var(--bluel);border:1px dashed var(--blue);border-radius:6px;padding:3px 7px;margin:0 6px 4px;opacity:0.85}
.auth-plan-th{position:sticky;top:0;background:var(--surf);z-index:5;font-size:13px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:0.06em;padding:8px 10px;border-bottom:2px solid var(--bord);cursor:pointer;user-select:none;white-space:nowrap;text-align:left}
.auth-plan-th:hover{color:var(--text)}
.auth-plan-th.sorted{color:var(--accent)}
.auth-plan-row{cursor:pointer;transition:background 0.1s}
.auth-plan-row:hover td{background:var(--bg)}
.auth-plan-row.open td{background:var(--al)}
.auth-plan-row td{padding:9px 10px;border-bottom:1px solid var(--bord);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
.auth-plan-detail td{padding:0;border-bottom:2px solid var(--bord)}
.auth-plan-kw-list{max-height:180px;overflow-y:auto}
.auth-plan-kw-row{display:flex;align-items:center;gap:8px;padding:6px 10px 6px 36px;border-bottom:1px solid var(--bord);cursor:pointer;transition:background 0.1s}
.auth-plan-kw-row:last-child{border-bottom:none}
.auth-plan-kw-row:hover{background:var(--bg)}
.auth-plan-kw-row.anchor-kw{background:var(--al)}
.auth-plan-kw-row.past-due-kw{opacity:0.6}
.auth-plan-section-hdr td{padding:5px 10px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.07em;background:var(--bg);border-bottom:1px solid var(--bord);border-top:2px solid var(--bord)}
.auth-plan-pastdue-hdr td{background:#fff8f0;color:#b07000;border-bottom:1px solid #ffd980;border-top:2px solid #ffd980}
.auth-plan-sub-hdr td{background:var(--surf);border-top:1px solid var(--bord);border-bottom:1px solid var(--bord);padding:4px 10px 4px 18px;font-size:12px;font-weight:600;color:var(--muted);letter-spacing:0.04em;text-transform:none}
.auth-status-chip{padding:2px 8px;border-radius:10px;border:1px solid var(--bord);background:var(--surf);font-size:13px;cursor:pointer;color:var(--text);font-family:var(--font);transition:all 0.12s;white-space:nowrap}
.auth-status-chip:hover{border-color:var(--accent);background:var(--al)}
.auth-status-chip.excl{background:var(--bg);color:var(--muted);text-decoration:line-through;border-color:var(--bord);opacity:0.65}
/* ── Keyword sub-rows (proper <tr> elements, column-aligned) ── */
.auth-plan-kw-tr td{padding:5px 10px;border-bottom:1px solid var(--bord);vertical-align:middle;overflow:hidden;white-space:nowrap}
.auth-plan-kw-tr:hover td{background:var(--bg);cursor:pointer}
.auth-plan-kw-tr.anchor-kw td{background:var(--al)}
.auth-plan-kw-tr.anchor-kw:hover td{background:color-mix(in srgb,var(--al) 80%,var(--bg))}
.auth-plan-kw-tr.past-due-kw td{opacity:0.65}
.auth-kw-star{font-size:12px;color:var(--accent);width:14px;flex-shrink:0;display:inline-block}
.auth-kw-star:empty{display:inline-block;width:14px}
.auth-slot-chip{font-size:12px;border:1px solid;border-radius:3px;padding:0 4px;flex-shrink:0;white-space:nowrap;line-height:1.5}
.auth-kw-action-btn{background:none;border:none;cursor:pointer;font-size:15px;color:var(--accent);padding:1px 4px;border-radius:3px;font-family:var(--font);line-height:1;transition:background 0.1s;opacity:0.7}
.auth-kw-action-btn:hover{background:var(--al);opacity:1}
.auth-plan-kw-divider td{padding:3px 10px;font-size:12px;font-weight:700;color:#b07000;background:#fff8f0;border-bottom:1px solid #ffe0a0;border-top:1px solid #ffe0a0;text-transform:uppercase;letter-spacing:0.06em}
.auth-plan-kw-showmore td{padding:0;border-bottom:1px solid var(--bord)}
.auth-plan-kw-showmore button{display:block;width:100%;padding:6px;font-size:13px;color:var(--accent);background:none;border:none;cursor:pointer;font-family:var(--font);transition:background 0.1s;text-align:center}
.auth-plan-kw-showmore button:hover{background:var(--al)}
.auth-plan-kw-actions td{padding:0;border-bottom:2px solid var(--bord);background:var(--bg)}
.auth-plan-kw-actions td>div{display:flex;align-items:center;justify-content:space-between;padding:6px 10px}
.auth-plan-kw-count-row td{padding:4px 10px;border-bottom:2px solid var(--bord);background:var(--bg)}
.auth-kw-schedule-btn{background:none;border:1px solid var(--bord);border-radius:5px;padding:3px 10px;font-size:13px;cursor:pointer;color:var(--text);font-family:var(--font);transition:all 0.12s}
.auth-kw-schedule-btn:hover{border-color:var(--accent);background:var(--al);color:var(--accent)}
.auth-plan-kw-count{font-size:13px;color:var(--muted)}
/* ── Find Another modal ── */
.find-another-list{max-height:400px;overflow-y:auto;border:1px solid var(--bord);border-radius:8px;margin:10px 0}
.find-another-slot-hdr{padding:5px 12px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;background:var(--bg);border-bottom:1px solid var(--bord);margin-left:0;padding-left:10px}
.find-another-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--bord);transition:background 0.1s}
.find-another-row:last-child{border-bottom:none}
.find-another-row:hover{background:var(--al)}
.find-another-pair{font-size:12px;color:var(--accent);font-family:var(--mono);background:var(--al);border:1px solid var(--accent);border-radius:3px;padding:1px 4px;cursor:default;white-space:nowrap}

/* ── Dup table view ── */
.dup-compare-wrap{overflow-x:auto;margin-bottom:10px}
.dup-compare-table{width:100%;border-collapse:collapse;font-size:14px}
.dup-compare-table th{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:0.05em;color:var(--muted);padding:6px 8px;border-bottom:2px solid var(--bord);white-space:nowrap;text-align:left;background:var(--bg)}
.dup-compare-table td{padding:6px 8px;border-bottom:1px solid var(--bord);vertical-align:middle;white-space:nowrap}
.dup-compare-table tr.dup-selected td{background:var(--al)}
.dup-compare-table tr:hover td{background:var(--bg)}
.dup-compare-table tr.dup-selected:hover td{background:var(--al)}

/* ── Recipe Planner (drag-drop calendar) ── */
.rp-layout{display:grid;grid-template-columns:260px 1fr;gap:0;height:calc(100vh - var(--sticky-top) - 100px);min-height:500px;overflow:hidden}
@media(max-width:800px){.rp-layout{grid-template-columns:1fr;height:auto;overflow:visible}}
.rp-sidebar{border-right:1px solid var(--bord);display:flex;flex-direction:column;overflow:hidden;height:100%}
.rp-sidebar-hdr{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 6px;flex-shrink:0;font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:0.07em;color:var(--muted)}
.rp-filter-btn{font-size:13px;padding:2px 8px;border-radius:4px;border:1px solid var(--bord);background:var(--bg);cursor:pointer;color:var(--muted);font-family:var(--font)}
.rp-filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.rp-gear-btn{padding:2px 5px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rp-gear-btn:hover{background:var(--al);color:var(--accent);border-color:var(--accent)}
.rp-sidebar-section{overflow-y:auto;flex:1;padding:0 0 8px}
.rp-sidebar-item{display:flex;align-items:center;gap:6px;padding:6px 10px;margin:2px 8px;border-radius:6px;border:1px solid var(--bord);background:var(--surf);cursor:grab;transition:background 0.1s,opacity 0.1s;user-select:none}
.rp-sidebar-item:hover{background:var(--bg);border-color:var(--accent)}
.rp-sidebar-item.dragging{opacity:0.4;cursor:grabbing}
.rp-show-all-btn{font-size:14px;color:var(--accent);padding:8px 12px;text-align:center;cursor:pointer;border-top:1px solid var(--bord);background:none;border-left:none;border-right:none;border-bottom:none;font-family:var(--font);width:100%;flex-shrink:0}
.rp-show-all-btn:hover{background:var(--al)}
.rp-grid-wrap{padding-left:16px;display:flex;flex-direction:column;overflow-y:auto;min-height:0}
@media(max-width:800px){.rp-grid-wrap{padding-left:0;padding-top:16px}}
/* Month grid */
.cal-month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:900px){.cal-month-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.cal-month-grid{grid-template-columns:1fr}}
.cal-month-box{background:var(--surf);border:2px solid var(--bord);border-radius:10px;overflow:hidden;transition:border-color 0.15s,background 0.15s;height:calc((100vh - var(--sticky-top) - 120px)/4);min-height:130px;display:flex;flex-direction:column}
.cal-month-box.drop-target{border-color:var(--accent);background:var(--al)}
.cal-month-hdr{background:var(--al);color:var(--accent);text-align:center;padding:0.25rem;font-size:15px;font-weight:600;user-select:none;letter-spacing:0.01em}
.cal-month-body{padding:6px;display:flex;flex-direction:column;gap:3px;flex:1;overflow-y:auto;min-height:0}
.cal-empty{align-items:center;justify-content:center}
.cal-drop-hint{display:none;color:#bbb;font-size:13px;text-align:center;pointer-events:none}
.cal-empty .cal-drop-hint{display:block}
.cal-drop-hint-empty{display:flex !important;align-items:center;justify-content:center;flex:1;color:#bbb;font-size:13px;text-align:center;pointer-events:none}
.cal-kw-chip{display:flex;align-items:flex-start;gap:4px;padding:4px 8px;border-radius:6px;font-size:15px;font-weight:500;cursor:pointer;background:var(--bg);border:1px solid var(--bord);transition:border-color 0.15s}
.chip-day{font-size:12px;color:var(--accent);font-weight:600;flex-shrink:0;padding:0 2px;cursor:pointer;border-radius:3px}
.chip-day:hover{background:var(--al)}
/* Day picker mini calendar */
.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:4px}
.dp-hdr{font-size:12px;font-weight:600;color:var(--muted);text-align:center;padding:3px 0}
.dp-day{font-size:14px;text-align:center;padding:5px 2px;border-radius:5px;cursor:pointer;transition:background 0.1s,color 0.1s}
.dp-day:hover{background:var(--al);color:var(--accent)}
.dp-sel{background:var(--accent);color:#fff!important}
.dp-sel:hover{background:var(--accent)}
.dp-today{font-weight:700;color:var(--accent)}
.cal-kw-chip:hover{border-color:var(--accent)}
/* View toggle segmented control */
.rp-view-toggle{display:inline-flex;border:1px solid var(--bord);border-radius:6px;overflow:hidden;background:var(--bg)}
.rp-vbtn{font-size:14px;padding:4px 10px;border:none;background:none;cursor:pointer;color:var(--muted);font-family:var(--font);transition:background 0.1s,color 0.1s;white-space:nowrap}
.rp-vbtn:hover{background:var(--al);color:var(--accent)}
.rp-vbtn.active{background:var(--accent);color:#fff}
/* Week view */
.rp-week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
@media(max-width:900px){.rp-week-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:600px){.rp-week-grid{grid-template-columns:repeat(2,1fr)}}
/* 4-week grid overrides — always 7 cols, tighter cells */
.rp-week-day-headers{gap:4px;margin-bottom:2px}
.rp-week-day-name{font-size:13px;font-weight:600;color:var(--muted);text-align:center;padding:3px 0}
.rp-4week{gap:4px;margin-bottom:0}
@media(max-width:900px){.rp-week-day-headers,.rp-4week{grid-template-columns:repeat(7,1fr)}}
@media(max-width:600px){.rp-week-day-headers,.rp-4week{grid-template-columns:repeat(7,1fr)}}
.rp-4week .rp-week-col{height:calc((100vh - var(--sticky-top) - 160px)/4);min-height:90px;border-radius:4px}
/* Month-only floater banner */
.rp-month-float{display:flex;align-items:flex-start;flex-wrap:wrap;gap:6px;padding:7px 10px;background:var(--al);border-radius:6px;border:1px solid var(--bord)}
.rp-month-float-lbl{font-size:13px;color:var(--muted);font-weight:500;white-space:nowrap;line-height:22px}
/* Jump input */
.rp-jump-input{height:28px;font-size:14px;padding:2px 6px;width:140px}
/* Sidebar click-to-add variant */
.rp-sidebar-item-add{cursor:pointer}
.rp-sidebar-item-add:hover{border-color:var(--accent);background:var(--al)}
/* Page nav (month pagination) */
.rp-page-nav{align-items:center}
.rp-week-col{background:var(--surf);border:2px solid var(--bord);border-radius:8px;overflow:hidden;height:155px;display:flex;flex-direction:column;transition:border-color 0.15s,background 0.15s}
.rp-week-col.drop-target{border-color:var(--accent);background:var(--al)}
.rp-week-today{border-color:var(--accent)}
.rp-week-day-hdr{background:var(--al);color:var(--accent);text-align:center;padding:4px 2px;cursor:pointer;user-select:none;transition:background 0.1s;height:32px;display:flex;flex-direction:row;align-items:center;justify-content:center}
.rp-week-day-hdr:hover{background:var(--accent);color:#fff}
.rp-week-col.rp-first-month .rp-week-day-hdr{background:var(--accent);color:#fff}
.rp-week-col.rp-first-month .rp-week-day-hdr:hover{opacity:0.85}
.rp-week-body{padding:4px;display:flex;flex-direction:column;gap:3px;flex:1;overflow-y:auto;min-height:0}
.rp-week-chip{display:flex;align-items:flex-start;gap:3px;padding:4px 6px;border-radius:4px;background:var(--bg);border:1px solid var(--bord);font-size:15px;cursor:pointer;transition:border-color 0.1s}
.rp-week-chip:hover{border-color:var(--accent)}
/* Day view */
.rp-day-wrap{background:var(--surf);border:2px solid var(--bord);border-radius:10px;flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:0;transition:border-color 0.15s,background 0.15s}
.rp-day-hdr{background:var(--al);color:var(--accent);text-align:center;padding:6px 10px;font-size:14px;font-weight:600;user-select:none;letter-spacing:0.01em;flex-shrink:0;border-radius:8px 8px 0 0}
.rp-day-body{padding:10px;display:flex;flex-direction:column;gap:8px;flex:1;overflow-y:auto;min-height:0}
.rp-day-wrap.drop-target{border-color:var(--accent);background:var(--al)}
.rp-day-kw{display:flex;align-items:center;gap:10px;padding:10px;background:var(--bg);border:1px solid var(--bord);border-radius:8px}
.rp-day-bar{width:4px;border-radius:2px;align-self:stretch;flex-shrink:0;padding:0;min-height:32px}
.drag-ghost{position:fixed;pointer-events:none;z-index:9999;background:var(--surf);border:1px solid var(--accent);border-radius:6px;padding:4px 10px;font-size:14px;font-weight:500;color:var(--text);box-shadow:0 4px 12px rgba(0,0,0,0.2);white-space:nowrap;opacity:0.9}

/* ── Poll widget ── */
.poll-wrap{background:var(--surf);border:1px solid var(--bord);border-radius:10px;padding:14px;margin-bottom:14px}
.poll-q{font-size:14px;font-weight:500;margin-bottom:10px}
.poll-option{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--bord);border-radius:6px;margin-bottom:5px;cursor:pointer;font-size:15px;transition:border-color 0.15s;position:relative;overflow:hidden}
.poll-option:hover:not(.voted){border-color:var(--accent);background:var(--al)}
.poll-option.voted{cursor:default}
.poll-bar-fill{position:absolute;left:0;top:0;bottom:0;background:var(--al);z-index:0;transition:width 0.6s ease;border-radius:6px}
.poll-opt-text{position:relative;z-index:1;flex:1}
.poll-pct{position:relative;z-index:1;font-size:13px;font-family:var(--mono);color:var(--accent);font-weight:500;flex-shrink:0}
.poll-total{font-size:13px;color:var(--muted);margin-top:6px}

/* ── Global search overlay ── */
.search-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:300;align-items:flex-start;justify-content:center;padding-top:80px}
.search-overlay.open{display:flex}
.search-box{width:100%;max-width:620px;background:var(--surf);border:1px solid var(--bord);border-radius:12px;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,0.2)}
.search-input-wrap{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--bord)}
.search-input{flex:1;border:none;outline:none;background:transparent;font-family:var(--font);font-size:15px;color:var(--text)}
.search-results{max-height:400px;overflow-y:auto}
.search-group-label{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:0.08em;color:var(--muted);padding:8px 16px 3px}
.search-item{display:flex;align-items:center;gap:10px;padding:8px 16px;cursor:pointer;font-size:15px;transition:background 0.1s}
.search-item:hover,.search-item.active{background:var(--al)}
.search-item-sub{font-size:13px;color:var(--muted);margin-top:1px}
.search-empty{padding:24px;text-align:center;color:var(--muted);font-size:15px}

/* ── Admin ── */
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
@media(max-width:700px){.admin-grid{grid-template-columns:1fr}}
.trend-scroll{max-height:150px;overflow-y:auto;margin-bottom:8px}
.trend-item{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--bord);font-size:15px}
.trend-item:last-child{border-bottom:none}
.trend-name{font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trend-cat{width:150px;flex-shrink:0;padding:3px 6px;border:1px solid var(--bord);border-radius:4px;background:var(--surf);color:var(--text);font-family:var(--font);font-size:13px}
.user-row{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--bord);font-size:15px;flex-wrap:wrap;gap:8px}
.user-row:last-child{border-bottom:none}
.tier-badge{font-size:12px;font-weight:500;padding:2px 7px;border-radius:20px;background:var(--bluel);color:var(--blue)}
/* Role badges */
.role-badge{font-size:12px;font-weight:500;padding:2px 8px;border-radius:20px;white-space:nowrap}
.role-badge-superadmin{background:var(--redl);color:var(--red)}
.role-badge-teamleader{background:var(--bluel);color:var(--blue)}
.role-badge-user{background:var(--bg);color:var(--muted);border:1px solid var(--bord)}
/* Admin view toggle */
.admin-view-toggle{display:flex;border:1px solid var(--bord);border-radius:6px;overflow:hidden;flex-shrink:0}
.admin-vt-btn{padding:5px 12px;font-size:13px;font-weight:500;background:var(--surf);color:var(--muted);border:none;cursor:pointer;transition:background 0.15s,color 0.15s;font-family:var(--font)}
.admin-vt-btn.active{background:var(--accent);color:#fff}
.admin-vt-btn:hover:not(.active){background:var(--al);color:var(--text)}
/* Preview banner */
.admin-preview-banner{font-size:13px;font-weight:500;padding:4px 10px;border-radius:20px;background:var(--ambl);color:var(--amb);border:1px solid var(--amb)}

/* ── Loading ── */
.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;color:var(--muted);gap:12px}
.spinner{width:24px;height:24px;border:2px solid var(--bord);border-top-color:var(--accent);border-radius:50%;animation:spin 0.7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── Toast notification ── */
.ripe-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(16px);background:#1a7f37;color:#fff;padding:10px 20px;border-radius:8px;font-size:15px;font-weight:500;box-shadow:0 4px 16px rgba(0,0,0,0.2);z-index:10000;opacity:0;transition:opacity 0.25s,transform 0.25s;pointer-events:none;white-space:nowrap}
.ripe-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.ripe-toast-error{background:#cf222e}
.ripe-toast-info{background:var(--accent)}
/* ── Inline dropdown ── */
.inline-dd{background:var(--surf);border:1px solid var(--bord);border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,0.12);overflow:hidden;font-size:14px;max-height:260px;overflow-y:auto}
.inline-dd-item{padding:7px 12px;cursor:pointer;white-space:nowrap;transition:background 0.1s;color:var(--text)}
.inline-dd-item:hover{background:var(--al);color:var(--accent)}
.inline-dd-item.sel{font-weight:600;color:var(--accent)}
/* ── Import duplicate resolution ── */
.imp-dup-btn{width:100%;text-align:left;padding:11px 14px;border:2px solid var(--bord);border-radius:8px;background:var(--surf);cursor:pointer;font-family:var(--font);transition:border-color 0.15s,background 0.15s}
.imp-dup-btn:hover{border-color:var(--accent);background:var(--al)}
/* ── Import ── */
.imp-mt{width:100%;font-size:15px;border-collapse:collapse}
.imp-mt th{font-size:13px;color:var(--muted);padding:4px 8px;text-align:left;font-weight:500;border-bottom:1px solid var(--bord);background:var(--bg)}
.imp-mt td{padding:5px 8px;border-bottom:1px solid var(--bord);vertical-align:top}
.imp-mt select{width:100%;padding:3px 5px;border:1px solid var(--bord);border-radius:4px;background:var(--surf);color:var(--text);font-family:var(--font);font-size:13px}
.vmap-row{display:flex;align-items:center;gap:5px;margin-top:3px;font-size:13px}
.vmap-row select{flex:1;padding:2px 4px;border:1px solid var(--bord);border-radius:3px;background:var(--surf);color:var(--text);font-family:var(--font);font-size:13px}
select option{background:var(--surf);color:var(--text)}
/* ── Planner note chips ── */
.rp-note-chip{display:flex;align-items:flex-start;gap:4px;box-sizing:border-box;--cut:18px;--crease:2px;--rp-note-bg:var(--color-tertiary);padding:5px 9px;padding-right:calc(9px + var(--cut));font-size:13px;font-weight:500;position:relative;margin-bottom:3px;cursor:text;background:var(--rp-note-bg);clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%)}
.rp-note-chip--yellow{--rp-note-bg:#f5e89a}
.rp-note-chip--red{--rp-note-bg:#f0a8a0}
.rp-note-chip--blue{--rp-note-bg:#a0c8f0}
.rp-note-chip--purple{--rp-note-bg:#d0a8f0}
.rp-note-chip::before{content:'';position:absolute;background:#fff;top:calc(var(--cut) - var(--crease));right:0;width:calc(var(--cut) + var(--crease));height:var(--crease)}
.rp-note-chip::after{content:'';position:absolute;background:#fff;top:0;right:var(--cut);width:var(--crease);height:var(--cut)}
@media(prefers-color-scheme:dark){
  .rp-note-chip{background:rgba(200,240,160,0.18)}
  .rp-note-chip::before,.rp-note-chip::after{background:rgba(255,255,255,0.25)}
}
.rp-add-note-btn{display:block;background:none;border:1px dashed var(--bord);border-radius:4px;color:var(--muted);font-size:13px;cursor:pointer;padding:2px 0;font-family:var(--font);opacity:0.6;transition:opacity 0.15s,border-color 0.15s,color 0.15s;flex-shrink:0;text-align:center}
.rp-add-note-btn:hover{opacity:1;border-color:var(--accent);color:var(--accent)}
