:root{
  --ink:#1f2a37; --ink2:#4b5563; --muted:#6b7280; --line:#e2ddd1; --line2:#cfc7b6;
  --paper:#f5f6f8; --card:#ffffff; --head:#17315c; --head2:#23457a; --accent:#8b1e1e; --gold:#c9a227; --nav:#10233f;
  --inc:#1d5fa8; --exp:#b42318; --ok:#1e7a46; --warn:#a15c00; --bg-soft:#f3efe6;
}
*{box-sizing:border-box}
html{font-size:15px}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"Pretendard","Noto Sans KR","Malgun Gothic","Apple SD Gothic Neo",sans-serif;line-height:1.5}
a{color:var(--head2);text-decoration:none} a:hover{text-decoration:underline}
.topnav-fixed{position:sticky;top:0;z-index:100}
header.topbar{background:var(--head);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:10px 22px}
header.topbar .brand{font-weight:700;font-size:1.1rem;color:#fff;letter-spacing:.01em;white-space:nowrap}
header.topbar .brand:hover{text-decoration:none}
header.topbar .brand .gold{color:var(--gold)}
header.topbar .brand small{display:block;font-weight:400;font-size:.72rem;color:#b9c6da}
.userbox{display:flex;gap:10px;align-items:center;font-size:.85rem;color:#cbd5e1;flex-wrap:wrap}
.userbox a{color:#fff}
.userbox select{font-size:.85rem;padding:3px 6px;border-radius:5px;border:0}
nav.tabs{display:flex;gap:2px;background:var(--nav);padding:0 16px;flex-wrap:wrap}
nav.tabs>a,.nav-dropdown-trigger{color:#cbd5e1;padding:11px 14px;font-size:.93rem;white-space:nowrap;border:0;border-bottom:3px solid transparent;background:none;font-family:inherit;cursor:pointer}
nav.tabs>a:hover,nav.tabs>a.active,.nav-dropdown-trigger:hover,.nav-dropdown-trigger.active,.nav-dropdown.open .nav-dropdown-trigger{color:#fff;border-bottom-color:var(--gold);text-decoration:none}
.nav-dropdown{position:relative}
.caret{font-size:.65rem;margin-left:2px}
.nav-dropdown-trigger .badge{background:var(--accent);color:#fff;border-radius:9px;padding:0 6px;font-size:.72rem}
.nav-dropdown-menu{display:none;position:absolute;top:100%;left:0;background:var(--nav);min-width:210px;box-shadow:0 8px 20px rgba(0,0,0,.35);border-radius:0 0 8px 8px;overflow:hidden;z-index:200}
.nav-dropdown.open .nav-dropdown-menu{display:block}
.nav-dropdown-menu a{display:flex;gap:8px;align-items:center;padding:10px 16px;color:#cbd5e1;font-size:.92rem;white-space:nowrap}
.nav-dropdown-menu a:hover,.nav-dropdown-menu a.active{background:#1a2f4f;color:#fff;text-decoration:none}
.nav-dropdown-menu a.active{color:var(--gold);font-weight:700}
.nav-backdrop{display:none;position:fixed;inset:0;background:rgba(8,15,30,.5);z-index:90}
.sitefoot{text-align:center;color:#9aa3b2;font-size:11px;padding:6px 0 30px}
.mbar,.msheet{display:none}
@media (max-width:760px){
  header.topbar{padding:8px 12px}
  header.topbar .brand{font-size:.98rem}
  header.topbar .brand small{display:none}
  .userbox{font-size:.78rem;gap:6px}
  body.has-mbar{padding-bottom:calc(62px + env(safe-area-inset-bottom,0px))}
  body.has-mbar nav.tabs{display:none}
  .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:900;background:#fff;border-top:1px solid var(--line);box-shadow:0 -2px 10px rgba(20,30,50,.08);padding-bottom:env(safe-area-inset-bottom,0px)}
  .mbar a,.mbar button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:58px;font-size:11.5px;font-weight:700;color:#5b6472;background:none;border:0;font-family:inherit;position:relative}
  .mbar a:hover{text-decoration:none}
  .mbar .i{font-size:21px;line-height:1}
  .mbar a.on{color:var(--head)}
  .mbar .dot{position:absolute;top:5px;right:22%;background:var(--accent);color:#fff;border-radius:9px;font-size:10px;padding:0 5px}
  .msheet{position:fixed;inset:0;z-index:1200;background:rgba(15,20,30,.45);align-items:flex-end}
  .msheet.open{display:flex}
  .msheet-box{background:#fff;width:100%;max-height:85vh;border-radius:16px 16px 0 0;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom,0px)}
  .msheet-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 8px;font-size:17px;color:var(--head)}
  .msheet-x{background:none;border:0;font-size:26px;color:var(--muted)}
  .msheet-body{overflow-y:auto;padding:0 12px 14px}
  .msheet-g h4{margin:12px 4px 6px;font-size:14px;color:var(--head)}
  .msheet-items{display:grid;grid-template-columns:1fr 1fr;gap:6px}
  .msheet-items a{display:flex;align-items:center;gap:7px;padding:10px;border:1px solid var(--line);border-radius:10px;font-size:13.5px;color:#1f2937;background:#fafbfd;line-height:1.25}
  .msheet-items a.on{border-color:var(--head);background:#e7eefb;font-weight:700}
}
main{max-width:1280px;margin:0 auto;padding:22px 20px 60px}
h1{font-size:1.45rem;margin:0 0 4px;letter-spacing:-.02em}
h2{font-size:1.12rem;margin:26px 0 10px}
h3{font-size:1rem;margin:18px 0 8px}
.sub{color:var(--muted);font-size:.9rem;margin:0 0 18px}
.pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:16px}
.grid{display:grid;gap:14px}
.g4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.g2{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}
.stat .lbl{color:var(--muted);font-size:.85rem}
.stat .val{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.stat .val.inc{color:var(--inc)} .stat .val.exp{color:var(--exp)}
table{border-collapse:collapse;width:100%;font-size:.92rem}
th,td{padding:7px 9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
th{background:var(--bg-soft);font-weight:600;color:var(--ink2);white-space:nowrap;border-bottom:1px solid var(--line2)}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
td.c,th.c{text-align:center}
tr.sub td{background:#f7f3ea;font-weight:600}
tr.total td{background:#ece5d5;font-weight:700;border-top:2px solid var(--line2)}
tr.grouphead td{background:#eef2f7;font-weight:700;color:var(--head)}
tbody tr:hover td{background:#fbfaf6}
.inc{color:var(--inc)} .exp{color:var(--exp)} .neg{color:var(--exp)}
.tablewrap{overflow-x:auto}
.pill{display:inline-block;padding:1px 8px;border-radius:10px;font-size:.78rem;font-weight:600;white-space:nowrap}
.st-기안{background:#fff4d6;color:#8a5a00}
.st-총무결재,.st-결재중{background:#f6c27a;color:#5a3000}
.st-기안{background:#ffe2a8;color:#6b4300}
.st-결재완료{background:#b9e0a5;color:#1d4a06}
.st-반려{background:#f3b0b0;color:#7a1515}
.k-수입{background:#e2ecfb;color:var(--inc)} .k-지출{background:#fde8e6;color:var(--exp)}
.btn{display:inline-block;border:1px solid var(--line2);background:#fff;color:var(--ink);padding:6px 13px;border-radius:7px;
  font-size:.9rem;cursor:pointer;font-family:inherit;line-height:1.4;white-space:nowrap}
.btn:hover{background:var(--bg-soft);text-decoration:none}
.btn.primary{background:var(--head);border-color:var(--head);color:#fff}
.btn.primary:hover{background:var(--head2)}
.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}
.btn.danger{background:#fff;border-color:#e3a39c;color:var(--exp)}
.btn.sm{padding:3px 9px;font-size:.82rem}
form.inline{display:inline}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px}
.filters label{font-size:.8rem;color:var(--muted);display:flex;flex-direction:column;gap:2px}
input,select,textarea{font-family:inherit;font-size:.93rem;padding:6px 8px;border:1px solid var(--line2);border-radius:6px;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid #9db7d8;outline-offset:0;border-color:#7d9cc4}
input.num{text-align:right;font-variant-numeric:tabular-nums}
.form{display:grid;grid-template-columns:130px 1fr;gap:10px 14px;align-items:center;max-width:720px}
.form label{font-weight:600;color:var(--ink2);font-size:.9rem}
.form .full{grid-column:1/-1}
.form .hint{grid-column:2;color:var(--muted);font-size:.82rem;margin-top:-6px}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:.92rem}
.flash.ok{background:#e3f4ea;color:#14532d} .flash.error{background:#fde4e2;color:#7f1d1d} .flash.warn{background:#fff4d6;color:#713f12}
.note{background:#fff8e6;border:1px solid #f0dfb0;border-radius:8px;padding:9px 13px;font-size:.88rem;color:#6b4b00;margin-bottom:12px}
.muted{color:var(--muted)} .small{font-size:.83rem}
.kv{display:grid;grid-template-columns:110px 1fr;gap:6px 12px;font-size:.93rem}
.kv dt{color:var(--muted)} .kv dd{margin:0}
.stamps{display:inline-grid;grid-template-columns:repeat(3,92px);border:1.5px solid #333;font-size:.82rem;text-align:center}
.stamps div{border-left:1px solid #333}
.stamps div:first-child{border-left:0}
.stamps .h{background:#f1ede4;border-bottom:1px solid #333;padding:3px 0;font-weight:600}
.stamps .b{height:58px;display:flex;flex-direction:column;justify-content:center;align-items:center}
.stamps .b .nm{font-weight:700;color:var(--accent);font-size:.95rem}
.stamps .b .dt{font-size:.72rem;color:#555}
.timeline{list-style:none;padding:0;margin:0;font-size:.9rem}
.timeline li{padding:6px 0;border-bottom:1px dashed var(--line)}
.bar{height:7px;background:#eee8dc;border-radius:4px;overflow:hidden;min-width:70px}
.bar i{display:block;height:100%;background:var(--head2)}
.bar i.over{background:var(--exp)}
.login{max-width:380px;margin:9vh auto;background:#fff;border:1px solid var(--line);border-radius:12px;padding:30px}
.login h1{font-size:1.2rem;margin-bottom:2px}
.login input{width:100%;margin-top:4px;margin-bottom:12px;padding:9px}
.check-list{max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:8px;columns:3;font-size:.88rem}
.check-list label{display:block;break-inside:avoid}
@media (max-width:760px){
  .form{grid-template-columns:1fr} .form .hint{grid-column:1}
  main{padding:14px 12px 50px} .check-list{columns:2}

}
/* ------------ print ------------ */
.print-only{display:none}
@media print{
  @page{size:A4;margin:14mm 12mm}
  html{font-size:10.5pt}
  body{background:#fff}
  .topnav-fixed,.mbar,.msheet,.sitefoot,.nav-backdrop,.noprint,.flash,.filters,.actions{display:none!important}
  .print-only{display:block}
  main{max-width:none;padding:0}
  .card{border:0;padding:0;margin:0 0 10px}
  th{background:#eee!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  tr.sub td,tr.total td,tr.grouphead td{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  th,td{padding:3px 5px;border:1px solid #888}
  table{font-size:9.5pt}
  .pagebreak{page-break-before:always;break-before:page}
  tr{page-break-inside:avoid}
  a{color:inherit;text-decoration:none}
  .tablewrap{overflow:visible}
}
/* 인쇄 문서 공통 */
.doc{background:#fff;max-width:900px;margin:0 auto;padding:30px 34px}
.doc h1.title{text-align:center;font-size:1.6rem;letter-spacing:.3em;margin:6px 0 4px}
.doc .org{text-align:center;color:#444;margin-bottom:18px}
.doc table th,.doc table td{border:1px solid #999}
.doc .row-between{display:flex;justify-content:space-between;align-items:flex-end;margin:10px 0}
.cover{text-align:center;padding-top:120px}
.cover h1{font-size:2rem;letter-spacing:.2em;margin:20px 0}
.cover .period{font-size:1.1rem;margin:12px 0 80px}
.sign{margin-top:30px;display:grid;grid-template-columns:1fr 1fr;gap:30px;font-size:1rem}
.sign div{border-bottom:1px solid #333;padding:20px 0 6px}
@media print{.doc{padding:0;max-width:none}}

/* 결의서 */
.lines-table input,.lines-table select{width:100%;min-width:0}
.lines-table td{vertical-align:top;padding:5px 4px}
.lines-table .newm{margin-top:4px;font-size:.8rem}
.lines-table .newm select{font-size:.82rem;padding:3px 4px}
.kind-toggle{justify-self:start;display:inline-flex;border:1px solid var(--line2);border-radius:8px;overflow:hidden}
.kind-toggle a{padding:6px 16px;color:var(--ink2)}
.kind-toggle a.on{background:var(--head);color:#fff}
.kind-toggle a:hover{text-decoration:none}
.files{list-style:none;padding:0;margin:0}
.files li{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px dashed var(--line);font-size:.9rem}
.files li .muted{font-size:.8rem}
/* 결의서 줄 색: 결재완료=연초록, 진행중=연주황, 반려=연빨강, 내 차례=진한 주황(굵게) */
tr.v-결재완료 td{background:#f1f9ec}
tr.v-기안 td,tr.v-결재중 td{background:#fff8ec}
tr.v-반려 td{background:#fdf0f0}
tr.v-결재완료 td:first-child{box-shadow:inset 5px 0 0 #2e7d12}
tr.v-기안 td:first-child,tr.v-결재중 td:first-child{box-shadow:inset 5px 0 0 #e09a2b}
tr.v-반려 td:first-child{box-shadow:inset 5px 0 0 #c62828}
tr.mine td{background:#ffd9a3!important;font-weight:600;color:#3d2400}
tr.mine td:first-child{box-shadow:inset 6px 0 0 #d35400!important}
.my-turn-tag,.my-done-tag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.74rem;font-weight:800;color:#fff;white-space:nowrap}
.my-turn-tag{background:#c94a00}.my-done-tag{background:#2e7d12}
.track{display:inline-flex;flex-wrap:wrap;gap:2px;align-items:center}
.tstep{display:inline-block;padding:1px 7px;border-radius:6px;font-size:.76rem;font-weight:700;white-space:nowrap;border:1px solid transparent}
.tstep small{font-weight:500;opacity:.8}
.t-done{background:#b9e0a5;color:#1d4a06;border-color:#7fbf5e}
.t-now{background:#f6c27a;color:#5a3000;border-color:#d38a1e;animation:tpulse 1.6s ease-in-out infinite}
.t-wait{background:#eceff3;color:#7a8291;border-color:#d7dbe2}
.t-reject{background:#f3b0b0;color:#7a1515;border-color:#d66}
.tarrow{color:#9aa3b2;font-size:.8rem}
.track-legend .tstep{animation:none}
@keyframes tpulse{50%{box-shadow:0 0 0 3px rgba(211,138,30,.25)}}
@media print{.t-now{animation:none}}
.doc .lines th,.doc .lines td{padding:5px 6px}
.doc .meta{display:grid;grid-template-columns:110px 1fr 110px 1fr;border:1px solid #999;border-bottom:0;font-size:.95rem}
.doc .meta>div{padding:6px 8px;border-bottom:1px solid #999}
.doc .meta>div:nth-child(odd){background:#f1ede4;font-weight:600;border-right:1px solid #999}
.doc .meta>div:nth-child(4n+2){border-right:1px solid #999}
@media print{.doc .meta>div:nth-child(odd){-webkit-print-color-adjust:exact;print-color-adjust:exact}}
@media (max-width:760px){.doc .meta{grid-template-columns:90px 1fr}.doc .meta>div:nth-child(4n+2){border-right:0}}
/* 라벨 (폼텍 3108) */
.label-sheet{display:grid;grid-template-columns:99.1mm 99.1mm;grid-auto-rows:38.1mm;column-gap:2.3mm;background:#fff}
.label-cell{width:99.1mm;height:38.1mm;padding:4mm 5mm;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;overflow:hidden;border:1px dashed #ccc}
.label-cell .postal{font-size:10pt;letter-spacing:1px;margin-bottom:1.5mm}
.label-cell .addr{font-size:10.5pt;line-height:1.35;margin-bottom:2mm}
.label-cell .to{font-size:12pt;font-weight:700;text-align:right}
.label-cell .ph{font-size:10pt;text-align:right;margin-top:1mm}
@media print{
  body.labels-print main{padding:0}
  .label-sheet{width:210mm;height:297mm;padding:15.15mm 4.75mm;page-break-after:always;break-after:page}
  .label-sheet:last-child{page-break-after:auto;break-after:auto}
  .label-cell{border:0}
}
.kind-toggle a{cursor:pointer}
select.bad{border-color:var(--exp);background:#fff5f5}
.steps-prog{list-style:none;padding:0;margin:12px 0 0;counter-reset:st}
.steps-prog li{padding:4px 0 4px 26px;position:relative;color:var(--muted)}
.steps-prog li::before{counter-increment:st;content:counter(st);position:absolute;left:0;top:4px;width:18px;height:18px;border-radius:50%;background:#e5e7eb;color:#555;font-size:11px;text-align:center;line-height:18px}
.steps-prog li.done{color:var(--ok)} .steps-prog li.done::before{background:var(--ok);color:#fff;content:"✔"}
.steps-prog li.now{color:#5a3000;font-weight:700;background:#fff1dc;border-radius:6px} .steps-prog li.now::before{background:#d35400;color:#fff;left:4px}
.steps-prog li.done{background:#eef8e8;border-radius:6px} .steps-prog li.done::before{left:4px}
.steps-prog li.reject{color:#7a1515;font-weight:700;background:#fdeaea;border-radius:6px} .steps-prog li.reject::before{background:#c62828;color:#fff;content:"✖";left:4px}
.steps-prog li{margin-bottom:3px;padding-left:30px}
.steps-prog li::before{left:4px}
.steps-prog li.wait::after{content:" · 대기";color:#9aa3b2}
.bell{position:relative;color:#fff;font-size:1.05rem}
.bell .n{position:absolute;top:-6px;right:-9px;background:var(--accent);color:#fff;border-radius:9px;font-size:.66rem;padding:0 5px;line-height:15px}
tr.unread td{background:#fffbea}

tr.rowlink{cursor:pointer}
tr.rowlink:hover td{background:#eef3fb}
tr.rowlink:focus-visible td{outline:2px solid #17315c;outline-offset:-2px}
.k-결의서{background:#e2ecfb;color:#1d4f91;text-decoration:none;font-size:.7rem}

/* ------------ 휴대폰: 결의서 목록·내역을 카드로 ------------ */
.m-only{display:none}
.nm{white-space:nowrap;word-break:keep-all}
@media (max-width:760px){
  .m-only{display:inline}
  table.mstack{min-width:0!important;width:100%}
  table.mstack thead{display:none}
  table.mstack,table.mstack tbody,table.mstack tr,table.mstack td{display:block}
  table.mstack tr{display:flex;flex-wrap:wrap;align-items:center;gap:5px 8px;padding:11px 12px 11px 14px;border-bottom:1px solid var(--line);position:relative}
  table.mstack td{padding:0;border:0;background:transparent!important;box-shadow:none!important;text-align:left;word-break:keep-all;overflow-wrap:anywhere}
  table.mstack td:empty,table.mstack .m-hide{display:none}
  table.mstack td[data-label]:not(:empty)::before{content:attr(data-label);color:var(--muted);font-size:.72rem;margin-right:4px}
  table.mstack .m-check{order:0} table.mstack .m-check input{width:20px;height:20px}
  table.mstack .m-kind{order:1}
  table.mstack .m-title{order:1;flex:1 1 50%;min-width:0;font-weight:700;font-size:1rem;line-height:1.35}
  table.mstack .m-title a{color:var(--ink)}
  table.mstack .m-amt{order:2;margin-left:auto;font-weight:800;font-size:1.02rem;white-space:nowrap}
  table.mstack .m-meta{order:3;font-size:.8rem;color:var(--muted);white-space:nowrap}
  table.mstack .m-meta+.m-meta::before{content:"·";margin-right:6px;color:#c3c8d1}
  table.mstack .m-meta[data-label]::before{content:"· " attr(data-label)}
  table.mstack .m-status{order:4}
  table.mstack .m-track{order:5;flex-basis:100%}
  table.mstack .tstep{font-size:.8rem;padding:2px 8px}
  /* 상태 색: 휴대폰에선 카드 왼쪽 띠 + 바탕 */
  table.mstack tr.v-결재완료{background:#f1f9ec;box-shadow:inset 5px 0 0 #2e7d12}
  table.mstack tr.v-기안,table.mstack tr.v-결재중{background:#fff8ec;box-shadow:inset 5px 0 0 #e09a2b}
  table.mstack tr.v-반려{background:#fdf0f0;box-shadow:inset 5px 0 0 #c62828}
  table.mstack tr.mine{background:#ffd9a3;box-shadow:inset 6px 0 0 #d35400}
  /* 결의서 보기 — 내역 줄 */
  table.lines-view .m-no{order:0;font-size:.78rem;color:var(--muted);flex:0 0 auto}
  table.lines-view .m-no::after{content:"."}
  table.lines-view .m-grp{order:1;font-size:.82rem;color:var(--muted)}
  table.lines-view .m-cat{order:1;font-weight:700}
  table.lines-view .m-desc{order:3;flex-basis:100%;font-size:.95rem}
  table.lines-view .m-mem,table.lines-view .m-ev,table.lines-view .m-note{order:4;font-size:.85rem}
  table.lines-view .m-mem .nm{white-space:nowrap}
  table.mstack tr.total{background:#efe9dc;justify-content:space-between;font-weight:800}
  table.mstack tr.total td{display:block}
  /* 결의서 쓰기 — 한 줄을 카드처럼 */
  .lines-table{min-width:0!important}
  .lines-table thead{display:none}
  .lines-table,.lines-table tbody,.lines-table tfoot{display:block}
  .lines-table tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;padding:12px 12px 10px;margin:0 0 10px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe;position:relative}
  .lines-table tbody td{display:block;padding:0;border:0}
  .lines-table td[data-label]::before{content:attr(data-label);display:block;font-size:.74rem;color:var(--muted);margin-bottom:3px}
  .lines-table .f-cat,.lines-table .f-desc,.lines-table .f-mem,.lines-table .f-full{grid-column:1/-1}
  .lines-table .f-cat{padding-right:44px}
  .lines-table .f-del{position:absolute;top:8px;right:8px}
  .lines-table .f-del .btn{padding:4px 10px}
  .lines-table input,.lines-table select{font-size:16px;padding:9px 10px}
  .lines-table .lev{font-size:14px!important}
  .lines-table .f-amt input{font-weight:700;text-align:right}
  .lines-table tfoot tr{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:10px 4px}
  .lines-table tfoot td{display:block;padding:0;border:0}
  .lines-table tfoot td:empty{display:none}
  .lines-table tbody tr:not(:has(.f-cat)) .f-del{position:static;grid-column:1/-1;justify-self:end}
  .card.tablewrap:has(.lines-table){overflow:visible}
  table.mstack tr.total td.n{margin-left:auto}
}
