.visibility-badge{
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  min-height:20px;padding:3px 8px;border:1px solid currentColor;border-radius:999px;
  font-family:var(--sans);font-size:12px;font-style:normal;font-weight:700;line-height:1;
  letter-spacing:.03em;white-space:nowrap
}
.visibility-badge.private{color:var(--ink-3);background:rgba(117,111,102,.12)}
.visibility-badge.public{color:#2d765b;background:rgba(61,139,106,.12)}
[data-public-only][hidden],[data-private-only][hidden]{display:none!important}

body.publication-modal-open{overflow:hidden}
.publication-modal[hidden]{display:none}
.publication-modal{
  position:fixed;inset:0 0 var(--bottom-nav-space);z-index:1200;display:grid;place-items:end center;
  padding:20px 14px;
  opacity:0;pointer-events:none;transition:opacity .22s ease
}
.publication-modal.open{opacity:1;pointer-events:auto}
.publication-modal-backdrop{
  position:absolute;inset:0;width:100%;height:100%;
  background:rgba(12,11,10,.66);backdrop-filter:blur(5px)
}
.publication-modal-panel{
  position:relative;width:min(100%,460px);max-height:min(calc(100dvh - var(--bottom-nav-space) - 40px),680px);overflow:auto;
  padding:26px 20px 20px;background:var(--surface);color:var(--ink);
  border:1px solid var(--line);border-radius:22px;box-shadow:0 22px 70px rgba(0,0,0,.32);
  transform:translateY(18px);transition:transform .28s cubic-bezier(.22,.8,.25,1);
  outline:none
}
.publication-modal.open .publication-modal-panel{transform:none}
.publication-modal-close{
  position:absolute;top:12px;right:12px;display:grid;place-items:center;
  width:34px;height:34px;border-radius:50%;color:var(--ink-3);font-size:21px
}
.publication-modal-kicker{
  display:block;margin-bottom:6px;color:var(--accent-ink);font-size:12px;
  font-weight:700;letter-spacing:.15em
}
.publication-modal h2{margin:0;padding-right:36px;font-size:20px;line-height:1.55}
.publication-modal-story{
  margin:7px 0 18px;color:var(--ink-2);font-family:var(--serif);
  font-size:13px;line-height:1.7
}
.publication-notice{
  padding:15px;background:var(--surface-2);border:1px solid var(--line-soft);
  border-radius:14px
}
.publication-notice b{display:block;margin-bottom:7px;font-size:12px}
.publication-notice ul{margin:0;padding-left:1.35em;color:var(--ink-2);font-size:12px;line-height:1.8}
.publication-consent{
  display:flex;gap:10px;align-items:flex-start;margin:14px 2px 0;
  color:var(--ink-2);font-size:12px;line-height:1.6;cursor:pointer
}
.publication-consent input{flex:0 0 auto;width:18px;height:18px;margin-top:0;accent-color:var(--accent)}
.publication-modal-actions{position:sticky;z-index:2;bottom:-20px;display:grid;grid-template-columns:1fr 1.35fr;gap:9px;margin:18px -20px -20px;padding:14px 20px 20px;border-top:1px solid var(--line-soft);background:var(--surface)}
.publication-modal-actions .btn{min-height:46px;padding:10px 12px}
.publication-modal-actions .danger{background:#7d4037;border-color:#7d4037;color:#fff}
.publication-modal-status{min-height:1.4em;margin:9px 0 0;color:var(--accent-ink);font-size:12px;text-align:center}

@media(min-width:620px){
  .publication-modal{place-items:center}
  .publication-modal-panel{padding:30px 28px 22px;border-radius:20px}
  .publication-modal-actions{bottom:-22px;margin-right:-28px;margin-bottom:-22px;margin-left:-28px;padding-right:28px;padding-bottom:22px;padding-left:28px}
}
