:root{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;
  color:#182833;
  background:#e8eef2;
  font-size:14px;
  --blue:#2199dc;
  --line:#e4edf2;
  --muted:#788c9a
}
*{
  box-sizing:border-box
}
body{
  margin:0
}
button,input,textarea,select{
  font:inherit
}
a{
  color:var(--blue);
  text-decoration:none
}
a:hover{
  text-decoration:underline
}
button,.button{
  cursor:pointer;
  border:1px solid #d7e4eb;
  border-radius:5px;
  background:#fff;
  color:#466072;
  padding:8px 13px;
  font-weight:600
}
button:hover,.button:hover{
  background:#f1f9fe;
  text-decoration:none
}
button:disabled{
  opacity:.55;
  cursor:wait
}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid #168bd0;
  outline-offset:3px
}
[hidden]{
  display:none!important
}
header{
  position:sticky;
  top:0;
  background:#fff;
  border-bottom:1px solid #d8e3e9;
  z-index:10
}
.top{
  max-width:1190px;
  height:62px;
  margin:auto;
  display:flex;
  align-items:center;
  gap:48px;
  padding:0 10px
}
.brand{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:22px;
  letter-spacing:-.8px
}
.brand svg{
  width:34px;
  height:34px
}
.top nav{
  display:flex;
  align-items:stretch;
  gap:30px;
  height:100%
}
.top nav a{
  display:flex;
  align-items:center;
  color:#637d8f;
  font-weight:650;
  padding:0 5px
}
.top nav a[aria-current=page]{
  color:var(--blue);
  border-bottom:3px solid var(--blue)
}
#login,#logout{
  margin-left:auto;
  font-size:13px
}
#login{
  border:1px solid #bee0f5;
  padding:8px 15px;
  border-radius:20px
}
.layout{
  max-width:1190px;
  display:grid;
  grid-template-columns:253px minmax(0,620px) 269px;
  gap:18px;
  margin:25px auto;
  padding:0 8px
}
.profile{
  align-self:start;
  position:sticky;
  top:88px
}
.profile-body{
  padding:0 20px 20px;
  background:#fff;
  border:1px solid var(--line);
  border-top:0;
  border-radius:0 0 6px 6px
}
.cover{
  height:108px;
  background:linear-gradient(120deg,#71caee,#319edb);
  border-radius:6px 6px 0 0;
  overflow:hidden;
  position:relative
}
.cover svg{
  width:150px;
  height:150px;
  position:absolute;
  right:-4px;
  top:-14px;
  color:#ffffff35;
  transform:rotate(-12deg)
}
.avatar{
  width:75px;
  height:75px;
  border:4px solid #fff;
  background:#e4f5ff;
  border-radius:50%;
  position:relative;
  margin-top:-32px
}
.profile h2{
  font-size:21px;
  margin:9px 0 0
}
.profile .muted{
  font-size:12px
}
.bio{
  line-height:1.9;
  white-space:pre-wrap
}
.profile-nav{
  display:grid;
  gap:16px;
  margin-top:23px
}
.profile-nav a{
  color:#4d6a7c
}
.profile footer{
  font-size:11px;
  line-height:2;
  color:#92a3ae;
  padding:17px 12px
}
hr{
  border:0;
  border-top:1px solid var(--line);
  margin:22px 0
}
.muted{
  color:var(--muted);
  line-height:1.8
}
.panel{
  background:#fff;
  border:1px solid #dfe8ee;
  border-radius:6px;
  padding:22px;
  margin-bottom:15px
}
.page-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:14px;
  padding:18px 22px;
  gap:12px
}
.page-head h1{
  font-size:20px;
  margin:0
}
.page-head span{
  font-size:12px
}
.side .panel{
  padding:22px 19px
}
.side h2{
  font-size:18px;
  line-height:1.6;
  margin:12px 0
}
.side h3{
  font-size:16px;
  margin:0
}
.side p{
  font-size:13px
}
.eyebrow{
  font-size:10px;
  letter-spacing:2px;
  font-weight:700;
  color:var(--blue)
}
.timeline{
  background:#fff;
  border:1px solid #dfe8ee;
  border-radius:6px;
  overflow:hidden
}
.post{
  display:flex;
  gap:12px;
  padding:24px 22px;
  border-bottom:1px solid var(--line)
}
.post:last-child{
  border:0
}
.post-avatar{
  width:42px;
  height:42px;
  border-radius:50%;
  flex-shrink:0
}
.post-body{
  min-width:0;
  flex:1
}
.post-meta{
  display:flex;
  gap:7px;
  align-items:center;
  flex-wrap:wrap
}
.post-meta strong{
  font-size:14px
}
.post-meta .muted{
  font-size:12px
}
.pinned{
  margin-left:auto;
  color:var(--blue);
  font-size:11px;
  background:#eef8ff;
  border-radius:4px;
  padding:3px 7px
}
.post-title{
  font-size:19px;
  line-height:1.6;
  margin:12px 0
}
.post-title a{
  color:#182833
}
h1.post-title{
  font-size:25px
}
.prose{
  font-size:15px;
  line-height:1.85;
  word-break:break-word;
  overflow-wrap:anywhere
}
.prose p{
  white-space:pre-wrap;
  margin:11px 0
}
.prose h2{
  font-size:22px;
  margin:25px 0 10px
}
.prose h3{
  font-size:18px;
  margin:20px 0 8px
}
.prose img{
  max-width:100%;
  height:auto;
  border-radius:5px;
  cursor:zoom-in
}
.prose ul{
  padding-left:24px
}
.prose table{
  border-collapse:collapse;
  width:100%;
  min-width:300px
}
.prose th,.prose td{
  border:1px solid #d8e5ee;
  padding:8px;
  min-width:65px
}
.prose th{
  background:#f1f7fb
}
.table-scroll{
  overflow-x:auto;
  margin:12px 0
}
.text-button{
  border:0;
  padding:4px 0;
  color:var(--blue);
  font-weight:500;
  background:transparent
}
.permalink{
  font-size:11px;
  color:#8aa2b2;
  margin-left:12px
}
.actions{
  display:flex;
  align-items:center;
  gap:38px;
  padding-top:16px;
  margin-top:6px
}
.actions button{
  background:transparent;
  border:0;
  padding:4px 0;
  color:#8196a3;
  font-size:13px;
  font-weight:500
}
.actions button span{
  margin-left:5px
}
.actions .like[aria-pressed=true]{
  color:#e2507e
}
.actions .edit{
  margin-left:auto;
  font-size:12px
}
.empty{
  text-align:center;
  color:#8296a5;
  padding:50px 22px;
  line-height:1.8
}
.empty h2{
  font-size:20px;
  color:#45667c
}
.pagination{
  display:flex;
  justify-content:center;
  gap:25px;
  padding:20px
}
.primary{
  background:var(--blue);
  color:white;
  border-color:var(--blue);
  border-radius:20px;
  padding:9px 22px
}
.primary:hover{
  background:#188ac9
}
.composer{
  background:#f1faff;
  border-color:#cce7f7
}
.composer h2{
  font-size:16px;
  margin:0 0 15px
}
input,textarea,select{
  width:100%;
  border:1px solid #d9e6ee;
  border-radius:5px;
  padding:10px 12px;
  background:#fff;
  color:#243d4c;
  outline:0
}
input:focus,textarea:focus{
  border-color:#76bde9
}
textarea{
  min-height:85px;
  resize:vertical
}
#post-title{
  border-bottom-left-radius:0;
  border-bottom-right-radius:0;
  border-bottom:0
}
.toolbar{
  display:flex;
  gap:5px;
  align-items:center;
  flex-wrap:wrap;
  background:#fff;
  padding:8px;
  border:1px solid #d9e6ee
}
.toolbar button,.toolbar label{
  font-size:12px;
  padding:5px 8px;
  font-weight:500
}
.toolbar label{
  cursor:pointer
}
.tiptap{
  background:white;
  outline:0;
  min-height:150px;
  padding:15px;
  border:1px solid #d9e6ee;
  border-top:0;
  line-height:1.8;
  overflow-wrap:anywhere;
  border-radius:0 0 5px 5px
}
.tiptap p{
  margin:5px 0
}
.tiptap h2{
  font-size:21px;
  margin:15px 0
}
.tiptap h3{
  font-size:17px
}
.tiptap img{
  max-width:100%
}
.tiptap table{
  border-collapse:collapse;
  width:100%;
  table-layout:fixed
}
.tiptap td,.tiptap th{
  border:1px solid #b6d0e2;
  padding:6px;
  vertical-align:top;
  min-width:30px;
  position:relative
}
.tiptap th{
  background:#edf5fa
}
.tiptap .selectedCell{
  background:#d8eeff
}
.editor-footer{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  margin-top:14px
}
.editor-footer #save-state{
  font-size:11px;
  flex:1;
  min-width:130px
}
.hint{
  font-size:11px;
  color:#8497a3;
  line-height:1.8
}
.comments{
  margin-top:17px;
  background:#f8fbfd;
  border:1px solid #e2edf4;
  border-radius:5px;
  padding:16px
}
.comment{
  border-bottom:1px solid #e3edf3;
  padding:12px 0
}
.comment time{
  font-size:10px;
  color:#92a3ae;
  float:right
}
.comment p{
  font-size:13px;
  line-height:1.8;
  white-space:pre-wrap;
  word-break:break-word
}
.owner-reply{
  background:#edf6fc;
  padding:8px 12px;
  border-radius:4px
}
.owner-reply strong{
  font-size:11px;
  color:var(--blue)
}
.comment-form{
  display:grid;
  gap:10px;
  margin-top:18px
}
.comment-form h3{
  font-size:14px;
  margin:0 0 4px
}
.comment-form input,.comment-form textarea{
  font-size:13px
}
.form-bottom{
  display:flex;
  gap:10px;
  justify-content:space-between;
  align-items:center
}
.comment-status{
  font-size:12px;
  color:#496d83;
  line-height:1.7;
  white-space:pre-wrap
}
.more-comments{
  margin-top:12px;
  font-size:12px
}
.tabs{
  display:flex;
  gap:7px;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
  margin-bottom:20px;
  flex-wrap:wrap
}
.tabs button{
  border:0;
  font-size:12px
}
.tabs button.selected{
  background:#eaf6ff;
  color:var(--blue)
}
.admin-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:15px
}
.admin-heading h2{
  font-size:17px
}
.admin-heading select{
  width:110px
}
.admin-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding:15px 0;
  border-bottom:1px solid var(--line)
}
.admin-row strong{
  display:block;
  max-width:320px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.admin-row p{
  margin:4px 0;
  font-size:11px
}
.row-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap
}
.row-actions button{
  font-size:11px;
  padding:6px 8px
}
.danger{
  color:#c35e67
}
.moderation{
  border-bottom:1px solid var(--line);
  padding:18px 0
}
.moderation p{
  white-space:pre-wrap;
  line-height:1.8;
  word-break:break-word
}
.moderation .row-actions{
  margin-top:10px
}
.moderation span{
  font-size:11px
}
.stack{
  display:grid;
  gap:16px;
  margin:20px 0
}
.stack label{
  display:grid;
  gap:7px;
  font-size:12px;
  color:#678292
}
.stack button{
  justify-self:start
}
.stack .check{
  display:flex;
  align-items:center
}
.check input{
  width:auto
}
.link-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:14px
}
.link-card{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
  min-height:66px;
  border:1px solid var(--line);
  border-radius:5px;
  padding:11px 12px;
  background:#fbfdff
}
.link-card strong{
  display:block;
  font-size:14px;
  line-height:20px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.link-card p{
  font-size:12px;
  color:#8096a5;
  margin:0;
  line-height:18px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.link-card:hover{
  background:#f0f9ff;
  text-decoration:none
}
#private-links .link-card{
  min-height:0;
  margin-top:8px
}
#toast{
  position:fixed;
  bottom:25px;
  left:50%;
  transform:translateX(-50%);
  padding:13px 23px;
  background:#287aa8;
  color:#fff;
  border-radius:6px;
  box-shadow:0 5px 25px #173c5525;
  max-width:90%;
  z-index:50;
  display:none;
  line-height:1.6
}
#toast.visible{
  display:block
}
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0)
}
dialog{
  border:0;
  padding:30px;
  border-radius:6px;
  max-width:95vw;
  max-height:95vh
}
dialog::backdrop{
  background:#122733c9
}
dialog img{
  max-width:85vw;
  max-height:80vh;
  object-fit:contain
}
#close-lightbox{
  position:absolute;
  top:0;
  right:0;
  font-size:23px;
  border:0
}
main{
  min-width:0
}
@media(max-width:1140px){
  .layout{
    grid-template-columns:230px minmax(0,1fr);
    max-width:940px;
    padding:0 16px
  }
  .side{
    display:none
  }
  .top{
    max-width:940px;
    padding:0 20px
  }
}
@media(max-width:680px){
  .layout{
    display:block;
    margin:12px auto;
    padding:0 8px
  }
  .profile{
    display:none
  }
  .top{
    height:56px;
    gap:18px;
    padding:0 12px
  }
  .brand{
    font-size:18px;
    gap:2px
  }
  .brand svg{
    width:26px
  }
  .top nav{
    gap:13px
  }
  .top nav a{
    font-size:12px;
    padding:0
  }
  #login,#logout{
    font-size:10px;
    padding:6px 8px
  }
  .post{
    padding:18px 13px;
    gap:9px
  }
  .post-avatar{
    width:33px;
    height:33px
  }
  .post-meta .muted{
    font-size:10px
  }
  .post-meta strong{
    font-size:13px
  }
  .post-title{
    font-size:17px
  }
  .prose{
    font-size:14px
  }
  .panel{
    padding:17px
  }
  .page-head{
    padding:15px 17px
  }
  .page-head h1{
    font-size:18px
  }
  .page-head span{
    font-size:11px
  }
  .actions{
    gap:25px
  }
  .comments{
    padding:12px;
    margin-left:-25px
  }
  .link-grid{
    grid-template-columns:1fr
  }
  .admin-row{
    align-items:flex-start;
    flex-direction:column
  }
  .admin-row strong{
    max-width:75vw
  }
  .toolbar{
    gap:3px
  }
  .toolbar button{
    padding:5px 7px
  }
  .editor-footer{
    gap:6px
  }
  .editor-footer button{
    font-size:12px;
    padding:8px 12px
  }
  .editor-footer #save-state{
    flex-basis:100%
  }
  .prose h2{
    font-size:20px
  }
}
/* Compact timeline and shared rich text rules. */
.post{padding:15px 18px}.post-title{font-size:16px;line-height:1.4;margin:7px 0;font-weight:650}h1.post-title{font-size:23px;margin:12px 0}.prose{font-size:14px;line-height:1.6}.prose p{margin:6px 0;white-space:normal;text-align:justify}.prose h2{font-size:19px;margin:16px 0 7px}.prose h3{font-size:16px;margin:12px 0 6px}.prose th,.prose td{padding:4px 8px;line-height:1.45;vertical-align:top}.prose td p,.prose th p,.tiptap td p,.tiptap th p{margin:0;line-height:1.45;text-align:inherit}.tiptap{line-height:1.6}.tiptap p{text-align:justify}.prose .align-left,.tiptap .align-left{text-align:left}.prose .align-center,.tiptap .align-center{text-align:center}.prose .align-right,.tiptap .align-right{text-align:right}.prose .align-justify{text-align:justify}.read-more{display:inline-block;font-size:13px;margin:5px 0}.actions{gap:22px;margin-top:5px;padding-top:10px;flex-wrap:wrap}.voter{display:inline-flex;gap:16px}.voter .vote{border:0;background:transparent;padding:4px 0;color:#738694;font-size:13px}.voter .vote[data-value="-1"]{transform:none}.vote[data-value="-1"]::first-letter{display:inline-block}.voter .vote.majority{color:#d83c51}.voter .vote[aria-pressed=true]{font-weight:800;text-decoration:underline;text-underline-offset:4px}.tag{display:inline-block;border-radius:4px;padding:1px 5px;font-size:12px;margin:2px 3px 2px 0;overflow-wrap:anywhere}.tag-0{color:#17669b;background:#e8f4fe}.tag-1{color:#8a4aa8;background:#f5ecfa}.tag-2{color:#287543;background:#eaf6ed}.tag-3{color:#a45a15;background:#fff1dd}.tag-4{color:#a53b62;background:#fdebf2}.post-tags{margin-top:7px}blockquote{border-left:3px solid #87b8d6;padding:7px 12px;margin:10px 0;background:#f3f8fb;color:#496275}blockquote p{margin:4px 0!important}.comment .actions{gap:14px}.reply-context{display:flex;gap:8px;align-items:center;padding:8px;background:#edf5fa;font-size:12px}.advert{overflow:hidden;font-size:14px}.advert small{display:block;font-size:10px;color:#8497a4;margin-bottom:5px}.advert img{width:100%;height:auto;max-height:220px;object-fit:contain}.advert-left{margin-top:15px}.advert-center{margin-bottom:15px}.load-more{display:block;margin:20px auto}.link-dialog{width:440px;max-width:94vw}.link-dialog form{display:grid;gap:12px}.link-dialog label{display:grid;gap:5px;font-size:13px}.ad-settings{padding:12px;border:1px solid var(--line);margin:10px 0}.transfer-status{white-space:pre-wrap;line-height:1.6}.comment .reference{font-size:12px}.comment .reply-to{font-size:12px}.migration-warning{background:#fff7e9;padding:12px;border-radius:4px}.prose .reference p{text-align:left}
@media(max-width:680px){.post{padding:13px 11px}.post-title{font-size:15px}.prose{font-size:14px}.actions{gap:16px}.advert-left,.advert-right{display:none}.voter{gap:12px}.comment .actions{gap:12px}}

/* Article photo albums: counts choose columns; original media stays private. */
.photo-gallery{display:grid;gap:6px;margin:10px 0;overflow:hidden;border-radius:8px;clear:both}
.gallery-cols-1{grid-template-columns:minmax(0,1fr)}
.gallery-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.gallery-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.gallery-photo{display:block;min-width:0;aspect-ratio:1;overflow:hidden;background:#edf2f5;border-radius:5px}
.prose .gallery-photo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:0;margin:0;cursor:zoom-in}
.gallery-single .gallery-photo{aspect-ratio:auto;max-height:520px}
.prose .gallery-single img{height:auto;max-height:520px;object-fit:contain}
#lightbox{background:#12202c;color:#fff;padding:48px 48px 20px;overflow:hidden;width:min(1100px,96vw)}
#lightbox figure{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0;min-height:100px}
#lightbox figure img{max-width:100%;max-height:76vh;object-fit:contain}
#photo-caption{max-width:100%;overflow-wrap:anywhere;text-align:center;font-size:13px;padding-top:12px}
#lightbox button{background:#fff;color:#233f50}
#close-lightbox{top:7px;right:10px;border-radius:50%;width:32px;height:32px;padding:0}
#lightbox .gallery-nav{position:absolute;top:50%;transform:translateY(-50%);padding:0;width:32px;height:40px;font-size:30px;line-height:1}
#previous-photo{left:8px}#next-photo{right:8px}
#lightbox .gallery-nav:disabled{opacity:.3;cursor:default}
@media(max-width:680px){.photo-gallery:not(.gallery-single){grid-template-columns:repeat(2,minmax(0,1fr))}.photo-gallery{gap:4px}.gallery-single .gallery-photo,.prose .gallery-single img{max-height:420px}#lightbox{padding:45px 36px 16px}#lightbox figure img{max-height:70vh}#lightbox .gallery-nav{width:28px}#previous-photo{left:3px}#next-photo{right:3px}}
/* Keep long migration diagnostics readable without hiding the import controls. */
.transfer-status{max-height:28rem;overflow:auto;overflow-wrap:anywhere}.transfer-question{white-space:pre-wrap;line-height:1.6}.link-dialog label[hidden]{display:none}
/* Compact titles; keep timeline and article titles independent on small screens. */
.post-title{font-size:16px;font-weight:600;text-align:left;line-height:1.4;overflow-wrap:anywhere}
h1.post-title{font-size:20px;font-weight:600;line-height:1.4;margin:8px 0 10px;text-align:left}
.prose h2{font-size:18px;font-weight:600;margin:14px 0 6px}
.prose h3{font-size:16px;font-weight:600}
@media(max-width:680px){.post-title{font-size:15px}h1.post-title{font-size:18px;line-height:1.45}.prose h2{font-size:17px}}
.prose .excerpt-link{display:block;color:inherit;text-decoration:none;cursor:pointer}
.prose .excerpt-link:hover{color:inherit}
.prose .excerpt-link:focus-visible{outline:2px solid var(--blue);outline-offset:4px;border-radius:3px}
.post-meta .post-edit{display:inline-flex;align-items:center;margin-left:auto;padding:2px 8px;border:1px solid #b9d9ec;border-radius:5px;background:#f1f8fd;color:#2784b6;font-size:12px;font-weight:500;text-decoration:none}
.post-meta .pinned+.post-edit{margin-left:4px}
.post-meta .post-edit:hover{background:#e5f2fb;color:#17668f}
.editor-tags{padding:12px 0 4px}.editor-tags label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}.editor-tags input{width:100%}.editor-tags [aria-invalid=true]{border-color:#d83c51}#post-tags-preview{min-height:25px;font-size:12px}.post-sort{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 14px}.post-sort button[aria-pressed=true]{color:#17669b;border-color:#87b8d6;background:#e8f4fe}.post-sort .muted,.admin-post-dates{font-size:12px}
#composer .editor-footer{position:sticky;bottom:0;z-index:5;background:#f4faff;padding:12px 0;border-top:1px solid var(--line)}#composer .admin-heading{gap:10px;flex-wrap:wrap}#editor-heading{font-size:17px;overflow-wrap:anywhere}.post-address{margin:10px 0;font-size:13px}.post-address label{display:grid;gap:5px;margin:10px 0}.post-address summary{cursor:pointer;color:#2784b6}.comment-replies{border-left:2px solid #dbeaf3;margin:10px 0 0 8px;padding-left:12px}.thread-toggle{font-size:12px;color:#2784b6}.article-dates{font-size:11px;margin:5px 0}.about{padding:24px}.tabs{flex-wrap:wrap}
.tag-entry{display:flex;gap:8px}.tag-entry input{min-width:0;flex:1}.tag-entry button{white-space:nowrap}.tag button{border:0;background:transparent;padding:0 2px 0 6px;color:inherit;cursor:pointer}#post-url-preview{overflow-wrap:anywhere}

/* Cell alignment follows the saved document in both editor and public article. */
.prose td,.prose th,.tiptap td,.tiptap th{text-align:left}
.prose td.valign-middle,.prose th.valign-middle{vertical-align:middle}
.prose td.valign-top,.prose th.valign-top{vertical-align:top}
.prose td.valign-bottom,.prose th.valign-bottom{vertical-align:bottom}
.prose td.align-center,.prose th.align-center{text-align:center}
.prose td.align-left,.prose th.align-left{text-align:left}
.prose td.align-right,.prose th.align-right{text-align:right}
.prose td.align-justify,.prose th.align-justify{text-align:justify}
.article-dates{font-size:11px;line-height:1.5;margin:3px 0 6px}
.post-address>input{width:100%;min-width:0;box-sizing:border-box}

/* Shared hanging list indentation; no content spaces or empty paragraphs added. */
.prose ul,.tiptap ul{padding-left:1.35em;margin:4px 0}
.prose li,.tiptap li{padding-left:.15em;margin:2px 0}
.prose li>p,.tiptap li>p{margin:0;text-align:left}
.prose li>ul,.tiptap li>ul{margin:2px 0}
#post-number{max-width:220px}

/* Compact author line and approved conversation preview. */
.post .post-meta .post-avatar{width:24px;height:24px;margin-right:1px}.post .post-body{width:100%}.post-dates{font-size:11px;color:#82939e;line-height:1.5}.post-date.is-updated{color:#c63648}.owner-handle{white-space:nowrap}.related-article{display:flex;gap:3px;min-width:0;margin:14px 0 5px;font-size:13px;line-height:1.7}.related-article>span{flex-shrink:0;color:#7e929f}.related-article a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.comment-peek{margin-top:9px;border-left:2px solid #dceaf2;padding:2px 0 2px 9px;font-size:12px;color:#617886}.comment-peek p{margin:2px 0;line-height:1.5;display:block;min-width:0;overflow:hidden}.comment-peek strong{font-weight:600;color:#397b9e}.peek-reply{color:#3392c9}.peek-actions{display:flex;gap:14px;margin-top:3px}.peek-actions button{border:0;padding:2px 0;background:none;font-size:11px;font-weight:400;color:#408eb8}.peek-actions button:last-child{margin-left:auto}.comments{margin-top:14px;background:none;border:0;border-top:1px solid #e2edf4;border-radius:0;padding:12px 0 0}.comments-heading{font-size:14px;margin:0 0 6px}.comments-heading span{color:#8c9da8;font-weight:400}.comment{padding:8px 0}.comment p{line-height:1.55;margin:4px 0}.comment .actions{padding-top:2px;margin-top:3px}.comment .owner-reply{padding:5px 8px}.comment-replies{margin-top:4px}.upload-label[aria-disabled=true]{opacity:.6;cursor:help}#image-queue{font-size:12px;color:#5d7d90}#image-queue:empty,#image-storage-status:empty{display:none}.image-job{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:5px 0}.image-job button{font-size:11px;padding:3px 7px}.image-job.failed{color:#bd394d}
@media(max-width:680px){.post .post-meta .post-avatar{width:21px;height:21px}.post-meta{gap:5px}.post-dates{font-size:10px}.comment-peek{padding-left:7px}.related-article{font-size:12px}}

.local-preview-banner{padding:7px 14px;background:#edf5fa;color:#6a8494;font-size:11px;text-align:center}.local-preview-banner a{margin-left:12px}

.comment .reply-to{margin-left:5px}
.comment-heading{display:flex;align-items:baseline;gap:5px;flex-wrap:wrap}.comment-heading .reply-to{margin-left:0}.comment-heading time{margin-left:auto;font-size:11px;color:#8c9da8}.owner-reply>.reply-to{color:#2784b6;margin-left:0}.reply-context>span{color:#2784b6}.comment-content{display:block;color:inherit;text-decoration:none;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:3px}.comment-content:hover{background:#edf6fc}.comment-content:focus-visible{outline:2px solid #70b8de;outline-offset:3px}.cancel-reply{color:#2784b6;font-size:12px;padding:3px 6px;background:none;border:0}

.reply-context{position:relative;padding-right:50px}.reply-context>p{margin:3px 0 0;font-size:11px;color:#718897;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.reply-context .cancel-reply{position:absolute;top:9px;right:8px}.comment-highlight{background:#e9f5fd;border-radius:4px}.comment-replies .comment-replies{border-left:0;margin-left:0;padding-left:0}
.comments{margin-left:0;min-width:0;max-width:100%;width:100%}.comment-list,.comment,.comment-replies,.comment-form,.comment-heading{min-width:0;max-width:100%}.comment-heading>strong,.comment-heading>.reply-to{min-width:0;overflow-wrap:anywhere}.comment-form{grid-template-columns:minmax(0,1fr)}.comment-form input,.comment-form textarea{width:100%;min-width:0;max-width:100%}.reply-context{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;padding:8px}.reply-context>span,.reply-context>p{grid-column:1;min-width:0;overflow-wrap:anywhere}.reply-context .cancel-reply{position:static;grid-column:2;grid-row:1 / 3;align-self:center}.comment .reference,.comment .reference a{max-width:100%;overflow-wrap:anywhere}.comment .actions{gap:12px;flex-wrap:wrap}.comment .thread-toggle{font-size:11px;padding:3px 0;background:none;border:0;color:#408eb8;font-weight:400}.thread-more{font-size:11px;margin:6px 0}.peek-comment{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit}.peek-comment:hover{background:#edf6fc;text-decoration:none}.peek-actions{justify-content:flex-start;margin-top:5px}.peek-actions button:last-child{margin-left:0}.comment-form .challenge{max-width:100%;min-width:0}.comment-status{overflow-wrap:anywhere}.form-bottom{flex-wrap:wrap}
.link-transfer{margin:12px 0 18px;padding:12px;border:1px solid #dce7ee;border-radius:5px;min-width:0}.link-transfer summary{cursor:pointer;font-weight:600}.link-transfer>label{display:grid;gap:6px;margin:12px 0}.link-transfer input[type=file]{max-width:100%;min-width:0}.link-transfer .row-actions{display:flex;gap:8px;flex-wrap:wrap}.link-transfer [data-result]{overflow-wrap:anywhere}.transfer-preview{max-height:300px;overflow:auto;margin-top:8px}.transfer-preview table{width:100%;font-size:12px;border-collapse:collapse}.transfer-preview th,.transfer-preview td{text-align:left;padding:5px;border-bottom:1px solid #e2edf4;overflow-wrap:anywhere}
.tiptap .tableWrapper{overflow-x:auto;max-width:100%;min-width:0;margin:8px 0}.tiptap .column-resize-handle{position:absolute;right:-3px;top:0;bottom:-1px;width:6px;background:#78b3db;pointer-events:none;z-index:20}.tiptap.resize-cursor,.tiptap.resize-cursor *{cursor:col-resize!important}.table-scroll{max-width:100%;min-width:0}.prose table.has-column-widths{min-width:0;table-layout:fixed}.prose table.has-column-widths th,.prose table.has-column-widths td{min-width:0;overflow-wrap:anywhere}

.layout:has(#composer:not([hidden]))>.side{display:none}
.layout:has(#composer:not([hidden]))>main{grid-column:2 / -1}
.layout:has(#composer:not([hidden])) #timeline,.layout:has(#composer:not([hidden])) #feed-next,.layout:has(#composer:not([hidden])) #timeline+button,.layout:has(#composer:not([hidden])) #admin-content{display:none}
@media(max-width:680px){.layout:has(#composer:not([hidden]))>main{grid-column:1 / -1}}
