/* Store and chain dashboards (spec §12.4) and the director's console (spec §13.2). Numbers in a serif face; the main trend
   line eucalyptus green, comparisons in neutral ink; thin-ruled tables whose rows open; complaints in vermilion; no ranking
   colours. */
.main{position:relative}
.board{position:absolute;inset:0;z-index:6;overflow:auto;background:#f6f7f4;padding:22px 28px 60px}
.board-head{justify-content:space-between;align-items:flex-start;margin-bottom:16px}
.board-head h1{font-family:"Songti SC","STSong","Noto Serif SC",serif;font-size:28px;margin:4px 0}
.board section{margin:22px 0}
.board h2{font-size:15px;color:#4c6653;margin:0 0 10px;font-weight:600;letter-spacing:.5px}
.board h3{font-size:14px;margin:14px 0 6px}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.kpi{background:#fff;border:1px solid #dbe1d8;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.kpi b{font-family:"Songti SC","STSong","Noto Serif SC",serif;font-size:34px;line-height:1.1;font-weight:600;color:#1f3a2e}
.charts{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.chart{background:#fff;border:1px solid #dbe1d8;border-radius:12px;padding:10px 12px;margin:0}
.chart figcaption{font-size:13px;color:#4c6653;margin-bottom:4px}
.chart svg{width:100%;height:auto;display:block}
.chart polyline.main{stroke:#3d7a5c;stroke-width:2.5}.chart circle.main{fill:#3d7a5c}
.chart polyline.compare{stroke:#5b6168;stroke-width:1.8;stroke-dasharray:4 3}.chart circle.compare{fill:#5b6168}
.chart text{font-size:10px;fill:#728076}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px}.legend .main{color:#2f6a4d}.legend .compare{color:#4d5359}
.board .table{overflow-x:auto;background:#fff;border:1px solid #dbe1d8;border-radius:12px}
.board table{border-collapse:collapse;width:100%;font-size:13px}
.board th{text-align:left;font-weight:600;color:#687d6d;padding:10px 12px;border-bottom:1px solid #e3e8e0;white-space:nowrap}
.board td{padding:0 12px;height:52px;border-bottom:1px solid #eef1ec}
.board tbody tr[data-action]{cursor:pointer}.board tbody tr[data-action]:hover{background:#f1f5ef}
.board table.compare td b{font-family:"Songti SC","STSong","Noto Serif SC",serif;font-size:20px}
.spark{width:90px;height:24px}.spark polyline{stroke:#3d7a5c;stroke-width:1.5}
.board .live{background:#fffaf0;border:1px solid #ecd9a8;border-radius:12px;padding:14px 16px}
.board .live h2{color:#8a6414}
.events{list-style:none;padding:0;margin:8px 0;display:grid;gap:6px}.events li{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.events button{min-height:36px;padding:4px 10px;font-size:12px}
.alarm{color:#b23b2a}
blockquote{margin:10px 0;padding:10px 14px;border-left:4px solid #3d7a5c;background:#f4f7f2}
/* AI conclusions are marked and carry their sources. */
.acard .ai{display:inline-block;font-size:11px;color:#8a6414;background:#fff4d6;border-radius:4px;padding:1px 6px;margin-bottom:4px}
.acard .foot{font-size:11px;color:#728076;margin-top:6px}
.acard .metric{display:flex;justify-content:space-between;gap:8px;border-top:1px solid #edf0ea;padding:6px 0}
.acard .metric b{font-family:"Songti SC","STSong","Noto Serif SC",serif;font-size:18px}
/* Rating a finished episode (spec §12.1). */
.rating{margin-top:10px;display:grid;gap:8px}.rating .scores{display:flex;flex-wrap:wrap;gap:6px}.rating .scores button{min-width:44px;min-height:44px;padding:0}
.rated{margin-top:8px;font-size:13px;color:#245339}
@media(max-width:760px){.board{padding:14px 14px 70px}.kpi b{font-size:28px}}
/* Director's console (spec §13.2): compact, same tokens. */
.director{max-width:1240px;margin:0 auto;padding:22px 20px 60px}.director h1{font-family:"Songti SC","STSong","Noto Serif SC",serif}
.director-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:16px}.director .card{margin:0 0 14px}
.director .card h2{font-size:16px;margin-bottom:6px}.director .row button{min-height:44px}
.prompter .cue{font-size:17px;margin:8px 0}.prompter .line{font-size:20px;color:#1f3a2e}
@media(max-width:900px){.director-grid{grid-template-columns:1fr}}
.proposal{margin-top:10px;padding:12px 14px;border:1px solid #dbe1d8;border-radius:12px;background:#fbfbf8;white-space:normal}.proposal p{margin:6px 0}.proposal ol,.proposal ul{margin:4px 0 8px;padding-left:20px}.proposal button{margin-top:8px;min-height:44px}
.quickpick fieldset{border:0;border-top:1px solid #edf0ea;margin:8px 0 0;padding:8px 0 0}.quickpick legend{font-size:14px;font-weight:600;padding:0}.quickpick .opts{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.quickpick .opt{display:inline-flex;align-items:center;gap:6px;margin:0;padding:8px 12px;min-height:44px;border:1px solid #cbd2cb;border-radius:22px;background:#fff;font-size:14px;cursor:pointer}.quickpick .opt input{width:auto;margin:0}.quickpick .must{margin-top:6px;border-style:dashed}
.acard .reasons{font-size:13px;color:#245339;margin:4px 0}
/* A request in the conversation: its card under the message; one that was replaced or withdrawn is struck through. */
.message .reqcard{margin:6px 0 0;padding:12px 14px;width:min(100%,460px);text-align:left}.message .reqcard dl{grid-template-columns:64px 1fr;margin:8px 0}
.message.retired .bubble{opacity:.55;text-decoration:line-through}.message .retired-note{color:#8a8f86;margin-top:4px}
