/* ================= COMPOSER ================= */
  .policy-note{
    display:flex;align-items:center;gap:10px;padding:13px 18px;margin-bottom:18px;
    font-size:.82rem;color:var(--ink-200);
  }
  .policy-note .ic{flex:none;font-size:1.05rem;}

  .composer{padding:clamp(18px,4vw,26px);margin-bottom:26px;position:relative;}
  .composer-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
  .composer-head .who{font-family:var(--font-display);font-weight:600;font-size:.95rem;}
  .composer textarea{
    width:100%;min-height:88px;resize:vertical;background:rgba(255,255,255,.05);
    border:1px solid var(--glass-border);border-radius:14px;padding:14px 16px;color:var(--ink-0);
    font-size:.95rem;line-height:1.5;outline:none;transition:border-color .2s ease, background .2s ease;
  }
  .composer textarea::placeholder{color:var(--ink-500);}
  .composer textarea:focus{border-color:var(--blue-400);background:rgba(255,255,255,.08);}
  .composer-meta{display:flex;justify-content:flex-end;margin-top:6px;}
  .char-count{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-500);}
  .char-count.warn{color:var(--amber-400);}

  .cat-row{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 18px;}
  .cat-chip{
    border:1px solid var(--glass-border);background:var(--glass-fill);color:var(--ink-200);
    font-family:var(--font-body);font-size:.8rem;font-weight:600;padding:9px 14px;border-radius:999px;
    cursor:pointer;transition:transform .15s ease, background .15s ease, border-color .15s ease, box-shadow .15s ease;
  }
  .cat-chip:hover{transform:translateY(-2px);}
  .cat-chip.active{
    color:#0c1226;border-color:transparent;
    background:var(--chip-bg,var(--blue-400));
    box-shadow:0 8px 18px -8px var(--chip-bg,var(--blue-400));
  }

  .composer-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px;}
  .composer-footer .lock-hint{margin-right:auto;}

  /* --- guest state (new) --- */
  .composer.locked textarea{cursor:pointer;}
  .composer .lock-hint{
    display:none;align-items:center;gap:8px;font-size:.78rem;color:var(--ink-500);
    font-family:var(--font-mono);margin-right:auto;
  }
  .composer.locked .lock-hint{display:inline-flex;}

  /* ---------- new: media attach + preview ---------- */
  /* attachBtn is injected by composer.js right before the Post button,
     so it just needs to look at home inside .composer-footer */
  .attach-btn .face{padding:9px 11px;}

  .media-preview{
    position:relative;margin:0 0 18px;border-radius:14px;overflow:hidden;
    border:1px solid var(--glass-border);max-width:280px;background:#000;
  }
  .media-preview img, .media-preview video{display:block;width:100%;max-height:320px;object-fit:cover;}
  .media-preview .media-remove{
    position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:8px;border:none;
    background:rgba(3,7,20,.66);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;
    backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  }
  .media-preview .media-remove:hover{background:rgba(3,7,20,.85);}