.card { border-radius:12px; }
.pa .card { background:var(--surface-2); box-shadow:none; }
.card > li.empty { padding:0; border:0; }
.card:has(> li.empty:only-child) { background:none; border:0; box-shadow:none; padding:0; }
/* consecutive row lists in one section (e.g. the thinking toggle and the service rows) read as one
   list: shared surface, single separator, outer corners only */
.card.rows:has(+ .card.rows) { border-bottom-left-radius:0; border-bottom-right-radius:0; padding-bottom:0; }
.card.rows + .card.rows { border-top-left-radius:0; border-top-right-radius:0; padding-top:0; margin-top:-1px; }
.rows { list-style:none; margin:0; padding:4px 0; }
.rows > .grp-h h4 { margin:0; padding:10px 14px 2px; font-size:13px; font-weight:600; color:var(--text-2); }
.rows > .grp-h:not(:first-child) { box-shadow:0 -1px 0 var(--border); margin-top:4px; }
.rows > .grp-h + .row-li { box-shadow:none; }
.rows > .grp-h + .row { box-shadow:none; }
.rows > li.row-li + li.row-li { box-shadow:0 -1px 0 var(--border); }
.rows > li.row + li.row-li { box-shadow:0 -1px 0 var(--border); }
.rows > li.row-li + li.row { box-shadow:0 -1px 0 var(--border); }
.row { display:flex; align-items:center; gap:12px; padding:10px 14px; }
.row + .row { box-shadow:0 -1px 0 var(--border); }
.row .row-txt { word-break:break-word; }
.row .num { white-space:nowrap; font-size:12px; }
.row:hover .row-act { opacity:1; }
/* row deletes: shown while anything in the row has focus, faintly for the whole list while the keyboard
   is in it (so the next tab stop is never invisible), and always on touch; a focused one takes the danger tint */
.row:focus-within .row-act { opacity:1; }
.row-txt { flex:1; min-width:0; display:flex; flex-direction:column; line-height:1.35; }
.row-title { font-size:13px; font-weight:500; }
.row-title code { font-size:12px; }
.row-sub { font-size:12px; color:var(--text-2); }
.row-sub.off { color:var(--muted); }
.row-sub.danger { color:var(--tone-err-fg); }
.files { list-style:none; margin:0; padding:4px 0; }
.files > .grp-h h4 { margin:0; padding:10px 14px 2px; font-size:13px; font-weight:600; color:var(--text-2); }
.files > .grp-h:not(:first-child) { box-shadow:0 -1px 0 var(--border); margin-top:4px; }
.files > .grp-h + .file-li { box-shadow:none; }
.file {
  display:flex; align-items:center; gap:12px; width:100%; border:0; background:transparent; text-align:left;
  padding:9px 14px; border-radius:8px; color:inherit; text-decoration:none;
}
.file:hover { background:var(--hover); }
div.file:hover { background:transparent; }
.file-ic {
  width:32px; height:32px; border-radius:8px; display:inline-flex; align-items:center; justify-content:center;
  background:var(--surface-2); box-shadow:inset 0 0 0 1px var(--border); color:var(--text-2);
}
.file-ic img { width:32px; height:32px; object-fit:cover; border-radius:8px; }
.file-ic.pdf { color:var(--tone-err-fg); }
.file-ic.sheet { color:var(--tone-ok-fg); }
.file-ic.mail { color:var(--tone-info-fg); }
.file-ic.img { padding:0; overflow:hidden; }
.file-txt { flex:1; min-width:0; display:flex; flex-direction:column; line-height:1.3; }
.file-name { font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.acts { list-style:none; margin:0; padding:6px 0; }
.act { display:flex; gap:12px; padding:10px 14px; align-items:flex-start; }
.act + .act { box-shadow:0 -1px 0 var(--border); }
.act.unread .act-txt strong { color:var(--text); }
.act-dot { width:8px; height:8px; border-radius:50%; margin-top:7px; flex-shrink:0; background:var(--tone-ok-fg); }
.act-dot.wait { background:var(--gold-400); }
.act-dot.stop { background:var(--slate-400); }
.act-txt { display:flex; flex-direction:column; line-height:1.35; min-width:0; }
.act-txt strong { font-size:12px; font-weight:600; }
.act-txt .act-when { font-size:12px; color:var(--muted); }
.act-txt .act-body { font-size:12px; color:var(--text-2); white-space:pre-line; word-break:break-word; }
.row-btn {
  width:100%; border:0; background:transparent; text-align:left; display:flex; align-items:center; gap:12px;
  padding:10px 14px; border-radius:10px;
}
.row-btn:hover { background:var(--hover); }
.row-act { opacity:0; transition:opacity .15s; }
.file-li { display:flex; align-items:center; gap:2px; padding-right:6px; }
.file-li + .file-li { box-shadow:0 -1px 0 var(--border); }
.file-li > .file { flex:1; min-width:0; }
.file-li:hover .row-act { opacity:1; }
.file-li:focus-within .row-act { opacity:1; }
.rows:has(:focus-visible) .row-act { opacity:.6; }
.files:has(:focus-visible) .row-act { opacity:.6; }
.pa .row-act:focus-visible { opacity:1; color:var(--tone-err-fg); background:var(--tone-err-bg); }
.file-sub { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.file-sub.wait { color:var(--tone-warn-fg); }
.pa .file-sub { font-size:12px; color:var(--muted); }
.totals .row:first-child .row-title { font-weight:600; }
.file-amt { font-size:12px; white-space:nowrap; }
.act-actions { display:flex; gap:4px; flex-wrap:wrap; margin-top:4px; }
.briefing .row-sub { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-clamp:2; overflow:hidden; }
/* Resumo de hoje: the label keeps its width whatever the value says */
.briefing .row > .row-txt { flex:1 1 auto; min-width:0; }
.briefing .row > .num { flex:0 0 auto; max-width:40%; white-space:normal; text-align:right; }
.p-nav .row-btn:focus-visible { outline:2px solid var(--focus); outline-offset:2px; }
.rot.is-off .row-title { color:var(--muted); }
.rot.is-off .row-sub { color:var(--muted); }
.pa .panel .card { background:var(--surface-2); box-shadow:none; }
.pa .msgs .card { background:var(--ag-bg); box-shadow:none; }
@media (hover: none) {
  .row-act { opacity:1; }
}
@media (hover: none), (pointer: coarse) {
  .row-act { opacity:1; }
}
