/* Phần tương tác của app (bổ sung cho report.css của báo cáo gốc) */
.appbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;background:var(--surface);border:1px solid var(--line-2);color:var(--fg-2);border-radius:14px;padding:3px 10px;cursor:pointer;font-family:var(--font)}
.pill:hover{border-color:var(--accent)}
.pill i{width:8px;height:8px;border-radius:50%;background:var(--fg-3);display:inline-block}
.pill.on i{background:var(--good)}.pill.busy i{background:var(--warn)}.pill.err i{background:var(--crit)}
tr.clickable{cursor:pointer}
tr[data-cid]:hover td{background:var(--accent-soft)}
dialog.dlg{border:1px solid var(--line-2);border-radius:8px;padding:0;width:min(980px,96vw);max-height:92vh;background:var(--surface);color:var(--fg);box-shadow:0 18px 50px rgba(0,0,0,.3)}
dialog.dlg.sm{width:min(560px,96vw)}
dialog.dlg::backdrop{background:rgba(10,25,22,.45)}
.dlg-h{position:sticky;top:0;z-index:2;background:var(--surface);border-bottom:1px solid var(--line);padding:12px 16px;display:flex;gap:10px;align-items:flex-start;justify-content:space-between}
.dlg-h h2{font-size:1rem}
.dlg-b{padding:14px 16px;display:grid;gap:14px}
.dlg-f{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--line);padding:10px 16px;display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;align-items:center}
.x{background:none;border:0;font-size:1.3rem;color:var(--fg-2);cursor:pointer;line-height:1}
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:10px}
.form label,.fl{display:grid;gap:3px;font-size:.76rem;color:var(--fg-2)}
.form .wide{grid-column:1/-1}
.form input,.form select,.form textarea,.inp{font:inherit;font-size:.88rem;color:var(--fg);background:var(--surface-2);border:1px solid var(--line-2);border-radius:4px;padding:6px 8px;width:100%;min-width:0}
.form input:focus,.form select:focus,.form textarea:focus,.inp:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}
.form input.num{text-align:right;font-family:var(--mono)}
.form input.chg,.form select.chg,.form textarea.chg{border-color:var(--warn);background:var(--warn-soft)}
.form h4{grid-column:1/-1;margin:6px 0 0;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3)}
.ro{font-size:.82rem;color:var(--fg-2)}
.mini-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.mini-kpis div{background:var(--surface-2);border-radius:4px;padding:6px 8px}
.mini-kpis b{display:block;font-family:var(--mono);font-size:.95rem}
.mini-kpis span{font-size:.72rem;color:var(--fg-3)}
.thread{display:grid;gap:8px;max-height:340px;overflow:auto}
.ev{border-left:3px solid var(--line-2);padding:4px 10px;font-size:.84rem}
.ev.note{border-color:var(--accent)}.ev.edit{border-color:var(--info)}.ev.task,.ev.task_comment,.ev.task_new{border-color:var(--warn)}.ev.assign,.ev.import{border-color:var(--fg-3)}
.ev .who{font-size:.75rem;color:var(--fg-3)}
.ev .chg{font-family:var(--mono);font-size:.76rem;color:var(--fg-2)}
.ev a{color:var(--accent-ink);cursor:pointer;text-decoration:underline}
.btn.sm{padding:3px 8px;font-size:.78rem}
.btn.danger{color:var(--crit)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));gap:14px}
.card h3 small{font-weight:400;color:var(--fg-3)}
.status-sel{font:inherit;font-size:.8rem;background:var(--surface-2);color:var(--fg);border:1px solid var(--line-2);border-radius:4px;padding:2px 4px}
.toast{z-index:1000}
.banner{background:var(--warn-soft);border:1px solid var(--warn);color:var(--fg);border-radius:6px;padding:8px 12px;font-size:.84rem;margin-top:12px}
.empty{padding:18px;text-align:center;color:var(--fg-3)}
.who-tag{font-size:.72rem;background:var(--surface-2);border-radius:4px;padding:1px 6px;color:var(--fg-2);white-space:nowrap}
@media (max-width:640px){.dlg-b{padding:10px}.dlg-h,.dlg-f{padding:10px}}
