/* 村村响 · 播报工作台 */
.vbody{background:#eef2f6}
.vbody .stage{background:#eef2f6}
.warnbar{display:flex;align-items:center;gap:10px;background:linear-gradient(90deg,#7f1d1d,#b91c1c);
  color:#fff;border-radius:10px;padding:10px 16px;font-size:12.5px;margin-bottom:14px}
.warnbar b{font-weight:700}
.dot-live{width:8px;height:8px;border-radius:50%;background:#fecaca;box-shadow:0 0 0 0 rgba(254,202,202,.8);
  animation:pulse 1.8s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(254,202,202,0)}100%{box-shadow:0 0 0 0 rgba(254,202,202,0)}}
.warnbar-time{margin-left:auto;font-family:Consolas,monospace;opacity:.85}

.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:14px}
.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;min-width:0}
.panel-head{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}
.panel-head h2{margin:0;font-size:14px;font-weight:700}
.panel-head .hint{font-size:11px;color:var(--muted)}

.field-row{display:flex;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.field-row label,.block{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}
.field-row label{flex:1;min-width:110px}
.field-row select,.block input,#draft{width:100%;border:1px solid var(--line);border-radius:8px;
  padding:8px 10px;font:inherit;font-size:12.5px;color:var(--ink);background:#fff;outline:none}
.field-row select:focus,.block input:focus,#draft:focus{border-color:var(--brand2)}
.block{margin-bottom:12px}
#draft{resize:vertical;line-height:1.8}

.villages{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 12px}
.vchip{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;
  padding:6px 10px;font-size:12px;cursor:pointer;background:#fff;transition:.15s}
.vchip.on{border-color:var(--brand2);background:#eef6fd;color:var(--brand)}
.vchip small{color:var(--muted);font-size:10.5px}

.btn.wide{width:100%;margin-bottom:12px}
.dialects{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.dchip{border:1px solid var(--line);border-radius:20px;padding:5px 12px;font-size:12px;
  background:#fff;color:var(--ink2);cursor:pointer}
.dchip.on{background:var(--brand);border-color:var(--brand);color:#fff}

.progress{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--muted);margin-bottom:10px}
.progress i{width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--brand2);
  border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.board-head{display:flex;gap:14px;font-size:11.5px;color:var(--muted);padding:6px 2px 10px;
  border-bottom:1px solid var(--line);margin-bottom:8px}
.board-head b{color:var(--ink)}
.board-head .ok b{color:#0f7a4d}
.board-head .warn b{color:#b45309}

.rows{display:flex;flex-direction:column;gap:6px;max-height:430px;overflow-y:auto}
.rows .empty{color:var(--muted);font-size:12px;margin:10px 0}
.row{border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:#fbfcfe;font-size:12px}
.row-top{display:flex;align-items:center;gap:8px}
.row-top .v{font-weight:700}
.row-top .d{font-size:10.5px;background:#eef3f9;color:var(--brand);border-radius:4px;padding:1px 6px}
.row-top .st{margin-left:auto;font-size:10.5px;padding:1px 8px;border-radius:99px}
.st.wait{background:#fef3c7;color:#92400e}
.st.played{background:#dbeafe;color:#1d4ed8}
.st.signed{background:#d1fae5;color:#065f46}
.row-text{color:var(--ink2);line-height:1.6;margin-top:4px;max-height:3.2em;overflow:hidden}
.row-act{display:flex;gap:6px;margin-top:6px}
.row-act button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:2px 9px;
  font-size:10.5px;color:var(--ink2);cursor:pointer}
.row-act button:hover{border-color:var(--brand2);color:var(--brand)}

.foot-note{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;
  background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 16px;
  font-size:11.5px;color:var(--muted);line-height:1.7}
.foot-note b{color:var(--ink2);margin-right:6px}

@media (max-width:1100px){ .grid2{grid-template-columns:1fr} .foot-note{grid-template-columns:1fr} }
