:root { color-scheme: light dark; font-family: system-ui, sans-serif; }
body { margin: 0; background: Canvas; color: CanvasText; }
main { max-width: 48rem; margin: auto; padding: 1rem; }
.card { border: 1px solid GrayText; border-radius: .75rem; padding: 1rem; margin-bottom: 1rem; }
.card h2 { margin-top: 0; }
.activity-light { display: inline-block; width: .8rem; height: .8rem; border-radius: 50%; vertical-align: .08rem; background: #8b949e; box-shadow: inset 0 0 0 1px rgba(0,0,0,.2); }
.activity-light.is-on { background: #ffd43b; box-shadow: 0 0 .65rem #ffd43b; }
.activity-light.is-off { background: #8b949e; box-shadow: none; }
.common-template-list { margin-top: .75rem; }
.common-template-row { position: relative; }
.common-template-row .article-cover { flex-basis: 94px; width: 94px; height: 40px; aspect-ratio: 2.35 / 1; }
.common-template-description { display: block; margin-top: .2rem; color: #8b949e; font-size: .78rem; }
.common-template-delete { color: #6b7280; font-size: 1.25rem; }
.dialog-status { display: block; min-height: 1.2rem; color: #b42318; font-size: .8rem; }
.automation-editor { margin: .8rem 0; padding: .85rem; border: 1px solid #d8dee4; border-radius: .75rem; background: #f8fafc; }
.automation-editor h3 { margin: 0 0 .7rem; font-size: 1rem; }
.rule-add, .rule-remove { width: auto; padding: .55rem .8rem; }
.rule-remove { background: #6b7280; }
.automation-start.is-waiting, .automation-start:disabled { background: #9ca3af; cursor: not-allowed; opacity: 1; }
.section-description { margin: -.25rem 0 1rem; color: GrayText; }
.task-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.task-heading h2 { margin: 0 0 1rem; }
#connection-status { color: GrayText; font-size: .85rem; }
textarea, input { box-sizing: border-box; width: 100%; margin: .5rem 0; padding: .75rem; font: inherit; }
label { display: block; margin-bottom: .5rem; }
.submit { width: 100%; }
#manuscript-merge-dialog .submit { background: #c62828; border-color: #c62828; color: #fff; }
#manuscript-merge-dialog .submit:hover { background: #b71c1c; border-color: #b71c1c; }
#manuscript-merge-dialog .submit.is-importing,#manuscript-merge-dialog .submit.is-importing:disabled{background:#b9c0c7!important;border-color:#b9c0c7!important;color:#fff!important;opacity:1!important;cursor:wait!important}
button[data-action="submit"] {
  background: #168447;
  color: white;
  font-weight: 700;
  width: 100%;
  transition: background 0.3s;
}

.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem}.navigation-drawer{position:fixed;left:0;top:0;bottom:0;width:12rem;padding:5rem 1rem 1rem;background:#fff;box-shadow:0 0 20px #0002;z-index:20}.navigation-drawer button{display:block;width:100%;margin:.4rem 0}.nav-toggle{position:fixed;left:12rem;top:50%;z-index:21;border-radius:0 .6rem .6rem 0}.inline-entry{display:flex;gap:.5rem;align-items:center}.inline-entry input{flex:1}.link-card,.review-item{display:flex;gap:.5rem;align-items:center;padding:.65rem;margin:.45rem 0;background:#f5f7fa;border-radius:.6rem}.link-card span,.review-item span{flex:1;overflow-wrap:anywhere}[data-chip-list]{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0}[data-chip]{display:inline-flex;align-items:center;gap:.25rem;background:#e8f2ff;color:#1459a6;border-radius:999px;padding:.25rem .55rem}[data-chip] button{border:0;background:transparent;padding:0}.recurring-choice-row{display:grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap:.75rem}.paper-plane{font-size:1.2rem}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem}dialog{width:min(52rem,92vw)}dialog iframe{width:100%;height:60vh;border:1px solid #ddd}footer{text-align:center;margin-top:2rem;padding:1rem;color:#999;font-size:.8rem}
@media(max-width:720px){main{margin-left:0}.navigation-drawer{transform:translateX(-100%);transition:.2s}.navigation-drawer.is-open{transform:translateX(0)}.nav-toggle{left:0}.navigation-drawer.is-open+.nav-toggle{left:12rem}.topbar{align-items:flex-start}.recurring-choice-row{grid-template-columns:repeat(2,minmax(0,1fr))}}

.semicircle-handle{position:relative;margin:-1rem 0 .25rem -.25rem;width:52px;height:32px;min-height:44px;border-radius:0 0 26px 26px;font-size:1.5rem;z-index:21}.header-icons{display:flex;gap:.45rem}.header-icons button{position:relative;width:44px;min-width:44px;min-height:44px;padding:.4rem;font-size:1.15rem}.header-icons #review-badge{position:absolute;right:-4px;top:-5px;background:#e53935;color:#fff;border-radius:999px;min-width:18px;padding:1px 4px;font-size:.68rem}.link-card{min-width:0}.share-icon{flex:0 0 24px;font-size:1.05rem;color:#1677ff}.link-title{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.patrol-composer,.recurring-composer{display:grid;gap:.45rem}.inline-entry button{width:44px;min-width:44px;min-height:44px;padding:0}.draft-terms{display:flex;gap:.35rem;overflow-x:auto;white-space:nowrap;min-height:1.8rem}.draft-terms span{display:inline-flex;align-items:center;gap:.2rem;flex:0 0 auto;border-radius:999px;background:#eef4ff;padding:.2rem .45rem;font-size:.78rem}.draft-terms button{border:0;background:transparent;padding:0}.compact-summary{display:flex;align-items:center;gap:.35rem;min-width:0;margin:.45rem 0;padding:.55rem;background:#f5f7fa;border-radius:.55rem;font-size:.78rem}.compact-summary span{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-summary button{flex:0 0 36px}.recurring-choice-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.recurring-choice-row select,.recurring-choice-row input{width:100%;min-width:0;min-height:44px;font-size:16px;padding:.35rem}.plan-summary{padding:.55rem .65rem;margin:.45rem 0;background:#f5f7fa;border-radius:.55rem}.plan-summary>div{display:flex;align-items:center;gap:.4rem;min-width:0}.plan-summary span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-summary button{flex:0 0 36px}.plan-summary small{display:block;color:#777;font-size:.75rem;margin-top:.15rem}.account-composer{display:grid;gap:.5rem}.account-row{display:flex;align-items:center;gap:.5rem;margin:.5rem 0}.account-row span{flex:1}
@media(max-width:720px){main{padding-top:.5rem}.topbar h1{font-size:1.45rem}.navigation-drawer{padding-top:3rem}.semicircle-handle{margin-left:-1rem}.automation input,.automation select{max-width:100%}.automation-editor{padding:.6rem}.recurring-choice-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
button[data-action="submit"].loading {
  background: #888;
  color: #ddd;
  cursor: not-allowed;
}
.publish-group { display: grid; grid-template-columns: 1fr 3.5rem; gap: .5rem; }
button { min-height: 3rem; border: 0; border-radius: .6rem; font: inherit; cursor: pointer; }
.automation-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.automation-start { background: #168447; color: white; font-weight: 700; }
.automation-stop { background: #c62828; color: white; font-weight: 700; }
.publish { background: #168447; color: white; font-weight: 700; }
.schedule { background: ButtonFace; color: ButtonText; border: 1px solid GrayText; }
#review-dialog::backdrop { background: rgba(20, 28, 38, .32); backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px); }
@media (max-width: 30rem) {
  main { padding: .75rem; }
  .card { padding: .875rem; }
  .automation button { width: 100%; }
}

/* Boundary confirmation dialog */
#boundary-dialog {
  border: none;
  border-radius: 8px;
  max-width: min(800px, 90vw);
  width: 90vw;
  padding: 0;
  box-shadow: 0 8px 32px rgba(0,0,0,0.3);
}
#boundary-dialog::backdrop {
  background: rgba(0,0,0,0.5);
}
#boundary-dialog form {
  padding: 1.5rem;
}
#boundary-dialog #boundary-title {
  margin: 0 0 0.5rem;
  font-size: 1.1rem;
}
.boundary-note {
  color: #666;
  font-size: 0.85rem;
  margin: 0 0 0.5rem;
}
.boundary-title {
  font-weight: 600;
  font-size: 0.95rem;
  margin: 0 0 0.5rem;
  color: #333;
}
#boundary-editor {
  width: 100%;
  height: 60vh;
  box-sizing: border-box;
  overflow: auto;
  border: 1px solid #ddd;
  border-radius: 4px;
  background: #fff;
  padding: 1rem;
  color: #1f2937;
  line-height: 1.75;
  outline: none;
  -webkit-user-select: text;
  user-select: text;
}
#boundary-editor:focus {
  border-color: var(--ws-primary, #168447);
  box-shadow: 0 0 0 3px rgba(22,132,71,.14);
}
#boundary-editor img {
  max-width: 100%;
  height: auto;
}
.boundary-editor-hint {
  margin: 0 0 .75rem;
  color: #667085;
  font-size: .85rem;
}
#boundary-dialog menu {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 1rem 0 0;
  margin: 0;
}
button.secondary {
  background: #f0f0f0;
  color: #333;
  border: 1px solid #ccc;
}
button.secondary:hover {
  background: #e0e0e0;
}

/* Action buttons */
button[data-action="boundary"] {
  background: #1565c0;
  color: white;
  font-weight: 600;
  padding: 0.5rem 1.5rem;
  border: none;
}
button[data-action="boundary"]:hover {
  background: #0d47a1;
}

.boundary-submitting,
button[data-action="boundary"].boundary-submitting,
button[data-action="boundary"].boundary-submitting:hover {
  background: #a6b0ba;
  border-color: #a6b0ba;
  color: #fff;
  cursor: wait;
  opacity: 1;
}

.clear-btn {
  position: fixed;
  top: 0.75rem;
  right: 0.75rem;
  background: #f0f0f0;
  border: 1px solid #ccc;
  border-radius: 0.5rem;
  padding: 0.4rem 0.7rem;
  font-size: 0.85rem;
  cursor: pointer;
  z-index: 100;
  min-height: auto;
}
.clear-btn:hover { background: #e0e0e0; }

/* V1.0.8 compact mobile controls */
.topbar{justify-content:flex-end;min-height:44px}.topbar .header-icons{margin-left:auto}.clear-btn{position:static;top:auto;right:auto;width:44px;min-width:44px;min-height:44px;padding:.35rem;font-size:1.15rem}.semicircle-handle{position:fixed;left:0;top:.75rem;margin:0;width:30px;height:56px;min-height:56px;padding:0;border-radius:0 30px 30px 0;transition:left .2s,border-radius .2s;z-index:30}.drawer-open .semicircle-handle{left:calc(12rem - 30px);border-radius:30px 0 0 30px}.compact-field-row{display:grid;grid-template-columns:max-content minmax(0,1fr) 36px;align-items:center;gap:.35rem;margin:0}.compact-field-row label{margin:0;white-space:nowrap;font-size:.88rem}.compact-field-row input{margin:0;min-width:0;height:36px;padding:.35rem .45rem;font-size:16px}.compact-field-row button{width:36px;min-width:36px;min-height:36px;height:36px;padding:0}.patrol-composer,.recurring-composer{gap:0}.patrol-composer>.compact-field-row+.draft-terms{margin:0}.draft-terms:empty{display:none}.draft-terms{min-height:0;margin:0 0 .15rem;padding:0;font-size:.75rem}.patrol-composer>[data-action="save-patrol-group"]{margin-top:0;min-height:38px}.saved-list{margin-top:.5rem}#patrol-groups{display:flex;flex-wrap:wrap;gap:.35rem}.compact-summary{display:inline-flex;flex:0 1 auto;max-width:100%;margin:0;padding:.3rem .4rem;gap:.2rem;font-size:.75rem}.compact-summary span{flex:0 1 auto;max-width:18rem}.compact-summary button{flex:0 0 auto;width:auto;min-width:20px;min-height:24px;padding:0 .15rem}.recurring-choice-row{display:grid;grid-template-columns:repeat(3,max-content);justify-content:start;gap:.35rem;margin-top:.35rem}.recurring-choice-row select,.recurring-choice-row input{width:auto;min-width:0;min-height:36px;height:36px;padding:.2rem .35rem;font-size:14px}.plan-summary{padding:.35rem .45rem;margin:.3rem 0;border-radius:.45rem}.plan-summary button{min-height:28px}.plan-summary small{font-size:.7rem}.navigation-drawer{transition:transform .2s}.navigation-drawer.is-open{transform:translateX(0)}footer{clear:both;width:100%;box-sizing:border-box}
@media(max-width:720px){.semicircle-handle{margin:0}.drawer-open .semicircle-handle{left:calc(12rem - 30px)}.automation button{width:auto}.automation-controls button{width:100%}.recurring-choice-row{grid-template-columns:repeat(3,max-content)}}

/* Public filing showcase */
.public-site{background:#f7f9fc;color:#16263b;font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
.public-shell{max-width:1120px;margin:0 auto;padding:0 28px}
.public-nav{height:76px;display:flex;align-items:center;justify-content:space-between}
.public-brand{display:inline-flex;align-items:center;gap:.65rem;color:#142b47;text-decoration:none;font-size:1.25rem;font-weight:800;letter-spacing:.04em}
.public-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#1c6398;color:#fff;box-shadow:0 8px 18px rgba(28,99,152,.2)}
.public-login{padding:.6rem 1rem;border:1px solid #d5e1ec;border-radius:999px;color:#285577;text-decoration:none;font-size:.9rem;background:#fff}
.public-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:5rem;align-items:center;padding:82px 0 100px}
.eyebrow{margin:0 0 1rem;color:#2a7e9d;text-transform:uppercase;letter-spacing:.16em;font-size:.73rem;font-weight:800}
.public-hero h1{max-width:650px;margin:0;font-size:clamp(2.4rem,5vw,4.7rem);line-height:1.08;letter-spacing:-.055em;color:#132b46}
.public-lead{max-width:560px;margin:1.5rem 0 2rem;color:#63758a;font-size:1.05rem;line-height:1.9}
.public-primary{display:inline-flex;gap:.75rem;align-items:center;padding:.9rem 1.3rem;border-radius:10px;background:#1c6398;color:#fff;text-decoration:none;font-weight:700;box-shadow:0 10px 22px rgba(28,99,152,.22)}
.public-hero-panel{padding:1.25rem;border:1px solid #e1e9f0;border-radius:22px;background:#fff;box-shadow:0 24px 70px rgba(38,73,109,.12);transform:rotate(1.5deg)}
.mini-window-bar{display:flex;align-items:center;gap:.35rem;padding:.25rem 0 1rem;color:#6c8195;font-size:.78rem}.mini-window-bar i{width:8px;height:8px;border-radius:50%;background:#d9e6ef}.mini-window-bar span{margin-left:auto}
.mini-workflow{display:grid;gap:.7rem;padding:1.1rem;border-radius:14px;background:#f4f8fb}.mini-workflow div{display:flex;align-items:center;gap:.7rem;padding:.75rem;border-radius:10px;background:#fff}.mini-workflow b{color:#2a7e9d;font-size:.75rem}.mini-workflow span{flex:1;font-weight:700}.mini-workflow em{font-style:normal;color:#278050;font-size:.72rem}.mini-workflow div:nth-child(2){border:1px solid #b8dfcb;box-shadow:0 5px 14px rgba(39,128,80,.08)}
.mini-progress{height:8px;margin:1.25rem 0 .7rem;border-radius:99px;background:#e9f0f5;overflow:hidden}.mini-progress span{display:block;width:68%;height:100%;border-radius:inherit;background:#2b9a6a}.public-hero-panel small{color:#7890a3}
.public-section{padding:3.5rem 0 5.5rem;border-top:1px solid #e2eaf1}.section-heading h2{margin:0;color:#183552;font-size:clamp(1.8rem,3vw,2.7rem);letter-spacing:-.04em}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.5rem}.feature-grid article{padding:1.5rem;border:1px solid #e1e9f0;border-radius:16px;background:#fff}.feature-icon{display:inline-grid;place-items:center;width:38px;height:28px;border-radius:7px;background:#e8f4f5;color:#277b87;font-size:.75rem;font-weight:800}.feature-grid h3{margin:1.2rem 0 .5rem;color:#183552}.feature-grid p{margin:0;color:#6c7f91;line-height:1.75;font-size:.9rem}.public-note{display:flex;align-items:center;gap:.9rem;padding:1.3rem 1.5rem;margin-bottom:2rem;border-radius:16px;background:#eaf3f5;color:#21465c}.public-note>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#277b87;color:#fff;font-weight:800}.public-note strong{display:block}.public-note p{margin:.15rem 0 0;color:#69818d;font-size:.83rem}.public-site footer{padding:1.5rem 0 2.5rem;border-top:1px solid #e2eaf1;color:#8ba0b1;text-align:left;font-size:.78rem}
@media(max-width:760px){.public-shell{padding:0 18px}.public-hero{grid-template-columns:1fr;gap:2rem;padding:50px 0 65px}.public-hero-panel{transform:none}.feature-grid{grid-template-columns:1fr}.public-nav{height:68px}}

/* Public case library */
.public-nav-label{color:#7890a3;font-size:.78rem;letter-spacing:.06em}.public-hero h1 span{color:#2a7e9d}.public-hero-meta{display:flex;align-items:center;gap:.75rem;color:#6b7f91;font-size:.82rem}.public-hero-meta strong{color:#1c6398}.live-dot{width:8px;height:8px;border-radius:50%;background:#2b9a6a;box-shadow:0 0 0 5px #dff3e8}.phone-flow{display:grid;gap:.65rem;padding:1rem;border-radius:15px;background:#f4f8fb}.phone-head{display:flex;justify-content:space-between;align-items:center;padding:.2rem .3rem .5rem;color:#1c6398;font-weight:800}.phone-head small{color:#7890a3;font-weight:500}.phone-card{display:grid;grid-template-columns:1fr auto;gap:.18rem .5rem;padding:.75rem;border-radius:10px;background:#fff}.phone-card b{color:#183552;font-size:.86rem}.phone-card span{color:#7890a3;font-size:.72rem}.phone-card em{grid-column:2;grid-row:1 / span 2;align-self:center;font-style:normal;color:#278050;font-size:.7rem}.phone-card.active{border:1px solid #b8dfcb;box-shadow:0 5px 14px rgba(39,128,80,.08)}.problem-section{background:#f0f6f8;margin:0 -28px;padding-left:28px;padding-right:28px}.problem-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:1.5rem;align-items:center;margin-top:2.5rem}.problem-grid article{padding:1.5rem;border-radius:16px;background:#fff}.problem-grid article strong{color:#7890a3;font-size:.78rem;letter-spacing:.12em}.problem-grid article p{margin:.75rem 0 0;color:#5f7385;line-height:1.8}.problem-solution{border:1px solid #b8dfcb!important;box-shadow:0 10px 25px rgba(39,128,80,.08)}.problem-solution strong{color:#278050!important}.problem-arrow{color:#2a7e9d;font-size:2rem}.section-heading-row{display:flex;align-items:end;justify-content:space-between;gap:1rem}.case-status{padding:.4rem .7rem;border-radius:999px;background:#e3f4eb;color:#278050;font-size:.75rem;white-space:nowrap}.section-intro{max-width:720px;margin:1rem 0 2rem;color:#6c7f91;line-height:1.8}.case-grid{margin-top:0}.roadmap-section{background:#fff;margin:0 -28px;padding-left:28px;padding-right:28px}.case-tabs{display:flex;gap:.5rem;margin:2rem 0 1rem}.case-tab{min-height:38px;padding:.45rem .9rem;border:1px solid #d7e4ec;border-radius:999px;background:#f7fafc;color:#63758a;font-size:.8rem}.case-tab.is-selected{border-color:#2a7e9d;background:#2a7e9d;color:#fff}.case-list{display:grid;gap:.7rem}.roadmap-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.1rem;border:1px solid #e1e9f0;border-radius:14px;background:#f8fbfc}.roadmap-card>div{flex:1;min-width:0}.roadmap-number{flex:0 0 52px;color:#2a7e9d;font-weight:800;font-size:.85rem}.roadmap-card strong{color:#183552}.roadmap-card p{margin:.25rem 0 0;color:#7890a3;font-size:.78rem}.roadmap-card em{font-style:normal;color:#7890a3;font-size:.72rem;white-space:nowrap}.roadmap-card.is-active{border-color:#b8dfcb;background:#f1faf5}.roadmap-card.is-active em{color:#278050}.roadmap-placeholder{border-style:dashed;background:#fbfcfd}.public-note>span{font-size:.72rem;font-weight:800}@media(max-width:760px){.public-nav-label{display:none}.problem-section,.roadmap-section{margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}.problem-grid{grid-template-columns:1fr;gap:.8rem}.problem-arrow{transform:rotate(90deg);justify-self:center}.section-heading-row{align-items:start;flex-direction:column}.case-status{margin-top:.5rem}.roadmap-card{align-items:flex-start}.roadmap-card em{font-size:.68rem}}
.link-card{color:#1f2937;background:#f5f7fa}.link-card .share-icon{flex:0 0 22px;color:#1677ff}.link-card .link-title{flex:1 1 auto;color:#1f2937}
.article-cover{display:block;flex:0 0 56px;width:56px;height:42px;object-fit:cover;border-radius:.35rem;background:#dbe4ee}

/* V1.0.10 right-side navigation and aligned rows */
.semicircle-handle{width:36px;height:67.2px;min-height:67.2px;border-radius:36px 0 0 36px;background:linear-gradient(180deg,#fff1a8,#f3c85b);color:#6b4b12;border:1px solid #e1b94f;box-shadow:0 3px 10px rgba(150,105,20,.25);font-size:1.8rem;transition:left .2s,right .2s,border-radius .2s,filter .2s,box-shadow .2s}.semicircle-handle:hover,.semicircle-handle:focus-visible{filter:brightness(1.04);box-shadow:0 4px 13px rgba(150,105,20,.34)}
.topbar{min-height:64px;box-sizing:border-box}.header-icons{position:fixed;top:.75rem;right:.75rem;z-index:40}.navigation-drawer{position:fixed;right:0;left:auto;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:1rem;transform:translateX(100%)}.navigation-drawer button{max-width:9rem;text-align:center}.semicircle-handle{position:fixed;right:0;left:auto;bottom:2rem;top:auto;border-radius:36px 0 0 36px}.semicircle-handle span{display:inline-block;transition:transform .2s}.drawer-open .semicircle-handle{right:calc(12rem - 36px);left:auto;border-radius:0 36px 36px 0}.drawer-open .semicircle-handle span{transform:scaleX(-1)}.compact-field-row{grid-template-columns:4.5rem minmax(0,1fr) 36px;margin-bottom:.3rem}.compact-field-row label{text-align:right}.patrol-composer{row-gap:.15rem}.patrol-composer>[data-action="save-patrol-group"]{margin-top:.2rem}.recurring-composer{row-gap:.3rem}.recurring-choice-row{grid-template-columns:max-content max-content max-content;align-items:center;gap:.35rem;margin:.35rem 0}.time-pair{display:grid;grid-template-columns:repeat(2,max-content);gap:.2rem}.time-pair select{height:36px;min-height:36px;font-size:14px;padding:.15rem .25rem}.saved-list{margin-top:.6rem}.compact-summary,.plan-summary{margin-bottom:.35rem}
@media(max-width:720px){.navigation-drawer{right:0;left:auto;transform:translateX(100%)}.navigation-drawer.is-open{transform:translateX(0)}.semicircle-handle{right:0;left:auto;bottom:2rem}.drawer-open .semicircle-handle{right:calc(12rem - 36px);left:auto}.recurring-choice-row{grid-template-columns:max-content max-content max-content;white-space:nowrap}}

/* V1.0.11 structured original-post editor */
.stack-field{display:grid;gap:.35rem}.stack-field input{width:100%;box-sizing:border-box}.v12-title-field{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:.5rem}.v12-title-field input{width:100%;box-sizing:border-box}.cover-editor{display:grid;gap:.6rem;margin:.8rem 0}.cover-editor>label{display:grid;gap:.35rem}#cover-previews{display:grid;grid-template-columns:2.35fr 1fr;gap:.6rem;align-items:start}#cover-previews>label{grid-column:1/-1;display:grid;grid-template-columns:5rem 1fr;align-items:center}.cover-crop{overflow:hidden;background:#eef1f4;border:1px solid #d9dee5;border-radius:.45rem}.cover-crop img{display:block;width:100%;height:100%;object-fit:cover}.crop-wide{aspect-ratio:2.35/1}.crop-square{aspect-ratio:1/1}.compose-toolbar{display:flex;flex-wrap:wrap;gap:.45rem;margin:.75rem 0}.compose-toolbar button{flex:1;min-width:6rem}.compose-module{padding:.65rem;margin:.45rem 0;border:1px solid #dfe4ea;border-radius:.6rem;background:#fafbfc}.module-head{display:flex;align-items:center;gap:.35rem}.module-head strong{flex:1}.module-head button{min-width:36px;padding:.3rem}.compose-module textarea{width:100%;box-sizing:border-box;margin-top:.5rem;resize:vertical;font-size:16px;line-height:1.6}.module-images{display:flex;gap:.4rem;overflow-x:auto;margin:.5rem 0}.module-images span{position:relative;flex:0 0 86px}.module-images img{width:86px;height:64px;object-fit:cover;border-radius:.35rem}.module-images button{position:absolute;right:-3px;top:-5px;width:24px;min-width:24px;min-height:24px;padding:0;border-radius:50%}.between-module{display:block;margin:-.2rem auto;width:32px;min-width:32px;min-height:32px;border-radius:50%;padding:0}.footer-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:.8rem 0}.footer-fields legend{padding:0 .35rem}.footer-fields label{display:grid;grid-template-columns:3rem 1fr;align-items:center}.footer-fields input{min-width:0}.preview-recipient{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:.8rem 0}.recipient-chip{padding:.35rem .65rem;border-radius:999px;background:#eef2f6}.recipient-chip.is-selected{background:#dff5e6;color:#087a36;border:1px solid #28a85d}.save-state{text-align:center;color:#68717d;font-size:.8rem;margin-top:.5rem}.navigation-drawer button[aria-selected="true"]{background:#168a48;color:#fff}
@media(max-width:720px){#cover-previews{grid-template-columns:2.35fr 1fr}.footer-fields{grid-template-columns:1fr}.compose-panel{padding:.8rem}.compose-toolbar button{min-height:40px}}
.header-icons .header-icon-button{display:grid;place-items:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border-radius:12px;background:#f1f3f5;border:1px solid #d8dde3;color:#4b5563;box-shadow:0 2px 7px rgba(15,23,42,.08)}.header-icon-button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.header-icon-button:hover{background:#e7eaee;color:#263445}.header-icon-button:active{transform:translateY(1px)}.eraser-button:active{color:#c62828;border-color:#ef9a9a;background:#ffebee}
.patrol-site-card{display:flex;align-items:flex-start;gap:.4rem;padding:.55rem .65rem;margin:.4rem 0;background:#f5f7fa;border-radius:.55rem}.patrol-site-card>div{display:grid;gap:.12rem;min-width:0;flex:1}.patrol-site-card strong,.patrol-site-card small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.patrol-site-card small{font-size:.72rem;color:#68717d}.patrol-site-card>button{flex:0 0 28px;min-width:28px;min-height:28px;padding:0}
main{padding-bottom:4.5rem}footer{position:fixed;bottom:1cm;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 2rem);margin:0;padding:.2rem .55rem;border-radius:999px;background:color-mix(in srgb,Canvas 88%,transparent);z-index:10}
.workflow-card{position:relative;display:grid;grid-template-columns:58px minmax(0,1fr);column-gap:.65rem;align-items:start}.workflow-cover{grid-row:1/span 5}.workflow-card>p{grid-column:2;margin-top:0}.workflow-card>.task-date,.workflow-card>.workflow-error,.workflow-card>.workflow-actions,.workflow-card>.workflow-article-status{grid-column:2}.failed-task-close{position:absolute;top:.35rem;right:.35rem;width:44px;min-width:44px;min-height:44px;padding:0;background:transparent;color:#c62828;font-size:1.35rem}@media(max-width:720px){.workflow-card{grid-template-columns:52px minmax(0,1fr);gap:.5rem}.workflow-cover{width:52px;height:52px}}
.field-action-spacer{display:block;width:36px;height:36px}

/* V1.0.11 in-place multi-article editor and public-account draft reader */
.navigation-drawer button{max-width:9rem;text-align:right;padding-right:1rem}.compose-article-heading,.draft-page-heading,.draft-card-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.compose-article-heading{margin:.7rem 0}.compose-article-heading span{color:#68717d;font-size:.82rem}.v12-cover-frame{position:relative;display:grid;place-items:center;aspect-ratio:2.35/1;margin:.75rem 0;background:#eef1f4 center/cover no-repeat;border:1px solid #d9dee5;border-radius:.55rem;overflow:hidden}.cover-plus{min-width:64px;min-height:64px;padding:.3rem;background:color-mix(in srgb,Canvas 82%,transparent);font-size:2.2rem}.cover-frame-tools{position:absolute;right:.35rem;top:.35rem;display:flex;gap:.3rem}.cover-frame-tools button{width:38px;min-width:38px;min-height:38px;padding:0}.v12-modules{margin:.65rem 0}.v12-module-card{padding:.65rem;margin:.45rem 0;border:1px solid #dfe4ea;border-radius:.6rem;background:#fafbfc}.v12-module-card textarea{font-size:16px;line-height:1.6}.between-module-actions{display:flex;justify-content:center;gap:.45rem;margin:.25rem 0}.between-module-actions button{min-height:38px}.imported-html-hint,.empty-hint{color:#68717d;font-size:.85rem}.compose-save-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin:.8rem 0}.compose-save-actions button:first-child{background:#168447;color:#fff;font-weight:700}.compose-order{display:grid;gap:.35rem}.compose-order-item{display:grid;grid-template-columns:54px minmax(0,1fr) 44px;align-items:center;gap:.5rem;padding:.45rem;border:1px dashed #b7bec8;border-radius:.5rem;touch-action:pan-y}.order-cover{display:grid;place-items:center;width:54px;height:42px;background:#e5eaf0 center/cover no-repeat;border-radius:.3rem;font-size:.7rem}.order-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drag-handle{width:44px;min-width:44px;min-height:44px;padding:0;cursor:grab}.v12-recipient-section{margin-top:.9rem;padding-top:.7rem;border-top:1px solid #dfe4ea}.preview-recipients{display:flex;flex-wrap:wrap;gap:.55rem;margin:.55rem 0}.preview-recipients .recipient-chip{position:relative;display:inline-flex;align-items:center;min-width:5.6rem;padding:0;border-radius:.55rem;overflow:visible;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}.preview-recipients .recipient-chip:not(.is-selected){border-color:#d5dbe1;background:#f1f3f5;color:#7b838c;box-shadow:none}.preview-recipients .recipient-chip.is-selected{border-color:#45a46e;background:#e8f6ee;color:#12683a;box-shadow:0 0 0 2px rgba(69,164,110,.12)}.preview-recipients .recipient-pick{width:100%;min-height:36px;padding:.35rem 1.35rem .35rem .65rem;border:0;background:transparent;color:inherit;font-weight:400;text-align:left}.preview-recipients .recipient-chip.is-selected .recipient-pick{font-weight:600}.preview-recipients .recipient-remove{position:absolute;right:-.38rem;top:-.38rem;display:grid;place-items:center;width:20px;min-width:20px;height:20px;min-height:20px;padding:0;border:1px solid #d4dae0;border-radius:50%;background:#fff;color:#6c747d;font-size:14px;line-height:1;box-shadow:0 1px 3px rgba(27,45,61,.12)}.preview-recipients .recipient-remove:hover{border-color:#c55757;color:#b52f2f}.crop-dialog-grid{display:grid;grid-template-columns:2.35fr 1fr;gap:.6rem;margin:.6rem 0}#cover-crop-dialog>label{display:grid;grid-template-columns:9rem 1fr;align-items:center;gap:.5rem}.wechat-draft-card{padding:.7rem 0;border-bottom:1px solid #dfe4ea}.draft-card-head>div{display:grid;gap:.15rem;min-width:0}.draft-card-head strong,.draft-card-head small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.draft-article-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.4rem;margin:.35rem 0 0 2.5rem}.draft-article-row span:first-child{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.draft-article-row button{min-height:34px;padding:.25rem .55rem}.review-item[draggable="true"]{cursor:grab}.review-item input[type="checkbox"]{flex:0 0 22px;width:22px;height:22px;margin:0}.review-item .review-import{flex:0 0 auto;min-height:36px;padding:.3rem .55rem}
@media(max-width:720px){.footer-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-fields label{grid-template-columns:2.7rem minmax(0,1fr);font-size:.85rem}.footer-fields input{padding:.55rem}.compose-save-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.draft-article-row{margin-left:0;grid-template-columns:minmax(0,1fr) auto auto}.draft-card-head button{min-width:74px}.crop-dialog-grid{grid-template-columns:2.35fr 1fr}#cover-crop-dialog>label{grid-template-columns:1fr}.navigation-drawer button{text-align:right}}
.draft-toolbar{display:flex;flex-wrap:wrap;gap:.45rem;margin:.65rem 0}.draft-toolbar button{min-width:4.5rem}.draft-article-row{grid-template-columns:22px minmax(0,1fr) auto}.draft-article-row input{width:20px;height:20px;margin:0}.draft-article-row strong,.draft-article-row span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.draft-card-head.draft-article-row{display:grid;justify-content:initial}
.patrol-time-row{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin:.35rem 0}.patrol-time-row>label{white-space:nowrap;font-size:.88rem}.patrol-time-row>em{color:#8b949e;font-size:.78rem}.patrol-time-picker{position:relative}.patrol-time-picker summary{list-style:none;cursor:pointer;min-width:5.4rem;padding:.45rem .7rem;border:1px solid #cfd6df;border-radius:.45rem;background:#fff;text-align:center;font-variant-numeric:tabular-nums}.patrol-time-picker summary::-webkit-details-marker{display:none}.patrol-time-menu{position:absolute;z-index:25;top:calc(100% + .25rem);left:0;display:grid;grid-template-columns:1fr 1fr;gap:.35rem;width:9.5rem;padding:.45rem;border:1px solid #cfd6df;border-radius:.5rem;background:Canvas;box-shadow:0 .35rem 1rem rgba(0,0,0,.16)}.patrol-time-menu select{width:100%;min-width:0;margin:0;padding:.35rem;font-size:14px}.compact-field-row:has(#patrol-hour),.compact-field-row:has(#patrol-end-hour){display:none}
.compose-order-item{grid-template-columns:54px minmax(0,1fr) 44px 38px;gap:.4rem}.order-delete{width:38px;min-width:38px;min-height:38px;padding:0;color:#c62828}

/* V1.0.11 in-place reliability and editing follow-up */
.navigation-drawer button{text-align:center;padding-left:.65rem;padding-right:.65rem}.cover-frame-tools{right:.3rem;top:.3rem;gap:.25rem}.cover-frame-tools button{display:grid;place-items:center;width:30px;min-width:30px;height:30px;min-height:30px;padding:0;border:1px solid rgba(255,255,255,.6);border-radius:8px;background:rgba(25,32,42,.42);color:#fff;opacity:.72;backdrop-filter:blur(3px)}.cover-frame-tools button:hover,.cover-frame-tools button:focus-visible{opacity:.95;background:rgba(25,32,42,.58)}.cover-frame-tools svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.header-icon-button svg{width:23px;height:23px}.eraser-button svg{stroke-width:2.05}.review-item.review-card{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:.55rem;padding:.8rem}.review-card-copy{display:grid;gap:.18rem;min-width:0;padding-right:.25rem}.review-card-copy strong{font-size:.98rem;line-height:1.45;overflow-wrap:anywhere}.review-card-copy small{font-size:.74rem;color:#68717d}.review-card-actions{grid-column:2;display:flex;justify-content:flex-end;align-items:center;gap:.4rem;flex-wrap:wrap}.review-card-actions button{min-height:34px;padding:.3rem .65rem;border-radius:8px}.review-card-actions .review-import,.import-multi{background:#dceeff;color:#155b8f}.review-card-actions .publish{background:#168a48;color:#fff}.publish-group{display:inline-flex;align-items:center;gap:.35rem}.icon-only-action{display:grid;place-items:center;width:36px;min-width:36px;padding:0;color:#394756;background:#edf0f3;border:1px solid #cfd5dc}.icon-only-action svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.compose-order-item{transition:transform .16s,box-shadow .16s,border-color .16s;background .16s}.compose-order-item.is-current{border-style:solid;border-color:#168a48;background:#effaf3}.compose-order-item.is-dragging{opacity:.72;box-shadow:0 8px 20px rgba(15,23,42,.18);transform:scale(1.015)}.compose-order-item.is-drop-target{border-color:#2d8cff;background:#edf6ff}.order-title{display:block;width:100%;min-width:0;min-height:38px;padding:.35rem .45rem;text-align:left;background:transparent;color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drag-handle{touch-action:none;user-select:none;-webkit-user-select:none}.preview-frame-full{width:100%}
@media(max-width:720px){.navigation-drawer button{text-align:center}.review-card-actions{gap:.3rem}.review-card-actions button{padding:.3rem .52rem}.cover-frame-tools button{width:28px;min-width:28px;height:28px;min-height:28px}.compose-order-item{touch-action:pan-y}}

/* V1.0.12 local manuscripts, safe in-page preview and unified review cards */
main{padding-bottom:1rem}
footer{position:static;left:auto;bottom:auto;transform:none;width:100%;max-width:none;margin:2rem 0 0;padding:.75rem 0;background:transparent;color:#9299a2;font-size:.72rem;z-index:auto}
.info-card{margin:.9rem 0;padding:.8rem;border:1px solid #dfe4ea;border-radius:.7rem;background:#fafbfc}
.info-card h3{margin:0 0 .6rem;font-size:1rem}
.v12-recipient-section{padding-top:.8rem;border-top:1px solid #dfe4ea}
.preview-card-host{margin:.7rem 0}.saved-manuscript-preview{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:.65rem;margin:0;padding:.6rem;border:1px solid #dfe4ea;border-radius:.65rem;background:#f7f9fb}.preview-card-actions{margin:.55rem 0 0;font-weight:400}.editor-preview-actions button,.preview-card-actions button{font-weight:400}
.saved-manuscript-preview>div:last-child{display:grid;gap:.15rem;min-width:0}.saved-manuscript-preview strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.saved-manuscript-preview small{color:#68717d}
.manuscript-toolbar,.review-toolbar{display:flex;gap:.4rem;flex-wrap:wrap;margin:.6rem 0}.manuscript-toolbar button,.review-toolbar button{min-height:38px;padding:.35rem .75rem}.manuscript-toolbar button:first-child,.review-toolbar button:first-child{background:#dceeff;color:#155b8f}
.manuscript-row{display:grid;grid-template-columns:22px 2rem 58px minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.6rem 0;border-bottom:1px solid #e2e6eb}.manuscript-row>input{width:20px;height:20px;margin:0}.manuscript-copy{display:grid;gap:.16rem;min-width:0}.manuscript-copy strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.manuscript-copy small{color:#68717d;font-size:.72rem}.manuscript-actions{display:flex;gap:.3rem}.manuscript-actions button,.icon-action{display:grid;place-items:center;width:38px;min-width:38px;height:38px;min-height:38px;padding:0;border:1px solid #cfd5dc;background:#edf0f3;color:#394756}.manuscript-actions svg,.icon-action svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.manuscript-actions button:last-child,.icon-action.publish{background:#168a48;color:#fff;border-color:#168a48}
.manuscript-cover,.review-cover{position:relative;width:58px;height:58px;overflow:hidden;border-radius:.45rem;background:#e7ebef}.manuscript-cover img,.review-cover img{display:block;width:100%;height:100%;object-fit:cover}.cover-eye{position:absolute;right:4px;top:4px;display:grid;place-items:center;width:26px;min-width:26px;height:26px;min-height:26px;padding:0;border:1px solid rgba(255,255,255,.55);border-radius:8px;background:rgba(20,28,38,.48);color:#fff;backdrop-filter:blur(2px)}.cover-eye svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}
.merge-manuscript-row{display:grid;grid-template-columns:40px 58px minmax(0,1fr) 38px;align-items:center;gap:.55rem;padding:.55rem;border-bottom:1px solid #e2e6eb}.merge-manuscript-row strong{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.merge-manuscript-row>button:last-child{min-width:38px;min-height:38px;padding:0;color:#c62828}
.review-item.review-card{grid-template-columns:22px 58px minmax(0,1fr);align-items:center}.review-card-actions{grid-column:3}.review-card-actions .publish-group{display:flex}.review-card-actions .schedule{width:38px;min-width:38px;height:38px;min-height:38px;padding:0}.review-card-actions .schedule svg,.publish-group svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.workflow-error{display:block;margin:.25rem 0 .6rem;color:#b3261e;line-height:1.5}
.workflow-article-status{display:grid;gap:.3rem;margin-top:.65rem;padding-top:.55rem;border-top:1px solid #dfe4ea}.workflow-article-status>small{color:#68717d}.workflow-article-status-row{display:flex;justify-content:space-between;gap:.6rem;padding:.3rem .45rem;border-radius:.35rem;background:#f5f7fa}.workflow-article-status-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workflow-article-status-row small{flex:0 0 auto;color:#68717d}
.review-article-list{display:grid;gap:.18rem;margin-top:.35rem;color:#68717d}
.preview-layer{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#fff;color:#222}.preview-layer::backdrop{background:rgba(15,23,42,.42);backdrop-filter:blur(7px)}.preview-content{box-sizing:border-box;width:min(677px,100%);min-height:100%;margin:0 auto;padding:3.5rem 18px 3rem;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",Arial,sans-serif}.preview-content img{max-width:100%;height:auto}.preview-close-x,.dialog-close-x{position:sticky;float:right;top:.75rem;right:.75rem;z-index:3;display:grid;place-items:center;width:40px;min-width:40px;height:40px;min-height:40px;padding:0;border-radius:50%;background:rgba(35,42,52,.78);color:#fff;font-size:1.45rem}.preview-open{overflow:hidden}.preview-article{padding-bottom:1.4rem}.preview-article-body{line-height:1.8}.preview-footer-panel{margin-top:1.25rem;padding:1rem 1.1rem;border:1px solid #dbe5ef;border-radius:12px;background:#f7fafc}.preview-footer-panel h3{margin:0 0 .75rem;color:#243b53;font-size:1rem}.preview-footer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem .8rem}.preview-footer-grid div{display:flex;gap:.45rem;min-width:0;font-size:.92rem}.preview-footer-grid span{color:#718096;flex:0 0 auto}.preview-footer-grid strong{color:#263238;overflow-wrap:anywhere;font-weight:600}.preview-article-divider{border:0;border-top:1px solid #e5e7eb;margin:1.2rem 0}
.crop-dialog-grid .cover-crop img{transform-origin:center;will-change:transform}.cover-frame-tools[hidden],.cover-plus[hidden]{display:none}
.eraser-button svg{width:25px;height:25px;stroke-width:2.15}
@media(max-width:720px){.manuscript-row{grid-template-columns:20px 1.5rem 52px minmax(0,1fr)}.manuscript-cover,.review-cover{width:52px;height:52px}.manuscript-actions{grid-column:4;justify-content:flex-end}.review-item.review-card{grid-template-columns:20px 52px minmax(0,1fr)}.review-card-actions{grid-column:3}.footer-fields{grid-template-columns:1fr 1fr}.preview-content{padding-left:14px;padding-right:14px}}

/* V1.0.12 confirmed editor and independent patrol tasks */
.manuscript-toolbar button:first-child{background:#edf0f3;color:#394756}
.cover-eye{left:50%;right:auto;top:50%;transform:translate(-50%,-50%);width:28px;min-width:28px;height:28px;min-height:28px;background:rgba(20,28,38,.2)}.cover-eye svg{width:16px;height:16px}
.crop-dialog-grid{display:grid!important;grid-template-columns:1fr!important;gap:1rem}.crop-dialog-grid>div{display:grid;gap:.4rem}.crop-dialog-grid .cover-crop{width:min(100%,560px);margin:0 auto}.crop-dialog-grid .crop-square{width:min(75vw,420px)}
.header-icon-button,.eraser-button{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important}.header-icon-button svg,.eraser-button svg{width:23px!important;height:23px!important;stroke-width:1.9!important;stroke-linecap:round;stroke-linejoin:round}
.compose-save-actions button:first-child{background:#168a48;color:#fff}.compose-save-actions button:last-child{background:#c62828;color:#fff}.editor-preview-actions{grid-template-columns:1fr 6fr 1fr}.editor-preview-actions button{background:ButtonFace!important;color:ButtonText!important;border:1px solid GrayText}.editor-preview-actions .v12-undo,.editor-preview-actions .v12-redo{display:grid;place-items:center;align-self:center;justify-self:center;width:42px;min-width:42px;height:42px;min-height:42px;margin:0;padding:0;border:1px solid #cbd2db!important;border-radius:50%;background:#f1f3f5!important;color:#3b4652!important;line-height:1}.editor-preview-actions .v12-undo svg,.editor-preview-actions .v12-redo svg{display:block;width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;width:28px;height:24px;transform:none;stroke-width:1.15}

.editor-preview-actions .v12-undo,.editor-preview-actions .v12-redo{width:42px;min-width:42px;height:42px;min-height:42px;border:0!important;border-radius:0;background:transparent!important;color:#555!important}
.editor-preview-actions .v12-undo svg,.editor-preview-actions .v12-redo svg{width:29px;height:29px;transform:none;stroke-width:2.2}
.editor-preview-actions button[hidden]{display:none!important}
.footer-fields label{grid-template-columns:2.7rem minmax(0,1fr);align-items:center}.footer-fields label>span{text-align:right}
.template-option-list{display:grid;grid-template-columns:1fr;gap:.65rem;margin-top:.75rem}.template-option{width:100%;min-height:64px;text-align:left;padding:.8rem 1rem;background:#f5f7f9;color:#263442;border:1px solid #d7dde4}.module-title-preview{display:block;margin:.4rem 0}.v12-module-card>small{display:block;color:#68717d;margin-top:.25rem}.merge-manuscript-row.is-dragging{opacity:.72;box-shadow:0 8px 20px rgba(15,23,42,.2);z-index:3}.merge-manuscript-row .drag-handle{touch-action:none}
.template-preview-placeholder{display:block;overflow:hidden;background:#e9eef2}.template-preview-placeholder>img{display:block;width:100%;height:100%;object-fit:cover}
.gallery-editor-slot{position:relative;overflow:hidden}.gallery-default-image{display:block;width:100%;height:100%;object-fit:cover;opacity:.9}.gallery-editor-slot>.gallery-slot-plus{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);z-index:2}
.gallery-editor-slots{display:grid;gap:.55rem;margin:.8rem 0}.gallery-editor-slots[data-layout^="double"]{grid-template-columns:1fr 1fr}.gallery-editor-slots[data-layout="triple-1"]{grid-template-columns:1.05fr 1fr}.gallery-editor-slots[data-layout="triple-1"] .gallery-editor-slot:nth-child(2),.gallery-editor-slots[data-layout="triple-1"] .gallery-editor-slot:nth-child(3){grid-column:2}.gallery-editor-slots[data-layout="triple-1"] .gallery-editor-slot:first-child{grid-row:1/3}.gallery-editor-slots[data-layout="triple-2"],.gallery-editor-slots[data-layout="triple-3"]{grid-template-columns:repeat(3,1fr)}.gallery-editor-slots[data-layout="four-1"]{grid-template-columns:1.55fr 1fr}.gallery-editor-slots[data-layout="seamless"],.gallery-editor-slots[data-layout="slideshow"]{grid-template-columns:1fr}.gallery-editor-slot{position:relative;display:grid;place-items:center;min-height:130px;overflow:hidden;border:1px dashed #9da8b5;border-radius:.55rem;background:#eef2f5}.gallery-editor-slot img{display:block;width:100%;height:100%;min-height:130px;object-fit:cover}.gallery-slot-plus{width:52px;min-width:52px;height:52px;min-height:52px;padding:0;border-radius:50%;font-size:1.7rem}.gallery-slot-tools{display:flex!important}.module-crop-frame{width:min(100%,560px);margin:.8rem auto;overflow:hidden;border:1px solid #d9dee5;border-radius:.55rem;background:#eef1f4}.module-crop-frame img{display:block;width:100%;height:100%;object-fit:cover;transform-origin:center;will-change:transform}
.create-task-row{display:flex;justify-content:center;margin:.8rem 0}.create-task-row button{min-width:9rem}.patrol-task-list{display:grid;gap:.65rem}.patrol-task-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;padding:.75rem;border:1px solid #dfe4ea;border-radius:.65rem;background:#fafbfc}.patrol-task-copy{display:grid;gap:.18rem;min-width:0}.patrol-task-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#68717d}.patrol-task-actions{display:flex;align-items:end;gap:.35rem}.patrol-task-actions button{min-height:36px;padding:.3rem .6rem}.patrol-task-actions .start{background:#168a48;color:#fff}.patrol-task-actions .stop{background:#c62828;color:#fff}.patrol-task-delete{position:absolute;right:.2rem;top:.15rem;min-width:28px!important;min-height:28px!important;padding:0!important;background:transparent!important;color:#b3261e!important}.task-state.is-enabled{color:#168a48;font-weight:700}
.recurring-composer .compact-field-row{grid-template-columns:3rem minmax(0,1fr) 36px}.recurring-composer .compact-field-row label{text-align:left}
@media(max-width:720px){.footer-fields label{grid-template-columns:2.5rem minmax(0,1fr)}.patrol-task-card{grid-template-columns:1fr}.patrol-task-actions{justify-content:flex-end}}







/* Unified action toolbars for manuscripts, drafts, and review inbox. */
.manuscript-toolbar button,
.review-toolbar button,
.draft-toolbar button{
  min-width:4.5rem!important;
  min-height:38px!important;
  padding:.4rem .72rem!important;
  border:1px solid #cbd8de!important;
  border-radius:8px!important;
  background:#edf3f6!important;
  color:#385665!important;
  font-weight:600!important;
  box-shadow:none!important;
}
.manuscript-toolbar button:hover,
.review-toolbar button:hover,
.draft-toolbar button:hover,
.manuscript-toolbar button:focus-visible,
.review-toolbar button:focus-visible,
.draft-toolbar button:focus-visible{
  border-color:#86aebe!important;
  background:#fff!important;
  color:#205e83!important;
}

/* Merge ordering remains drag-and-drop; hide only the legacy arrow controls. */
.merge-manuscript-row{
  grid-template-columns:40px 58px minmax(0,1fr) 38px!important;
}
.merge-manuscript-row>button[data-action="move-merge-up"],
.merge-manuscript-row>button[data-action="move-merge-down"]{
  display:none!important;
}
@media(max-width:720px){
  body.v12-body-input-active{overflow:hidden!important;overscroll-behavior:none;touch-action:none}
  .merge-manuscript-row{
    grid-template-columns:36px 48px minmax(0,1fr) 34px!important;
  }
}




/* V1.0.12 final template, patrol and workflow controls */
.template-option{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,42%);align-items:center;gap:.7rem}.template-copy{display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}.template-copy small{color:#68717d;font-size:.75rem}.template-diagram{display:grid;gap:5px;min-height:72px}.template-diagram i{display:block;background:#cdd7e2;border-radius:3px}.template-diagram[data-layout^="double"]{grid-template-columns:1fr 1fr}.template-diagram[data-layout="double-2"]{grid-template-columns:.65fr 1fr}.template-diagram[data-layout="triple-1"]{grid-template-columns:repeat(3,1fr)}.template-diagram[data-layout="triple-1"] i{aspect-ratio:1/2}.template-diagram[data-layout="triple-2"]{grid-template-columns:1.05fr 1fr}.template-diagram[data-layout="triple-2"] i:first-child{grid-row:1/3}.template-diagram[data-layout="triple-3"]{grid-template-columns:.65fr 1fr .65fr}.template-diagram[data-layout="four-1"]{grid-template-columns:1fr 1fr}.template-diagram[data-layout="four-1"] i{aspect-ratio:4/3}
.gallery-editor-slots[data-layout="triple-1"]{grid-template-columns:repeat(3,1fr)}.gallery-editor-slots[data-layout="triple-1"] .gallery-editor-slot{grid-column:auto!important;grid-row:auto!important;aspect-ratio:1/2}.gallery-editor-slots[data-layout="triple-2"]{grid-template-columns:1.05fr 1fr}.gallery-editor-slots[data-layout="triple-2"] .gallery-editor-slot:first-child{grid-row:1/3}.gallery-editor-slots[data-layout="triple-2"] .gallery-editor-slot:nth-child(n+2){grid-column:2}.gallery-editor-slots[data-layout="four-1"]{grid-template-columns:1fr 1fr}.gallery-editor-slots[data-layout="four-1"] .gallery-editor-slot,.gallery-editor-slots[data-layout^="double"] .gallery-editor-slot{aspect-ratio:4/3}
.module-gallery-preview{display:grid;gap:8px;margin:.5rem 0}.module-gallery-preview[data-layout^="double"]{grid-template-columns:1fr 1fr}.module-gallery-preview[data-layout="double-2"]{grid-template-columns:.65fr 1fr}.module-gallery-preview[data-layout="triple-1"]{grid-template-columns:repeat(3,1fr)}.module-gallery-preview[data-layout="triple-1"] .module-gallery-slot{aspect-ratio:1/2}.module-gallery-preview[data-layout="triple-2"]{grid-template-columns:1.05fr 1fr}.module-gallery-preview[data-layout="triple-2"] .module-gallery-slot:first-child{grid-row:1/3}.module-gallery-preview[data-layout="triple-2"] .module-gallery-slot:nth-child(n+2){grid-column:2}.module-gallery-preview[data-layout="triple-3"]{grid-template-columns:.65fr 1fr .65fr}.module-gallery-preview[data-layout="four-1"]{grid-template-columns:1fr 1fr}.module-gallery-preview[data-layout="four-1"] .module-gallery-slot,.module-gallery-preview[data-layout^="double"] .module-gallery-slot{aspect-ratio:4/3}.module-gallery-slot{position:relative;overflow:hidden;background:#eef2f5}.module-gallery-slot>img{display:block;width:100%;height:100%;object-fit:cover}.v12-undo{width:100%;margin:.35rem 0}
.patrol-cover-section{margin-top:.8rem}.patrol-cover-section h3{margin-bottom:.35rem}.patrol-footer-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.patrol-footer-fields label{display:grid;grid-template-columns:2.7rem minmax(0,1fr);align-items:center}.patrol-footer-fields label>span{text-align:right}.patrol-task-actions .edit{background:#e4f5e9;color:#116b36}.workflow-actions{display:flex;justify-content:flex-end;gap:.4rem;align-items:center}.workflow-actions .icon-action{width:38px;min-width:38px;height:38px;min-height:38px}.preview-action{background:#fff1b8!important;color:#765400!important}.edit-action{background:#e4f5e9!important;color:#116b36!important}
@media(max-width:720px){.patrol-footer-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.template-option{grid-template-columns:1fr}.template-diagram{min-height:110px}}
#v12-subtitle-row[hidden]{display:none!important}#v12-module-crop-dialog{max-height:calc(100dvh - 24px);overflow:auto}#v12-module-crop-dialog .dialog-actions{position:sticky;bottom:0;background:Canvas;padding-top:.55rem}

/* V1.0.12 interaction and spacing follow-up */
.header-icons .header-icon-button{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important}.header-icons .header-icon-button svg{display:block;width:24px!important;height:24px!important;fill:none;stroke:currentColor;stroke-width:1.9!important;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.eraser-button svg{width:24px!important;height:24px!important;stroke-width:1.9!important}
.preview-action{background:#fff4c7!important;color:#8a6200!important;border-color:#f0d77a!important}.edit-action{background:#dff5e7!important;color:#116b38!important;border-color:#a9ddbb!important}.publish.icon-action,.review-card-actions .publish,.manuscript-actions button:last-child{background:#fde5e5!important;color:#a51f1f!important;border-color:#efb4b4!important}.clock-action,.schedule.icon-action{background:#e2efff!important;color:#155da8!important;border-color:#abcdf1!important}.workflow-actions .icon-action,.review-card-actions .icon-action{width:38px!important;min-width:38px!important;height:38px!important;min-height:38px!important;padding:0!important}.workflow-actions .icon-action svg,.review-card-actions .icon-action svg{width:19px!important;height:19px!important;stroke-width:1.8!important}
.info-card{margin:.65rem 0;padding:.65rem}.footer-fields{gap:.3rem .45rem;margin:.55rem 0}.footer-fields label,.patrol-footer-fields label{column-gap:.25rem}.patrol-footer-fields{gap:0 .45rem;margin:.55rem 0;padding:.65rem}.patrol-footer-fields label{margin:0}.patrol-composer,.recurring-composer{row-gap:.3rem}.compact-field-row{margin-bottom:.15rem}.recurring-composer .compact-field-row{grid-template-columns:max-content minmax(0,1fr) 36px;column-gap:.35rem}.recurring-composer .compact-field-row label{text-align:left;width:auto}
#patrol-cover-dialog .crop-square{width:75%!important;max-width:75vw!important}#patrol-cover-dialog [data-patrol-crop] img{transform-origin:center;will-change:transform}
.gallery-editor-slots[data-layout="double-2"],.module-gallery-preview[data-layout="double-2"]{grid-template-columns:43fr 53fr}.gallery-caption-field{grid-column:1/-1;display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:.45rem}.gallery-caption-field input{min-width:0}.gallery-editor-slots[data-layout="slideshow"] .gallery-editor-slot,.module-gallery-preview[data-layout="slideshow"] .module-gallery-slot{aspect-ratio:4/3}.module-gallery-preview[data-layout="slideshow"]{grid-template-columns:1fr}.module-gallery-preview[data-layout="slideshow"]>small{grid-column:1/-1}
.merge-manuscript-row{touch-action:none;cursor:grab;transition:background .15s,border-color .15s,box-shadow .15s}.merge-manuscript-row.is-selected{background:#eaf4ff;outline:2px solid #5a9fe6;outline-offset:-2px}.merge-manuscript-row.is-dragging{opacity:.78;cursor:grabbing;box-shadow:0 8px 22px rgba(15,23,42,.24);z-index:4}
@media(max-width:720px){.footer-fields{gap:.25rem .35rem}.patrol-footer-fields{gap:0}.patrol-footer-fields label{min-height:40px}.patrol-composer,.recurring-composer{row-gap:.25rem}#patrol-cover-dialog .crop-square{width:min(75vw,420px)!important;max-width:75vw!important}.gallery-caption-field{grid-template-columns:1fr;gap:.2rem}}
.patrol-time-grid{display:grid;grid-template-columns:5.8rem minmax(7rem,1fr) 5.8rem minmax(7rem,1fr) auto;align-items:center;gap:.45rem;margin:.35rem 0}.patrol-time-grid>label{font-size:.88rem;text-align:left;white-space:nowrap}.patrol-time-grid .patrol-time-picker{min-width:0}.patrol-time-grid .patrol-time-picker summary{width:100%;min-width:0}.patrol-time-grid>select{width:100%;height:36px;min-width:0;padding:.2rem .35rem;font-size:14px}.patrol-publish-row{margin-top:.1rem}.publish-toggle{display:flex!important;align-items:center;justify-content:center;gap:.2rem!important;text-align:left!important}.publish-toggle input{width:16px;height:16px;margin:0}.patrol-daily-hint{color:#8b949e;font-size:.78rem;font-style:italic;white-space:nowrap}.patrol-legacy-controls{display:none}.patrol-cycle-row{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin:.25rem 0 .45rem;padding-left:0;font-size:.85rem}.patrol-cycle-row>span{margin-left:0}.patrol-cycle-row label{display:inline-flex;align-items:center;gap:.2rem;white-space:nowrap}.patrol-cycle-row input{margin:0}.patrol-composer .compact-field-row{grid-template-columns:5.8rem minmax(0,1fr) 36px}.patrol-composer .compact-field-row label{text-align:left}
.gallery-editor-slots[data-layout="slideshow"]{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.gallery-editor-slots[data-layout="slideshow"] .gallery-editor-slot{flex:0 0 75%;aspect-ratio:4/3;scroll-snap-align:start}
.gallery-editor-slots[data-layout="slideshow-2"]{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.gallery-editor-slots[data-layout="slideshow-2"] .gallery-editor-slot{flex:0 0 75%;aspect-ratio:4/3;scroll-snap-align:start}
.slideshow-arrow-color-palette{display:flex;align-items:center;flex-wrap:wrap;gap:.38rem;white-space:normal}
.slideshow-arrow-color-palette button{width:25px;min-width:25px;height:25px;min-height:25px;padding:0;border:2px solid #c4d1d9;border-radius:50%;background:var(--swatch);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),0 1px 2px rgba(33,67,87,.08)}
.slideshow-arrow-color-palette button.is-selected{outline:2px solid var(--ws-primary);outline-offset:2px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),0 0 0 3px rgba(31,99,149,.12)}
.module-slideshow-track{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px!important;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.module-slideshow-track .module-gallery-slot{flex:0 0 75%;aspect-ratio:4/3;scroll-snap-align:start}
.module-slideshow-track,.gallery-editor-slots[data-layout="slideshow"],[data-role="custom-slideshow"]{touch-action:pan-x;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.slideshow-hint{display:block;text-align:center;color:#68717d;font-size:.78rem;margin-top:.3rem}
.cover-crop,.module-crop-frame{position:relative}
body{touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}input,textarea,select,[contenteditable="true"]{user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}body:has(dialog[open]){overflow:hidden}img{user-select:none;-webkit-user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}.v12-cover-frame,.cover-crop,.module-crop-frame,.gallery-editor-slot,.module-gallery-slot,[data-crop-kind],[data-patrol-crop]{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.v12-cover-frame img,.cover-crop img,.module-crop-frame img,.gallery-editor-slot img,.module-gallery-slot img{user-select:none;-webkit-user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}.cover-crop,.module-crop-frame{cursor:grab;touch-action:none}.module-slideshow-track,.gallery-editor-slots[data-layout="slideshow"]{touch-action:pan-x}.cover-crop:active,.module-crop-frame:active{cursor:grabbing}dialog::backdrop{background:rgba(20,28,38,.32);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}.gallery-editor-slots,.module-gallery-preview{gap:4px}.gallery-slot-tools .gallery-delete{background:rgba(160,30,30,.68);color:#fff}.gallery-count-actions{display:flex;gap:.5rem}.gallery-count-actions button{flex:1}.task-date{display:block;color:#7a838e;font-size:.72rem;margin-top:.2rem}
.preserved-html-editor{min-height:8rem;margin:.55rem 0;padding:.8rem;border:1px solid #d7dde4;border-radius:.5rem;background:#fff;line-height:1.65;outline:none;overflow-wrap:anywhere}.preserved-html-editor:focus{border-color:#168a48;box-shadow:0 0 0 3px rgba(22,138,72,.13)}.preserved-html-editor img{display:block;max-width:100%;height:auto;margin:.5rem auto}
.preserved-image-shell{position:relative;display:block;max-width:100%;margin:.5rem auto;line-height:0}.preserved-image-shell>img{margin:0!important}.preserved-image-shell.is-image-selected{outline:2px solid rgba(78,157,204,.55);outline-offset:2px}.preserved-image-tools{position:absolute;top:.32rem;right:.32rem;z-index:3;display:none;gap:.26rem;line-height:normal}.preserved-image-shell.is-image-selected .preserved-image-tools{display:flex}.preserved-image-tools button{display:grid;place-items:center;width:29px;min-width:29px;height:29px;min-height:29px;margin:0;padding:0;border:1px solid rgba(207,214,220,.96);border-radius:50%;background:rgba(237,240,243,.95);color:#45515c;box-shadow:0 1px 4px rgba(20,30,40,.2)}.preserved-image-tools button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.preserved-image-tools .preserved-image-delete{color:#b93636;font-size:19px;font-weight:700;line-height:1}.preserved-image-tools .preserved-image-delete:hover{background:#dfe5e9;color:#991f2b}.imported-html-warning{margin:.35rem 0 .65rem;color:#bf7575;font-size:.82rem;line-height:1.55}.v12-module-card .module-head button[data-action="v12-convert-template"]{height:32px;min-height:32px;padding:0 .58rem;border-color:#b8dfc3;border-radius:9px;background:rgba(214,241,221,.58);color:#267747;font-size:.78rem;white-space:nowrap}.v12-restore-template{display:block;margin:0 auto .7rem!important;border-color:#a9d9ba!important;background:rgba(218,244,225,.66)!important;color:#237242!important}
.footer-fields input.is-imported{border-color:#e1ad19;background:#fff8cf;box-shadow:0 0 0 2px rgba(225,173,25,.18)}.footer-fields input.is-empty{background:#f2f4f6;color:#7c8692}.common-template-editor-dialog{width:min(760px,calc(100vw - 1.2rem));max-height:calc(100dvh - 1.2rem);overflow:auto}.common-template-editor-dialog .compose-save-actions{position:sticky;bottom:0;background:Canvas;padding-top:.55rem}.common-template-title-row{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.45rem;align-items:center}.common-template-title-row input{min-width:0}.common-template-editor-note{display:block;color:#7c8692;font-size:.78rem;margin:.15rem 0}.common-template-editor-cover-frame{margin:.75rem 0}.common-template-preview-link{display:block;margin:.55rem 0;color:#1769aa;font-size:.88rem;text-decoration:underline}
.publish-time-setting{display:flex;align-items:center;gap:.35rem}.publish-time-setting>input{width:20px!important;height:20px!important;min-height:20px!important;flex:0 0 20px}
.merge-manuscript-row{grid-template-columns:40px 58px minmax(0,1fr) repeat(3,38px)}.merge-manuscript-row>button{min-width:38px;min-height:38px;padding:0}.patrol-task-cover{width:52px;height:52px;object-fit:cover;border-radius:.45rem;align-self:start}.patrol-task-card{grid-template-columns:52px minmax(0,1fr) auto}.patrol-run-once{justify-self:start;min-height:0!important;padding:.1rem 0!important;border:0!important;background:transparent!important;color:#356b98!important;font-size:.78rem!important}
@media(max-width:720px){.patrol-task-card{grid-template-columns:52px minmax(0,1fr)}.patrol-task-actions{grid-column:1/3}.merge-manuscript-row{grid-template-columns:36px 48px minmax(0,1fr) repeat(3,34px);gap:.25rem}.merge-manuscript-row>button{min-width:34px;min-height:34px}}
.link-card>button{width:44px;min-width:44px;min-height:44px;padding:0}.manual-link-row{grid-template-columns:58px minmax(0,1fr) 38px 38px;transition:background .15s,border-color .15s,box-shadow .15s}.manual-link-row>.icon-only-action{width:38px;min-width:38px;height:38px;min-height:38px;padding:0}.manual-link-title{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.manual-link-row.is-selected{background:#eaf4ff;outline:2px solid #5a9fe6;outline-offset:-2px}.manual-link-row.is-dragging{opacity:.78;cursor:grabbing;box-shadow:0 8px 22px rgba(15,23,42,.24);z-index:4}.manual-link-row.is-dragging .manual-link-title{cursor:grabbing}
/* Keep action labels at normal weight across the editor and forwarding flow. */
.compose-save-actions button{font-weight:400!important}
.manual-footer-note{display:block;width:100%;margin:.55rem 0 .1rem;color:#999!important;font-size:12px!important;line-height:1.3;font-style:italic!important;font-weight:400!important;text-align:center!important}
.manual-actions button,.compose-save-actions button{font-weight:400!important}
.manual-link-row{transition:box-shadow .16s,border-color .16s,background .16s}.manual-link-row.is-dragging{opacity:.78;box-shadow:0 8px 22px rgba(15,23,42,.24);z-index:4}.manual-link-row.is-drop-target{border-color:#2d8cff;background:#edf6ff;border-color:inherit;background:inherit}

/* Fixed cover template editor */
.cover-template-preview{width:min(100%,720px);margin:.7rem auto;border:1px solid #d9dee5;border-radius:.55rem;overflow:hidden;background:#eef1f4}.cover-template-preview canvas{display:block;width:100%;height:auto}
.cover-template-library{margin-top:.7rem}.cover-template-library-grid{display:grid;grid-template-columns:2.35fr 1fr;gap:.7rem}.cover-template-library-grid>div{min-width:0}.cover-template-library-grid>div>strong{display:block;margin-bottom:.35rem}.template-upload-plus{display:grid;place-items:center;width:42px;min-width:42px;height:42px;min-height:42px;padding:0;margin-bottom:.45rem;border:1px dashed #9da8b5;background:#f7f9fb;color:#536170;font-size:1.5rem}.cover-template-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem}.cover-template-card{position:relative;min-width:0}.cover-template-card>button:first-child{display:block;width:100%;min-width:0;min-height:0;padding:2px;border:2px solid transparent;border-radius:.4rem;background:#eef1f4}.cover-template-card.is-selected>button:first-child{border-color:#168a48;box-shadow:0 0 0 2px rgba(22,138,72,.18)}.cover-template-card img{display:block;width:100%;aspect-ratio:2.35/1;object-fit:cover;border-radius:.2rem}.cover-template-card .cover-template-delete{position:absolute;right:-5px;top:-5px;display:grid;place-items:center;width:22px;min-width:22px;height:22px;min-height:22px;padding:0;border:1px solid #fff;border-radius:50%;background:#c62828;color:#fff;line-height:1}.cover-template-options{display:flex;gap:.4rem;margin:.6rem 0}.cover-template-options button.is-selected{border-color:#168a48;background:#e4f5e9;color:#116b36}
.cover-template-text-controls{display:grid;grid-template-columns:minmax(0,1fr) 8rem minmax(12rem,1fr);gap:.55rem;align-items:center;margin:.65rem 0}.cover-template-text-controls label{display:flex;align-items:center;gap:.35rem;min-width:0}.cover-template-text-controls input[type=color]{width:42px;height:34px;padding:2px}.cover-template-text-controls input[type=range]{min-width:0;flex:1}.cover-template-text-controls output{width:2.5rem}.cover-template-zone{padding:.55rem;border:1px dashed #aab4c0;border-radius:.55rem;background:#fbfcfd}.cover-template-zone .template-upload-plus{width:auto;padding:0 .7rem;font-size:.9rem}
.cover-text-style-group{display:grid;grid-template-columns:minmax(0,1fr) minmax(10rem,1fr) 5.5rem 11rem;gap:.45rem;align-items:center;margin:.6rem 0;padding:.6rem;border:1px solid #dfe4ea;border-radius:.55rem;background:#fbfcfd}.cover-text-style-group h4{grid-column:1/-1;margin:0}.cover-text-style-group label{display:flex;align-items:center;gap:.35rem;min-width:0}.cover-text-style-group input,.cover-text-style-group select{min-width:0;flex:1}.cover-text-style-group input[type=color]{width:42px;flex:0 0 42px;height:34px;padding:2px}.cover-text-style-group input[type=range]{min-width:0}
@media(max-width:720px){.cover-text-style-group{grid-template-columns:1fr 1fr}.cover-text-style-group label{display:grid;align-items:center}.cover-text-style-group label:nth-of-type(1),.cover-text-style-group label:nth-of-type(2){grid-column:1/-1}}
.cover-text-style-group{display:grid;grid-template-columns:1fr;gap:.45rem}.cover-text-input-row{display:flex!important;align-items:center!important;gap:.35rem}.cover-text-input-row input{flex:1;min-width:0}.cover-text-style-row{display:grid;grid-template-columns:4.5em max-content minmax(12rem,1fr);gap:.55rem;align-items:center}.cover-text-font-select{width:6em;min-width:6em;padding-left:.15rem;padding-right:.15rem}.cover-color-palette{display:flex;align-items:center;gap:.25rem;white-space:nowrap}.cover-color-palette>span{font-size:.78rem;color:#68717d}.cover-color-palette button{width:22px;min-width:22px;height:22px;min-height:22px;padding:0;border:2px solid #cbd2da;border-radius:50%;background:var(--swatch);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}.cover-color-palette button.is-selected{outline:2px solid #168a48;outline-offset:1px}.cover-text-size-control{display:grid!important;grid-template-columns:max-content 1fr max-content;align-items:center;gap:.35rem}.cover-text-size-control input{min-width:0}.cover-text-size-control output{width:2.5rem}
.v12-body-editor{display:grid;gap:.35rem}.v12-body-editor-actions{display:flex;justify-content:flex-end}.v12-body-editor-actions button{min-width:5rem}
.v12-recipient-section{display:block}
#v12-modules>.empty-hint{text-align:center;margin:.5em 0}
.patrol-time-grid{grid-template-columns:5.8rem 5.5em 5.8rem 5.5em auto}.patrol-time-grid>select,.patrol-time-grid .patrol-time-picker summary{width:5.5em;min-width:5.5em;max-width:5.5em}
.patrol-time-grid{grid-template-columns:max-content 5.5em max-content 5.5em auto}.patrol-composer .compact-field-row{grid-template-columns:max-content minmax(0,1fr) 36px}
.patrol-time-grid{grid-template-columns:max-content 5em max-content 5em auto}.patrol-time-grid>select,.patrol-time-grid .patrol-time-picker summary{width:5em;min-width:5em;max-width:5em}
.patrol-time-grid{column-gap:0}.patrol-time-grid>label:nth-of-type(2){margin-left:.8rem}.patrol-time-grid .patrol-daily-hint{margin-left:.35rem}
.patrol-time-grid>label,
.patrol-time-grid>select,
.patrol-time-grid>.publish-toggle{
  align-self:center;
}
.patrol-composer .compact-field-row{grid-template-columns:4em minmax(0,1fr) 36px}.patrol-composer .compact-field-row label{text-align:right}
#patrol-cover-dialog .crop-square{width:min(75vw,420px)!important;max-width:75vw!important}

/* Calm public-sector navigation: clean white, mist gray, and civic blue. */
.navigation-drawer{
  box-sizing:border-box;
  overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.99),rgba(244,248,251,.985));
  border-left:1px solid #d8e3eb;
  box-shadow:-14px 0 36px rgba(48,79,103,.14),inset 1px 0 rgba(255,255,255,.8);
  backdrop-filter:blur(14px) saturate(115%);
  -webkit-backdrop-filter:blur(14px) saturate(115%);
}
.navigation-drawer::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:1px;
  background:linear-gradient(180deg,transparent,#8fc4df 28%,#8fc4df 72%,transparent);
  pointer-events:none;
}
.navigation-drawer button{
  position:relative;
  max-width:9.25rem;
  margin:.28rem 0;
  padding:.62rem .85rem;
  border:1px solid transparent;
  border-radius:10px;
  background:transparent;
  color:#3f5565;
  box-shadow:none;
  font-weight:500;
  letter-spacing:.04em;
  transition:transform .18s ease,border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease;
}
.navigation-drawer button:hover,.navigation-drawer button:focus-visible{
  transform:translateX(-2px);
  border-color:#cddfe9;
  background:#edf5f9;
  color:#1e5f83;
  box-shadow:0 5px 14px rgba(45,91,121,.08);
}
.navigation-drawer button[aria-selected="true"]{
  border-color:#b7d6e6;
  background:linear-gradient(135deg,#e8f5fb,#d8edf7);
  color:#155a80;
  box-shadow:0 6px 16px rgba(50,115,151,.12),inset 0 1px rgba(255,255,255,.86);
  font-weight:600;
}
.semicircle-handle{
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(255,255,255,.48),transparent 38%),
    linear-gradient(155deg,#dff3fb 0%,#9ed4e9 58%,#72b9d8 100%);
  color:#174f6d;
  border:1px solid #7ebbd4;
  box-shadow:0 6px 18px rgba(40,100,131,.2),inset 0 1px rgba(255,255,255,.86),inset 0 -1px rgba(48,111,142,.12);
}
.semicircle-handle:hover,.semicircle-handle:focus-visible{
  filter:brightness(1.035);
  box-shadow:0 8px 22px rgba(40,100,131,.25),inset 0 1px rgba(255,255,255,.9),inset 0 -1px rgba(48,111,142,.14);
}
.semicircle-handle span{
  color:#174f6d;
  font-weight:300;
  text-shadow:0 1px rgba(255,255,255,.68);
}
.drawer-open .semicircle-handle{
  right:calc(12rem - 36px);
  border-left:0;
  box-shadow:4px 5px 16px rgba(40,78,103,.18),inset 0 1px rgba(255,255,255,.84);
}
@media(max-width:720px){
  .navigation-drawer{
    width:min(12rem,calc(100vw - 44px));
    max-width:calc(100vw - 44px);
    overflow-x:hidden;
    overflow-y:auto;
  }
  .navigation-drawer button{
    width:100%;
    max-width:min(9rem,100%);
    box-sizing:border-box;
  }
  .drawer-open .semicircle-handle{
    right:calc(min(12rem,calc(100vw - 44px)) - 36px);
  }
}

/* Refined civic controls: compact side tab and matching header actions. */
.semicircle-handle{
  width:42px;
  min-width:42px;
  height:64px;
  min-height:64px;
  padding:0;
  border-radius:16px 0 0 16px;
  font-size:1.45rem;
}
.semicircle-handle span{line-height:1}
.drawer-open .semicircle-handle{
  right:calc(12rem - 42px);
  border-radius:0 16px 16px 0;
}
.header-icons{
  gap:.5rem;
}
.header-icons .header-icon-button{
  display:grid;
  place-items:center;
  width:44px;
  min-width:44px;
  height:44px;
  min-height:44px;
  padding:0;
  border:1px solid #d4e2ea;
  border-radius:12px;
  background:linear-gradient(180deg,#fff,#f2f7fa);
  color:#356b89;
  box-shadow:0 4px 12px rgba(52,91,116,.1),inset 0 1px rgba(255,255,255,.9);
  transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease;
}
.header-icons .header-icon-button:hover,.header-icons .header-icon-button:focus-visible{
  transform:translateY(-1px);
  border-color:#a9ccdd;
  background:#eaf5fa;
  color:#175d82;
  box-shadow:0 6px 16px rgba(52,91,116,.15);
}
.header-icons .header-icon-button:active{
  transform:translateY(0);
  box-shadow:0 2px 7px rgba(52,91,116,.11);
}
.header-icons .header-icon-button svg,
.header-icons .eraser-button svg{
  width:22px;
  height:22px;
  stroke-width:1.8;;
  display:block;
  width:24px!important;
  height:24px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}

/* Keep the bell and eraser equal in visible size and line weight. */

.header-icons .header-icon-button svg path{
  vector-effect:non-scaling-stroke;
}
.header-icons .eraser-button svg{
  transform:translateY(-.5px) scale(1.13);
  transform-origin:center;
}
@media(max-width:720px){
  .drawer-open .semicircle-handle{
    right:calc(min(12rem,calc(100vw - 44px)) - 42px);
  }
  .header-icons .header-icon-button{
    width:42px;
    min-width:42px;
    height:42px;
    min-height:42px;
  }
}

/* Responsive safety layer: prevent content from escaping narrow viewports. */
html,body{
  width:100%;
  max-width:100%;
  overflow-x:clip;
}
main,
#panel-container,
.card,
.automation,
.automation-editor,
.patrol-composer,
.recurring-composer,
.saved-list,
.preview-card-host,
fieldset,
dialog,
dialog>form{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
fieldset{
  width:100%;
  min-inline-size:0;
}
input:not([type="checkbox"]):not([type="radio"]),
textarea,
select{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
img,
video,
canvas,
iframe{
  max-width:100%;
}
dialog{
  width:min(52rem,calc(100vw - 1rem));
  max-height:calc(100dvh - 1rem);
  overflow:auto;
}
.card>h2,
.task-heading h2,
.draft-page-heading h2,
.compose-article-heading strong,
.manual-link-title,
.link-title>span:first-child,
.manuscript-copy strong,
.saved-manuscript-preview strong,
.review-card-copy>strong,
.review-article-list small,
.workflow-card>p,
.workflow-article-status-row>span,
.merge-manuscript-row>strong,
.recurring-plan-title,
.draft-article-row>strong,
.draft-article-row>span{
  display:block;
  min-width:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.workflow-card>p{
  padding-right:2.4rem;
}

/* Merged multi-article titles retain their full value, with a two-line preview. */
.merge-manuscript-row>strong{display:-webkit-box;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:1.45;max-height:2.9em;overflow:hidden;overflow-wrap:anywhere}

/* Workflow fields must never widen a task card; long API messages remain readable
   as a compact single line.  The dismissal control occupies its own grid row. */
.workflow-card>p,
.workflow-card>.task-date,
.workflow-card>.workflow-error,
.workflow-card>.workflow-article-status,
.workflow-card>.workflow-actions{
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.workflow-card>.task-date,
.workflow-card>.workflow-error{
  white-space:nowrap;
  text-overflow:ellipsis;
}
.workflow-card{
  row-gap:.16rem;
  padding:.65rem!important;
}
.workflow-card>.failed-task-close{
  position:absolute!important;
  top:.3rem;
  right:.3rem;
  z-index:2;
  width:30px;
  min-width:30px;
  height:30px;
  min-height:30px;
  margin:0;
  font-size:1.1rem;
}
.workflow-card>.workflow-actions{
  grid-column:1/-1!important;
  justify-self:center;
  width:max-content;
  margin:.2rem auto 0;
  padding:.22rem;
}
#workflow-list .workflow-actions .icon-action{
  width:34px!important;
  min-width:34px!important;
  height:34px!important;
  min-height:34px!important;
  border-radius:9px!important;
}
#workflow-list .workflow-actions .icon-action svg{
  width:17px!important;
  height:17px!important;
}

@media(max-width:720px){
  main{
    width:100%;
    max-width:100vw;
    padding:.65rem;
    overflow-x:clip;
  }
  .card{
    width:100%;
    padding:.75rem;
  }
  .topbar,
  .header-icons,
  .inline-entry,
  .compact-field-row,
  .patrol-time-grid,
  .patrol-cycle-row,
  .recurring-choice-row,
  .recurring-plan-card,
  .recurring-plan-primary,
  .recurring-plan-details,
  .recurring-plan-bottom-row,
  .workflow-actions,
  .dialog-actions{
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
  }
  .patrol-time-grid{
    display:grid;
    grid-template-columns:max-content minmax(0,1fr)!important;
    column-gap:.3rem!important;
    row-gap:.35rem;
  }
  .patrol-time-grid>select,
  .patrol-time-grid .patrol-time-picker summary{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  .patrol-time-grid>label:nth-of-type(2){
    margin-left:0;
  }
  .patrol-time-grid .patrol-daily-hint{
    grid-column:2;
    margin-left:0;
  }
  .patrol-cycle-row{
    gap:.35rem .5rem;
  }
  .recurring-choice-row{
    display:flex!important;
    flex-wrap:wrap;
    align-items:center;
    gap:.35rem!important;
    width:100%;
    overflow:visible!important;
    white-space:normal;
  }
  .recurring-choice-row .time-pair{
    display:flex;
    flex:0 1 auto;
    min-width:0;
  }
  .recurring-choice-row .recurring-create-task{
    flex:0 0 auto;
    margin:.2rem auto 0!important;
  }
  .recurring-plan-primary{
    width:100%;
  }
  .recurring-plan-title{
    flex:1;
  }
  .recurring-plan-details{
    width:100%;
    overflow:hidden;
  }
  .recurring-plan-details>*{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .dialog-actions,
  .workflow-actions,
  .recurring-plan-bottom-row{
    flex-wrap:wrap;
  }
  .cover-template-text-controls,
  .cover-text-style-row{
    grid-template-columns:1fr!important;
  }
  .cover-color-palette{
    flex-wrap:wrap;
    white-space:normal;
  }
}

/* 微枢编辑器 · unified civic design system */
:root{
  color-scheme:light;
  --ws-primary:#1f6395;
  --ws-primary-strong:#164d77;
  --ws-primary-soft:#eaf3f9;
  --ws-accent:#2e7d78;
  --ws-accent-soft:#e7f4f2;
  --ws-danger:#bf3f47;
  --ws-danger-soft:#fbecee;
  --ws-warning:#9a6a12;
  --ws-warning-soft:#fff5d9;
  --ws-success:#27764d;
  --ws-success-soft:#e8f5ee;
  --ws-ink:#203341;
  --ws-muted:#667786;
  --ws-border:#d9e3eb;
  --ws-border-strong:#c3d2dd;
  --ws-surface:#ffffff;
  --ws-surface-soft:#f7fafc;
  --ws-bg:#f2f6f9;
  --ws-shadow:0 10px 30px rgba(40,69,90,.08);
  --ws-shadow-soft:0 4px 14px rgba(40,69,90,.065);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","HarmonyOS Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  font-synthesis:none;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body{
  min-height:100dvh;
  background:
    radial-gradient(circle at 15% 0,rgba(79,156,194,.08),transparent 28rem),
    linear-gradient(180deg,#f8fbfd 0,var(--ws-bg) 28rem);
  color:var(--ws-ink);
  line-height:1.55;
}
main{
  width:100%;
  max-width:64rem;
  padding:1.15rem 1rem calc(5.4rem + env(safe-area-inset-bottom));
}
.topbar{
  position:sticky;
  top:max(.55rem,env(safe-area-inset-top));
  z-index:18;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:68px;
  margin-bottom:1rem;
  padding:.62rem .72rem;
  border:1px solid rgba(211,225,234,.9);
  border-radius:16px;
  background:rgba(255,255,255,.9);
  box-shadow:var(--ws-shadow-soft);
  backdrop-filter:blur(16px) saturate(130%);
  -webkit-backdrop-filter:blur(16px) saturate(130%);
}
.topbar-brand,
.nav-brand,
.login-brand{
  display:flex;
  align-items:center;
  min-width:0;
  gap:.65rem;
}
.brand-mark{
  display:grid;
  place-items:center;
  flex:0 0 42px;
  width:42px;
  height:42px;
  border-radius:13px;
  background:linear-gradient(145deg,#2b78aa,#19547f);
  color:#fff;
  box-shadow:0 7px 18px rgba(31,99,149,.22),inset 0 1px rgba(255,255,255,.3);
  font-family:"STKaiti","KaiTi","Microsoft YaHei",sans-serif;
  font-size:1.38rem;
  font-weight:700;
  line-height:1;
}
.brand-copy{
  display:grid;
  min-width:0;
  line-height:1.25;
}
.brand-copy strong,
.login-brand strong{
  overflow:hidden;
  color:#193d57;
  font-size:1.06rem;
  font-weight:700;
  letter-spacing:.06em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.brand-copy small,
.login-brand small{
  color:var(--ws-muted);
  font-size:.72rem;
  letter-spacing:.03em;
  white-space:nowrap;
}
.header-icons{
  position:static;
  top:auto;
  right:auto;
  flex:0 0 auto;
  margin-left:auto;
}
.header-icons .header-icon-button{
  border-color:var(--ws-border)!important;
  background:var(--ws-surface-soft)!important;
  color:#386881!important;
  box-shadow:none!important;
}
.header-icons .header-icon-button:hover,
.header-icons .header-icon-button:focus-visible{
  border-color:#9fc3d8!important;
  background:#eaf4f9!important;
  color:var(--ws-primary)!important;
  box-shadow:0 5px 14px rgba(42,105,143,.12)!important;
}
.navigation-drawer{
  justify-content:flex-start;
  align-items:stretch;
  width:12rem;
  padding:5.9rem .8rem calc(1rem + env(safe-area-inset-bottom));
  counter-reset:ws-nav;
  background:rgba(250,252,254,.98);
  border-left:1px solid var(--ws-border);
  box-shadow:-18px 0 42px rgba(38,65,85,.14);
}
.nav-brand{
  position:absolute;
  top:max(1rem,env(safe-area-inset-top));
  left:.85rem;
  right:.85rem;
  padding-bottom:.8rem;
  border-bottom:1px solid var(--ws-border);
}
.nav-brand .brand-mark{
  flex-basis:36px;
  width:36px;
  height:36px;
  border-radius:11px;
  font-size:1.12rem;
}
.nav-brand .brand-copy strong{font-size:.94rem}
.nav-brand .brand-copy small{font-size:.65rem}
.navigation-drawer>button{
  counter-increment:ws-nav;
  display:grid;
  grid-template-columns:1.7rem minmax(0,1fr);
  align-items:center;
  width:100%;
  max-width:none;
  min-height:44px;
  margin:.18rem 0;
  padding:.5rem .65rem;
  border:1px solid transparent;
  border-radius:10px;
  color:#465e6e;
  font-size:.9rem;
  font-weight:500;
  text-align:left;
}
.navigation-drawer>button::before{
  content:counter(ws-nav,decimal-leading-zero);
  color:#8aa0ae;
  font-size:.67rem;
  font-variant-numeric:tabular-nums;
  letter-spacing:0;
}
.navigation-drawer>button:hover,
.navigation-drawer>button:focus-visible{
  transform:none;
  border-color:#c8dce8;
  background:#eef6fa;
  color:var(--ws-primary-strong);
}
.navigation-drawer>button[aria-selected="true"]{
  border-color:#bdd8e7;
  background:linear-gradient(135deg,#eaf5fa,#dceef7);
  color:var(--ws-primary-strong);
  box-shadow:none;
  font-weight:650;
}
.navigation-drawer>button[aria-selected="true"]::before{color:var(--ws-primary)}
.semicircle-handle{
  width:38px;
  min-width:38px;
  height:62px;
  min-height:62px;
  top:50%;
  bottom:auto;
  transform:translateY(-50%);
  border:1px solid #9bc4d8;
  border-right:0;
  border-radius:15px 0 0 15px;
  background:linear-gradient(160deg,#f4fbfe,#cce8f3);
  color:var(--ws-primary-strong);
  box-shadow:0 8px 22px rgba(38,93,127,.16);
}
.drawer-open .semicircle-handle{
  right:calc(12rem - 38px);
  border-right:1px solid #9bc4d8;
  border-left:0;
  border-radius:0 15px 15px 0;
}
.card{
  border:1px solid var(--ws-border);
  border-radius:17px;
  background:rgba(255,255,255,.97);
  box-shadow:var(--ws-shadow);;
  margin-bottom:1rem;
  padding:1.2rem;
}

.card>h2,
.draft-page-heading h2,
.task-heading h2{
  margin:0;
  padding-left:.7rem;
  border-left:4px solid #4b91ba;
  color:#1c3e55;
  font-size:1.22rem;
  font-weight:700;
  letter-spacing:.025em;
  line-height:1.35;
}
.card>h2{
  margin-bottom:.55rem;
}
.activity-light{
  width:.58rem;
  height:.58rem;
  margin-left:.22rem;
  vertical-align:.08rem;
}
.section-description{
  margin:.15rem 0 .9rem;
  padding:.48rem .62rem;
  border-radius:9px;
  background:#f2f7fa;
  color:var(--ws-muted);
  font-size:.82rem;
}
.draft-page-heading small,
.compose-article-heading span,
.dialog-hint,
.empty-hint,
.task-date,
.save-state{
  color:var(--ws-muted);
}
label{
  color:#405665;
  font-size:.88rem;
  font-weight:500;
}
input,
textarea,
select,
.patrol-time-picker summary,
.preserved-html-editor{
  border:1px solid var(--ws-border-strong);
  border-radius:10px;
  background:#fbfdfe;
  color:var(--ws-ink);
}
/* Keep decorations on their owning components, not every native field. */
.patrol-time-picker summary,
.preserved-html-editor{
  box-shadow:inset 0 1px 2px rgba(43,67,83,.03);
}
input::placeholder,
textarea::placeholder{color:#98a7b2}
.patrol-time-picker summary:hover{
  border-color:#a9c3d3;
}
.preserved-html-editor:focus{
  outline:0;
  border-color:#5b9fc5;
  box-shadow:0 0 0 3px rgba(47,126,172,.13);
}
input[type="checkbox"],
input[type="radio"]{
  accent-color:var(--ws-primary);
}
button{
  border:1px solid var(--ws-border-strong);
  background:#eef3f6;
  color:#334f61;
  font-weight:500;
  box-shadow:none;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease;
}
button:hover,
button:focus-visible{
  border-color:#9cbacb;
  background:#e5eef3;
  color:#1f4f6d;
  box-shadow:0 4px 12px rgba(41,77,101,.1);
}
button:active{transform:translateY(1px)}
button:disabled{
  cursor:not-allowed;
  opacity:.55;
  box-shadow:none;
}
button[data-action="v12-submit-preview"],
button[data-action="common-template-submit-preview"],
button[data-action="refresh-wechat-drafts"],
button[data-action="add-recurring-plan"],
.create-task-row button,
.automation-start{
  border-color:var(--ws-primary)!important;
  background:var(--ws-primary)!important;
  color:#fff!important;
}
.submit,
.publish,
button[data-action="submit-manual-preview"],
button[data-action="submit-manuscript"],
button[data-action="common-template-submit-manuscript"],
button[data-action="submit-merged-manuscripts"]{
  border-color:var(--ws-danger)!important;
  background:var(--ws-danger)!important;
  color:#fff!important;
}
.automation-stop,
.patrol-task-actions .stop{
  border-color:var(--ws-danger)!important;
  background:var(--ws-danger)!important;
  color:#fff!important;
}
.patrol-task-actions .start{
  border-color:var(--ws-success)!important;
  background:var(--ws-success)!important;
  color:#fff!important;
}
.edit-action,
.patrol-task-actions .edit{
  border-color:#aed7cf!important;
  background:var(--ws-accent-soft)!important;
  color:#1d6863!important;
}
.preview-action{
  border-color:#ead28c!important;
  background:var(--ws-warning-soft)!important;
  color:#81580e!important;
}
.clock-action,
.schedule.icon-action{
  border-color:#b9d4e6!important;
  background:var(--ws-primary-soft)!important;
  color:var(--ws-primary-strong)!important;
}
.dialog-close-x,
.preview-close-x,
.failed-task-close,
.patrol-task-delete,
.recurring-plan-delete,
.common-template-delete{
  border-color:transparent!important;
  background:transparent!important;
  color:#b43c43!important;
  box-shadow:none!important;
}

/* Template actions stay attached to their own card: delete is easy to find in
   the corner while edit remains the right-aligned primary operation. */
.common-template-row{
  min-height:68px;
  padding-right:3.1rem!important;
  box-sizing:border-box;
  overflow:visible;
}
.common-template-row .common-template-delete{
  position:absolute;
  top:8px;
  right:8px;
  display:grid!important;
  place-items:center!important;
  width:16px;
  min-width:16px;
  height:16px;
  min-height:16px;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box;
  z-index:22;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  opacity:.55!important;
  color:#687680!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:1!important;
  text-indent:0!important;
  cursor:pointer;
  box-shadow:none!important;
}
.common-template-row .common-template-delete svg{
  display:block!important;
  width:11px!important;
  height:11px!important;
  margin:0!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:2!important;
  stroke-linecap:round!important;
  transform:none!important;
}
.common-template-row .edit-action{
  position:absolute;
  right:.35rem;
  top:50%;
  transform:translateY(-50%);
  width:30px!important;
  min-width:30px!important;
  height:30px!important;
  min-height:30px!important;
  padding:0!important;
}
.common-template-row .edit-action svg{
  width:15px!important;
  height:15px!important;
}

/* Imported template HTML may carry fixed desktop widths.  Constrain it inside
   the editor dialog so mobile users cannot pan into an empty white area. */
#common-template-editor-dialog,
#common-template-editor-content{
  overflow-x:hidden;
}
#common-template-editor-content,
#common-template-editor-content *{
  max-width:100%!important;
  box-sizing:border-box!important;
}
#common-template-editor-content table,
#common-template-editor-content img,
#common-template-editor-content video,
#common-template-editor-content iframe{
  width:auto!important;
  max-width:100%!important;
}
#common-template-editor-content table{width:100%!important}
#common-template-editor-content img{height:auto!important}
.info-card,
.automation-editor,
.cover-template-zone,
.cover-text-style-group{
  border:1px solid var(--ws-border);
  border-radius:13px;
  background:var(--ws-surface-soft);
}
.info-card{padding:.78rem}
.info-card legend{
  padding:0 .42rem;
  color:#31556b;
  font-size:.82rem;
  font-weight:650;
}
.v12-cover-frame,
.cover-crop,
.module-crop-frame,
.cover-template-preview{
  border-color:var(--ws-border);
  border-radius:13px;
  background-color:#edf3f6;
}
.v12-cover-frame{
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.72);
}
.cover-plus{
  border:1px dashed #8eb2c7;
  border-radius:14px;
  background:rgba(255,255,255,.86);
  color:var(--ws-primary);
}
.link-card,
.saved-manuscript-preview,
.manuscript-row,
.wechat-draft-card,
.patrol-task-card,
.recurring-plan-card,
.review-item.review-card,
.workflow-card,
.compose-module,
.v12-module-card,
.merge-manuscript-row{
  border:1px solid var(--ws-border);
  border-radius:13px;
  background:var(--ws-surface);
  box-shadow:var(--ws-shadow-soft);
}
.link-card,
.saved-manuscript-preview,
.patrol-task-card,
.recurring-plan-card,
.review-item.review-card,
.workflow-card{
  padding:.72rem;
}
.manuscript-row,
.wechat-draft-card,
.merge-manuscript-row{
  margin:.5rem 0;
  padding:.68rem;
}
.manuscript-row,
.wechat-draft-card{border-bottom:1px solid var(--ws-border)}
.article-cover,
.manuscript-cover,
.review-cover,
.patrol-task-cover,
.recurring-plan-cover{
  overflow:hidden;
  border-radius:9px;
  background:#e9f0f4;
}
.manuscript-toolbar,
.review-toolbar,
.draft-toolbar{
  padding:.42rem;
  border:1px solid var(--ws-border);
  border-radius:11px;
  background:#f5f8fa;
}
.manuscript-toolbar button,
.review-toolbar button,
.draft-toolbar button{
  min-height:38px;
  border-color:transparent;
  background:transparent;
}
.manuscript-toolbar button:hover,
.review-toolbar button:hover,
.draft-toolbar button:hover{
  border-color:var(--ws-border);
  background:#fff;
}
.recipient-chip,
[data-chip]{
  border:1px solid #bfd8e7;
  background:#eaf4fa;
  color:#255f82;
}
.task-heading{
  align-items:center;
  margin-bottom:.7rem;
}
.task-heading h2{margin:0}
.task-heading-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}
#connection-status{
  display:inline-flex;
  align-items:center;
  gap:.28rem;
  padding:.22rem .5rem;
  border-radius:999px;
  background:var(--ws-success-soft);
  color:var(--ws-success);
  font-size:.72rem;
  white-space:nowrap;
}
#connection-status::before{
  content:"";
  width:.42rem;
  height:.42rem;
  border-radius:50%;
  background:#45a46e;
  box-shadow:0 0 0 3px rgba(69,164,110,.12);
}
#clear-workflows{
  min-height:28px;
  padding:.22rem .55rem;
  border:1px solid rgba(69,164,110,.35);
  border-radius:999px;
  background:var(--ws-success-soft);
  color:var(--ws-success);
  font-size:.72rem;
  white-space:nowrap;
}
#clear-workflows:hover,#clear-workflows:focus-visible{background:#d8f1e2}
#clear-workflows:disabled{opacity:.55;cursor:wait}
dialog{
  padding:1.15rem;
  border:1px solid rgba(197,213,223,.9);
  border-radius:18px;
  background:#fff;
  color:var(--ws-ink);
  box-shadow:0 24px 70px rgba(20,45,62,.24);
}
dialog::backdrop{
  background:rgba(28,48,61,.35);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
dialog h3{
  margin:.1rem 2rem .75rem 0;
  color:#1f465f;
  font-size:1.12rem;
}
.dialog-actions{
  margin-top:.8rem;
  padding-top:.7rem;
  border-top:1px solid var(--ws-border);
}
footer{
  bottom:calc(.55rem + env(safe-area-inset-bottom));
  padding:.3rem .72rem;
  border:1px solid rgba(211,224,232,.86);
  background:rgba(255,255,255,.88);
  color:#7a8994;
  box-shadow:0 5px 16px rgba(40,67,85,.08);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

/* Login */
.login-page{
  display:grid;
  min-height:100dvh;
  place-items:center;
  padding:max(1rem,env(safe-area-inset-top)) 1rem max(1rem,env(safe-area-inset-bottom));
}
.login{
  display:grid;
  width:100%;
  max-width:27rem;
  min-height:auto;
  padding:0;
  place-items:center;
}
.login .card{
  width:100%;
  margin:0;
  padding:1.65rem;
  border-radius:20px;
  box-shadow:0 24px 64px rgba(37,68,88,.14);
}
.login-brand{
  margin-bottom:1.35rem;
  padding-bottom:1rem;
  border-bottom:1px solid var(--ws-border);
}
.login-brand .brand-mark{
  flex-basis:48px;
  width:48px;
  height:48px;
  border-radius:15px;
}
.login-brand>div{display:grid;line-height:1.35}
.login-brand strong{font-size:1.2rem}
.login h1{
  margin:0;
  color:#203f55;
  font-size:1.35rem;
}
.login-intro{
  margin:.28rem 0 1rem;
  color:var(--ws-muted);
  font-size:.84rem;
}
.login label{margin:.65rem 0 .25rem}
.login input{margin:0;min-height:46px}
.login #login,
.login #unit-login,
.login #platform-login{
  display:block;
  width:min(100%,20rem);
  min-height:54px;
  margin:1.6rem auto .2rem;
  border:0!important;
  border-radius:12px;
  background:#173f67!important;
  color:#fff!important;
  font-size:1rem;
  font-weight:700;
  letter-spacing:.08em;
  box-shadow:0 8px 18px rgba(23,63,103,.2);
}
.login #login-error{
  min-height:1.25rem;
  margin:.55rem 0 0;
  color:var(--ws-danger);
  font-size:.8rem;
  text-align:center;
}

/* The login page is a self-contained entry screen.  It must not inherit the
   dashboard's roomy main layout on a narrow phone. */
.login-page{
  min-height:100svh;
  min-height:100dvh;
  box-sizing:border-box;
}
.login{
  box-sizing:border-box;
  margin:auto;
}
.login .card{
  box-sizing:border-box;
}
@media(max-width:720px){
  .login-page{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:max(.85rem,env(safe-area-inset-top)) .85rem max(.85rem,env(safe-area-inset-bottom));
  }
  .login{
    width:min(27rem,100%);
    max-width:100%;
  }
  .login .card{
    width:100%;
    padding:1.15rem;
  }
  .login-brand{align-items:flex-start}
  .login-brand>div{min-width:0}
  .login-brand strong,
  .login-brand small{
    white-space:normal;
    overflow-wrap:anywhere;
  }
  .login-page.login-keyboard-open{
    align-items:flex-start;
    overflow-y:auto;
    padding-bottom:calc(max(.85rem, env(safe-area-inset-bottom)) + var(--login-keyboard-inset, 0px) + 1rem);
  }
  .login-page.login-keyboard-open .login{
    margin:.6rem auto 1rem;
  }
  .login-page.login-keyboard-open .login .card{
    padding-bottom:1.25rem;
  }
}

@media(max-width:720px){
  body{
    background:linear-gradient(180deg,#f7fafc,var(--ws-bg));
  }
  main{
    padding:
      max(.55rem,env(safe-area-inset-top))
      .55rem
      calc(5.2rem + env(safe-area-inset-bottom));
  }
  .topbar{
    top:max(.35rem,env(safe-area-inset-top));
    min-height:60px;
    margin-bottom:.7rem;
    padding:.45rem .5rem;
    border-radius:14px;
  }
  .topbar .brand-mark{
    flex-basis:36px;
    width:36px;
    height:36px;
    border-radius:11px;
    font-size:1.12rem;
  }
  .topbar .brand-copy strong{font-size:.94rem}
  .topbar .brand-copy small{font-size:.63rem}
  .header-icons{gap:.32rem}
  .header-icons .header-icon-button{
    width:40px!important;
    min-width:40px!important;
    height:40px!important;
    min-height:40px!important;
    border-radius:11px;
  }
  .card{
    padding:.82rem;
    border-radius:14px;
    box-shadow:0 6px 20px rgba(40,69,90,.065);
  }
  .card>h2,
  .draft-page-heading h2,
  .task-heading h2{
    padding-left:.55rem;
    border-left-width:3px;
    font-size:1.08rem;
  }
  .section-description{
    margin-top:.1rem;
    padding:.42rem .52rem;
    font-size:.76rem;
  }
  input:not([type="checkbox"]):not([type="radio"]),
  textarea,
  select,
  [contenteditable="true"]{
    font-size:16px!important;
  }
  button{
    min-height:42px;
    -webkit-tap-highlight-color:transparent;
  }
  .navigation-drawer{
    width:min(13.5rem,calc(100vw - 42px));
    max-width:calc(100vw - 42px);
    padding-top:calc(5.8rem + env(safe-area-inset-top));
  }
  .drawer-open .semicircle-handle{
    right:calc(min(13.5rem,calc(100vw - 42px)) - 38px);
  }
  .nav-brand{
    top:calc(.8rem + env(safe-area-inset-top));
  }
  .semicircle-handle{
    top:56%;
    width:36px;
    min-width:36px;
    height:58px;
    min-height:58px;
  }
  .footer-fields,
  .patrol-footer-fields{
    grid-template-columns:1fr 1fr;
    gap:.35rem;
  }
  .footer-fields label,
  .patrol-footer-fields label{
    grid-template-columns:2.4rem minmax(0,1fr);
  }
  .footer-fields input,
  .patrol-footer-fields input{
    padding:.52rem;
  }
  .link-card,
  .saved-manuscript-preview,
  .manuscript-row,
  .wechat-draft-card,
  .review-item.review-card,
  .workflow-card,
  .merge-manuscript-row{
    border-radius:11px;
    box-shadow:none;
  }
  .manuscript-toolbar,
  .review-toolbar,
  .draft-toolbar{
    gap:.25rem;
    padding:.3rem;
    overflow-x:auto;
    flex-wrap:nowrap;
    scrollbar-width:none;
  }
  .manuscript-toolbar::-webkit-scrollbar,
  .review-toolbar::-webkit-scrollbar,
  .draft-toolbar::-webkit-scrollbar{display:none}
  .manuscript-toolbar button,
  .review-toolbar button,
  .draft-toolbar button{
    flex:0 0 auto;
    min-height:38px;
    padding:.28rem .66rem;
  }
  .dialog-actions button{
    flex:1 1 8rem;
  }
  dialog{
    width:calc(100vw - 1rem);
    max-height:calc(100dvh - 1rem);
    padding:.9rem;
    border-radius:15px;
  }
  .login-page{padding:.75rem}
  .login{padding:0}
  .login .card{
    padding:1.2rem;
    border-radius:18px;
  }
}

/* Image areas should hand vertical gestures back to the page.  Horizontal
   slideshow swipes remain available, while crop canvases stay gesture-owned. */
.gallery-editor-slot,
.module-gallery-slot{touch-action:pan-y}
.module-slideshow-track,
.gallery-editor-slots[data-layout="slideshow"],
[data-role="custom-slideshow"]{touch-action:pan-x pan-y!important}
.module-slideshow-track .module-gallery-slot,
.gallery-editor-slots[data-layout="slideshow"] .gallery-editor-slot{touch-action:pan-x pan-y}

/* On the main editor, ordinary inserted images never own vertical swipes. */
#v12-modules .module-images,
#v12-modules .module-images img,
#v12-modules .module-gallery-preview:not(.module-slideshow-track),
#v12-modules .module-gallery-preview:not(.module-slideshow-track) .module-gallery-slot{
  touch-action:pan-y!important;
}

.recurring-choice-row .recurring-create-task{
  min-height:48px!important;
  padding:.55rem 1.45rem!important;
  margin:.7rem auto 1.15rem!important;
  font-size:1rem;
}
#recurring-plans{
  margin-top:.5rem;
}

/* Keep each workflow's article state visible before its action tray. */
.workflow-card>.workflow-article-status{
  grid-column:1/-1!important;
  width:100%;
  margin-top:.28rem;
  padding-top:.38rem;
}
.workflow-article-status-row{
  min-width:0;
  align-items:center;
}
.workflow-article-status-row span{
  flex:1 1 auto;
  min-width:0;
}
.workflow-article-status-row small{
  flex:0 0 auto;
  white-space:nowrap;
}
@media(max-width:720px){
  .workflow-article-status-row{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:.16rem;
  }
  .workflow-article-status-row small{
    justify-self:start;
  }
}

/* Compact workflow metadata: title, creation time and article divider stay
   visually connected instead of creating empty-looking rows. */
.workflow-card>p{margin:0!important}
.workflow-card>.task-date{margin-top:0!important}
.workflow-card>.workflow-article-status{margin-top:0!important;padding-top:.24rem}
.workflow-card{row-gap:.08rem}

@media(max-width:360px){
  .topbar .brand-copy small{display:none}
  .topbar-brand{gap:.45rem}
  .topbar .brand-copy strong{font-size:.9rem}
  .header-icons .header-icon-button{
    width:38px!important;
    min-width:38px!important;
    height:38px!important;
    min-height:38px!important;
  }
  .footer-fields,
  .patrol-footer-fields{
    grid-template-columns:1fr;
  }
  .manual-footer-fields.footer-fields{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* Title-style colors reuse the established cover color-card language. */
#v12-title-dialog{
  width:min(34rem,calc(100vw - 1rem));
}
#v12-title-dialog>label{
  display:grid;
  grid-template-columns:4.5rem minmax(0,1fr);
  align-items:center;
  gap:.55rem;
}
#v12-title-dialog>label input{
  width:100%;
  min-width:0;
}
.module-title-color-settings{
  display:grid;
  gap:.62rem;
  margin:.8rem 0 .25rem;
  padding:.75rem;
  border:1px solid var(--ws-border);
  border-radius:12px;
  background:var(--ws-surface-soft);
}
.module-title-color-settings>label{
  display:grid;
  grid-template-columns:4.5rem minmax(0,1fr);
  align-items:center;
  gap:.55rem;
}
.module-title-color-palette{
  min-width:0;
  flex-wrap:wrap;
  gap:.38rem;
  white-space:normal;
}
.module-title-color-palette button{
  width:25px;
  min-width:25px;
  height:25px;
  min-height:25px;
  border-color:#c4d1d9;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),0 1px 2px rgba(33,67,87,.08);
}
.module-title-color-palette button.is-selected{
  outline-color:var(--ws-primary);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),0 0 0 3px rgba(31,99,149,.12);
}

/* Every formal wide-cover display follows the WeChat 2.35:1 standard. */
#v12-cover-frame,
#patrol-cover-frame,
#common-template-editor-cover-frame,
.crop-wide,
.recurring-plan-cover,
.common-template-row .article-cover,
.cover-template-library-grid>div:first-child .cover-template-card img{
  aspect-ratio:2.35/1!important;
}
.common-template-row .article-cover,
.recurring-plan-cover,
.cover-template-library-grid>div:first-child .cover-template-card img{
  object-fit:cover;
}

/* A template screenshot stores its 2.35:1 and 1:1 crops side by side.  The
   compact template card is a 2.35:1 preview, so it must show the left (wide)
   crop instead of center-cropping the combined 3.35:1 image. */
.common-template-row .article-cover{
  object-position:left center;
}

/* Preview cards are 1:1 share views: retain the complete square image rather
   than cropping it again. Only the explicit wide-cover components above crop. */
.preview-square-cover,
.manuscript-cover>img,
.review-cover>img,
.manual-link-row .article-cover,
.manual-preview-item .manuscript-cover>img{
  object-fit:contain!important;
  background:#eef2f5;
}

/* A saved/submit preview is an acknowledgement card, not the full cover
   editor. Keep its square thumbnail deliberately quieter than list covers. */
.saved-manuscript-preview{
  grid-template-columns:44px minmax(0,1fr) auto;
}
.saved-manuscript-preview .manuscript-cover{
  width:44px;
  height:44px;
}
@media(max-width:720px){
  .saved-manuscript-preview{
    grid-template-columns:39px minmax(0,1fr) auto;
  }
  .saved-manuscript-preview .manuscript-cover{
    width:39px;
    height:39px;
  }
}

/* Larger, simpler workflow symbols remain clear on a phone without visual noise. */
#workflow-list .workflow-actions .icon-action{
  width:43px!important;
  min-width:43px!important;
  height:43px!important;
  min-height:43px!important;
  border-radius:12px!important;
}
#workflow-list .workflow-actions .icon-action svg{
  width:23px!important;
  height:23px!important;
  stroke-width:1.7!important;
}

/* Formal cover controls: compact floating tray with equally weighted symbols. */
#v12-cover-frame>.cover-frame-tools,
#patrol-cover-frame>.cover-frame-tools,
#common-template-editor-cover-frame>.cover-frame-tools{
  top:.45rem;
  right:.45rem;
  gap:.25rem;
  padding:.24rem;
  border:1px solid rgba(255,255,255,.72);
  border-radius:12px;
  background:rgba(25,68,93,.3);
  box-shadow:0 5px 14px rgba(26,57,76,.16);
}
#v12-cover-frame>.cover-frame-tools button,
#patrol-cover-frame>.cover-frame-tools button,
#common-template-editor-cover-frame>.cover-frame-tools button{
  width:34px!important;
  min-width:34px!important;
  height:34px!important;
  min-height:34px!important;
  padding:0!important;
  border-radius:9px!important;
}
#v12-cover-frame>.cover-frame-tools button svg,
#patrol-cover-frame>.cover-frame-tools button svg,
#common-template-editor-cover-frame>.cover-frame-tools button svg{
  width:20px!important;
  height:20px!important;
  stroke-width:1.6!important;
}

@media(max-width:720px){
  #v12-title-dialog>label,
  .module-title-color-settings>label{
    grid-template-columns:4rem minmax(0,1fr);
  }
  .module-title-color-settings{
    padding:.68rem;
  }
  .module-title-color-palette button{
    width:27px;
    min-width:27px;
    height:27px;
    min-height:27px;
  }
  #workflow-list .workflow-actions .icon-action{
    width:46px!important;
    min-width:46px!important;
    height:46px!important;
    min-height:46px!important;
  }
  #workflow-list .workflow-actions .icon-action svg{
    width:24px!important;
    height:24px!important;
  }
  #v12-cover-frame>.cover-frame-tools,
  #patrol-cover-frame>.cover-frame-tools,
  #common-template-editor-cover-frame>.cover-frame-tools{
    top:.35rem;
    right:.35rem;
  }
  #v12-cover-frame>.cover-frame-tools button,
  #patrol-cover-frame>.cover-frame-tools button,
  #common-template-editor-cover-frame>.cover-frame-tools button{
    width:32px!important;
    min-width:32px!important;
    height:32px!important;
    min-height:32px!important;
  }
  #v12-cover-frame>.cover-frame-tools button svg,
  #patrol-cover-frame>.cover-frame-tools button svg,
  #common-template-editor-cover-frame>.cover-frame-tools button svg{
    width:19px!important;
    height:19px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
  }
}

/* 微枢编辑器 · action, icon and image-workflow refinement */
button{
  position:relative;
  border-radius:10px;
  letter-spacing:.01em;
}
button:focus-visible{
  outline:3px solid rgba(55,137,184,.2);
  outline-offset:2px;
}
button svg{
  fill:none;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}
.compose-panel{
  position:relative;
}
.compose-heading{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.compose-heading h2{margin:0}
.compose-description-row{
  display:flex;
  align-items:center;
  gap:.5rem;
  margin:.48rem 0 .9rem;
}
.compose-description-row .section-description{
  flex:1 1 auto;
  min-width:0;
  margin:0;
}
.compose-clear-cache{
  position:static;
  flex:0 0 36px;
  display:grid;
  place-items:center;
  width:36px;
  min-width:36px;
  height:36px;
  min-height:36px;
  padding:0;
  border:1px solid #bfd2de;
  border-radius:50%;
  background:#fff;
  color:#547184;
  box-shadow:0 3px 9px rgba(37,76,99,.08);
}
.compose-clear-cache:hover,
.compose-clear-cache:focus-visible{
  border-color:#9abed1;
  background:#eaf4f9;
  color:var(--ws-primary);
}
.compose-clear-cache svg{
  width:20px;
  height:20px;
  stroke-width:1.65;
}
.icon-action,
.icon-only-action,
.cover-eye,
.cover-frame-tools button,
.dialog-close-x,
.preview-close-x,
.failed-task-close{
  display:grid;
  place-items:center;
}
.icon-action svg,
.icon-only-action svg,
.cover-eye svg,
.cover-frame-tools button svg{
  width:19px;
  height:19px;
  stroke-width:1.7;
}

/* Main editor action dock */
.editor-preview-actions{
  grid-template-columns:48px minmax(0,1fr) 48px!important;
  align-items:center;
  gap:.65rem;
  margin:1rem 0 .7rem;
  padding:.45rem;
  border:1px solid var(--ws-border);
  border-radius:14px;
  background:linear-gradient(180deg,#fbfdfe,#f2f7fa);
  box-shadow:0 5px 16px rgba(39,74,96,.07);
}
.editor-preview-actions .v12-undo,
.editor-preview-actions .v12-redo{
  display:grid!important;
  place-items:center!important;
  width:46px!important;
  min-width:46px!important;
  height:46px!important;
  min-height:46px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid #c8d8e2!important;
  border-radius:12px!important;
  background:#fff!important;
  color:#315f7b!important;
  box-shadow:0 3px 9px rgba(38,74,96,.08)!important;
}
.editor-preview-actions .v12-undo:hover,
.editor-preview-actions .v12-redo:hover,
.editor-preview-actions .v12-undo:focus-visible,
.editor-preview-actions .v12-redo:focus-visible{
  border-color:#82b2cd!important;
  background:#eaf4f9!important;
  color:var(--ws-primary)!important;
}
.editor-preview-actions .v12-undo:disabled,
.editor-preview-actions .v12-redo:disabled{
  border-color:#dde5ea!important;
  background:#f4f7f9!important;
  color:#a4b0b8!important;
  opacity:1!important;
  box-shadow:none!important;
}
.editor-preview-actions .v12-undo svg,
.editor-preview-actions .v12-redo svg{
  width:25px!important;
  height:25px!important;
  stroke-width:1.45!important;
}
.editor-preview-actions>button[data-action="v12-submit-preview"]{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  width:100%;
  min-height:48px;
  border:1px solid var(--ws-primary)!important;
  border-radius:12px;
  background:linear-gradient(135deg,#2875a8,#1b5b88)!important;
  color:#fff!important;
  font-size:.94rem;
  font-weight:400!important;
  box-shadow:0 7px 16px rgba(31,99,149,.2);
}
.editor-preview-actions>button[data-action="v12-submit-preview"]::before{
  content:"◉";
  font-size:.9rem;
  line-height:1;
  opacity:.9;
}

/* 空白新建页只保留“立刻生成”，不使用提交阶段的大操作框。 */
.editor-preview-actions.is-empty{
  display:flex!important;
  justify-content:center;
  margin:.6rem 0 0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.editor-preview-actions.is-empty .v12-primary-action{
  width:auto!important;
  min-width:9rem!important;
  min-height:42px!important;
  padding:.55rem 1.35rem!important;
  border:1px solid #2875a8!important;
  border-radius:10px!important;
  background:#2875a8!important;
  color:#fff!important;
  box-shadow:none!important;
}
.preview-recipients .recipient-admin{pointer-events:none}

/* 样式选择器颜色面板：确保系统色、收藏色真实显示为可点击色卡。 */
.v12-style-color-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(34px,1fr));
  gap:.45rem;
  min-height:34px;
  margin:.45rem 0 .7rem;
}
.v12-style-color-choice{
  display:block!important;
  width:34px!important;
  min-width:34px!important;
  height:34px!important;
  min-height:34px!important;
  padding:0!important;
  border:2px solid #fff!important;
  border-radius:8px!important;
  background:var(--swatch,#d9dee5)!important;
  box-shadow:0 0 0 1px #cbd4dc,0 2px 5px rgba(30,55,72,.12)!important;
}
.v12-style-color-choice:hover,
.v12-style-color-choice:focus-visible{
  outline:2px solid #2875a8!important;
  outline-offset:1px;
  transform:translateY(-1px);
}

/* Save and submit are visually distinct but keep normal-weight text. */
.manual-actions,
.preview-card-actions{
  gap:.65rem!important;
  margin-top:.75rem;
}
.manual-actions>button,
.preview-card-actions>button{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  min-height:48px;
  border-radius:12px;
  font-size:.92rem;
  font-weight:400!important;
}
.manual-preview-submit-actions{
  display:flex!important;
  grid-template-columns:none!important;
  justify-content:center;
}
.manual-preview-submit-actions>button[data-action="preview-manual"]{
  width:min(100%,16rem)!important;
  min-height:48px!important;
  margin:.8rem auto!important;
  padding:.55rem 1.4rem!important;
  border-color:var(--ws-primary)!important;
  border-radius:12px!important;
  background:linear-gradient(135deg,#287db2,#176493)!important;
  color:#fff!important;
  font-size:1rem!important;
  font-weight:400!important;
  box-shadow:0 6px 15px rgba(31,99,149,.20)!important;
}
@media(max-width:720px){
  /* 创建转发：输入链接时按钮始终处于键盘正上方，避免被软键盘遮挡。 */
  body.manual-link-input-active section[data-panel="manual"] .manual-preview-submit-actions{
    position:fixed!important;
    z-index:60;
    left:.7rem;
    right:.7rem;
    bottom:calc(var(--manual-keyboard-inset,0px) + env(safe-area-inset-bottom) + .55rem);
    margin:0!important;
    padding:.42rem;
    border:1px solid rgba(141,184,209,.7);
    border-radius:.8rem;
    background:rgba(255,255,255,.96);
    box-shadow:0 5px 18px rgba(37,71,93,.18);
  }
  body.manual-link-input-active section[data-panel="manual"] .manual-preview-submit-actions>button[data-action="preview-manual"]{width:100%;max-width:none}
}
button[data-action="save-manual-preview"],
button[data-action="save-manuscript"],
button[data-action="common-template-save-manuscript"]{
  border-color:#8db8d1!important;
  background:#edf6fb!important;
  color:#205e83!important;
  box-shadow:0 5px 13px rgba(37,104,144,.1);
}
button[data-action="submit-manual-preview"],
button[data-action="submit-manuscript"],
button[data-action="common-template-submit-manuscript"],
button[data-action="submit-merged-manuscripts"]{
  border-color:#b9343c!important;
  background:linear-gradient(135deg,#cb4a51,#b8323a)!important;
  color:#fff!important;
  box-shadow:0 6px 15px rgba(185,50,58,.18);
  font-weight:400!important;
}

/* Toolbars and supporting operations */
.manuscript-toolbar,
.review-toolbar,
.draft-toolbar{
  display:flex;
  align-items:center;
  gap:.25rem;
  width:max-content;
  max-width:100%;
  padding:.28rem;
  border-radius:12px;
}
.manuscript-toolbar button,
.review-toolbar button,
.draft-toolbar button{
  min-width:4rem;
  padding:.4rem .72rem;
  border-radius:8px;
  color:#486170;
  font-weight:400;
}
.manuscript-toolbar button[data-action*="delete"],
.review-toolbar button[data-action*="delete"],
.draft-toolbar button[data-action*="delete"]{
  color:#a43a41;
}
.create-task-row button,
.recurring-create-task{
  min-height:44px;
  padding:.45rem 1.1rem;
  border-radius:11px;
  touch-action:manipulation;
  -webkit-tap-highlight-color:rgba(22,132,71,.18);
  font-weight:400!important;
  box-shadow:0 6px 14px rgba(31,99,149,.16);
}

/* Editor content cards */
.v12-body-editor{
  padding:.65rem;
  border:1px solid var(--ws-border);
  border-radius:13px;
  background:#f8fbfd;
}
.v12-body-editor textarea{
  border:0;
  background:#fff;
  box-shadow:inset 0 0 0 1px var(--ws-border);
}
.v12-body-editor-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:.45rem;
}
.v12-body-editor-actions button{
  min-width:5.6rem;
  border-color:#9fc1d5;
  background:#eaf4f9;
  color:#245f82;
}
.v12-module-card{
  overflow:hidden;
  padding:.72rem;
  border-radius:14px;
  box-shadow:0 5px 16px rgba(40,70,88,.06);
}
.v12-module-card .module-head{
  min-height:38px;
  margin:-.15rem 0 .6rem;
  padding-bottom:.5rem;
  border-bottom:1px solid #e5edf2;
}
.v12-module-card .module-head strong{
  min-width:0;
  color:#365466;
  font-size:.84rem;
  font-weight:600;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.v12-module-card .module-head button[data-action="v12-delete-module"]{
  width:32px;
  min-width:32px;
  height:32px;
  min-height:32px;
  padding:0;
  border-color:#f0cdd0;
  border-radius:9px;
  background:#fdf1f2;
  color:#ad4047;
  font-size:1.15rem;
}
.v12-module-card .module-head button[data-action="v12-move-module-up"],
.v12-module-card .module-head button[data-action="v12-move-module-down"]{
  width:30px;
  min-width:30px;
  height:30px;
  min-height:30px;
  padding:0;
  border-color:#c9dce7;
  border-radius:8px;
  background:#f3f9fc;
  color:#376982;
  font-size:.95rem;
}
.v12-module-card .module-head button:disabled{
  opacity:.35;
  cursor:not-allowed;
}
.between-module-actions{
  position:relative;
  gap:.35rem;
  margin:.35rem 0;
}
.between-module-actions::before,
.between-module-actions::after{
  content:"";
  flex:1;
  max-width:4.5rem;
  height:1px;
  background:#dce6ec;
}
.between-module-actions button{
  min-height:34px;
  padding:.24rem .62rem;
  border-style:dashed;
  border-color:#abc5d5;
  border-radius:999px;
  background:#f7fbfd;
  color:#376982;
  font-size:.76rem;
  font-weight:400;
}

/* A smaller, calmer cover uploader on the new-draft page only. */
.compose-panel>#v12-cover-frame{
  width:min(88%,46rem);
  margin:.85rem auto;
  border-style:dashed;
  border-color:#a9c3d3;
}
.compose-panel>#v12-cover-frame .cover-plus{
  width:56px;
  min-width:56px;
  height:56px;
  min-height:56px;
  border-radius:15px;
  font-size:1.85rem;
  box-shadow:0 5px 15px rgba(39,89,119,.09);
}
.cover-frame-tools{
  padding:.18rem;
  border:1px solid rgba(255,255,255,.55);
  border-radius:11px;
  background:rgba(25,57,76,.25);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
}
.cover-frame-tools button{
  border-color:rgba(255,255,255,.45)!important;
  border-radius:8px!important;
  background:rgba(255,255,255,.9)!important;
  color:#244f68!important;
}

/* Keep image controls available without obscuring the picture itself. */
.cover-frame-tools,
.gallery-slot-tools{
  gap:.16rem!important;
  padding:.12rem!important;
  border-color:rgba(255,255,255,.36)!important;
  background:rgba(25,57,76,.14)!important;
  box-shadow:0 2px 8px rgba(26,57,76,.08)!important;
}
.cover-frame-tools button,
.gallery-slot-tools button{
  width:28px!important;
  min-width:28px!important;
  height:28px!important;
  min-height:28px!important;
  border-color:rgba(255,255,255,.3)!important;
  border-radius:7px!important;
  background:rgba(255,255,255,.62)!important;
  color:rgba(36,79,104,.78)!important;
}
.cover-frame-tools button svg,
.gallery-slot-tools button svg{
  width:16px!important;
  height:16px!important;
  stroke-width:1.45!important;
}
.cover-frame-tools button:hover,
.cover-frame-tools button:focus-visible,
.gallery-slot-tools button:hover,
.gallery-slot-tools button:focus-visible{
  background:rgba(255,255,255,.9)!important;
  color:#244f68!important;
}

/* Image template chooser */
#v12-insert-dialog{
  width:min(40rem,calc(100vw - 1.2rem));
}
.template-option-list{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.65rem;
}
.template-option{
  min-width:0;
  min-height:92px;
  padding:.72rem;
  border-color:#d2e0e8;
  border-radius:13px;
  background:#f8fbfd;
  box-shadow:none;
}
.template-option:hover,
.template-option:focus-visible{
  border-color:#83b3cd;
  background:#edf6fb;
  transform:translateY(-1px);
}
.template-copy strong{
  color:#294e64;
  font-weight:600;
}
.template-copy small{
  color:#758793;
  line-height:1.45;
}
.template-diagram{
  overflow:hidden;
  min-height:68px;
  padding:5px;
  border:1px solid #d9e5ec;
  border-radius:9px;
  background:#fff;
}
.template-diagram i{
  background:linear-gradient(145deg,#c8dce8,#9fbfd1);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.42);
}

/* Upload editor: prevent narrow-screen frames from covering each other. */
#v12-gallery-dialog{
  width:min(46rem,calc(100vw - 1.2rem));
  overflow-x:hidden;
}
.gallery-editor-slots{
  width:100%;
  max-width:100%;
  grid-auto-flow:row;
  grid-template-columns:minmax(0,1fr);
  gap:.65rem;
}
.gallery-editor-slots[data-layout^="double"]{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.gallery-editor-slots[data-layout="triple-1"],
.gallery-editor-slots[data-layout="triple-3"]{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.gallery-editor-slots[data-layout="triple-2"]{
  grid-template-columns:1.05fr minmax(0,1fr);
}
.gallery-editor-slots[data-layout="four-1"]{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.gallery-editor-slot{
  isolation:isolate;
  width:100%;
  min-width:0;
  min-height:0;
  border:1px dashed #9ebdce;
  border-radius:13px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.62),rgba(236,245,249,.72)),
    repeating-linear-gradient(45deg,#edf4f7 0,#edf4f7 8px,#f6fafc 8px,#f6fafc 16px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.62);
}
.gallery-editor-slot:hover,
.gallery-editor-slot:focus-within{
  border-color:#70a8c7;
  background:#edf6fa;
}
.gallery-editor-slot img{
  min-width:0;
  min-height:0;
  border-radius:12px;
}
.gallery-slot-plus{
  width:48px;
  min-width:48px;
  height:48px;
  min-height:48px;
  border:1px solid #94b8cc;
  background:#fff;
  color:#2f7399;
  box-shadow:0 5px 14px rgba(36,91,124,.12);
}
.gallery-slot-tools{
  z-index:3;
  max-width:calc(100% - .5rem);
  flex-wrap:wrap;
  justify-content:flex-end;
}
.gallery-slot-tools button{
  flex:0 0 30px;
}
.gallery-count-actions{
  justify-content:center;
  margin-top:.55rem;
}
.gallery-count-actions button{
  flex:0 1 9rem;
  border-style:dashed;
  border-color:#a8c2d1;
  background:#f5fafc;
  color:#3c6b84;
  font-weight:400;
}

/* Polished single/multi-image editor previews; published HTML remains unchanged. */
.module-gallery-preview{
  min-width:0;
  gap:7px;
  padding:.28rem;
  border:1px solid #e1eaf0;
  border-radius:13px;
  background:#f5f9fb;
}
.module-gallery-slot{
  min-width:0;
  border-radius:9px;
  background:#e6eef3;
  box-shadow:0 2px 8px rgba(31,63,83,.08);
}
.module-gallery-slot>img{
  border-radius:9px;
}
.module-gallery-preview[data-layout="single-1"],
.module-gallery-preview[data-layout="single-2"]{
  grid-template-columns:minmax(0,1fr);
}
.module-gallery-preview[data-layout="single-1"] .module-gallery-slot{
  aspect-ratio:auto;
  overflow:visible;
}
.module-gallery-preview[data-layout="single-1"] .module-gallery-slot>img,
.gallery-editor-slots[data-layout="single-1"] .gallery-editor-slot>img{
  height:auto;
  min-height:0;
  object-fit:contain;
}
.module-gallery-preview[data-layout="single-2"] .module-gallery-slot{
  aspect-ratio:1.374/1;
}
.module-gallery-preview[data-layout^="double"]{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.module-gallery-preview[data-layout="triple-1"]{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.module-gallery-preview[data-layout="triple-3"]{
  grid-template-columns:.65fr 1fr .65fr;
}
.module-gallery-preview[data-layout="four-1"]{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.module-slideshow-track{
  gap:10px!important;
  padding:.25rem .25rem .48rem;
  border-color:transparent;
  background:linear-gradient(90deg,#eef5f8,#f8fbfc);
  scroll-padding-inline:.25rem;
  scrollbar-width:none;
}
.module-slideshow-track::-webkit-scrollbar,
.gallery-editor-slots[data-layout="slideshow"]::-webkit-scrollbar{
  display:none;
}
.module-slideshow-track .module-gallery-slot{
  flex-basis:84%;
  border-radius:12px;
  scroll-snap-align:center;
  box-shadow:0 5px 16px rgba(32,68,90,.13);
}
.module-slideshow-track .module-gallery-slot>img{
  border-radius:12px;
}
.module-slideshow-track{border:0!important;padding:0!important;background:none!important;gap:3px!important;padding:.2rem 0 .48rem!important;scroll-padding-inline:0}

.module-slideshow-track .module-gallery-slot{flex-basis:95%!important;border:0!important;border-radius:12px!important;overflow:hidden;scroll-snap-align:start;box-shadow:none!important}
.module-slideshow-track .module-gallery-slot>img{border-radius:12px!important}
.module-slideshow-track [data-loop-clone] .gallery-slot-tools{display:none!important}
#preview-content [data-role="custom-slideshow"]{display:flex!important;gap:3px!important;padding:0!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;scroll-padding-inline:0!important;}
#preview-content [data-role="custom-slideshow"]>img{flex:0 0 95%!important;width:95%!important;max-width:95%!important;aspect-ratio:4/3;object-fit:cover;scroll-snap-align:start;border-radius:12px;box-shadow:none!important}
.slideshow-hint{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  color:#6b8290;
}
.slideshow-hint::before,
.slideshow-hint::after{
  content:"";
  width:1.3rem;
  height:1px;
  background:#c9d9e2;
}

/* Dialog hierarchy and consistent actions */
dialog .dialog-close-x,
dialog .preview-close-x{
  top:.75rem;
  right:.75rem;
  width:36px;
  min-width:36px;
  height:36px;
  min-height:36px;
  border:1px solid #e2e9ed!important;
  border-radius:10px!important;
  background:#f6f8fa!important;
  color:#7b8992!important;
  font-size:1.25rem;
}
.dialog-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:.5rem;
}
.dialog-actions button{
  min-width:6.5rem;
  min-height:42px;
  border-radius:10px;
  font-weight:400;
}
.dialog-actions button[data-action^="v12-confirm"],
.dialog-actions button[data-action$="-save"],
.dialog-actions button[data-action="v12-save-crop"],
.dialog-actions button[data-action="v12-save-cover-template"],
.dialog-actions button[data-action="patrol-cover-save"],
.dialog-actions button[data-action="submit-common-template"],
#boundary-confirm{
  border-color:var(--ws-primary)!important;
  background:var(--ws-primary)!important;
  color:#fff!important;
}
.dialog-actions button[data-action="v12-delete-local-remote-drafts"]{
  border-color:var(--ws-danger)!important;
  background:var(--ws-danger)!important;
  color:#fff!important;
}

/* Card action rows stay readable on both desktop and mobile. */
.workflow-actions,
.review-card-actions,
.manuscript-actions,
.patrol-task-actions{
  align-items:center;
  gap:.42rem;
}
.workflow-actions{
  width:max-content;
  max-width:100%;
  margin-left:auto;
  padding:.34rem;
  border:1px solid #dbe5eb;
  border-radius:14px;
  background:#f7fafc;
}
.workflow-actions .publish-group{
  display:flex;
  align-items:center;
  gap:.42rem;
}
.workflow-actions .icon-action,
.review-card-actions .icon-action,
.manuscript-actions .icon-action{
  width:40px!important;
  min-width:40px!important;
  height:40px!important;
  min-height:40px!important;
  padding:0!important;
  border-radius:11px!important;
}
.workflow-actions .icon-action svg,
.review-card-actions .icon-action svg{
  width:20px!important;
  height:20px!important;
  stroke-width:1.55!important;
}
#workflow-list .workflow-actions .preview-action{
  border-color:#d5cdf1!important;
  background:#f0edfb!important;
  color:#5c4b9a!important;
}
#workflow-list .workflow-actions .edit-action{
  border-color:#bfddd7!important;
  background:#eaf5f2!important;
  color:#236c66!important;
}
#workflow-list .workflow-actions .publish{
  border-color:#e9c2c4!important;
  background:#fbecec!important;
  color:#ad3e43!important;
}
#workflow-list .workflow-actions .schedule{
  border-color:#c4dbea!important;
  background:#eaf3f9!important;
  color:#296b95!important;
}
#workflow-list .workflow-actions .icon-action:hover,
#workflow-list .workflow-actions .icon-action:focus-visible{
  transform:translateY(-1px);
  filter:saturate(1.08);
  box-shadow:0 5px 12px rgba(34,75,99,.12)!important;
}

@media(max-width:720px){
  .compose-panel>h2{
    padding-right:0;
  }
  .compose-description-row{
    gap:.38rem;
    margin-bottom:.72rem;
  }
  .compose-clear-cache{
    flex-basis:32px;
    width:32px;
    min-width:32px;
    height:32px;
    min-height:32px;
  }
  .compose-clear-cache svg{
    width:17px;
    height:17px;
  }
  .editor-preview-actions{
    position:sticky;
    bottom:calc(.45rem + env(safe-area-inset-bottom));
    z-index:12;
    grid-template-columns:44px minmax(0,1fr) 44px!important;
    gap:.45rem;
    margin-left:-.2rem;
    margin-right:-.2rem;
    padding:.38rem;
    background:rgba(248,251,253,.95);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
  }
  .editor-preview-actions .v12-undo,
  .editor-preview-actions .v12-redo{
    width:42px!important;
    min-width:42px!important;
    height:42px!important;
    min-height:42px!important;
  }
  .editor-preview-actions>button[data-action="v12-submit-preview"]{
    min-height:44px;
  }
  .manual-actions,
  .preview-card-actions{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:.45rem!important;
  }
  .manual-actions>button,
  .preview-card-actions>button{
    min-width:0;
    min-height:46px;
    padding:.45rem .55rem;
  }
  .compose-panel>#v12-cover-frame{
    width:92%;
    margin:.7rem auto;
  }
  .compose-panel>#v12-cover-frame .cover-plus{
    width:50px;
    min-width:50px;
    height:50px;
    min-height:50px;
    font-size:1.65rem;
  }
  .template-option-list{
    grid-template-columns:1fr;
    gap:.5rem;
  }
  .template-option{
    min-height:82px;
    grid-template-columns:minmax(0,1fr) minmax(98px,38%);
  }
  .template-diagram{
    min-height:58px;
  }
  #v12-gallery-dialog{
    width:calc(100vw - .7rem);
    padding:.78rem;
  }
  .gallery-editor-slots{
    gap:.5rem;
    margin:.65rem 0;
  }
  .gallery-editor-slots:not([data-layout="slideshow"]):not([data-layout="single-1"]):not([data-layout="single-2"]){
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .gallery-editor-slots[data-layout="single-1"],
  .gallery-editor-slots[data-layout="single-2"]{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .gallery-editor-slots[data-layout="triple-1"] .gallery-editor-slot,
  .gallery-editor-slots[data-layout="triple-2"] .gallery-editor-slot,
  .gallery-editor-slots[data-layout="triple-3"] .gallery-editor-slot,
  .gallery-editor-slots[data-layout="four-1"] .gallery-editor-slot,
  .gallery-editor-slots[data-layout^="double"] .gallery-editor-slot{
    grid-column:auto!important;
    grid-row:auto!important;
    aspect-ratio:4/3!important;
  }
  .gallery-editor-slots[data-layout^="triple"] .gallery-editor-slot:last-of-type{
    grid-column:1/-1!important;
    aspect-ratio:2/1!important;
  }
  .gallery-editor-slots[data-layout="slideshow"]{
    gap:.55rem;
    padding:.12rem .1rem .4rem;
    scroll-padding-inline:.1rem;
  }
  .gallery-editor-slots[data-layout="slideshow"] .gallery-editor-slot{
    flex:0 0 86%;
    width:86%;
    min-width:0;
  }
  .gallery-editor-slot{
    min-width:0;
    min-height:106px;
  }
  .gallery-editor-slot img{
    min-height:106px;
  }
  .gallery-slot-tools{
    top:.25rem;
    right:.25rem;
    gap:.18rem;
    padding:.12rem;
  }
  .gallery-slot-tools button{
    flex-basis:28px;
    width:28px!important;
    min-width:28px!important;
    height:28px!important;
    min-height:28px!important;
  }
  .gallery-slot-tools button svg{
    width:16px;
    height:16px;
  }
  .gallery-count-actions{
    gap:.4rem;
  }
  .gallery-count-actions button{
    flex:1 1 0;
    min-width:0;
    padding:.38rem .45rem;
  }
  .module-gallery-preview{
    gap:5px;
    padding:.22rem;
  }
  .module-slideshow-track .module-gallery-slot{
    flex-basis:88%;
  }
  .dialog-actions{
    flex-wrap:wrap;
  }
  .dialog-actions button{
    flex:1 1 8rem;
    min-width:0;
  }
  .workflow-actions,
  .review-card-actions,
  .manuscript-actions,
  .patrol-task-actions{
    flex-wrap:wrap;
  }
}

@media(max-width:360px){
  .gallery-editor-slots:not([data-layout="slideshow"]):not([data-layout="single-1"]):not([data-layout="single-2"]){
    gap:.4rem;
  }
  .gallery-editor-slot{
    min-height:96px;
  }
  .gallery-editor-slot img{
    min-height:96px;
  }
  .template-option{
    grid-template-columns:1fr;
  }
  .template-diagram{
    min-height:72px;
  }
}

/* Final navigation geometry: keep the open handle completely outside the menu. */
body.drawer-open .semicircle-handle{
  right:12rem;
  border-right:0;
  border-left:1px solid #9bc4d8;
  border-radius:15px 0 0 15px;
}
@media(max-width:720px){
  body.drawer-open .semicircle-handle{
    right:min(13.5rem,calc(100vw - 42px));
  }
}

/* Compact local-manuscript numbering: no trailing dot and less horizontal reserve. */
.manuscript-row{
  grid-template-columns:22px 1.25rem 58px minmax(0,1fr) auto;
  column-gap:.4rem;
}
.manuscript-index{
  min-width:0;
  color:#738492;
  font-variant-numeric:tabular-nums;
  text-align:center;
}
@media(max-width:720px){
  .manuscript-row{
    grid-template-columns:20px 1rem 52px minmax(0,1fr);
    column-gap:.35rem;
  }
}

/* Common templates lead with their purpose; the source article title is secondary. */
.common-template-copy{
  display:grid;
  gap:.24rem;
  white-space:normal;
}
.common-template-purpose,
.common-template-original-title{
  display:block;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.common-template-purpose{
  color:#243f50;
  font-size:1rem;
  font-weight:650;
  line-height:1.35;
}
.common-template-original-title{
  margin:0;
  color:#71808b;
  font-size:.86rem;
  line-height:1.35;
}
@media(max-width:720px){
  .common-template-purpose{font-size:.95rem}
  .common-template-original-title{font-size:.83rem}
}

/* Double-image style 2 miniature: narrow captioned image on the left, wider image on the right. */
.template-diagram[data-layout="double-2"]{
  grid-template-columns:43fr 53fr;
  align-items:stretch;
  gap:6px;
}
.template-diagram[data-layout="double-2"] i{
  min-height:60px;
}
.template-diagram[data-layout="double-2"] i:first-child{
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  gap:3px;
  padding:4px;
  background:#e8f4df;
}
.template-diagram[data-layout="double-2"] i:first-child::before{
  content:"";
  min-height:0;
  border-radius:2px;
  background:linear-gradient(145deg,#bdd5e3,#86aec4);
}
.template-diagram[data-layout="double-2"] i:first-child::after{
  content:"文字说明";
  overflow:hidden;
  padding:2px 1px;
  border-radius:2px;
  background:#fff;
  color:#60717d;
  font-size:9px;
  font-style:normal;
  line-height:1.2;
  text-align:center;
  white-space:nowrap;
}

/* On a phone, keep both cover crops visible together.  The square share
   thumbnail is intentionally small so the confirmation control stays above
   the fold without hiding either crop. */
@media(max-width:720px){
  #cover-crop-dialog{
    width:calc(100vw - .8rem);
    max-height:calc(100dvh - .8rem);
    padding:.7rem;
  }
  #cover-crop-dialog h3{margin:.1rem 0}
  #cover-crop-dialog .dialog-hint{
    margin:.18rem 0 .4rem;
    font-size:.73rem;
    line-height:1.35;
  }
  #cover-crop-dialog .crop-dialog-grid{
    grid-template-columns:2.35fr 1fr!important;
    align-items:start;
    gap:.45rem;
    margin:.35rem 0;
  }
  #cover-crop-dialog .crop-dialog-grid>div{gap:.22rem}
  #cover-crop-dialog .crop-dialog-grid>div>strong{font-size:.76rem}
  #cover-crop-dialog .crop-dialog-grid .cover-crop,
  #cover-crop-dialog .crop-dialog-grid .crop-square{
    width:100%!important;
    max-width:none!important;
    margin:0;
  }
  #cover-crop-dialog .dialog-actions{
    gap:.35rem;
    margin-top:.35rem;
  }
  #cover-crop-dialog .dialog-actions button{min-height:40px}
}

/* Final mobile layout for recurring controls and patrol footer fields. */
@media(max-width:720px){
  .recurring-choice-row{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:.2rem!important;
    align-items:center;
  }
  .recurring-choice-row select{
    width:100%!important;
    min-width:0!important;
    height:34px!important;
    min-height:34px!important;
    padding:.15rem .05rem!important;
    font-size:12px!important;
    letter-spacing:-.02em;
  }
  .patrol-footer-fields{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:.3rem!important;
  }
  .patrol-footer-fields label{
    grid-template-columns:1fr!important;
    gap:.15rem;
    min-width:0;
  }
  .patrol-footer-fields label>span{
    text-align:center;
    white-space:nowrap;
  }
  .patrol-footer-fields input{
    width:100%;
    min-width:0;
    padding:.36rem!important;
    font-size:.78rem;
  }
}

/* Restore the previous two-column patrol footer layout on phones. */
@media(max-width:720px){
  .patrol-footer-fields{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:.35rem!important;
  }
  .patrol-footer-fields label{
    grid-template-columns:2.4rem minmax(0,1fr)!important;
    align-items:center;
    gap:.25rem;
  }
  .patrol-footer-fields label>span{text-align:right}
.patrol-footer-fields input{padding:.52rem!important;font-size:.85rem}
}

/* Workflow preview stays on the cover; the remaining actions are compact and right aligned. */
#workflow-list .workflow-cover .cover-eye{
  left:auto;
  right:4px;
  top:4px;
  transform:none;
  z-index:2;
  width:26px;
  min-width:26px;
  height:26px;
  min-height:26px;
  border-radius:8px;
  background:rgba(20,28,38,.48);
}
#workflow-list .workflow-cover .cover-eye svg{
  width:15px;
  height:15px;
}
#workflow-list .workflow-cover>img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain!important;
  background:#eef2f5;
}
#workflow-list .workflow-actions{
  justify-self:end;
  margin:.2rem 0 0 auto;
}
#workflow-list .workflow-actions .icon-action{
  width:32px!important;
  min-width:32px!important;
  height:32px!important;
  min-height:32px!important;
  border-radius:9px!important;
}
#workflow-list .workflow-actions .icon-action svg{
  width:16px!important;
  height:16px!important;
}
.module-title-color-palette button[aria-pressed="true"]{
  outline:2px solid var(--ws-primary)!important;
  outline-offset:2px;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),0 0 0 3px rgba(31,99,149,.12)!important;
}

/* Ordinary editor images are not horizontal scrollers: vertical swipes scroll the page. */
#v12-modules .module-images{
  overflow-x:visible!important;
  touch-action:pan-y!important;
}

/* The product header belongs to the document flow, not the sticky viewport. */
.topbar{position:static;}

/* Preview cards keep the eye itself, without a competing square control behind it. */
.saved-manuscript-preview .cover-eye{
  left:50%;
  right:auto;
  top:50%;
  transform:translate(-50%,-50%);
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  filter:drop-shadow(0 1px 2px rgba(15,23,42,.6));
}

/* Workflow thumbnails use the same centred, unobtrusive preview eye. */
#workflow-list .workflow-cover .cover-eye{
  left:50%;
  right:auto;
  top:50%;
  transform:translate(-50%,-50%);
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  filter:drop-shadow(0 1px 2px rgba(15,23,42,.6));
}

/* Make the navigation tab an independent, forgiving touch target. */
.semicircle-handle{
  z-index:80!important;
  width:58px;
  min-width:58px;
  height:82px;
  min-height:82px;
  padding:0;
  overflow:visible;
  background:transparent!important;
  border:0!important;
  border-radius:0;
  box-shadow:none!important;
  touch-action:manipulation;
}
.semicircle-handle::before{
  content:"";
  position:absolute;
  right:0;
  top:50%;
  width:38px;
  height:62px;
  transform:translateY(-50%);
  border:1px solid #9bc4d8;
  border-right:0;
  border-radius:15px 0 0 15px;
  background:linear-gradient(160deg,#f4fbfe,#cce8f3);
  box-shadow:0 8px 22px rgba(38,93,127,.16);
  pointer-events:none;
}
.semicircle-handle>span{
  position:absolute;
  right:0;
  top:50%;
  display:grid;
  width:38px;
  height:62px;
  place-items:center;
  transform:translateY(-50%);
  pointer-events:none;
}
.semicircle-handle:active{transform:translateY(-50%)!important;}
body.drawer-open .semicircle-handle>span{transform:translateY(-50%) scaleX(-1);}
.recurring-choice-row{display:flex;flex-direction:column;flex-wrap:nowrap;gap:.45rem;align-items:flex-start;}
.recurring-setting-row{display:flex;align-items:center;gap:.4rem;min-height:36px;}
.recurring-setting-row>span{white-space:nowrap;}
.recurring-choice-row select{min-width:7rem;height:36px;}
.recurring-time-row select{min-width:5rem;}
@media(max-width:720px){
  .recurring-choice-row{
    display:flex!important;
    flex-direction:column!important;
    flex-wrap:nowrap!important;
    align-items:flex-start!important;
    gap:.45rem!important;
  }
  .recurring-setting-row{
    width:100%;
    display:flex!important;
    flex-direction:row!important;
    align-items:center;
    white-space:nowrap;
  }
  .recurring-setting-row select{
    width:auto!important;
    min-width:0!important;
    height:34px!important;
    min-height:34px!important;
    font-size:14px!important;
  }
  .semicircle-handle{width:60px;min-width:60px;height:82px;min-height:82px;}
}

/* Mobile navigation: separate the handle gesture from the menu click. */
.navigation-scrim{
  display:none;
  position:fixed;
  inset:0;
  z-index:65;
  background:rgba(15,35,50,.2);
  touch-action:manipulation;
}
body.drawer-open .navigation-scrim{display:block}
.navigation-drawer{z-index:70!important}
.semicircle-handle{
  z-index:80!important;
  right:0!important;
  left:auto!important;
  bottom:calc(80px + env(safe-area-inset-bottom))!important;
  top:auto!important;
  width:44px!important;
  min-width:44px!important;
  height:56px!important;
  min-height:56px!important;
  padding:0!important;
  overflow:visible!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  touch-action:none;
}
.semicircle-handle::before{
  content:"";
  position:absolute;
  right:0;
  top:50%;
  width:32px;
  height:52px;
  transform:translateY(-50%);
  border:1px solid #9bc4d8;
  border-right:0;
  border-radius:26px 0 0 26px;
  background:linear-gradient(160deg,#f4fbfe,#cce8f3);
  box-shadow:0 6px 16px rgba(38,93,127,.15);
  pointer-events:none;
}
.semicircle-handle>span{
  position:absolute;
  right:0;
  top:50%;
  display:grid;
  width:32px;
  height:52px;
  place-items:center;
  transform:translateY(-50%);
  font-size:1.15rem;
  pointer-events:none;
}
body.drawer-open .semicircle-handle{right:min(13.5rem,calc(100vw - 44px))!important}
@media(min-width:721px){body.drawer-open .semicircle-handle{right:12rem!important}}

/* The editor submit action is safe/ready by default; orange means in progress. */
button[data-action="submit-manuscript"]{background:#168a48!important;border-color:#168a48!important;color:#fff!important}
button[data-action="submit-manuscript"].is-submitting{background:#f59e0b!important;border-color:#f59e0b!important;color:#fff!important}
button[data-action="submit-manual-preview"]{background:#168a48!important;border-color:#168a48!important;color:#fff!important}
button[data-action="submit-manual-preview"].is-submitting{background:#f59e0b!important;border-color:#f59e0b!important;color:#fff!important}
button[data-action="submit-manual-preview"].is-submit-failed{background:#c62828!important;border-color:#c62828!important;color:#fff!important}
/* Platform administrator console */
.platform-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.platform-form-grid label{display:grid;gap:6px;font-weight:700}
.platform-form-grid input{min-width:0}
.platform-form-grid label{display:flex;align-items:center;gap:8px}
.platform-form-grid label input{flex:1;min-width:0}
.personnel-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.personnel-grid label{min-width:0}
.account-form-grid label{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:8px}
.account-form-grid label span{white-space:nowrap}
.platform-permissions{display:grid;grid-template-columns:repeat(3,max-content);justify-content:start;gap:8px 18px;margin:14px 0;border:1px solid rgba(31,99,149,.18);border-radius:12px;padding:12px}
.platform-permissions label{display:flex;align-items:center;width:max-content;gap:3px;font-weight:600;white-space:nowrap}
.platform-permissions input{margin:0}
.platform-permissions input[type="checkbox"]{width:16px;height:16px;min-width:16px;flex:0 0 16px;padding:0;margin:0}
.platform-readonly{display:flex;flex-wrap:wrap;gap:16px;margin:12px 0;color:#475569}
.guide-upload{position:relative;display:flex;align-items:center;flex-wrap:nowrap;width:100%;max-width:100%;box-sizing:border-box;gap:10px;margin-bottom:12px;font-weight:700;white-space:nowrap;overflow:hidden}
.unit-admin-page .guide-upload>#unit-guide-image{position:absolute!important;inset:0 auto auto 0!important;box-sizing:border-box!important;width:1px!important;height:1px!important;min-width:0!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;opacity:0!important;pointer-events:none!important}
.guide-upload::after{content:'选择文件';display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;border:1px solid rgba(31,99,149,.28);border-radius:8px;background:#f8fbff;color:#1f6395;font-weight:700;cursor:pointer}
.guide-preview{display:flex;align-items:center;gap:10px;margin:0 0 14px;color:#475569;font-size:13px}
.guide-preview[hidden]{display:none}
.guide-preview img{display:block;width:64px;height:64px;object-fit:cover;border:1px solid rgba(31,99,149,.2);border-radius:8px;background:#f8fafc}
#save-wechat-config{display:block;margin-top:10px}
.wechat-platform-link{display:flex;width:fit-content;align-items:center;justify-content:center;margin:0;padding:10px 16px;border:1px solid rgba(31,99,149,.28);border-radius:8px;background:rgba(31,99,149,.08);color:#1f6395;font-weight:700;text-decoration:none}
.unit-admin-card h3{margin:18px 0 10px}
.platform-unit-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(31,99,149,.14)}
.platform-unit-row small{display:block;color:#64748b;margin-top:4px}
.platform-maintenance-toolbar{display:flex;gap:.45rem;margin-left:auto}.maintenance-policy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}.maintenance-policy-grid label{display:grid;gap:6px;font-weight:700}.maintenance-trash-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(31,99,149,.14)}.maintenance-trash-row small{display:block;color:#64748b;margin-top:3px}.maintenance-trash-row button{min-height:32px;padding:.25rem .6rem}.maintenance-trash-row .maintenance-permanent-delete{background:#fee2e2;color:#991b1b;border-color:#fecaca}.maintenance-card{margin-top:1rem}.maintenance-trash-card{margin-top:1rem}@media(max-width:640px){.maintenance-policy-grid{grid-template-columns:1fr}.maintenance-trash-row{grid-template-columns:1fr}.platform-maintenance-toolbar .header-icon-button{width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important}}
.platform-unit-status{white-space:nowrap;color:#475569}
.platform-unit-actions{display:flex;align-items:center;gap:8px}
.platform-delete-button{background:rgba(251,236,238,.82)!important;border-color:rgba(191,63,71,.35)!important;color:#a8323b!important}
@media (max-width:640px){.platform-form-grid{grid-template-columns:1fr}.personnel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-permissions{grid-template-columns:repeat(3,max-content);gap:8px 10px}.platform-permissions label{font-size:13px}.platform-unit-row{grid-template-columns:1fr}.platform-unit-status{white-space:normal}}

/* Gallery upload slots must mirror the selected template, including on mobile. */
.gallery-editor-slots[data-layout="triple-1"]{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-template-rows:auto!important;
  align-items:start;
}
.gallery-editor-slots[data-layout="triple-1"] .gallery-editor-slot{
  grid-column:auto!important;
  grid-row:auto!important;
  aspect-ratio:1/2!important;
}
.gallery-editor-slots[data-layout="triple-2"]{
  grid-template-columns:1.05fr minmax(0,1fr)!important;
  grid-template-rows:repeat(2,minmax(0,1fr))!important;
  align-items:stretch;
}
.gallery-editor-slots[data-layout="triple-2"] .gallery-editor-slot:first-child{
  grid-column:1!important;
  grid-row:1/3!important;
  aspect-ratio:auto!important;
}
.gallery-editor-slots[data-layout="triple-2"] .gallery-editor-slot:nth-child(n+2){
  grid-column:2!important;
  aspect-ratio:1.19/1!important;
}
.gallery-editor-slots[data-layout="triple-3"]{
  grid-template-columns:.65fr minmax(0,1fr) .65fr!important;
  grid-template-rows:auto!important;
  align-items:start;
}
.gallery-editor-slots[data-layout="triple-3"] .gallery-editor-slot{
  grid-column:auto!important;
  grid-row:auto!important;
}
.gallery-editor-slots[data-layout="triple-3"] .gallery-editor-slot:nth-child(1),
.gallery-editor-slots[data-layout="triple-3"] .gallery-editor-slot:nth-child(3){aspect-ratio:.61/1!important}
.gallery-editor-slots[data-layout="triple-3"] .gallery-editor-slot:nth-child(2){aspect-ratio:.69/1!important}

/* 三图上传窗口：上传位置与最终排版完全一致。 */
.task-save-status{min-height:1.3em;margin:.5rem 0 0;color:#38708d;font-size:.88rem;text-align:center}
.task-save-status.is-error{color:#b42318}
.gallery-editor-slots.has-template-upload-layout{display:block!important;grid-template-columns:none!important;grid-template-rows:none!important}
#v12-gallery-slots .gallery-upload-layout{display:grid;width:100%;max-width:100%;gap:.55rem}
#v12-gallery-slots .gallery-upload-layout.triple-1{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
#v12-gallery-slots .gallery-upload-layout.triple-1>.gallery-editor-slot{min-height:0!important;aspect-ratio:1/2!important;grid-column:auto!important;grid-row:auto!important}
#v12-gallery-slots .gallery-upload-layout.triple-2{grid-template-columns:1.05fr minmax(0,1fr);align-items:stretch}
#v12-gallery-slots .gallery-upload-layout.triple-2>.gallery-editor-slot{min-height:0!important;height:auto!important;grid-column:auto!important;grid-row:auto!important}
#v12-gallery-slots .gallery-upload-layout.triple-2>.gallery-upload-stack{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:.55rem}
#v12-gallery-slots .gallery-upload-layout.triple-2>.gallery-upload-stack>.gallery-editor-slot{min-height:0!important;aspect-ratio:1.19/1!important;grid-column:auto!important;grid-row:auto!important}
#v12-gallery-slots .gallery-upload-layout.triple-3{grid-template-columns:.65fr minmax(0,1fr) .65fr;align-items:start}
#v12-gallery-slots .gallery-upload-layout.triple-3>.gallery-editor-slot{min-height:0!important;grid-column:auto!important;grid-row:auto!important}
#v12-gallery-slots .gallery-upload-layout.triple-3>.gallery-editor-slot:nth-child(1),#v12-gallery-slots .gallery-upload-layout.triple-3>.gallery-editor-slot:nth-child(3){aspect-ratio:.61/1!important}
#v12-gallery-slots .gallery-upload-layout.triple-3>.gallery-editor-slot:nth-child(2){aspect-ratio:.69/1!important}

.create-task-row{flex-direction:column;align-items:center}.task-save-status:empty{display:none}

/* Cover selection is deliberately two rows so the square options remain
   visible on phones instead of being squeezed into a narrow second column. */
.cover-template-library-grid{display:grid;grid-template-columns:1fr;gap:.7rem}
.cover-template-library-grid .cover-template-zone{min-width:0}
.cover-template-zone .template-upload-plus{display:grid;place-items:center;width:42px;height:42px;min-width:42px;min-height:42px;padding:0;margin:.35rem 0;border:1px dashed #8eb2c7;border-radius:10px;background:#fff;color:var(--ws-primary);font-size:1.5rem;line-height:1}
.cover-template-list{display:flex;gap:.45rem;overflow-x:auto;padding:.15rem .15rem .4rem;scroll-snap-type:x proximity}
.cover-template-card{flex:0 0 clamp(76px,15vw,118px);scroll-snap-align:start}
.cover-template-card img{aspect-ratio:2.35/1}
.cover-template-library-grid>div:last-child .cover-template-card img{aspect-ratio:1}
.cover-template-preview-hint{display:block;margin-top:.35rem;color:#667788;text-align:center}
@media(min-width:721px){
  .cover-template-list{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));overflow:visible}
  .cover-template-card{width:auto}
}
.cover-template-card-tools{display:flex;align-items:center;justify-content:space-between;gap:.25rem;margin-top:.2rem}
.cover-template-card-tools .cover-template-crop{min-height:28px;padding:.12rem .42rem;font-size:.75rem}
.cover-template-card-tools .cover-template-delete{position:static;width:24px;min-width:24px;height:24px;min-height:24px}
@media(max-width:720px){
  .cover-template-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;gap:.55rem}
  .cover-template-card{width:100%;min-width:0}
  .cover-template-card img{width:100%}
}
.cover-template-library-grid>div:first-child .cover-template-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
.cover-template-library-grid>div:last-child .cover-template-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}
.cover-template-card>.cover-template-delete{position:absolute;right:-5px;top:-5px;z-index:2}
.cover-template-upload-row{display:flex;align-items:center;gap:.45rem;margin:.35rem 0}
.cover-template-upload-row .template-upload-plus{width:42px!important;min-width:42px!important;margin:0!important;padding:0!important}
.cover-template-upload-hint{color:#536170;font-size:1rem;font-weight:700;white-space:nowrap}
/* 转发预览窗口内的二次编辑 */
.manual-edit-preview{display:grid;gap:.7rem;padding-top:1rem}.manual-edit-preview-title{width:100%;box-sizing:border-box;padding:.65rem .75rem;border:1px solid #cbd5df;border-radius:.55rem;font-size:1.15rem;font-weight:700}.manual-edit-preview-body{min-height:55vh;padding:.9rem;border:1px solid #cbd5df;border-radius:.55rem;background:#fff;outline:none;line-height:1.75;user-select:text;-webkit-user-select:text}.manual-edit-preview-body:focus{border-color:#2584c6;box-shadow:0 0 0 3px rgba(37,132,198,.14)}.manual-edit-preview-body img{max-width:100%;height:auto}.manual-edit-preview-hint{color:#6d7782}.manual-edit-preview-actions{display:flex;justify-content:flex-end;gap:.55rem;position:sticky;bottom:0;padding:.65rem 0;background:#fff}.manual-edit-preview-actions button{min-width:7rem}
.manual-preview-item{grid-template-columns:36px 64px minmax(0,1fr) auto}.manual-preview-drag{width:32px;min-width:32px;min-height:34px;padding:0;background:#edf2f6;color:#52616d;border:1px solid #cbd5df;border-radius:.45rem;cursor:grab}.manual-preview-drag:active{cursor:grabbing}.manual-preview-item.is-dragging{opacity:.65;box-shadow:0 8px 18px rgba(25,45,65,.18)}.manual-preview-remove{background:#fff0f0;color:#ad3333;border-color:#edb7b7}
.manual-preview-item{position:relative;grid-template-columns:36px 64px minmax(0,1fr) 36px;overflow:visible}.manual-preview-copy{display:flex!important;align-items:center;gap:.45rem;min-width:0}.manual-preview-copy strong{min-width:0}.manual-preview-eye{display:grid;place-items:center;flex:0 0 auto;width:30px;min-width:30px;height:30px;min-height:30px;padding:0;border:1px solid #c8d2dc;border-radius:8px;background:#edf3f7;color:#3d5669}.manual-preview-eye svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.manual-preview-corner-remove{position:absolute;top:-9px;right:-9px;z-index:22;width:22px;min-width:22px;height:22px;min-height:22px;padding:0;border:0;border-radius:50%;background:rgba(170,45,45,.82);color:#fff;font-size:18px;line-height:20px;text-align:center;cursor:pointer}.manual-preview-corner-remove:hover{background:#a51f1f}.manual-preview-item>.icon-action{grid-column:4;grid-row:1}.manual-preview-item>.manual-preview-corner-remove{grid-column:auto;grid-row:auto}
/* 删除角标最终覆盖样式 */
.manual-preview-corner-remove{position:absolute!important;top:-9px!important;right:-9px!important;z-index:22!important;display:grid!important;place-items:center!important;width:20px!important;min-width:20px!important;height:20px!important;min-height:20px!important;margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;background:#b93636!important;color:#fff!important;font-size:16px!important;font-weight:700!important;line-height:20px!important;text-align:center!important;cursor:pointer!important;box-shadow:0 1px 3px rgba(20,30,40,.22)!important}.manual-preview-corner-remove:hover{background:#941f1f!important}
.manual-preview-item{align-items:start;column-gap:.5em}.manual-preview-copy{display:grid!important;gap:.38rem;padding:.1rem 0}.manual-preview-copy strong{display:block}.manual-preview-footer{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .45rem;color:#5d6873;font-size:.76rem;line-height:1.35}.manual-preview-footer-item{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manual-preview-guide{display:inline-flex;align-items:center;gap:.2rem;color:#3f677d;font-style:normal;white-space:nowrap}.manual-preview-guide img{display:block;width:24px;height:24px;object-fit:cover;border:1px solid #d4dde4;border-radius:4px}.manual-preview-guide em{font-style:normal}
.manual-article-footer-preview{display:grid;gap:.65rem;margin-top:1rem;padding:1rem;border:1px solid #d7e2ea;border-radius:.7rem;background:#f7fafc}.manual-article-footer-preview h3{margin:0;color:#30495d;font-size:1rem}.manual-article-guide-image{display:block;width:100%;max-width:100%;height:auto}.manual-article-footer-details{display:grid;gap:.42rem}.manual-article-footer-field{display:grid;grid-template-columns:3rem minmax(0,1fr);align-items:center;gap:.45rem;color:#536170;font-size:.86rem;font-weight:600}.manual-article-footer-field span{text-align:right}.manual-article-footer-field input{width:100%;min-width:0;box-sizing:border-box;padding:.45rem .55rem;border:1px solid #cbd7e1;border-radius:.45rem;background:#fff;font:inherit;color:#263746}
.manual-edit-preview-actions{justify-content:center}.manual-edit-preview-actions button{margin-inline:auto}dialog .preview-close-x{border-color:#f0b7b7!important;background:#fff1f1!important;color:#b43c43!important}
.manual-article-footer-preview{gap:.8rem;padding:0;border:0;border-radius:0;background:transparent}.manual-article-footer-details{gap:.08rem;text-align:center}.manual-article-footer-field{display:block;margin:0;padding:.08rem 0;border:0;border-radius:0;color:#66737d;font-size:.64rem;font-weight:400;line-height:1.55;outline:none;text-align:center}.manual-article-footer-field:focus{background:#fff9df;box-shadow:0 0 0 2px rgba(224,175,42,.18)}
.manual-edit-preview-body{position:relative}.manual-edit-preview-body .manual-edit-image-selected{outline:3px solid rgba(45,132,196,.78);outline-offset:2px}.manual-edit-image-delete{position:absolute;z-index:10;display:grid;place-items:center;width:25px;min-width:25px;height:25px;min-height:25px;margin:0;padding:0;border:0;border-radius:50%;background:#b93636;color:#fff;font-size:20px;line-height:1;box-shadow:0 2px 7px rgba(60,20,20,.3)}
.manual-edit-preview-actions [data-action="save-manual-preview-edit"]{border-color:#9ec7df!important;background:#eaf4f9!important;color:#1f6395!important;box-shadow:0 3px 8px rgba(31,99,149,.14)!important}
.manual-preview-item{grid-template-columns:36px 44px minmax(0,1fr) 36px;column-gap:.22rem}
.manual-preview-drag{touch-action:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}
.manual-preview-item{touch-action:none;cursor:grab;transition:background .15s,border-color .15s,box-shadow .15s}.manual-preview-item.is-selected{background:#eaf4ff;outline:2px solid #5a9fe6;outline-offset:-2px}.manual-preview-item.is-dragging{opacity:.78;cursor:grabbing;box-shadow:0 8px 22px rgba(15,23,42,.24);z-index:4}.manual-preview-item .cover-eye,.manual-preview-item .edit-action,.manual-preview-item .manual-preview-corner-remove{touch-action:auto}
#manual-preview-card .manual-preview-drag{display:none}.manual-preview-item{grid-template-columns:44px minmax(0,1fr) 36px}.manual-preview-item>.icon-action{grid-column:3}
section[data-panel="manual"]>.section-description{display:inline-block;margin:.48rem 0 .8rem;padding:.32rem .58rem;border:0;border-radius:.42rem;background:#fff1f1;color:#74808a;font-size:.8rem;white-space:nowrap}
.manual-heading{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.manual-heading h2{margin:0}.manual-clear-button{flex:0 0 36px;display:grid!important;place-items:center!important;width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;margin:0!important;padding:0!important;border:1px solid #bfd2de!important;border-radius:50%!important;background:#fff!important;color:#547184!important;box-shadow:0 3px 9px rgba(37,76,99,.08)!important}.manual-clear-button:hover,.manual-clear-button:focus-visible{border-color:#9abed1!important;background:#eaf4f9!important;color:var(--ws-primary)!important}.manual-clear-button svg{width:20px;height:20px;stroke-width:1.65}.manual-preview-state{display:inline-flex;align-items:center;margin-top:.28rem;color:#667783;font-size:.78rem}.manual-preview-state.is-boundary{color:#a25920}.manual-preview-state.is-submitting{color:#7c8790}.manual-preview-state.is-submitted{color:#168a48}.manual-preview-item.is-submitted{opacity:.88}.manual-preview-item .manual-preview-boundary{grid-column:2/-1;justify-self:start;margin-top:.15rem;min-height:32px!important;padding:.26rem .64rem!important;font-size:.8rem!important}.manual-preview-item .manual-preview-boundary:disabled{background:#c4cad0!important;border-color:#bbc2c8!important;color:#fff!important;opacity:1!important}
.manual-heading.compose-heading h2{display:inline-flex;align-items:center;gap:9px;color:#18232d!important;font-size:24px!important;font-weight:700!important;line-height:1.3;letter-spacing:-.02em}
.manual-heading.compose-heading .compose-title-marker{flex:0 0 30px}
.manual-source-card{margin:.55rem 0 .75rem!important;padding:.65rem!important}
.manual-source-field{display:grid;grid-template-columns:7.2rem minmax(0,1fr);align-items:center;gap:.45rem;margin:0}
.manual-source-field>span{color:#526170;font-size:.88rem;white-space:nowrap}
.manual-source-field input{min-width:0}
.manual-preview-submit-actions>button[data-action="preview-manual"].v12-primary-action{width:auto!important;min-width:9rem!important;min-height:42px!important;margin:.6rem auto!important;padding:.55rem 1.35rem!important;border:1px solid #2875a8!important;border-radius:10px!important;background:#2875a8!important;color:#fff!important;box-shadow:none!important;font-size:.92rem!important;font-weight:700!important}
@media(max-width:520px){.manual-source-field{grid-template-columns:1fr;gap:.25rem}.manual-source-field>span{font-size:.8rem}}
/* 保存稿件与保存修改：统一淡蓝色操作样式。 */
.compose-clear-cache,.manual-clear-button{box-sizing:border-box!important;flex:0 0 36px!important;display:grid!important;place-items:center!important;width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;padding:0!important;border-radius:50%!important}.compose-clear-cache svg,.manual-clear-button svg{display:block!important;width:20px!important;height:20px!important;margin:auto!important;fill:none!important;stroke:currentColor!important;stroke-width:1.65!important;transform:none!important}
button.save-draft-button{min-height:42px!important;padding:.5rem 1rem!important;border:1px solid #9ec7df!important;border-radius:.55rem!important;background:#eaf4f9!important;color:#1f6395!important;font-weight:400!important;line-height:1.2!important;box-shadow:0 3px 8px rgba(31,99,149,.14)!important}button.save-draft-button:hover,button.save-draft-button:focus-visible{background:#dceef7!important;border-color:#78afd0!important;color:#154f7c!important}
@media(max-width:720px){.preview-content{width:100%;max-width:none;padding:3.1rem 12px 1.25rem}.preview-close-x{top:.55rem!important;right:.55rem!important;width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important}.manual-edit-preview{gap:.55rem;padding-top:.35rem}.manual-edit-preview-title{padding:.58rem .65rem;font-size:1.05rem}.manual-edit-preview-body{min-height:min(52dvh,460px);padding:.7rem;font-size:.96rem;line-height:1.72}.manual-edit-preview-actions{padding:.55rem 0 .1rem}.manual-edit-preview-actions button{width:min(78vw,19rem);min-height:42px}.manual-article-footer-preview{margin-top:.55rem;gap:.55rem}.manual-article-guide-image{width:100%}.manual-edit-image-delete{width:24px;min-width:24px;height:24px;min-height:24px}.preview-article-body{font-size:.96rem;line-height:1.76}.preview-footer-panel{margin-top:.85rem;padding:.75rem}.preview-footer-grid{grid-template-columns:1fr;gap:.38rem}.preview-footer-grid div{font-size:.84rem}}
/* 原文常含固定宽度表格、容器与不换行样式；预览时统一收束到当前屏幕。 */
#preview-content .preview-article-body,#preview-content .manual-edit-preview-body{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}#preview-content .preview-article-body *,#preview-content .manual-edit-preview-body *{box-sizing:border-box;max-width:100%!important;min-width:0!important}#preview-content .preview-article-body img,#preview-content .preview-article-body video,#preview-content .preview-article-body canvas,#preview-content .preview-article-body svg,#preview-content .manual-edit-preview-body img,#preview-content .manual-edit-preview-body video,#preview-content .manual-edit-preview-body canvas,#preview-content .manual-edit-preview-body svg{width:auto!important;height:auto!important}#preview-content .preview-article-body table,#preview-content .manual-edit-preview-body table{width:100%!important;min-width:0!important;table-layout:fixed!important}#preview-content .preview-article-body td,#preview-content .preview-article-body th,#preview-content .manual-edit-preview-body td,#preview-content .manual-edit-preview-body th{min-width:0!important;white-space:normal!important;overflow-wrap:anywhere;word-break:break-word}#preview-content .preview-article-body pre,#preview-content .manual-edit-preview-body pre{max-width:100%!important;white-space:pre-wrap!important;overflow-wrap:anywhere;word-break:break-word}
.merge-manuscript-row{position:relative;grid-template-columns:58px minmax(0,1fr)!important;gap:.25rem!important;overflow:visible}.merge-manuscript-remove{position:absolute;top:-9px;right:-9px;z-index:4;display:grid;place-items:center;width:22px!important;min-width:22px!important;height:22px!important;min-height:22px!important;margin:0;padding:0!important;border:1px solid #cfd6dc!important;border-radius:50%!important;background:#edf0f3!important;color:#b93636!important;font-size:17px!important;font-weight:700;line-height:1;box-shadow:0 1px 3px rgba(20,30,40,.18)}@media(max-width:720px){.merge-manuscript-row{grid-template-columns:48px minmax(0,1fr)!important}}
.merge-importing-hint{color:#c62828!important;font-weight:700}
.draft-card-actions{display:flex;justify-content:flex-end;gap:.45rem;margin:.6rem 0 .1rem}.draft-card-actions .icon-action{width:38px;min-width:38px;height:38px;min-height:38px;padding:0}.draft-card-actions .icon-action svg{width:20px;height:20px;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.draft-card-actions .wechat-preview{color:#1aad19}
#manual-preview-card{display:grid;gap:.55rem}.manual-preview-corner-remove{top:-8px!important;right:-8px!important;width:18px!important;min-width:18px!important;height:18px!important;min-height:18px!important;border:1px solid #cfd6dc!important;background:#edf0f3!important;color:#b93636!important;font-size:14px!important;line-height:1!important;box-shadow:0 1px 3px rgba(20,30,40,.18)!important}.manual-preview-corner-remove:hover{background:#dfe5e9!important;color:#991f2b!important}

/* 公众号草稿箱发送预览：固定为“输入行 + 预览人行”，避免通用表单样式挤压错位。 */
#wechat-draft-preview-dialog .preview-recipient-card,
#manual-preview-recipient-dialog .preview-recipient-card{display:grid;gap:.55rem;margin:.15rem 0 .8rem;padding:.2rem 0 0}
#wechat-draft-preview-dialog,
#manual-preview-recipient-dialog{position:relative}
#wechat-draft-preview-dialog .dialog-close-x,
#manual-preview-recipient-dialog .dialog-close-x{position:absolute!important;top:8px!important;right:8px!important;z-index:22!important;display:grid!important;place-items:center!important;width:18px!important;min-width:18px!important;height:18px!important;min-height:18px!important;margin:0!important;padding:0!important;border:1px solid #cfd6dc!important;border-radius:50%!important;background:#edf0f3!important;color:#b93636!important;font-size:14px!important;font-weight:700!important;line-height:1!important;box-shadow:0 1px 3px rgba(20,30,40,.18)!important}
#wechat-draft-preview-dialog .dialog-close-x:hover,
#manual-preview-recipient-dialog .dialog-close-x:hover{background:#dfe5e9!important;color:#991f2b!important}
#wechat-draft-preview-dialog .preview-recipient-card .inline-entry,
#manual-preview-recipient-dialog .preview-recipient-card .inline-entry{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:.5rem;width:100%}
#wechat-draft-preview-dialog .preview-recipient-card .inline-entry input,
#manual-preview-recipient-dialog .preview-recipient-card .inline-entry input{width:100%;min-width:0;box-sizing:border-box}
#wechat-draft-preview-dialog .preview-recipient-card .inline-entry button,
#manual-preview-recipient-dialog .preview-recipient-card .inline-entry button{width:44px;min-width:44px;height:44px;min-height:44px;padding:0;line-height:1}
#wechat-draft-preview-dialog .preview-recipients,
#manual-preview-recipient-dialog .preview-recipients{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin:0;min-height:36px}
#wechat-draft-preview-dialog .preview-recipients .recipient-chip,
#manual-preview-recipient-dialog .preview-recipients .recipient-chip{flex:0 0 auto;margin:0}
#wechat-draft-preview-dialog .preview-recipients .recipient-chip>.recipient-pick,
#manual-preview-recipient-dialog .preview-recipients .recipient-chip>.recipient-pick{display:flex;align-items:center;box-sizing:border-box;font:inherit;font-size:inherit;line-height:normal}
#wechat-draft-preview-dialog .dialog-actions,
#manual-preview-recipient-dialog .dialog-actions{justify-content:center;margin-top:1.1rem}
#wechat-draft-preview-dialog .dialog-actions .submit,
#manual-preview-recipient-dialog .dialog-actions .submit{min-width:8.25rem;border-color:#268e55;background:#28a85d;color:#fff;font-weight:700}
#wechat-draft-preview-dialog .dialog-actions .submit:hover,
#manual-preview-recipient-dialog .dialog-actions .submit:hover{border-color:#197a46;background:#208e4d}
@media(max-width:720px){#wechat-draft-preview-dialog,
#manual-preview-recipient-dialog{width:calc(100vw - 1.3rem);max-width:calc(100vw - 1.3rem);padding:1rem}.preview-recipients .recipient-chip{min-width:5.1rem}}

/* 所有带关闭角标的普通弹窗统一使用卡片右上角删除样式。 */
dialog:not(.preview-layer){position:relative}
dialog:not(.preview-layer) .dialog-close-x{position:absolute!important;top:8px!important;right:8px!important;z-index:22!important;display:grid!important;place-items:center!important;width:18px!important;min-width:18px!important;height:18px!important;min-height:18px!important;margin:0!important;padding:0!important;border:1px solid #cfd6dc!important;border-radius:50%!important;background:#edf0f3!important;color:#b93636!important;font-size:14px!important;font-weight:700!important;line-height:1!important;box-shadow:0 1px 3px rgba(20,30,40,.18)!important}
dialog:not(.preview-layer) .dialog-close-x:hover{background:#dfe5e9!important;color:#991f2b!important}
/* 合并多图文的关闭角标与下方预览卡同尺寸，使用明确的红底白叉。 */
#manuscript-merge-dialog .dialog-close-x{width:20px!important;min-width:20px!important;height:20px!important;min-height:20px!important;border:0!important;background:#b93636!important;color:#fff!important;font-size:16px!important;line-height:1!important}
#manuscript-merge-dialog .dialog-close-x:hover{background:#941f1f!important;color:#fff!important}

/* Full-article preview: the dialog itself scrolls on mobile and source-page
   fixed widths / nowrap rules cannot push content outside the viewport. */
.preview-layer{overflow:hidden!important}
/* iOS 对全屏 dialog 的滚动支持不稳定：由正文容器自己承接滚动，保证长文可完整浏览。 */
.preview-content{height:100dvh!important;min-height:0!important;overflow-x:hidden!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
#preview-content .preview-article-body *{white-space:normal!important}
/* 微信原文常先以 visibility:hidden / opacity:0 等待官方页面脚本渲染。
   工作台预览不执行该脚本，必须在预览作用域内恢复正文可见。 */
#preview-content .preview-article-body,#preview-content .preview-article-body *{visibility:visible!important;opacity:1!important}
/* 循环转发除过滤 GIF 外保留原文 HTML，不覆盖原文行高、空白节点或占位高度。 */
.preview-layer>.preview-close-x{position:fixed!important;float:none!important;top:.75rem!important;right:.75rem!important;border-color:rgba(180,60,67,.80)!important;background:rgba(180,60,67,.80)!important;color:#fff!important}.preview-layer>.preview-undo{right:3.7rem!important;border-color:rgba(24,117,58,.80)!important;background:rgba(24,117,58,.80)!important;color:#fff!important}.preview-undo svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.preview-undo:disabled{opacity:.42}@media(max-width:720px){.preview-layer>.preview-close-x{top:.55rem!important;right:.55rem!important}.preview-layer>.preview-undo{right:3.35rem!important}}
/* 新建微推、本地稿件的只读预览压缩标题上方空间；关闭按钮仍固定在屏幕右上。 */
.preview-layer[data-preview-mode="readonly"] .preview-content{padding-top:1rem!important}.preview-layer[data-preview-mode="readonly"] .preview-content>h2,.preview-layer[data-preview-mode="readonly"] .manual-readonly-preview>h2{margin-top:0!important;padding-right:0!important}
.preview-layer[data-preview-mode="readonly"] .manual-readonly-preview{width:100%!important;max-width:none!important}.preview-layer[data-preview-mode="readonly"] .manual-readonly-preview>h2{display:block!important;width:100%!important;max-width:none!important;margin-right:0!important;padding:0!important;box-sizing:border-box!important}

/* 新建微推上传封面后立即打开裁剪窗；图片仍在处理时，两种比例预览都显示居中加载动画。 */
#cover-crop-dialog .cover-crop.is-loading{background:#f4f7f5!important}
#cover-crop-dialog .cover-crop.is-loading>img{opacity:0!important}
#cover-crop-dialog .cover-crop .spinner{font-size:28px;position:relative;display:inline-block;width:1em;height:1em;pointer-events:none}
#cover-crop-dialog .cover-crop .spinner.center{position:absolute;left:0;right:0;top:0;bottom:0;margin:auto}
#cover-crop-dialog .cover-crop .spinner-blade{position:absolute;left:.4629em;bottom:0;width:.074em;height:.2777em;border-radius:.0555em;background-color:transparent;transform-origin:center -.2222em;transform:rotate(calc(var(--spinner-index)*30deg));animation:compose-cover-spinner-fade 1s infinite linear;animation-delay:calc(var(--spinner-index)*-.083s)}
@keyframes compose-cover-spinner-fade{0%{background-color:#69717d}100%{background-color:transparent}}

/* 撤回/重做完成后定位到实际变更处：外层用于定位，文字层短暂着色以便一眼辨认。 */
.v12-undo-change-highlight{outline:2px solid rgba(7,193,96,.68)!important;outline-offset:4px;border-radius:10px;animation:v12-undo-pulse 1.8s ease-out both}
.v12-undo-text-highlight{background-color:rgba(255,234,130,.54)!important;border-radius:4px;transition:background-color .2s ease}
@keyframes v12-undo-pulse{0%{box-shadow:0 0 0 0 rgba(7,193,96,.42)}35%{box-shadow:0 0 0 9px rgba(7,193,96,.12)}100%{box-shadow:0 0 0 0 rgba(7,193,96,0)}}
.manual-edit-preview-body.manual-verbatim-preview-body{line-height:normal;overflow-wrap:normal;word-break:normal}.manual-edit-preview-body.manual-verbatim-preview-body *{white-space:revert!important}

/* Four primary creation actions share one visual language.  Their workflows
   remain separate; only the button presentation is unified. */
button[data-action="v12-submit-preview"],
button[data-action="preview-manual"],
button[data-action="add-recurring-plan"],
.create-task-row button[data-action="create-patrol-task"]{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  justify-self:center!important;
  width:min(100%,16rem)!important;
  min-height:48px!important;
  margin:.8rem auto!important;
  padding:.55rem 1.4rem!important;
  border:1px solid var(--ws-primary)!important;
  border-radius:12px!important;
  background:linear-gradient(135deg,#287db2,#176493)!important;
  color:#fff!important;
  font-size:1rem!important;
  font-weight:600!important;
  line-height:1.2!important;
  box-shadow:0 6px 15px rgba(31,99,149,.20)!important;
}
button[data-action="v12-submit-preview"]:hover,
button[data-action="preview-manual"]:hover,
button[data-action="add-recurring-plan"]:hover,
.create-task-row button[data-action="create-patrol-task"]:hover{background:linear-gradient(135deg,#328bc2,#1c6fa3)!important}

/* 新建微推的空白页只有一个横向居中的“立刻生成”。提交预览则不再
   额外塞入会挤偏文字的装饰圆点，避免手机端看起来像竖版旧操作框。 */
[data-panel="compose"] .editor-preview-actions.is-empty{
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  width:100%!important;
  min-height:0!important;
}
[data-panel="compose"] .editor-preview-actions.is-empty .v12-primary-action{
  display:inline-flex!important;
  width:auto!important;
  min-width:9rem!important;
  margin:.6rem auto!important;
  white-space:nowrap;
}
[data-panel="compose"] .editor-preview-actions.is-empty .v12-primary-action[hidden]{
  display:none!important;
}
.editor-preview-actions>button[data-action="v12-submit-preview"]::before{
  content:none!important;
}
@media(max-width:720px){
  button[data-action="v12-submit-preview"],
  button[data-action="preview-manual"],
  button[data-action="add-recurring-plan"],
  .create-task-row button[data-action="create-patrol-task"]{width:min(100%,18rem)!important;margin:.7rem auto!important}
}

/* Review submission is a deliberate next step: echo the pale-blue save
   action with a restrained pale-red surface, without looking destructive. */
button.submit-review-button:not(.is-submitting):not(.is-submit-failed):not(:disabled),
button[data-action="submit-manual-preview"]:not(.is-submitting):not(.is-submit-failed):not(:disabled),
button[data-action="submit-manuscript"]:not(.is-submitting):not(.is-submit-failed):not(:disabled),
button[data-action="common-template-submit-manuscript"]:not(.is-submitting):not(.is-submit-failed):not(:disabled),
button[data-action="submit-merged-manuscripts"]:not(.is-importing):not(.is-submitting):not(.is-submit-failed):not(:disabled){
  min-height:42px!important;
  padding:.5rem 1rem!important;
  border:1px solid #f2b8b8!important;
  border-radius:.55rem!important;
  background:#fdecec!important;
  color:#a83232!important;
  font-weight:400!important;
  line-height:1.2!important;
  box-shadow:0 3px 8px rgba(168,50,50,.12)!important;
}
button.submit-review-button:not(.is-submitting):not(.is-submit-failed):not(:disabled):hover,
button.submit-review-button:not(.is-submitting):not(.is-submit-failed):not(:disabled):focus-visible,
button[data-action="submit-manual-preview"]:not(.is-submitting):not(.is-submit-failed):not(:disabled):hover,
button[data-action="submit-manuscript"]:not(.is-submitting):not(.is-submit-failed):not(:disabled):hover,
button[data-action="common-template-submit-manuscript"]:not(.is-submitting):not(.is-submit-failed):not(:disabled):hover,
button[data-action="submit-merged-manuscripts"]:not(.is-importing):not(.is-submitting):not(.is-submit-failed):not(:disabled):hover{
  border-color:#e79d9d!important;
  background:#f9dada!important;
  color:#902626!important;
}

/* 左右滑动样式选择卡使用横向示意图，样式二默认按 4:3 预览。 */
.template-diagram[data-layout="slideshow"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.template-diagram[data-layout="slideshow-2"]{grid-template-columns:repeat(3,minmax(0,1fr))}
.template-diagram[data-layout="slideshow"] i,.template-diagram[data-layout="slideshow-2"] i{aspect-ratio:4/3}

/* 样式选择卡直接展示真实布局，图片未上传时使用灰色占位。 */
.template-real-preview{display:block;min-width:0;overflow:hidden;border:1px solid #d7dde4;border-radius:.45rem;background:#fff;padding:.35rem}
.template-option-single{display:block!important;padding:.45rem!important;text-align:left}.template-option-single .template-real-preview{width:100%;padding:.35rem}.template-option-single .template-real-image{width:100%}.template-option-single .template-real-image.single-2{display:block}.template-option-single .template-real-image small{font-size:.76rem;line-height:1.45;padding:.45rem;color:#536170;background:#fff;text-align:center}
.template-preview-placeholder{display:block;background:linear-gradient(135deg,#d9dee5,#b8c1cb);color:#68717d;text-align:center;font-size:.68rem;line-height:3.2rem;overflow:hidden;background:#d9eef5 url('/static/public-image-default.png') center/cover no-repeat!important;color:transparent!important}

.template-preview-placeholder>img{display:block!important;width:100%!important;height:100%!important;min-height:100%!important;object-fit:cover!important;opacity:1!important}
.gallery-default-image{content:url('/static/public-image-default.png');opacity:1!important}
.template-real-image{display:block;line-height:0}.template-real-image small{display:block;padding:.25rem;color:#fff;background:#3f84ec;text-align:center;font-size:.68rem;line-height:1.2}.template-real-image.row{display:flex;align-items:center;gap:3px}.template-real-image.row>.template-preview-placeholder{flex:1;min-width:0}.template-real-image.double-2>.template-preview-placeholder:first-child{flex:43}.template-real-image.double-2>.template-preview-placeholder:last-child{flex:53}.template-real-image.row.three>.template-preview-placeholder{flex:1}.template-real-image.row.triple-2>span{display:grid;flex:1;gap:3px}.template-real-image.grid{display:grid;grid-template-columns:1fr 1fr;gap:3px}.template-real-image.seamless{display:grid;gap:0}.template-real-title{display:flex;align-items:center;gap:.35rem;padding:.35rem 0;color:#333;font-size:.8rem}.template-real-title i{width:3px;height:22px;background:#ee6c62;border-radius:3px}.template-real-title strong{font-size:.85rem}.template-real-title-double{display:grid;justify-items:center;gap:.1rem;border-bottom:1px solid #c3d69b}.template-real-title-double small{color:#837f7e;font-size:.7rem}.template-real-paragraph{margin:0;text-indent:2em;text-align:justify;font-size:.72rem;line-height:1.7;color:#263238}.template-real-paragraph-styled{padding:.65rem .45rem;background:#fffbf5;border-top:2px solid #3fc4c4;border-bottom:2px solid #eb6d79;color:#32433a;font-size:.7rem;line-height:1.55}.template-real-slideshow{position:relative;overflow:hidden}.template-real-slideshow>section{display:flex;gap:3px;overflow:hidden}.template-real-slideshow>section>.template-preview-placeholder{flex:0 0 75%}.template-real-slideshow.style-two>section>.template-preview-placeholder{flex:0 0 31.333%}.template-real-slideshow>b{position:absolute;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:18px;height:24px;background:#3f84ec;color:#fff;font-size:1.1rem;line-height:1}.template-real-slideshow>b:nth-of-type(1){left:0}.template-real-slideshow>b:nth-of-type(2){right:0}
.gallery-editor-final-preview{width:100%;margin:.7rem 0 1rem;padding:.55rem;border:1px solid #d7e4ec;border-radius:.65rem;background:#fff;box-shadow:0 5px 16px rgba(35,69,90,.08)}.gallery-editor-final-preview>section{width:100%}.gallery-editor-final-preview img{max-width:100%}
.template-real-slideshow.style-two>section{justify-content:center}.template-real-slideshow.style-two>section>.template-preview-placeholder{flex-basis:75%}
.gallery-editor-slots[data-layout="slideshow-2"]{
  display:flex!important;
  flex-wrap:wrap;
  align-items:flex-start;
  overflow-x:auto;
  overflow-y:hidden;
  gap:.55rem;
  padding:.12rem .1rem .4rem;
  scroll-snap-type:x mandatory;
  scroll-padding-inline:.1rem;
  touch-action:pan-x pan-y!important;
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
}
.gallery-editor-slots[data-layout="slideshow-2"] .gallery-editor-slot{
  flex:0 0 75%;
  width:75%;
  min-width:0;
  aspect-ratio:4/3;
  scroll-snap-align:start;
  touch-action:pan-x pan-y;
}
.gallery-editor-slots[data-layout="slideshow-2"] .slideshow-arrow-color-field{
  flex:0 0 100%;
  width:100%;
  display:block;
  margin-top:.15rem;
  padding-top:.65rem;
  border-top:1px solid #e1e8ed;
}
.gallery-editor-slots[data-layout="slideshow-2"] .slideshow-arrow-color-field>span{
  display:block;
  margin-bottom:.45rem;
}
.gallery-editor-slots[data-layout="slideshow-2"] .slideshow-arrow-color-palette{
  display:flex;
  width:100%;
  flex-wrap:wrap;
  align-items:center;
  gap:.38rem;
}
@media(max-width:720px){
  .gallery-editor-slots[data-layout="slideshow-2"] .gallery-editor-slot{
    flex-basis:86%;
    width:86%;
  }
}
/* 新建微推：正文生成前只显示生成按钮，手机键盘弹出时按钮固定在可视区域。 */
@media(max-width:720px){
  /* While writing raw body text, the real primary action is the outer
     “生成” button.  Dock that button above the keyboard and let the shared
     caret-reveal code measure this same dock. */
  body.v12-body-input-active .editor-preview-actions,
  body.v12-body-input-active .v12-body-editor-actions{
    position:fixed!important;
    z-index:70;
    left:.7rem;
    right:.7rem;
    bottom:calc(var(--v12-keyboard-inset,0px) + env(safe-area-inset-bottom) + .55rem);
    margin:0!important;
    padding:.42rem;
    border:1px solid rgba(141,184,209,.7);
    border-radius:.8rem;
    background:rgba(255,255,255,.97);
    box-shadow:0 5px 18px rgba(37,71,93,.18);
  }
  body.v12-body-input-active .editor-preview-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:.45rem!important;
  }
  body.v12-body-input-active .editor-preview-actions .v12-undo,
  body.v12-body-input-active .editor-preview-actions .v12-redo{
    display:none!important;
  }
  body.v12-body-input-active .editor-preview-actions .v12-primary-action,
  body.v12-body-input-active .editor-preview-actions .v12-body-cancel,
  body.v12-body-input-active .v12-body-editor-actions>button{
    width:100%;
    min-height:46px;
    margin:0;
  }
  /* Keep the paste field immediately above the single generate action.  Both
     are measured from the visual viewport, so the software keyboard cannot
     cover the text the user is entering. */
  body.v12-body-input-active .v12-body-editor{
    position:fixed!important;
    z-index:69;
    left:.7rem;
    right:.7rem;
    top:calc(env(safe-area-inset-top) + .5rem);
    bottom:calc(var(--v12-keyboard-inset,0px) + env(safe-area-inset-bottom) + var(--v12-body-action-height,56px) + .65rem);
    box-sizing:border-box;
    margin:0!important;
    padding:.42rem!important;
    border:1px solid rgba(141,184,209,.7);
    border-radius:.8rem;
    background:rgba(255,255,255,.98);
    box-shadow:0 5px 18px rgba(37,71,93,.18);
  }
  body.v12-body-input-active .v12-body-editor .stack-field{margin:0!important}
  body.v12-body-input-active .v12-body-editor textarea{display:block;width:100%;height:100%!important;min-height:0!important;max-height:none!important;box-sizing:border-box;margin:0;resize:none;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}
}
.v12-body-cancel[hidden]{display:none!important}
.v12-compose-empty #compose-save-state,.v12-compose-empty #saved-manuscript-preview{display:none!important}
.compose-panel.is-final-stage .v12-body-editor{display:none!important}
.compose-panel .v12-title-field{display:block;width:100%;margin:.75rem 0}
.compose-panel .v12-title-field input{display:block;width:100%;min-width:0;box-sizing:border-box;margin:0}
.compose-panel>#v12-cover-frame{width:100%!important;margin:.75rem 0!important;box-sizing:border-box}
.compose-panel .v12-body-editor{padding:.45rem;margin:.45rem 0}
.compose-panel .v12-body-editor textarea{height:7.4rem;min-height:7.4rem;max-height:11rem}
.compose-panel .v12-body-editor-actions{margin-top:.15rem}

/* 首页导入文字：首段可直接作为标题。开关只服务于本输入框，不影响正文编辑器。 */
.v12-body-editor{position:relative}.v12-body-title-switch.checkbox-wrapper-35{position:absolute;z-index:2;right:.9rem;bottom:.72rem;display:flex;margin:0;padding:.18rem .3rem;border-radius:999px;background:rgba(255,255,255,.88)}.v12-body-editor textarea{padding-bottom:2.15rem!important}.checkbox-wrapper-35 .switch{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}.checkbox-wrapper-35 .switch+label{display:flex;align-items:center;color:#687580;cursor:pointer;font-size:12px;line-height:15px;position:relative;user-select:none}.checkbox-wrapper-35 .switch+label::before,.checkbox-wrapper-35 .switch+label::after{content:'';display:block}.checkbox-wrapper-35 .switch+label::before{width:25px;height:15px;margin-right:7px;border-radius:999px;background:#718096;transition:background-color .125s ease-out}.checkbox-wrapper-35 .switch+label::after{position:absolute;top:1px;left:1px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 2px 3px rgba(37,34,71,.14);transition:transform .125s ease-out}.checkbox-wrapper-35 .switch+label .switch-x-text{display:block;font-weight:600}.checkbox-wrapper-35 .switch+label .switch-x-hiddenlabel{position:absolute;visibility:hidden}.checkbox-wrapper-35 .switch:checked+label{color:#078b4c}.checkbox-wrapper-35 .switch:checked+label::before{background:#07c160}.checkbox-wrapper-35 .switch:checked+label::after{transform:translate3d(10px,0,0)}.checkbox-wrapper-35 .switch:focus-visible+label::before{outline:2px solid rgba(7,193,96,.38);outline-offset:2px}.checkbox-wrapper-35 .switch:disabled+label{opacity:.45;cursor:default}

/* 审核人选项卡：小而清晰，选中仅通过颜色区分。 */
.preview-recipients .recipient-chip{
  display:inline-flex!important;
  align-items:stretch!important;
  min-width:4.5rem!important;
  padding:0!important;
  border:1px solid #d5dbe1!important;
  border-radius:.5rem!important;
  box-shadow:none!important;
}
.preview-recipients .recipient-chip:not(.is-selected){background:#f1f3f5!important;color:#7b838c!important}
.preview-recipients .recipient-chip.is-selected{background:#e8f6ee!important;color:#12683a!important;box-shadow:none!important}
.preview-recipients .recipient-pick{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-height:30px!important;
  padding:.22rem .55rem!important;
  font-weight:400!important;
  line-height:1.2!important;
  text-align:center!important;
}
.preview-recipients .recipient-chip.is-selected .recipient-pick{font-weight:400!important}

/* 自动巡检页尾信息：与创建转发保持同一张信息卡的视觉语言，
   但改为可点击的选项卡；选中后再次点击才进入姓名编辑。 */
.patrol-footer-fields .patrol-footer-hint{grid-column:1/-1;margin:.05rem 0 .45rem;color:#68717d;font-size:.78rem}
.patrol-footer-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}
.patrol-footer-item{min-width:0}
.patrol-footer-toggle{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.15rem;width:100%;min-height:58px;padding:.5rem .6rem;border:1px solid #d5dbe1;border-radius:.55rem;background:#f1f3f5;color:#58616c;text-align:left;transition:background-color .12s,border-color .12s,color .12s,box-shadow .12s}
.patrol-footer-toggle span{font-weight:600;line-height:1.2}
.patrol-footer-toggle small{min-width:0;max-width:100%;overflow:hidden;color:#7b838c;font-size:.72rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.patrol-footer-item.is-selected .patrol-footer-toggle{border-color:#45a46e;background:#e8f6ee;color:#12683a;box-shadow:0 0 0 2px rgba(69,164,110,.12)}
.patrol-footer-item.is-selected .patrol-footer-toggle small{color:#2f8054}
.patrol-footer-item.is-editing .patrol-footer-toggle{display:none}
.patrol-footer-item>input{display:block;width:100%;min-width:0;box-sizing:border-box;min-height:42px;margin:0;padding:.5rem .6rem;border:1px solid #45a46e;border-radius:.55rem;background:#fff;box-shadow:0 0 0 2px rgba(69,164,110,.12);font-size:16px}
.patrol-footer-item>input[hidden]{display:none}
.patrol-admin-footer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.patrol-admin-footer-item{display:grid;gap:.25rem;min-width:0}
.patrol-admin-footer-item>label:first-child{display:grid;gap:.2rem}
.patrol-admin-footer-item .patrol-default-off{display:flex;align-items:center;gap:.25rem;color:#68717d;font-size:.76rem;white-space:nowrap}
.patrol-admin-footer-item .patrol-default-off input{width:16px;min-height:16px;margin:0}
@media(max-width:720px){.patrol-footer-grid,.patrol-admin-footer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem}.patrol-footer-toggle{min-height:56px;padding:.45rem .4rem}.patrol-footer-toggle span{font-size:.88rem}.patrol-footer-toggle small{font-size:.68rem}.patrol-admin-footer-item .patrol-default-off{font-size:.68rem;white-space:normal}}

/* 刷新空白的新建微推时，生成按钮始终保持横向单行。
   避免移动端的通用操作栏栅格把它挤成旧的竖版窄按钮。 */
@media(max-width:720px){
  body:not(.v12-body-input-active) [data-panel="compose"] #v12-compose-actions.is-empty{
    position:static!important;
    display:flex!important;
    grid-template-columns:none!important;
    justify-content:center!important;
    align-items:center!important;
    width:100%!important;
    min-height:0!important;
    margin:.6rem 0 0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  body:not(.v12-body-input-active) [data-panel="compose"] #v12-compose-actions.is-empty .v12-primary-action{
    display:inline-flex!important;
    flex:0 0 auto!important;
    width:auto!important;
    min-width:9rem!important;
    writing-mode:horizontal-tb!important;
    white-space:nowrap!important;
  }
}

/* Empty compose state has one real action only.  This selector intentionally
   does not depend on focus state: a stale mobile focus class must never turn
   the generate action into the old vertical grid button. */
[data-panel="compose"] #v12-compose-actions.is-empty{
  display:flex!important;
  grid-template-columns:none!important;
  grid-auto-flow:initial!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-height:0!important;
}
[data-panel="compose"] #v12-compose-actions.is-empty>.v12-primary-action:not([hidden]){
  display:inline-flex!important;
  flex:0 0 auto!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:9rem!important;
  min-height:42px!important;
  margin:.6rem auto!important;
  padding:.55rem 1.35rem!important;
  writing-mode:horizontal-tb!important;
  text-orientation:mixed!important;
  white-space:nowrap!important;
}

/* 平台管理员：页尾信息的启用方块、名称与竖线后默认内容在同一行维护。 */
.platform-footer-options{display:grid;gap:.5rem;margin:.55rem 0}
.platform-footer-option-row{display:grid;grid-template-columns:auto minmax(7rem,1fr) minmax(10rem,1.5fr) auto;align-items:end;gap:.45rem;padding:.5rem;border:1px solid #dce4e8;border-radius:.55rem;background:#fbfdfe}
.platform-footer-option-row>label{display:grid;gap:.22rem;min-width:0;color:#526170;font-size:.78rem}
.platform-footer-option-row input[type="text"]{min-width:0;box-sizing:border-box}
.platform-footer-option-enabled{display:grid!important;place-items:center!important;width:34px;min-height:38px;padding-bottom:.05rem}
.platform-footer-option-enabled>input{width:14px;height:14px;min-height:0;margin:0}
.platform-page-notices{display:grid;gap:.5rem;margin:.55rem 0}
.platform-page-notice-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.5rem;padding:.5rem;border:1px solid #dce4e8;border-radius:.55rem;background:#fbfdfe}
.platform-page-notice-row label{display:grid;gap:.22rem;min-width:0;color:#526170;font-size:.78rem}
.platform-page-notice-row input{min-width:0;box-sizing:border-box}
@media(max-width:520px){.platform-page-notice-row{grid-template-columns:minmax(0,1fr) auto}.platform-page-notice-row button{min-height:38px}}
@media(max-width:720px){.platform-footer-option-row{grid-template-columns:auto minmax(0,1fr) auto}.platform-footer-option-row>label:nth-child(3){grid-column:2/4}.platform-footer-option-row>.platform-delete-button{grid-column:3;grid-row:1}}

/* 平台管理员：页面说明集中维护。只保留页面选择、节奏和内容，避免重复标签与松散操作行。 */
.page-description-settings{padding-block:.8rem!important}
.page-description-settings h2{margin-bottom:.5rem}
.page-description-controls{display:grid;grid-template-columns:minmax(10rem,1fr) 7rem auto;align-items:end;gap:.45rem}
.page-description-controls label{display:grid;gap:.2rem;min-width:0;color:#60707b;font-size:.76rem}
.page-description-controls select,.page-description-controls input{min-width:0;min-height:36px;box-sizing:border-box;margin:0}
.page-description-controls button{min-height:36px;padding:.35rem .7rem;white-space:nowrap}
.platform-page-description-messages{display:grid;gap:.38rem;margin:.5rem 0}
.platform-page-description-row{position:relative;display:block;padding:0}
.platform-page-description-row input{width:100%;min-height:38px;box-sizing:border-box;padding:.5rem 2.2rem .5rem .62rem;border:1px solid #dce4e8;border-radius:.48rem;background:#fff;color:#273a48}
.platform-page-description-row button{position:absolute;top:50%;right:.45rem;display:grid;place-items:center;width:18px;min-width:18px;height:18px;min-height:18px;margin:0;padding:0;border:0;border-radius:50%;background:#d8dde2;color:#6f7982;font-size:15px;font-weight:500;line-height:1;transform:translateY(-50%)}
.platform-page-description-row button:hover{background:#bcc5cc;color:#36434c}
.page-description-save-row{margin-top:.1rem}.page-description-save-row .publish{min-height:38px;padding:.45rem 1.1rem}
#platform-page-descriptions-status{min-height:1.2em;margin:.3rem 0 0;color:#6d7c86;font-size:.78rem}
@media(max-width:520px){.page-description-controls{grid-template-columns:minmax(0,1fr) 5.2rem auto;gap:.35rem}.page-description-controls button{padding:.35rem .52rem}.page-description-controls label{font-size:.7rem}}

/* 新建微推封面仅收紧右上角三枚编辑图标；不影响图片编辑器内的图标。 */
#v12-cover-frame>.cover-frame-tools button{width:25px!important;min-width:25px!important;height:25px!important;min-height:25px!important}
#v12-cover-frame>.cover-frame-tools button svg{width:14px!important;height:14px!important}
@media(max-width:720px){#v12-cover-frame>.cover-frame-tools button{width:25px!important;min-width:25px!important;height:25px!important;min-height:25px!important}#v12-cover-frame>.cover-frame-tools button svg{width:14px!important;height:14px!important}}
/* 公共账户服务页面 */
.nav-divider{display:block;width:72%;height:1px;margin:.65rem auto .35rem;background:#d8e3eb}
.navigation-drawer{overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain}
.navigation-drawer>.nav-divider{flex:0 0 1px}
/* 三个公共入口固定在手机抽屉底部，打开导航即可直接看到。 */
@media(max-width:720px){
  .navigation-drawer{padding-bottom:13rem!important;overflow-y:hidden!important}
  .navigation-drawer>.nav-divider{display:none!important}
  .navigation-drawer>button[data-nav-target="profile"],
  .navigation-drawer>button[data-nav-target="feedback"],
  .navigation-drawer>button[data-nav-target="updates"]{position:absolute!important;left:.8rem!important;right:.8rem!important;width:auto!important;margin:0!important}
  .navigation-drawer>button[data-nav-target="profile"]{bottom:calc(7.2rem + env(safe-area-inset-bottom))!important}
  .navigation-drawer>button[data-nav-target="feedback"]{bottom:calc(3.7rem + env(safe-area-inset-bottom))!important}
  .navigation-drawer>button[data-nav-target="updates"]{bottom:calc(.2rem + env(safe-area-inset-bottom))!important}
}
.platform-feedback-list{display:grid;gap:.55rem}.platform-feedback-item{padding:.65rem .75rem;border:1px solid #e0e7ec;border-radius:.55rem;background:#fbfcfd}.platform-feedback-item>div{display:flex;justify-content:space-between;gap:.75rem}.platform-feedback-item time{color:#798691;font-size:.76rem}.platform-feedback-item p{margin:.35rem 0 0;white-space:pre-wrap;line-height:1.55;color:#43525c}
.platform-feedback-reply{margin-top:.6rem;padding:.55rem .65rem;border-radius:.45rem;background:#eefaf2}.platform-feedback-reply>strong{color:#079c4e;font-size:.8rem}.platform-feedback-reply-editor{display:grid;gap:.3rem;margin-top:.65rem;color:#52626d;font-size:.8rem}.platform-feedback-reply-editor input{min-height:36px;padding:0 .55rem;border:1px solid #d8e2e9;border-radius:.45rem;background:#fff;color:#25384e;font:inherit}.platform-feedback-item [data-feedback-reply-save]{min-height:34px;margin-top:.45rem;padding:0 .7rem;border:1px solid #07c160;border-radius:.45rem;background:#fff;color:#079c4e;font:inherit;font-weight:650}
.account-center,.help-feedback,.release-notes{max-width:720px;margin-inline:auto}
.account-profile-card{display:grid;gap:.65rem;padding:.85rem;border:1px solid #dce6ec;border-radius:.7rem;background:#fbfdfe}
.account-profile-head,.account-expiry,.account-feature{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.account-profile-head strong{font-size:1.05rem;color:#24495f}.account-profile-head span{font-size:.78rem;color:#6f8391}.account-expiry{padding:.55rem .65rem;border-radius:.5rem;background:#edf7f1;color:#347052}.account-feature-list{display:grid;gap:.4rem}.account-feature{padding:.55rem .65rem;border:1px solid #e1e7eb;border-radius:.5rem;font-size:.88rem}.account-feature b{font-size:.78rem;font-weight:500;text-align:right}.account-feature.is-active b{color:#168a48}.account-feature.is-expired{border-color:#f0d7d7;background:#fffafa}.account-feature.is-expired b{color:#b34b4b}.account-password-form{display:grid;gap:.55rem;margin-top:1rem;padding-top:.85rem;border-top:1px solid #e4eaee}.account-password-form label{display:grid;gap:.25rem}.account-password-form .publish{justify-self:start}.account-form-status,#help-feedback-status{min-height:1.3em;margin:0;color:#68717d;font-size:.84rem}.feedback-submit-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.6rem}.feedback-submit-row span{color:#77848d;font-size:.8rem}.release-note{padding:.75rem 0;border-bottom:1px solid #e4eaee}.release-note>div{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.release-note strong{color:#176493}.release-note time{color:#7b8791;font-size:.78rem}.release-note p{margin:.35rem 0 0;color:#52626d;font-size:.88rem;line-height:1.6}.release-note ul{margin:.4rem 0 0;padding-left:1.25rem;color:#52626d;font-size:.84rem;line-height:1.65}.release-note li{margin:.12rem 0}@media(max-width:520px){.account-profile-head,.account-expiry,.account-feature{align-items:flex-start;flex-direction:column;gap:.25rem}.account-feature b{text-align:left}.feedback-submit-row .publish{min-width:96px}}

/* Empty-compose keyboard bar: two equal actions, fully contained on mobile. */
@media(max-width:720px){
  body.v12-body-input-active [data-panel="compose"] #v12-compose-actions.is-empty{
    left:.7rem!important;
    right:.7rem!important;
    width:auto!important;
    max-width:calc(100vw - 1.4rem)!important;
    box-sizing:border-box!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:.45rem!important;
    overflow:hidden!important;
  }
  body.v12-body-input-active [data-panel="compose"] #v12-compose-actions.is-empty>.v12-body-cancel:not([hidden]),
  body.v12-body-input-active [data-panel="compose"] #v12-compose-actions.is-empty>.v12-primary-action:not([hidden]){
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:46px!important;
    margin:0!important;
    padding:.55rem .7rem!important;
    white-space:nowrap!important;
  }
}
