:root {
  color-scheme: light;
  --primary: #0f766e; --primary-light: #14a89d; --primary-pale: #e8f7f3; --sidebar: #0b2f2d;
  --bg: #f3f7f6; --panel: #fff; --text: #16312f; --text-2: #405b58; --muted: #6f8581; --line: #dce8e5;
  --danger: #c73543; --danger-pale: #fff0f1; --warning: #a85d12; --warning-pale: #fff5e8;
  --info: #087f94; --info-pale: #e8f7fa; --purple: #6f63a7; --radius: 12px; --shadow: 0 1px 2px rgba(15,47,45,.05), 0 8px 24px rgba(15,47,45,.045);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body { min-width: 320px; background: var(--bg); color: var(--text); font-size: 14px; line-height:1.5; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; touch-action:manipulation; }
.hidden { display: none !important; }
.app-shell { min-height: 100vh; }

.app-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 50; width: 188px; display: flex; flex-direction: column; background: var(--sidebar); color: #fff; }
.brand { min-height: 70px; display: flex; align-items: center; gap: 9px; padding: 0 13px; border-bottom: 1px solid rgba(255,255,255,.09); }
.brand-mark { width: 32px; height: 32px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 8px; background: #52b788; color: #173326; font-size: 10px; font-weight: 800; }
.brand-copy { min-width: 0; display: flex; flex-direction: column; }
.brand-copy strong { font-size: 11px; font-weight: 650; white-space: nowrap; }
.brand-copy span { margin-top: 3px; color: rgba(255,255,255,.46); font-size: 9px; letter-spacing: .45px; }
.main-nav { flex: 1; padding: 12px 0; }
.nav-item { width: 100%; height: 41px; display: grid; grid-template-columns: 20px 1fr auto; align-items: center; gap: 6px; padding: 0 13px; border: 0; border-left: 3px solid transparent; background: transparent; color: rgba(255,255,255,.65); text-align: left; font-size: 12px; transition: .15s ease; }
.nav-item:hover, .nav-item.active { border-left-color: #52b788; background: rgba(255,255,255,.08); color: #fff; }
.nav-icon { font-size: 16px; text-align: center; opacity: .88; }
.nav-item b { min-width: 21px; padding: 2px 6px; border-radius: 10px; background: rgba(82,183,136,.22); color: #92dbb4; font-size: 10px; text-align: center; }
.sidebar-footer { display: flex; align-items: center; gap: 8px; padding: 13px; border-top: 1px solid rgba(255,255,255,.09); }
.sidebar-footer div { display: flex; min-width: 0; flex-direction: column; }
.sidebar-footer strong { font-size: 11px; font-weight: 550; }
.sidebar-footer small { margin-top: 2px; overflow: hidden; color: rgba(255,255,255,.42); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.sync-dot { width: 7px; height: 7px; border-radius: 50%; background: #52b788; box-shadow: 0 0 0 4px rgba(82,183,136,.12); }

.main-area { min-height: 100vh; margin-left: 188px; }
.topbar { position: sticky; top: 0; z-index: 40; height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 24px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.97); }
.breadcrumb { margin: 0 0 3px; color: var(--muted); font-size: 10px; }
.topbar h1 { margin: 0; font-size: 16px; font-weight: 650; }
.topbar-actions { display: flex; align-items: center; gap: 16px; }
.demo-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 11px; background: #f2f5f3; color: #768078; font-size: 9px; }
.demo-badge i { width: 5px; height: 5px; border-radius: 50%; background: #52b788; }
.top-stat { min-width: 56px; display: flex; align-items: baseline; gap: 6px; }
.top-stat span { color: var(--muted); font-size: 11px; }
.top-stat strong { font-size: 16px; }
.top-stat.danger strong { color: var(--danger); }
.icon-button, .ghost-icon { border: 1px solid var(--line); background: #fff; color: var(--text-2); }
.icon-button { width: 32px; height: 32px; border-radius: 7px; font-size: 18px; }
.icon-button:hover, .ghost-icon:hover { border-color: #b8cbbf; color: var(--primary); }
.icon-button.loading { animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.operator-avatar { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: var(--primary-pale); color: var(--primary); font-size: 12px; font-weight: 700; }
.page { min-height: calc(100vh - 72px); }
.card { border: 1px solid #e9ece9; border-radius: var(--radius); background: var(--panel); box-shadow: var(--shadow); }
.section-kicker { display: block; margin-bottom: 3px; color: #9aa19c; font-size: 8px; font-weight: 700; letter-spacing: 1.2px; }
.section-kicker.green { color: var(--primary-light); }
.primary-button, .secondary-button { min-height: 33px; padding: 0 13px; border-radius: 5px; font-size: 10px; font-weight: 600; }
.primary-button { border: 1px solid var(--primary); background: var(--primary); color: #fff; }
.primary-button:hover { background: var(--primary-light); }
.secondary-button { border: 1px solid var(--line); background: #fff; color: var(--text-2); }
.secondary-button:hover { background: #f7f8f7; }

/* Dashboard */
.dashboard-page { padding: 18px 22px 28px; }
.dashboard-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 14px; }
.dashboard-intro h2 { margin: 0; font-size: 18px; font-weight: 650; }
.dashboard-intro p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.dashboard-intro .primary-button { min-width: 112px; }
.metric-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.metric-card { min-width: 0; min-height: 94px; display: flex; align-items: center; gap: 12px; padding: 15px; color: var(--text); text-align: left; }
button.metric-card { position: relative; transition: .16s ease; }
button.metric-card:hover { transform: translateY(-1px); border-color: #bdd2c4; box-shadow: 0 5px 14px rgba(26,48,37,.08); }
.metric-icon { width: 38px; height: 38px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 9px; font-size: 16px; font-style: normal; font-weight: 700; }
.metric-icon.green { background: var(--primary-pale); color: var(--primary); }
.metric-icon.red { background: var(--danger-pale); color: var(--danger); }
.metric-icon.amber { background: var(--warning-pale); color: var(--warning); }
.metric-icon.blue { background: var(--info-pale); color: var(--info); }
.metric-copy { min-width: 0; display: flex; flex-direction: column; }
.metric-copy small { color: var(--text-2); font-size: 10px; }
.metric-copy strong { margin: 3px 0 2px; font-size: 24px; line-height: 1; }
.metric-copy em { overflow: hidden; color: var(--muted); font-size: 8px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.metric-arrow { margin-left: auto; color: #b7bdb8; }
.dashboard-grid { display: grid; gap: 12px; margin-top: 12px; }
.main-charts { grid-template-columns: 1.15fr 1fr; }
.insights-grid { grid-template-columns: 1fr 1fr .8fr; }
.dashboard-card { min-width: 0; overflow: hidden; }
.card-header { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 16px; border-bottom: 1px solid var(--line); }
.card-header h3 { margin: 0; font-size: 13px; font-weight: 650; }
.header-note { color: var(--muted); font-size: 8px; }
.donut-layout { min-height: 190px; display: flex; align-items: center; justify-content: center; gap: 28px; padding: 17px; }
.donut { --segments: conic-gradient(var(--primary) 0 25%,#e09336 25% 50%,#5992b7 50% 75%,#a7ada9 75%); width: 126px; height: 126px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 50%; background: var(--segments); position: relative; }
.donut::after { content:""; position:absolute; width:76px; height:76px; border-radius:50%; background:#fff; }
.donut > div { z-index:1; display:flex; flex-direction:column; align-items:center; }
.donut strong { font-size:22px; }
.donut span { color:var(--muted); font-size:8px; }
.chart-legend { min-width: 145px; display: flex; flex-direction: column; gap: 10px; }
.legend-button { width: 100%; display: grid; grid-template-columns: 8px 1fr auto; align-items: center; gap: 7px; padding: 2px 0; border: 0; background: transparent; color: var(--text-2); text-align: left; font-size: 9px; }
.legend-button:hover { color: var(--primary); }
.legend-dot { width: 7px; height: 7px; border-radius: 2px; }
.legend-button strong { color: var(--text); font-size: 10px; }
.bar-chart { min-height: 190px; display: flex; flex-direction: column; justify-content: center; gap: 19px; padding: 20px; }
.bar-button { display: grid; grid-template-columns: 44px 1fr 24px; align-items: center; gap: 9px; padding: 0; border: 0; background: transparent; text-align: left; }
.bar-button > span { color: var(--text-2); font-size: 10px; }
.bar-track { height: 9px; overflow: hidden; border-radius: 5px; background: #f0f2f0; }
.bar-track i { display: block; height: 100%; min-width: 6px; border-radius: 5px; transition: width .35s ease; }
.bar-button strong { font-size: 10px; text-align: right; }
.bar-button:hover .bar-track { box-shadow: 0 0 0 2px rgba(45,106,79,.08); }
.progress-layout { min-height: 190px; display: flex; align-items: center; justify-content: center; gap: 22px; padding: 18px; }
.progress-ring { --progress: conic-gradient(var(--primary) 0 0%,#edf0ed 0); width: 112px; height: 112px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 50%; background: var(--progress); position: relative; }
.progress-ring::after { content:""; position:absolute; width:78px; height:78px; border-radius:50%; background:#fff; }
.progress-ring > div { z-index:1; display:flex; flex-direction:column; align-items:center; }
.progress-ring strong { font-size:20px; }
.progress-ring span { color:var(--muted); font-size:8px; }
.progress-copy p { margin: 0 0 8px; color: var(--text-2); font-size: 9px; }
.progress-copy p strong { color: var(--text); font-size: 12px; }
.progress-copy button { padding: 0; border: 0; background: transparent; color: var(--primary); font-size: 8px; }
.timeliness-chart, .risk-list { min-height: 158px; display: flex; flex-direction: column; justify-content: center; gap: 12px; padding: 16px; }
.time-row, .risk-row { display: grid; grid-template-columns: 70px 1fr 28px; align-items: center; gap: 8px; }
.time-row span, .risk-row span { color: var(--text-2); font-size: 9px; }
.mini-track { height: 6px; overflow: hidden; border-radius: 3px; background: #eef1ef; }
.mini-track i { display:block; height:100%; border-radius:3px; }
.time-row strong, .risk-row strong { font-size:9px; text-align:right; }
.info-button { width:20px; height:20px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; background:#fff; color:var(--muted); font:600 9px Georgia,serif; }
.info-button:hover { border-color:#9ab8a5; color:var(--primary); }
.urgency-card { margin-top:12px; }
.text-button { padding:0; border:0; background:transparent; color:var(--primary); font-size:9px; }
.urgency-head, .urgency-row { display:grid; grid-template-columns:1.4fr 1.4fr .75fr .85fr .8fr 62px; align-items:center; gap:12px; padding:0 16px; }
.urgency-head { height:32px; border-bottom:1px solid #f0f2f0; background:#fafbfa; color:var(--muted); font-size:8px; }
.urgency-row { min-height:48px; border-bottom:1px solid #f2f3f2; font-size:9px; }
.urgency-row:last-child { border-bottom:0; }
.urgency-person { display:flex; align-items:center; gap:8px; min-width:0; }
.urgency-person i { width:25px; height:25px; display:grid; flex:0 0 auto; place-items:center; border-radius:50%; background:var(--primary-pale); color:var(--primary); font-size:8px; font-style:normal; font-weight:700; }
.urgency-person strong { overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.urgency-row .pill { width:max-content; }
.wait-text.overdue { color:var(--danger); font-weight:600; }
.row-action { height:25px; border:1px solid #c7d8cc; border-radius:4px; background:#fff; color:var(--primary); font-size:8px; }
.row-action:hover { background:var(--primary); color:#fff; }

/* Assistant */
.workspace { display:grid; grid-template-columns:310px minmax(0,1fr); gap:14px; min-height:calc(100vh - 72px); padding:14px; }
.queue-card { min-height:0; display:flex; flex-direction:column; overflow:hidden; }
.queue-head { display:flex; align-items:center; justify-content:space-between; padding:16px 16px 12px; }
.queue-head h2 { margin:0; font-size:14px; font-weight:650; }
.queue-head h2 em { display:inline-grid; min-width:20px; height:20px; margin-left:5px; place-items:center; border-radius:10px; background:var(--primary-pale); color:var(--primary); font-size:10px; font-style:normal; }
.ghost-icon { width:28px; height:28px; border-radius:6px; }
.search-box { display:flex; align-items:center; gap:7px; margin:0 14px 10px; padding:0 10px; border:1px solid var(--line); border-radius:6px; background:#fafbfa; color:#989e9a; }
.search-box:focus-within { border-color:#8db5a0; background:#fff; box-shadow:0 0 0 3px rgba(45,106,79,.07); }
.search-box input { width:100%; height:34px; border:0; outline:0; background:transparent; color:var(--text); font-size:12px; }
.filter-tabs { display:flex; gap:4px; padding:0 14px 11px; border-bottom:1px solid #f0f2f0; }
.filter-tab { padding:4px 10px; border:0; border-radius:12px; background:transparent; color:var(--text-2); font-size:11px; }
.filter-tab:hover { color:var(--primary); }
.filter-tab.active { background:var(--primary); color:#fff; }
.task-list { flex:1; min-height:0; max-height:calc(100vh - 235px); overflow-y:auto; scrollbar-width:thin; }
.task-item { position:relative; width:100%; display:block; padding:13px 14px 12px 17px; border:0; border-bottom:1px solid #f0f2f0; background:#fff; color:var(--text); text-align:left; }
.task-item::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:transparent; }
.task-item:hover { background:#fafcfb; }
.task-item.active { background:#f0f7f3; }
.task-item.active::before { background:var(--primary-light); }
.task-primary { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.task-person { display:flex; min-width:0; align-items:center; gap:9px; }
.task-avatar,.student-avatar,.mini-avatar { display:grid; flex:0 0 auto; place-items:center; border-radius:50%; background:#dfece4; color:var(--primary); font-weight:700; }
.task-avatar { width:31px; height:31px; font-size:11px; }
.task-person strong { display:block; overflow:hidden; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.task-person small { display:block; margin-top:2px; color:var(--muted); font-size:9px; }
.priority-dot { width:7px; height:7px; flex:0 0 auto; border-radius:50%; }
.priority-dot.high { background:var(--danger); box-shadow:0 0 0 3px var(--danger-pale); }
.priority-dot.medium { background:#e09536; box-shadow:0 0 0 3px var(--warning-pale); }
.priority-dot.low { background:#72a0be; box-shadow:0 0 0 3px var(--info-pale); }
.task-message { display:-webkit-box; margin:9px 0 8px 40px; overflow:hidden; color:#4f5651; font-size:11px; line-height:1.55; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.task-foot { display:flex; align-items:center; justify-content:space-between; margin-left:40px; color:#9a9f9b; font-size:9px; }
.category-chip { max-width:115px; overflow:hidden; padding:2px 6px; border-radius:9px; background:#f2f3f2; color:#69706b; text-overflow:ellipsis; white-space:nowrap; }
.queue-empty { margin:auto; padding:30px 10px; color:var(--muted); font-size:11px; text-align:center; }
.detail-column { min-width:0; }
.empty-card { min-height:calc(100vh - 100px); display:grid; place-content:center; justify-items:center; text-align:center; }
.empty-illustration { width:48px; height:48px; display:grid; place-items:center; border-radius:50%; background:var(--primary-pale); color:var(--primary); font-size:24px; }
.empty-card h2 { margin:14px 0 5px; font-size:15px; }
.empty-card p { margin:0; color:var(--muted); font-size:11px; }
.task-detail { min-width:0; }
.student-card { min-height:92px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:15px 18px; }
.student-main { display:flex; min-width:0; align-items:center; gap:12px; }
.student-avatar { width:43px; height:43px; background:linear-gradient(145deg,#dcece2,#c8dfd0); font-size:15px; }
.student-name-row { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.student-name-row h2 { margin:0 3px 0 0; font-size:17px; font-weight:650; }
.student-main p { margin:5px 0 0; color:var(--muted); font-size:10px; }
.pill { display:inline-flex; align-items:center; padding:2px 7px; border-radius:9px; font-size:9px; font-weight:650; line-height:1.2; white-space:nowrap; }
.priority-high,.risk-warning { background:var(--danger-pale); color:var(--danger); }
.priority-medium,.risk-watch { background:var(--warning-pale); color:var(--warning); }
.priority-low,.risk-normal { background:var(--info-pale); color:var(--info); }
.student-metrics { display:grid; grid-template-columns:repeat(4,minmax(74px,auto)); }
.student-metrics div { min-width:0; padding:0 15px; border-left:1px solid var(--line); }
.student-metrics span { display:block; margin-bottom:5px; color:var(--muted); font-size:9px; }
.student-metrics strong { display:block; max-width:110px; overflow:hidden; color:#3e4540; font-size:11px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.answer-grid { display:grid; grid-template-columns:minmax(320px,.9fr) minmax(380px,1.1fr); gap:14px; margin-top:14px; }
.conversation-card,.draft-card { min-width:0; min-height:calc(100vh - 192px); display:flex; flex-direction:column; overflow:hidden; }
.live-badge,.model-badge { display:inline-flex; align-items:center; gap:5px; color:var(--muted); font-size:9px; }
.live-badge i { width:5px; height:5px; border-radius:50%; background:#52b788; }
.model-badge { padding:3px 7px; border-radius:9px; background:var(--primary-pale); color:var(--primary); }
.conversation-body { flex:1; padding:16px; overflow-y:auto; }
.context-note { display:grid; grid-template-columns:25px 1fr auto; gap:9px; padding:10px; border:1px solid #deebe3; border-radius:7px; background:#f5faf7; }
.context-note > span { width:25px; height:25px; display:grid; place-items:center; border-radius:6px; background:var(--primary); color:#fff; font-size:8px; font-weight:700; }
.context-note p { margin:1px 0 0; color:#5d675f; font-size:10px; line-height:1.65; }
.context-note em { color:var(--primary); font-size:8px; font-style:normal; white-space:nowrap; }
.date-divider { display:flex; align-items:center; gap:8px; margin:22px 0; color:#a3a8a4; font-size:8px; }
.date-divider::before,.date-divider::after { content:""; height:1px; flex:1; background:#eff1ef; }
.message-row { display:flex; align-items:flex-start; gap:9px; }
.message-content { min-width:0; flex:1; }
.mini-avatar { width:29px; height:29px; background:#ecefed; color:#606861; font-size:10px; }
.message-meta { display:flex; align-items:baseline; gap:8px; }
.message-meta strong { font-size:10px; }
.message-meta time { color:var(--muted); font-size:8px; }
.message-bubble { max-width:92%; margin:6px 0 0; padding:10px 12px; border-radius:3px 9px 9px 9px; background:#f1f3f1; color:#384039; font-size:12px; line-height:1.7; word-break:break-word; }
.meal-image-button { position:relative; width:210px; height:132px; display:block; margin:8px 0 0; overflow:hidden; padding:0; border:1px solid var(--line); border-radius:7px; background:#f3f5f3; }
.meal-image-button img { width:100%; height:100%; display:block; object-fit:cover; }
.meal-image-button span { position:absolute; right:7px; bottom:7px; padding:3px 6px; border-radius:4px; background:rgba(27,58,45,.75); color:#fff; font-size:7px; opacity:0; transition:.16s; }
.meal-image-button:hover span { opacity:1; }
.meal-analysis { max-width:330px; margin-top:8px; padding:11px; border:1px solid #d9e8de; border-radius:7px; background:#f7fbf8; }
.meal-analysis-head { display:flex; justify-content:space-between; align-items:center; }
.meal-analysis-head span { color:var(--primary); font-size:9px; font-weight:700; }
.meal-analysis-head em { padding:2px 5px; border-radius:7px; background:var(--primary-pale); color:var(--primary); font-size:7px; font-style:normal; }
.meal-tags { display:flex; flex-wrap:wrap; gap:4px; margin:8px 0; }
.meal-tags span { padding:2px 6px; border-radius:8px; background:#fff; border:1px solid #e3ebe6; color:#59635c; font-size:8px; }
.meal-analysis > p { margin:0; color:#3f4942; font-size:9px; line-height:1.65; }
.meal-suggestion { margin-top:7px; padding-top:7px; border-top:1px dashed #d5e2d9; color:#69736c; font-size:8px; line-height:1.6; }
.image-pending { max-width:330px; display:flex; gap:9px; margin-top:8px; padding:10px; border:1px dashed #d8dcd9; border-radius:7px; background:#fafbfa; }
.image-pending span { color:var(--primary); }
.image-pending p { margin:0; color:var(--muted); font-size:8px; line-height:1.6; }
.image-pending strong { display:block; color:var(--text-2); font-size:9px; }
.question-footer { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); background:#fafbfa; }
.question-footer div { padding:12px 15px; }
.question-footer div + div { border-left:1px solid var(--line); }
.question-footer span { display:block; color:var(--muted); font-size:8px; }
.question-footer strong { display:block; margin-top:4px; color:#4b524d; font-size:10px; }
.draft-toolbar { display:flex; align-items:center; gap:8px; padding:12px 16px 10px; }
.draft-toolbar > span { color:var(--muted); font-size:9px; }
.tone-options { display:flex; gap:3px; }
.tone { padding:3px 8px; border:1px solid var(--line); border-radius:4px; background:#fff; color:var(--text-2); font-size:9px; }
.tone:hover,.tone.active { border-color:#91b7a0; background:var(--primary-pale); color:var(--primary); }
.regenerate { margin-left:auto; padding:3px 7px; border:0; background:transparent; color:var(--primary); font-size:9px; }
.safety-alert { display:flex; gap:8px; margin:0 16px 9px; padding:8px 10px; border:1px solid #f3d0cd; border-radius:6px; background:#fff6f5; }
.safety-alert > span { width:18px; height:18px; display:grid; flex:0 0 auto; place-items:center; border-radius:50%; background:var(--danger-pale); color:var(--danger); font-size:9px; font-weight:700; }
.safety-alert p { margin:0; color:#8a5d58; font-size:8px; line-height:1.55; }
.safety-alert strong { display:block; color:var(--danger); font-size:9px; }
.draft-editor-wrap { position:relative; flex:1; min-height:220px; margin:0 16px; }
.draft-editor-wrap textarea { width:100%; height:100%; min-height:220px; resize:none; padding:15px; border:1px solid #dfe5e1; border-radius:7px; outline:none; background:#fbfcfb; color:#374039; font-size:12px; line-height:1.8; }
.draft-editor-wrap textarea:focus { border-color:#8db5a0; background:#fff; box-shadow:0 0 0 3px rgba(45,106,79,.06); }
.ai-corner { position:absolute; right:9px; bottom:9px; padding:3px 5px; border-radius:4px; background:var(--primary-pale); color:var(--primary); font-size:7px; font-weight:800; }
.draft-hint { display:flex; justify-content:space-between; gap:12px; padding:7px 17px; color:#a1a6a2; font-size:8px; }
.draft-actions { display:grid; grid-template-columns:30px 30px 1fr auto; gap:8px; padding:10px 16px 14px; border-top:1px solid var(--line); }
.icon-nav-button { width:30px; border:1px solid var(--line); border-radius:5px; background:#fff; color:var(--text-2); }
.icon-nav-button:hover:not(:disabled) { border-color:#a8c1b0; color:var(--primary); }
.icon-nav-button:disabled { cursor:not-allowed; opacity:.38; }

.toast { position:fixed; z-index:100; left:50%; bottom:22px; transform:translate(-50%,12px); padding:8px 15px; border-radius:5px; background:rgba(33,33,33,.92); color:#fff; font-size:11px; opacity:0; pointer-events:none; transition:.2s ease; }
.toast.show { transform:translate(-50%,0); opacity:1; }
.load-error { margin:14px; padding:12px; border-radius:6px; background:var(--danger-pale); color:var(--danger); font-size:10px; line-height:1.6; }
.modal { position:fixed; inset:0; z-index:200; display:grid; place-items:center; padding:20px; }
.modal-backdrop { position:absolute; inset:0; background:rgba(18,27,22,.48); backdrop-filter:blur(2px); }
.modal-card,.image-modal-card { position:relative; z-index:1; width:min(390px,100%); padding:22px; border-radius:10px; background:#fff; box-shadow:0 18px 50px rgba(0,0,0,.18); }
.modal-card h2,.image-modal-card h2 { margin:0 0 9px; font-size:15px; }
.modal-card p { margin:0 0 18px; color:var(--text-2); font-size:11px; line-height:1.7; }
.modal-close { position:absolute; top:9px; right:10px; width:28px; height:28px; border:0; background:transparent; color:var(--muted); font-size:20px; }
.image-modal-card { width:min(720px,100%); }
.image-modal-card img { width:100%; max-height:70vh; display:block; border-radius:7px; object-fit:contain; background:#f4f5f4; }
.issue-drawer { position:fixed; inset:0; z-index:220; }
.drawer-backdrop { position:absolute; inset:0; width:100%; border:0; background:rgba(18,27,22,.3); backdrop-filter:blur(1px); }
.drawer-panel { position:absolute; inset:0 0 0 auto; width:min(390px,92vw); display:flex; flex-direction:column; background:#fff; box-shadow:-16px 0 48px rgba(18,38,27,.16); animation:drawer-in .2s ease-out; }
.drawer-panel header { min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:15px 18px; border-bottom:1px solid var(--line); }
.drawer-panel h2 { margin:0; font-size:15px; }
.drawer-close { width:30px; height:30px; flex:0 0 auto; border:0; border-radius:50%; background:#f3f5f3; color:#68716a; font-size:20px; line-height:1; }
.drawer-close:hover { background:var(--primary-pale); color:var(--primary); }
.drawer-meta { margin:0; padding:10px 18px; border-bottom:1px solid var(--line); background:#fafbfa; color:var(--muted); font-size:8px; }
.drawer-list { min-height:0; flex:1; overflow-y:auto; padding:8px; scrollbar-width:thin; }
.drawer-user { width:100%; display:grid; grid-template-columns:9px minmax(0,1fr) auto; align-items:start; gap:9px; padding:12px 10px; border:0; border-bottom:1px solid #eef1ef; border-radius:7px; background:#fff; color:var(--text); text-align:left; }
.drawer-user:hover,.drawer-user.active { background:#f0f7f3; }
.drawer-user-copy { min-width:0; }
.drawer-user-copy strong { display:block; font-size:10px; }
.drawer-user-copy small { display:block; margin-top:3px; color:var(--muted); font-size:8px; }
.drawer-user-copy p { display:-webkit-box; margin:6px 0 0; overflow:hidden; color:#58615b; font-size:8px; line-height:1.5; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.drawer-user time { color:#7b857e; font-size:8px; font-variant-numeric:tabular-nums; white-space:nowrap; }
body.drawer-open { overflow:hidden; }
@keyframes drawer-in { from { transform:translateX(24px); opacity:.6; } to { transform:translateX(0); opacity:1; } }

@media (max-width:1180px) {
  .metric-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .main-charts { grid-template-columns:1fr 1fr; }
  .insights-grid { grid-template-columns:1fr 1fr; }
  .workspace { grid-template-columns:270px minmax(0,1fr); }
  .answer-grid { grid-template-columns:1fr; }
  .conversation-card,.draft-card { min-height:420px; }
  .student-card { align-items:flex-start; flex-direction:column; }
  .student-metrics { width:100%; }
  .student-metrics div:first-child { border-left:0; padding-left:0; }
}
@media (max-width:860px) {
  .app-sidebar { position:sticky; top:0; width:100%; height:58px; flex-direction:row; align-items:center; }
  .brand { width:auto; min-height:58px; border:0; }
  .brand-copy span,.sidebar-footer { display:none; }
  .main-nav { display:flex; margin-left:auto; padding:0 10px; }
  .nav-item { width:auto; padding:0 10px; border-left:0; border-bottom:2px solid transparent; }
  .nav-item.active { border-left:0; border-bottom-color:#52b788; }
  .main-area { margin-left:0; }
  .topbar { top:58px; }
  .workspace { grid-template-columns:1fr; }
  .queue-card { max-height:390px; }
  .task-list { max-height:245px; }
  .top-stat { display:none; }
  .urgency-head { display:none; }
  .urgency-row { grid-template-columns:1fr auto auto; gap:7px; padding:10px 14px; }
  .urgency-row > :nth-child(2),.urgency-row > :nth-child(5) { display:none; }
}
@media (max-width:650px) {
  .dashboard-page { padding:13px 10px 22px; }
  .dashboard-intro { align-items:flex-start; flex-direction:column; }
  .metric-grid,.main-charts,.insights-grid { grid-template-columns:1fr; }
  .donut-layout { gap:18px; }
  .demo-badge { display:none; }
}
@media (max-width:520px) {
  .brand { padding:0 10px; }
  .brand-mark { width:30px; height:30px; }
  .brand-copy strong { font-size:11px; }
  .nav-item { grid-template-columns:18px auto; gap:4px; padding:0 7px; font-size:11px; }
  .nav-item b { display:none; }
  .topbar { height:62px; padding:0 12px; }
  .topbar h1 { font-size:14px; }
  .workspace { padding:9px; gap:9px; }
  .student-metrics { grid-template-columns:1fr 1fr; gap:12px 0; }
  .student-metrics div:nth-child(3) { border-left:0; padding-left:0; }
  .answer-grid { margin-top:9px; gap:9px; }
  .conversation-card,.draft-card { min-height:390px; }
  .draft-toolbar { flex-wrap:wrap; }
  .regenerate { width:100%; margin-left:0; text-align:left; }
  .draft-actions { grid-template-columns:30px 30px 1fr; }
  .draft-actions .secondary-button,.draft-actions .primary-button { grid-column:span 1; }
  .draft-actions > span { display:none; }
  .metric-card { min-height:82px; }
  .urgency-row { grid-template-columns:1fr auto; }
  .urgency-row > :nth-child(3) { display:none; }
}

/* Group-chat workflow */
.two-insights { grid-template-columns: 1fr 1fr; }
.group-table-head,.group-table-row { display:grid; grid-template-columns:1.25fr 1.8fr .75fr .75fr .8fr 60px; align-items:center; gap:12px; padding:0 16px; }
.group-table-head { height:32px; border-bottom:1px solid #f0f2f0; background:#fafbfa; color:var(--muted); font-size:8px; }
.group-table-row { min-height:54px; border-bottom:1px solid #f2f3f2; font-size:9px; }
.group-table-row:last-child { border-bottom:0; }
.table-group-name { min-width:0; display:flex; align-items:center; gap:8px; }
.table-group-name i { width:27px; height:27px; display:grid; flex:0 0 auto; place-items:center; border-radius:7px; background:var(--primary-pale); color:var(--primary); font-size:8px; font-style:normal; font-weight:700; }
.table-group-name strong,.table-summary { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.table-summary { color:var(--text-2); }
.group-workspace { grid-template-columns:340px minmax(0,1fr); }
.group-list { flex:1; min-height:0; max-height:calc(100vh - 235px); overflow-y:auto; scrollbar-width:thin; }
.group-item { position:relative; width:100%; display:block; padding:14px 14px 13px 17px; border:0; border-bottom:1px solid #edf0ed; background:#fff; color:var(--text); text-align:left; }
.group-item::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:transparent; }
.group-item:hover { background:#fafcfb; }
.group-item.active { background:#eef7f2; }
.group-item.active::before { background:var(--primary-light); }
.group-item-top { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.group-item-meta { display:flex; flex:0 0 auto; align-items:center; gap:6px; }
.last-message-time { color:#6f7972; font-size:8px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.group-item-name { min-width:0; display:flex; gap:9px; align-items:center; }
.group-item-avatar { width:33px; height:33px; display:grid; flex:0 0 auto; place-items:center; border-radius:8px; background:#e2eee6; color:var(--primary); font-size:9px; font-weight:700; }
.group-item-name strong { display:block; max-width:190px; overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.group-item-name small { display:block; margin-top:2px; color:var(--muted); font-size:8px; }
.issue-count-badge { min-width:22px; padding:3px 6px; border-radius:9px; background:var(--danger-pale); color:var(--danger); font-size:8px; font-weight:700; text-align:center; }
.group-item-summary { display:-webkit-box; margin:9px 0 7px 42px; overflow:hidden; color:#59615b; font-size:9px; line-height:1.55; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.group-item-latest { margin:0 0 8px 42px; overflow:hidden; color:#8a918c; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.group-item-foot { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-left:42px; }
.group-tag-list,.compact-tags,.ai-tags { display:flex; flex-wrap:wrap; gap:4px; }
.group-tag,.compact-tags span,.ai-tags span { padding:2px 6px; border-radius:8px; background:#f1f3f1; color:#69716b; font-size:7px; white-space:nowrap; }
.group-tag.tag-red,.compact-tags span.tag-red { border:1px solid #f0b8b8; background:#ffe5e7; color:#b4232f; font-weight:700; }
.group-tag.tag-orange,.compact-tags span.tag-orange { border:1px solid #f4d2a5; background:#fff0dc; color:#9d5d12; }
.group-tag.tag-green,.compact-tags span.tag-green { border:1px solid #bcdcc8; background:#e8f6ed; color:#28704e; }
.group-tag.tag-blue,.compact-tags span.tag-blue { border:1px solid #bed8e9; background:#e9f4fb; color:#256c98; }
.group-tag.tag-purple,.compact-tags span.tag-purple { border:1px solid #d4cae9; background:#f1edfa; color:#685197; }
.group-tag.priority-high { border-color:#eeaeb2; background:#ffdfe2; color:#a91422; }
.group-item-wait { color:var(--muted); font-size:8px; white-space:nowrap; }
.group-item-wait.overdue { color:var(--danger); font-weight:600; }
.sort-control,.issue-toolbar label { display:flex; align-items:center; gap:5px; color:var(--muted); font-size:8px; }
.sort-control select,.issue-toolbar select { height:28px; padding:0 24px 0 8px; border:1px solid var(--line); border-radius:6px; outline:none; background:#fff; color:#4d5750; font-size:9px; cursor:pointer; }
.sort-control select:hover,.issue-toolbar select:hover { border-color:#a9c3b1; }
.sort-control select:focus-visible,.issue-toolbar select:focus-visible { border-color:var(--primary); box-shadow:0 0 0 3px rgba(45,106,79,.12); }
.group-detail { min-width:0; }
.group-header-card { min-height:100px; display:grid; grid-template-columns:minmax(220px,.8fr) minmax(260px,1.2fr) auto; align-items:center; gap:20px; padding:15px 18px; }
.group-title-main { display:flex; min-width:0; align-items:center; gap:11px; }
.group-avatar { width:44px; height:44px; display:grid; flex:0 0 auto; place-items:center; border-radius:10px; background:linear-gradient(145deg,#dcece2,#c8dfd0); color:var(--primary); font-size:12px; font-weight:700; }
.group-name-row { display:flex; align-items:center; gap:7px; }
.group-name-row h2 { margin:0; overflow:hidden; font-size:15px; text-overflow:ellipsis; white-space:nowrap; }
.group-title-main p { margin:5px 0 0; color:var(--muted); font-size:9px; }
.group-header-summary { min-width:0; padding-left:18px; border-left:1px solid var(--line); }
.group-header-summary > span { color:var(--muted); font-size:8px; }
.group-header-summary > strong { display:block; margin:4px 0 7px; color:#4e5750; font-size:9px; font-weight:550; line-height:1.55; }
.group-stats { display:grid; grid-template-columns:repeat(3,auto); }
.group-stats div { min-width:72px; padding:0 13px; border-left:1px solid var(--line); }
.group-stats span { display:block; margin-bottom:5px; color:var(--muted); font-size:8px; }
.group-stats strong { font-size:10px; }
.group-answer-grid { display:grid; grid-template-columns:minmax(420px,1.15fr) minmax(400px,.85fr); gap:14px; margin-top:14px; }
.group-chat-card,.issue-draft-card { min-width:0; height:calc(100vh - 202px); min-height:560px; display:flex; flex-direction:column; overflow:hidden; }
.issue-draft-card { overflow-x:hidden; overflow-y:auto; scrollbar-width:thin; }
.issue-draft-card > .card-header { flex:0 0 58px; }
.chat-header-actions { display:flex; align-items:center; gap:9px; }
.locate-button { padding:3px 7px; border:1px solid #bcd1c3; border-radius:4px; background:#fff; color:var(--primary); font-size:8px; }
.locate-button:hover { background:var(--primary-pale); }
.group-conversation { flex:1; min-height:0; overflow-y:auto; padding:14px 16px 24px; background:#fbfcfb; scroll-behavior:smooth; scrollbar-width:thin; }
.chat-day { display:flex; align-items:center; gap:8px; margin:5px 0 16px; color:#a1a7a2; font-size:8px; }
.chat-day::before,.chat-day::after { content:""; height:1px; flex:1; background:#ecefec; }
.chat-message { display:flex; align-items:flex-start; gap:8px; margin:0 0 13px; scroll-margin:120px; }
.chat-message.nutritionist { flex-direction:row-reverse; }
.chat-avatar { width:28px; height:28px; display:grid; flex:0 0 auto; place-items:center; border-radius:50%; background:#e7ebe8; color:#5c655f; font-size:8px; font-weight:700; }
.chat-message.nutritionist .chat-avatar { background:var(--primary); color:#fff; }
.chat-message-body { max-width:78%; }
.chat-message.nutritionist .chat-message-body { display:flex; flex-direction:column; align-items:flex-end; }
.chat-sender { display:flex; align-items:baseline; gap:7px; margin-bottom:4px; }
.chat-sender strong { font-size:8px; }
.chat-sender time { color:var(--muted); font-size:7px; }
.chat-bubble { margin:0; padding:8px 10px; border-radius:3px 9px 9px 9px; background:#eef1ef; color:#384039; font-size:10px; line-height:1.65; word-break:break-word; }
.chat-message.nutritionist .chat-bubble { border-radius:9px 3px 9px 9px; background:#dfeee5; }
.chat-message.target-message { margin:4px -7px 14px; padding:7px; border:1px solid #81b797; border-radius:8px; background:#f0f8f3; box-shadow:0 0 0 3px rgba(64,145,108,.08); }
.target-label { display:inline-flex; margin-bottom:5px; padding:2px 6px; border-radius:7px; background:var(--primary); color:#fff; font-size:7px; }
.chat-image-button { width:190px; height:118px; display:block; margin-top:6px; overflow:hidden; padding:0; border:1px solid var(--line); border-radius:7px; background:#f2f4f2; }
.chat-image-button img { width:100%; height:100%; display:block; object-fit:cover; }
.chat-footer-note { display:flex; justify-content:space-between; gap:10px; padding:9px 14px; border-top:1px solid var(--line); background:#fff; color:var(--muted); font-size:7px; }
.issue-toolbar { display:flex; flex:0 0 auto; align-items:center; justify-content:flex-end; gap:10px; padding:8px 12px; border-bottom:1px solid var(--line); background:#fafbfa; }
.issue-tabs-shell { display:flex; flex:0 0 auto; align-items:center; gap:6px; padding:7px 12px; border-bottom:1px solid var(--line); background:#fff; }
.issue-tab-list { min-width:0; display:flex; flex:1; align-items:center; gap:3px; overflow:hidden; }
.issue-tab { min-width:0; max-width:132px; display:inline-flex; align-items:center; gap:7px; padding:7px 11px; border:0; border-radius:18px; background:transparent; color:#68716a; text-align:left; transition:color .14s ease,background-color .14s ease; }
.issue-tab:hover { background:#f4f7f5; color:var(--primary); }
.issue-tab.active { background:#edf1ef; color:var(--primary); }
.issue-tab:focus-visible,.issue-more-button:focus-visible,.group-item:focus-visible,.row-action:focus-visible { outline:2px solid var(--primary-light); outline-offset:2px; }
.priority-indicator { width:7px; height:7px; flex:0 0 auto; border-radius:50%; background:#6f9fbd; box-shadow:0 0 0 3px #eaf3f8; }
.priority-indicator.medium { background:#d88a2b; box-shadow:0 0 0 3px #fff1dc; }
.priority-indicator.high { background:#c92f3d; box-shadow:0 0 0 3px #ffe3e6; }
.issue-tab-copy { min-width:0; }
.issue-tab-copy { min-width:0; overflow:hidden; }
.issue-tab-copy strong { display:block; overflow:hidden; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.issue-tab-copy small,.issue-tab-copy time { display:none; }
.issue-more-button { min-height:30px; flex:0 0 auto; padding:0 10px; border:0; border-radius:15px; background:#f5f7f5; color:var(--primary); font-size:8px; white-space:nowrap; }
.issue-more-button:hover { background:var(--primary-pale); }
.issue-analysis { flex:0 0 auto; padding:12px 14px; border-bottom:1px solid var(--line); }
.analysis-title { display:grid; grid-template-columns:28px minmax(0,1fr) auto; align-items:center; gap:8px; }
.analysis-actions { display:flex; align-items:center; gap:5px; }
.analysis-title strong { font-size:10px; }
.analysis-title p { margin:2px 0 0; overflow:hidden; color:var(--text-2); font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.analysis-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:10px; }
.analysis-grid div { padding:7px 9px; border-radius:5px; background:#f6f8f6; }
.analysis-grid span,.analysis-section > span { display:block; margin-bottom:4px; color:var(--muted); font-size:7px; }
.analysis-grid strong { font-size:9px; }
.analysis-section { margin-top:9px; }
.issue-ai-meta { display:flex; align-items:center; gap:7px; margin-top:8px; padding:6px 8px; border:1px solid #dfe7e1; border-radius:6px; background:#f8faf8; }
.issue-ai-meta span { flex:0 0 auto; padding:2px 6px; border-radius:9px; background:#e9efe9; color:#526158; font-size:7px; font-weight:650; }
.issue-ai-meta span.is-glm { background:#e1f1e7; color:var(--primary); }
.issue-ai-meta span.is-failed { background:#ffe8e9; color:var(--danger); }
.issue-ai-meta p { margin:0; overflow:hidden; color:var(--muted); font-size:7px; text-overflow:ellipsis; white-space:nowrap; }
.semantic-status { padding:3px 7px; border-radius:10px; background:#f0f3f1; color:var(--muted); font-size:8px; white-space:nowrap; }
.semantic-status.ready { background:#e1f1e7; color:var(--primary); }
.semantic-status.running { background:#fff0d9; color:#a35d12; }
.semantic-status.failed { background:#ffe5e7; color:var(--danger); }
.semantic-run-button { min-height:30px; padding:0 10px; border:1px solid #9fc6ae; border-radius:7px; background:#eef8f1; color:var(--primary); font-size:8px; font-weight:650; }
.semantic-run-button:hover:not(:disabled) { background:#dff1e5; }
.semantic-run-button:disabled { cursor:not-allowed; opacity:.55; }
.analysis-section p { margin:0; color:#4d5650; font-size:9px; line-height:1.6; }
.issue-analysis .meal-analysis { max-width:none; margin-top:9px; }
.draft-divider { display:flex; flex:0 0 auto; align-items:center; gap:8px; padding:9px 14px; }
.draft-divider > span { margin-right:auto; font-size:9px; font-weight:650; }
.issue-draft-card .safety-alert,.issue-draft-card .draft-hint,.issue-draft-card .draft-actions { flex:0 0 auto; }
.group-draft-editor { min-height:180px; flex:1 0 180px; }
.group-draft-editor textarea { min-height:140px; }

@media (max-width:1280px) {
  .group-header-card { grid-template-columns:1fr 1.1fr; }
  .group-stats { grid-column:1/-1; }
  .group-stats div:first-child { border-left:0; padding-left:0; }
  .group-answer-grid { grid-template-columns:1fr; }
  .group-chat-card,.issue-draft-card { height:auto; min-height:540px; }
  .group-conversation { height:450px; flex:none; }
}
@media (max-width:980px) {
  .group-workspace { grid-template-columns:280px minmax(0,1fr); }
  .group-header-card { grid-template-columns:1fr; }
  .group-header-summary { padding:10px 0 0; border-left:0; border-top:1px solid var(--line); }
  .group-table-head { display:none; }
  .group-table-row { grid-template-columns:1.3fr 1.7fr auto auto; padding:10px 14px; }
  .group-table-row > :nth-child(3),.group-table-row > :nth-child(5) { display:none; }
}
@media (max-width:860px) {
  .group-workspace { grid-template-columns:1fr; }
  .group-list { max-height:260px; }
  .group-header-card { margin-top:0; }
}
@media (max-width:650px) {
  .two-insights { grid-template-columns:1fr; }
  .group-table-row { grid-template-columns:1fr auto; }
  .group-table-row > :nth-child(2),.group-table-row > :nth-child(4) { display:none; }
  .group-stats { grid-template-columns:repeat(3,1fr); }
  .group-stats div { min-width:0; padding:0 8px; }
  .group-answer-grid { margin-top:9px; gap:9px; }
  .group-chat-card,.issue-draft-card { min-height:480px; }
  .group-conversation { height:400px; }
  .draft-divider { flex-wrap:wrap; }
  .draft-divider > span { width:100%; }
  .issue-toolbar { align-items:flex-end; }
  .issue-toolbar label { align-items:flex-start; flex-direction:column; }
  .issue-tab { min-width:104px; }
}

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

/* UI/UX Pro Max refinement: calm healthcare operations dashboard */
.sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
.skip-link { position:fixed; z-index:1000; top:8px; left:8px; padding:10px 14px; border-radius:8px; background:#fff; color:var(--primary); font-size:13px; font-weight:700; box-shadow:0 8px 30px rgba(11,47,45,.2); transform:translateY(-150%); transition:transform .18s ease-out; }
.skip-link:focus { transform:translateY(0); }
.nav-icon,.button-icon,.search-icon { width:18px; height:18px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.nav-icon { justify-self:center; }
.button-icon { width:16px; height:16px; }
.search-icon { width:17px; height:17px; color:#6f8581; }
:where(button,input,select,textarea,a):focus-visible { outline:3px solid rgba(8,145,178,.28); outline-offset:2px; }
.card { border-color:var(--line); box-shadow:var(--shadow); }
.section-kicker { margin-bottom:4px; color:#6f8581; font-size:10px; letter-spacing:1.25px; }
.section-kicker.green { color:var(--primary); }

.app-sidebar { border-right:1px solid rgba(255,255,255,.06); box-shadow:8px 0 30px rgba(11,47,45,.08); }
.brand { min-height:72px; }
.brand-mark { background:linear-gradient(145deg,#5eead4,#34d399); color:#073a35; box-shadow:0 6px 18px rgba(20,184,166,.2); }
.brand-copy strong { font-size:12px; letter-spacing:.1px; }
.brand-copy span { color:rgba(255,255,255,.58); font-size:10px; }
.main-nav { padding:16px 8px; }
.nav-item { height:44px; margin-bottom:4px; padding:0 11px; border-left:0; border-radius:9px; color:rgba(255,255,255,.7); font-size:13px; }
.nav-item:hover,.nav-item.active { border-left-color:transparent; background:rgba(94,234,212,.11); color:#fff; }
.nav-item.active { box-shadow:inset 3px 0 0 #5eead4; }
.nav-item b { background:rgba(94,234,212,.14); color:#99f6e4; }
.sidebar-footer strong { font-size:12px; }
.sidebar-footer small { color:rgba(255,255,255,.55); font-size:10px; }

.topbar { height:76px; padding:0 28px; border-bottom-color:var(--line); box-shadow:0 1px 0 rgba(15,47,45,.025); }
.breadcrumb { margin-bottom:4px; font-size:11px; }
.topbar h1 { font-size:18px; letter-spacing:-.15px; }
.topbar-actions { gap:12px; }
.semantic-status,.demo-badge { min-height:26px; display:inline-flex; align-items:center; padding:0 9px; font-size:10px; }
.semantic-run-button { min-height:38px; display:inline-flex; align-items:center; gap:7px; padding:0 13px; border-color:#a7d8cf; border-radius:9px; font-size:11px; }
.top-stat { min-width:68px; }
.top-stat span { font-size:11px; }
.top-stat strong { font-size:18px; font-variant-numeric:tabular-nums; }
.icon-button,.operator-avatar { width:38px; height:38px; }
.icon-button { display:grid; place-items:center; }

.dashboard-page { padding:24px 28px 36px; }
.dashboard-intro { margin-bottom:18px; }
.dashboard-intro h2 { font-size:22px; letter-spacing:-.25px; }
.dashboard-intro p { margin-top:7px; font-size:12px; }
.primary-button,.secondary-button { min-height:40px; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:0 16px; border-radius:9px; font-size:12px; }
.primary-button { box-shadow:0 6px 16px rgba(15,118,110,.16); transition:background-color .16s ease,box-shadow .16s ease,transform .1s ease; }
.primary-button:hover { box-shadow:0 8px 22px rgba(15,118,110,.22); }
.primary-button:active { transform:translateY(1px); }
.metric-grid,.dashboard-grid { gap:16px; }
.metric-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.metric-card { min-height:112px; gap:14px; padding:18px; border-radius:14px; }
.metric-card:hover { transform:translateY(-2px); border-color:#b7d8d2; box-shadow:0 12px 28px rgba(15,47,45,.09); }
.metric-icon { width:44px; height:44px; border-radius:11px; font-size:15px; }
.metric-copy small { font-size:12px; }
.metric-copy strong { margin:5px 0 4px; font-size:28px; font-variant-numeric:tabular-nums; }
.metric-copy em { font-size:10px; }
.card-header { min-height:64px; padding:0 18px; }
.card-header h3 { font-size:14px; }
.header-note { font-size:10px; }
.donut-layout { min-height:220px; padding:20px; }
.donut { width:138px; height:138px; }
.donut strong { font-size:25px; }
.donut span,.legend-button > span { font-size:11px; }
.chart-legend { gap:12px; }
.legend-button { min-height:30px; grid-template-columns:9px 1fr auto; font-size:11px; }
.legend-button strong { font-size:12px; font-variant-numeric:tabular-nums; }
.bar-chart { min-height:220px; gap:20px; padding:24px; }
.bar-button { min-height:30px; grid-template-columns:64px 1fr 30px; }
.bar-button > span,.bar-button strong { font-size:11px; }
.bar-track { height:10px; }
.timeliness-chart,.risk-list { min-height:174px; gap:14px; padding:20px; }
.time-row,.risk-row { grid-template-columns:88px 1fr 32px; }
.time-row span,.risk-row span,.time-row strong,.risk-row strong { font-size:11px; }
.group-table-head { height:38px; font-size:10px; }
.group-table-row { min-height:62px; font-size:11px; }
.table-group-name i { width:32px; height:32px; font-size:10px; }
.row-action { min-height:34px; border-radius:7px; font-size:10px; }

.workspace { min-height:calc(100vh - 76px); gap:16px; padding:16px; }
.group-workspace { grid-template-columns:350px minmax(0,1fr); }
.queue-card { border-radius:14px; }
.queue-head { padding:18px 16px 14px; }
.queue-head h2 { font-size:16px; }
.queue-head h2 em { min-width:22px; height:22px; font-size:11px; }
.sort-control,.issue-toolbar label { font-size:10px; }
.sort-control select,.issue-toolbar select { height:38px; padding:0 30px 0 10px; border-radius:8px; color:var(--text-2); font-size:11px; }
.search-box { min-height:42px; gap:9px; margin:0 14px 12px; padding:0 12px; border-radius:9px; background:#f7faf9; }
.search-box:focus-within { border-color:#72b8ae; box-shadow:0 0 0 3px rgba(8,145,178,.12); }
.search-box input { height:40px; font-size:12px; }
.filter-tabs { gap:6px; padding:0 14px 12px; }
.filter-tab { min-height:36px; padding:0 13px; border-radius:18px; font-size:11px; }
.group-list { max-height:calc(100vh - 257px); }
.group-item { padding:16px 15px 15px 18px; transition:background-color .16s ease; }
.group-item.active { background:#edf8f5; }
.group-item.active::before { width:4px; background:var(--primary); }
.group-item-avatar { width:36px; height:36px; border-radius:9px; font-size:11px; }
.group-item-name strong { max-width:205px; font-size:13px; }
.group-item-name small,.last-message-time,.group-item-wait { font-size:10px; }
.group-item-summary { margin:10px 0 7px 45px; font-size:11px; line-height:1.6; }
.group-item-latest { margin-left:45px; font-size:10px; }
.group-item-foot { margin-left:45px; }
.group-tag,.compact-tags span,.ai-tags span { padding:3px 7px; font-size:9px; }

.group-header-card { min-height:116px; padding:18px 20px; border-radius:14px; }
.group-avatar { width:48px; height:48px; border-radius:12px; font-size:14px; }
.group-name-row h2 { font-size:17px; }
.group-title-main p,.group-header-summary > strong { font-size:11px; }
.group-header-summary > span,.group-stats span { font-size:10px; }
.group-stats strong { font-size:13px; font-variant-numeric:tabular-nums; }
.pill { padding:4px 9px; font-size:10px; }
.group-answer-grid { gap:16px; margin-top:16px; }
.group-chat-card,.issue-draft-card { height:calc(100vh - 224px); min-height:600px; border-radius:14px; }
.live-badge,.model-badge { font-size:10px; }
.model-badge { padding:4px 9px; }
.locate-button { min-height:34px; display:inline-flex; align-items:center; gap:6px; padding:0 10px; border-radius:8px; font-size:10px; }
.group-conversation { padding:18px 18px 26px; }
.chat-day { font-size:10px; }
.chat-avatar { width:32px; height:32px; font-size:10px; }
.chat-sender strong { font-size:10px; }
.chat-sender time { font-size:9px; }
.chat-bubble { padding:10px 12px; font-size:12px; line-height:1.7; }
.target-label { padding:3px 7px; font-size:9px; }
.chat-footer-note { padding:10px 16px; font-size:9px; }
.issue-toolbar { gap:12px; padding:9px 14px; }
.issue-tabs-shell { min-height:50px; padding:8px 14px; }
.issue-tab { min-height:36px; max-width:145px; padding:0 12px; }
.issue-tab-copy strong { font-size:11px; }
.issue-more-button { min-height:36px; padding:0 12px; font-size:10px; }
.issue-analysis { padding:16px; }
.analysis-title { grid-template-columns:34px minmax(0,1fr) auto; gap:10px; }
.analysis-title strong { font-size:12px; }
.analysis-title p { margin-top:3px; font-size:10px; }
.analysis-actions { gap:8px; }
.text-button { min-height:32px; padding:0 7px; border-radius:6px; font-size:10px; }
.text-button:hover { background:var(--primary-pale); }
.analysis-grid { gap:10px; margin-top:12px; }
.analysis-grid div { padding:9px 11px; border:1px solid #e8efed; border-radius:8px; background:#f7faf9; }
.analysis-grid span,.analysis-section > span { font-size:9px; }
.analysis-grid strong { font-size:11px; }
.analysis-section { margin-top:11px; }
.analysis-section p { font-size:11px; line-height:1.65; }
.issue-ai-meta { min-height:34px; margin-top:10px; padding:7px 9px; }
.issue-ai-meta span,.issue-ai-meta p { font-size:9px; }
.draft-divider { gap:10px; padding:11px 16px; }
.draft-divider > span { font-size:11px; }
.tone { min-height:32px; padding:0 10px; border-radius:7px; font-size:10px; }
.regenerate { min-height:32px; padding:0 8px; border-radius:7px; font-size:10px; }
.regenerate:hover { background:var(--primary-pale); }
.safety-alert { margin:0 16px 11px; padding:10px 12px; border-radius:8px; }
.safety-alert p { font-size:10px; }
.safety-alert strong { font-size:11px; }
.draft-editor-wrap textarea { padding:16px; border-radius:10px; background:#fbfdfc; font-size:13px; line-height:1.75; }
.draft-hint { padding:8px 17px; font-size:9px; }
.draft-actions { grid-template-columns:38px 38px 1fr auto; padding:11px 16px 16px; }
.icon-nav-button { width:38px; min-height:38px; display:grid; place-items:center; border-radius:8px; }

.drawer-backdrop { background:rgba(7,28,27,.48); }
.drawer-panel { width:min(420px,94vw); }
.drawer-panel header { min-height:78px; padding:16px 20px; }
.drawer-panel h2 { font-size:17px; }
.drawer-close { width:38px; height:38px; }
.drawer-meta { padding:11px 20px; font-size:10px; }
.drawer-list { padding:10px; }
.drawer-user { min-height:76px; gap:11px; padding:13px 12px; }
.drawer-user-copy strong { font-size:12px; }
.drawer-user-copy small,.drawer-user-copy p,.drawer-user time { font-size:10px; }

@media (max-width:1500px) {
  .group-header-card { grid-template-columns:1fr 1.1fr; }
  .group-stats { grid-column:1/-1; }
  .group-stats div:first-child { border-left:0; padding-left:0; }
  .group-answer-grid { grid-template-columns:1fr; }
  .group-chat-card,.issue-draft-card { height:auto; min-height:560px; }
  .group-conversation { height:460px; flex:none; }
}
@media (max-width:1280px) {
  .topbar { padding:0 20px; }
  .semantic-status,.demo-badge { display:none; }
}
@media (max-width:980px) {
  .group-workspace { grid-template-columns:300px minmax(0,1fr); }
  .metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .top-stat { display:none; }
}
@media (max-width:860px) {
  .app-sidebar { box-shadow:none; }
  .main-nav { padding:0 10px; }
  .nav-item { height:58px; margin:0; border-radius:0; }
  .nav-item.active { box-shadow:inset 0 -3px 0 #5eead4; }
  .topbar { height:68px; top:58px; }
  .workspace { min-height:calc(100vh - 68px); }
  .group-workspace { grid-template-columns:1fr; }
  .group-list { max-height:300px; }
}
@media (max-width:650px) {
  .topbar { padding:0 12px; }
  .topbar-actions { gap:8px; }
  .semantic-run-button { width:38px; padding:0; justify-content:center; font-size:0; }
  .semantic-run-button .button-icon { width:18px; height:18px; }
  .dashboard-page { padding:16px 12px 28px; }
  .dashboard-intro { align-items:flex-start; }
  .dashboard-intro h2 { font-size:20px; }
  .metric-grid,.main-charts,.insights-grid { grid-template-columns:1fr; }
  .metric-card { min-height:100px; }
  .donut-layout { flex-direction:column; }
  .chart-legend { width:100%; }
  .group-header-card { padding:16px; }
  .group-stats div { padding:0 8px; }
  .issue-toolbar { align-items:flex-end; }
  .issue-tab-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .issue-tab { width:100%; min-width:0; padding:0 8px; justify-content:center; }
  .analysis-title { grid-template-columns:34px minmax(0,1fr); }
  .analysis-actions { grid-column:1/-1; justify-content:flex-end; }
  .draft-actions { grid-template-columns:40px 40px 1fr; }
  .draft-actions .primary-button { grid-column:1/-1; }
}
@media (max-width:420px) {
  .brand-copy { display:none; }
  .topbar h1 { font-size:16px; }
  .semantic-run-button { display:none; }
  .issue-toolbar { flex-wrap:wrap; }
  .issue-toolbar label { flex:1; }
  .issue-toolbar select { width:100%; }
  .issue-tabs-shell { align-items:stretch; flex-direction:column; }
  .issue-more-button { width:100%; }
}

/* AI 草稿生成中：重新生成按钮旁的小字提示（id 选择器确保不被媒体查询的 width:100% 覆盖）*/
#draftAiHint { width:auto; margin:0 0 0 6px; color:var(--muted); font-size:10px; font-weight:400; white-space:nowrap; display:inline-flex; align-items:center; gap:5px; }
#draftAiHint[hidden] { display:none; }
#draftAiHint::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--primary); animation:draftAiPulse 1s ease-in-out infinite; }
@keyframes draftAiPulse { 0%,100% { opacity:.3; } 50% { opacity:1; } }

/* 侧栏登录态：用户名块占剩余宽度，退出按钮靠右 */
.sidebar-user-block { flex:1 1 auto; }
.logout-button { flex:0 0 auto; padding:4px 10px; border:1px solid rgba(255,255,255,.22); border-radius:7px; background:transparent; color:rgba(255,255,255,.8); font-size:11px; cursor:pointer; }
.logout-button:hover { border-color:rgba(255,255,255,.45); color:#fff; }
