:root {
  --primary: #2c0453;
  --primary-hover: #42106f;
  --primary-soft: #ece6f3;
  --ink: #111111;
  --ink-2: #4a4550;
  --ink-3: #7a7480;
  --beige: #f0ede4;
  --beige-2: #e7e2d5;
  --mist: #d5dce3;
  --white: #ffffff;
  --line: #e4e0d6;

  --ok: #1d6b45;    --ok-bg: #e2f1e7;    --ok-bar: #2f9e64;
  --warn: #8a5d00;  --warn-bg: #fff2cc;  --warn-bar: #e5a800;
  --bad: #a3231a;   --bad-bg: #fbe3df;   --bad-bar: #d9412f;
  --gray: #4f5965;  --gray-bg: #eceff2;  --gray-bar: #9aa4ae;
  --done: #2c0453;  --done-bg: #ece6f3;  --done-bar: #6b4b91;

  --serif: "Noto Serif Display", Georgia, "Times New Roman", serif;
  --sans: "Radio Canada", "Segoe UI", system-ui, -apple-system, sans-serif;
  --mono: Consolas, "Cascadia Mono", ui-monospace, monospace;
  --radius: 14px;
  --pill: 32px;
  --shadow: 0 1px 2px rgba(17, 17, 17, .04), 0 6px 24px rgba(44, 4, 83, .06);
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.5;
  color: var(--ink);
  background: var(--beige);
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
main { flex: 1; width: 100%; max-width: 1320px; margin: 0 auto; padding: 32px 28px 56px; }
h1, h2, h3 { font-family: var(--serif); font-weight: 500; letter-spacing: -.01em; margin: 0; }
h1 { font-size: 34px; line-height: 1.15; }
h2 { font-size: 21px; }
h3 { font-size: 18px; margin: 22px 0 6px; }
[hidden] { display: none !important; }
svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.mono { font-family: var(--mono); font-size: 13px; }
.spacer { flex: 1; }

/* Topbar */
.topbar { background: var(--primary); color: var(--white); position: sticky; top: 0; z-index: 20; }
.topbar-inner { max-width: 1320px; margin: 0 auto; padding: 14px 28px; display: flex; align-items: center; gap: 28px; }
.brand { display: flex; flex-direction: column; text-decoration: none; color: inherit; line-height: 1.1; }
.brand-name { font-family: var(--serif); font-size: 22px; font-weight: 500; }
.brand-sub { font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; opacity: .72; margin-top: 3px; }
.mainnav { display: flex; gap: 4px; }
.mainnav a { color: rgba(255,255,255,.78); text-decoration: none; padding: 8px 14px; border-radius: var(--pill); font-size: 15px; transition: background .15s, color .15s; }
.mainnav a:hover { color: #fff; background: rgba(255,255,255,.08); }
.mainnav a.active { color: var(--primary); background: var(--white); font-weight: 500; }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 14px; }
.sync-info { font-size: 13px; opacity: .78; white-space: nowrap; }
.sync-info .dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #7ee2a8; margin-right: 6px; vertical-align: 1px; }
.sync-info .dot.err { background: #ff9b8f; }
.sync-info .dot.busy { background: #ffd66b; animation: pulse 1s infinite alternate; }
@keyframes pulse { to { opacity: .3; } }

/* Buttons */
.btn { display: inline-flex; align-items: center; gap: 8px; border: 1.5px solid transparent; border-radius: var(--pill); padding: 10px 20px; font: 500 15px var(--sans); cursor: pointer; text-decoration: none; white-space: nowrap; transition: background .15s, color .15s, border-color .15s, transform .05s; }
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: .55; cursor: default; }
.btn-small { padding: 6px 14px; font-size: 14px; }
.btn-primary { background: var(--primary); color: #fff; }
.btn-primary:hover { background: var(--primary-hover); }
.btn-dark { background: var(--ink); color: #fff; }
.btn-outline { background: transparent; color: var(--primary); border-color: var(--primary); }
.btn-outline:hover { background: var(--primary); color: #fff; }
.btn-plain { background: transparent; color: var(--ink-2); }
.btn-plain:hover { background: var(--beige); }
.btn-danger { background: var(--bad); color: #fff; }
.btn-danger-outline { background: transparent; color: var(--bad); border-color: var(--bad); }
.btn-danger-outline:hover { background: var(--bad); color: #fff; }
.btn-ghost-light { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); padding: 8px 16px; font-size: 14px; }
.btn-ghost-light:hover { background: #fff; color: var(--primary); }
.btn-ghost-light.spinning svg { animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.link-btn { background: none; border: 0; padding: 0; color: var(--primary); font: inherit; font-weight: 500; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.icon-btn { background: none; border: 0; font-size: 26px; line-height: 1; cursor: pointer; color: var(--ink-3); padding: 2px 8px; border-radius: 8px; }
.icon-btn:hover { background: var(--beige); color: var(--ink); }

/* Testbanner */
.testbanner { background: repeating-linear-gradient(-45deg, #fff2cc 0 14px, #fbeab6 14px 28px); border-bottom: 1px solid #ecd48a; }
.testbanner-inner { max-width: 1320px; margin: 0 auto; padding: 10px 28px; display: flex; align-items: center; gap: 14px; font-size: 14px; color: #5e4300; }
.testbanner-tag { background: var(--ink); color: #fff; font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: .1em; padding: 4px 10px; border-radius: var(--pill); }
.testbanner .link-btn { color: #5e4300; }

/* Page head */
.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.eyebrow { margin: 0 0 6px; font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--primary); font-weight: 600; }
.lead { margin: 8px 0 0; color: var(--ink-2); font-size: 16px; max-width: 760px; }

/* Cards */
.card { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); border: 1px solid var(--line); }
.form-card { padding: 24px 28px; margin-bottom: 20px; max-width: 900px; }
.notice { background: var(--primary-soft); color: var(--primary); border-radius: 12px; padding: 12px 16px; margin-bottom: 20px; font-size: 14.5px; }

/* KPIs */
.kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; margin-bottom: 22px; }
.kpi { position: relative; text-align: left; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 18px 14px; cursor: pointer; font: inherit; color: inherit; box-shadow: var(--shadow); overflow: hidden; transition: border-color .15s, transform .1s; }
.kpi::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--bar, var(--primary)); }
.kpi:hover { border-color: var(--bar, var(--primary)); }
.kpi.active { border-color: var(--ink); box-shadow: 0 0 0 2px var(--ink) inset, var(--shadow); }
.kpi-num { font-family: var(--serif); font-size: 34px; line-height: 1; font-weight: 500; }
.kpi-label { display: block; margin-top: 8px; font-size: 13.5px; color: var(--ink-2); }
.kpi[data-s="alle"] { --bar: var(--primary); }
.kpi[data-s="gruen"] { --bar: var(--ok-bar); }
.kpi[data-s="gelb"] { --bar: var(--warn-bar); }
.kpi[data-s="rot"] { --bar: var(--bad-bar); }
.kpi[data-s="grau"] { --bar: var(--gray-bar); }
.kpi[data-s="abgerechnet"] { --bar: var(--done-bar); }

/* Toolbar */
.toolbar { display: flex; align-items: center; gap: 18px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.search { flex: 1; max-width: 460px; display: flex; align-items: center; gap: 8px; background: var(--beige); border-radius: var(--pill); padding: 0 16px; color: var(--ink-3); }
.search input { flex: 1; border: 0; background: transparent; font: inherit; padding: 10px 0; outline: none; color: var(--ink); }
.search:focus-within { box-shadow: 0 0 0 2px var(--primary); }

/* Switch */
.switch-label { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-size: 14.5px; color: var(--ink-2); user-select: none; }
.switch-label input { position: absolute; opacity: 0; width: 0; height: 0; }
.switch { width: 38px; height: 22px; background: var(--mist); border-radius: 22px; position: relative; transition: background .15s; flex: none; }
.switch::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; background: #fff; border-radius: 50%; transition: transform .15s; box-shadow: 0 1px 2px rgba(0,0,0,.2); }
.switch-label input:checked + .switch { background: var(--primary); }
.switch-label input:checked + .switch::after { transform: translateX(16px); }
.switch-label input:focus-visible + .switch { outline: 2px solid var(--primary); outline-offset: 2px; }

/* Table */
.table-wrap { overflow-x: auto; }
table.cases { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.cases th { text-align: left; font-weight: 500; font-size: 12.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); padding: 12px 14px; border-bottom: 1px solid var(--line); background: #fcfbf8; position: sticky; top: 0; }
.cases td { padding: 13px 14px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.cases th.center, .cases td.center { text-align: center; }
.cases tr.row { cursor: pointer; transition: background .1s; }
.cases tr.row td:first-child { box-shadow: inset 5px 0 0 var(--bar); }
.cases tr.row:hover { background: #faf8f3; }
.cases tr.row.open { background: #faf8f3; }
.cases tr.s-gruen { --bar: var(--ok-bar); }
.cases tr.s-gelb { --bar: var(--warn-bar); }
.cases tr.s-rot { --bar: var(--bad-bar); background: #fffaf9; }
.cases tr.s-grau { --bar: var(--gray-bar); }
.cases tr.s-abgerechnet { --bar: var(--done-bar); }
.cases tr.s-abgerechnet td:not(:first-child) { color: var(--ink-3); }
.pill { display: inline-flex; align-items: center; gap: 6px; padding: 3px 11px 3px 9px; border-radius: var(--pill); font-size: 13px; font-weight: 500; white-space: nowrap; }
.pill::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.pill.s-gruen { color: var(--ok); background: var(--ok-bg); }
.pill.s-gelb { color: var(--warn); background: var(--warn-bg); }
.pill.s-rot { color: var(--bad); background: var(--bad-bg); }
.pill.s-grau { color: var(--gray); background: var(--gray-bg); }
.pill.s-abgerechnet { color: var(--done); background: var(--done-bg); }
.key { font-family: var(--mono); font-size: 13.5px; font-weight: 600; }
.key.missing { font-family: var(--sans); font-weight: 400; color: var(--ink-3); font-style: italic; }
.key .manual { font-family: var(--sans); font-size: 11px; font-weight: 500; color: var(--primary); background: var(--primary-soft); border-radius: 6px; padding: 1px 6px; margin-left: 6px; vertical-align: 1px; }
.subj { font-weight: 500; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }
.from { color: var(--ink-3); font-size: 13px; margin-top: 2px; }
.muted { color: var(--ink-3); }
.small { font-size: 13px; }
.kind-tag { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gray); background: var(--gray-bg); border-radius: 6px; padding: 1px 6px; margin-right: 6px; vertical-align: 1px; }
.chev { color: var(--ink-3); transition: transform .15s; display: inline-block; }
tr.open .chev { transform: rotate(90deg); }
.detail-row td { background: #faf8f3; padding: 0 14px 18px 19px; box-shadow: inset 5px 0 0 var(--bar); }
.detail-row.s-gruen { --bar: var(--ok-bar); } .detail-row.s-gelb { --bar: var(--warn-bar); } .detail-row.s-rot { --bar: var(--bad-bar); } .detail-row.s-grau { --bar: var(--gray-bar); } .detail-row.s-abgerechnet { --bar: var(--done-bar); }
.detail { display: grid; grid-template-columns: 1fr 1fr 300px; gap: 16px; }
.mailbox { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; min-width: 0; }
.mailbox h4 { margin: 0 0 4px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); font-weight: 600; }
.mailbox .mail-subj { font-weight: 500; }
.mailbox .mail-meta { font-size: 13px; color: var(--ink-3); margin: 2px 0 8px; }
.mailbox .mail-text { font-size: 13.5px; color: var(--ink-2); white-space: pre-line; max-height: 170px; overflow: auto; }
.mailbox .att { margin-top: 8px; font-size: 12.5px; color: var(--ink-3); }
.mailbox + .mailbox { margin-top: 10px; }
.empty-box { border: 1.5px dashed var(--mist); border-radius: 12px; padding: 18px; color: var(--ink-3); font-size: 14px; }
.edit-box { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; }
.edit-box .field + .field { margin-top: 10px; }
.edit-box .btn { margin-top: 12px; }

/* Checkbox in table */
.billed { width: 20px; height: 20px; accent-color: var(--primary); cursor: pointer; }

.empty { padding: 56px 20px; text-align: center; color: var(--ink-3); }
.empty b { display: block; font-family: var(--serif); font-size: 22px; font-weight: 500; color: var(--ink); margin-bottom: 6px; }

/* Forms */
.field { display: flex; flex-direction: column; gap: 6px; font-size: 13.5px; color: var(--ink-2); font-weight: 500; }
.field input, .field select, .field textarea { font: 400 15px var(--sans); color: var(--ink); background: #fff; border: 1.5px solid var(--mist); border-radius: 10px; padding: 9px 12px; outline: none; transition: border-color .15s, box-shadow .15s; width: 100%; }
.field textarea.mono { font-family: var(--mono); font-size: 13px; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(44, 4, 83, .12); }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
.span-2 { grid-column: span 2; }
.help { color: var(--ink-3); font-size: 14px; margin: 0 0 12px; }
.form-card .field + .field { margin-top: 12px; }
.row-actions { display: flex; gap: 12px; align-items: center; margin-top: 12px; }
.form-foot { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.tester { margin-top: 18px; padding: 16px; background: var(--beige); border-radius: 12px; }
.tester-actions { display: flex; gap: 10px; align-items: center; margin-top: 10px; flex-wrap: wrap; }
.tester-result { font-size: 14px; }
.tester-result .key { background: var(--ok-bg); color: var(--ok); padding: 3px 8px; border-radius: 6px; }
.meta { display: grid; grid-template-columns: 140px 1fr; gap: 8px 16px; margin: 8px 0 4px; font-size: 14.5px; }
.meta dt { color: var(--ink-3); }
.meta dd { margin: 0; word-break: break-all; }
.pw-wrap { position: relative; display: block; }
.pw-wrap input { padding-right: 72px; }
.pw-toggle { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); border: 0; background: var(--beige); border-radius: 8px; font: 500 12.5px var(--sans); padding: 4px 9px; cursor: pointer; color: var(--ink-2); }

/* Mailboxes */
.mb-columns { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 22px; }
@media (max-width: 1250px) { .mb-columns { grid-template-columns: 1fr 1fr; } }
.mb-col { background: rgba(255,255,255,.55); border: 1px solid var(--line); border-radius: 18px; padding: 20px; }
.mb-col-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 14px; }
.mb-col-head p { margin: 4px 0 0; color: var(--ink-3); font-size: 14px; }
.mb-list { display: flex; flex-direction: column; gap: 12px; }
.mb-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 18px; box-shadow: var(--shadow); }
.mb-card.demo { border-style: dashed; box-shadow: none; }
.mb-card-top { display: flex; align-items: center; gap: 10px; }
.mb-name { font-weight: 600; font-size: 16px; }
.mb-sub { font-size: 13.5px; color: var(--ink-3); margin-top: 2px; word-break: break-all; }
.mb-status { margin-top: 10px; font-size: 13.5px; display: flex; gap: 8px; align-items: flex-start; }
.mb-status .dot { width: 9px; height: 9px; border-radius: 50%; margin-top: 5px; flex: none; background: var(--gray-bar); }
.mb-status.ok .dot { background: var(--ok-bar); }
.mb-status.err { color: var(--bad); }
.mb-status.err .dot { background: var(--bad-bar); }
.mb-actions { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.badge { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; padding: 2px 8px; border-radius: 6px; background: var(--gray-bg); color: var(--gray); }
.badge.off { background: var(--bad-bg); color: var(--bad); }
.badge.demo { background: #fff2cc; color: #5e4300; }
.mb-empty { border: 1.5px dashed var(--mist); border-radius: var(--radius); padding: 22px; text-align: center; color: var(--ink-3); font-size: 14.5px; }
.mb-empty button { margin-top: 10px; }

/* Welcome */
.welcome { max-width: 880px; margin: 24px auto 0; }
.welcome h1 { font-size: 44px; }
.choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 32px 0 26px; }
.choice { text-align: left; background: var(--primary); color: #fff; border: 0; border-radius: 20px; padding: 26px 26px 22px; cursor: pointer; font: inherit; display: flex; flex-direction: column; gap: 8px; box-shadow: var(--shadow); transition: transform .12s, background .15s; }
.choice:hover { transform: translateY(-2px); background: var(--primary-hover); }
.choice-alt { background: #fff; color: var(--ink); border: 1px solid var(--line); }
.choice-alt:hover { background: #fff; border-color: var(--primary); }
.choice-num { font-family: var(--serif); font-size: 15px; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid currentColor; opacity: .8; }
.choice-title { font-family: var(--serif); font-size: 25px; margin-top: 8px; }
.choice-text { font-size: 15px; opacity: .85; }
.choice-cta { margin-top: 10px; font-weight: 600; }
.how { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; color: var(--ink-2); font-size: 14.5px; }
.how li { border-top: 2px solid var(--primary); padding-top: 10px; }
.how b { display: block; color: var(--ink); font-family: var(--serif); font-weight: 500; font-size: 17px; }

/* Dialog */
.dialog { border: 0; border-radius: 20px; padding: 0; width: min(720px, calc(100vw - 32px)); box-shadow: 0 30px 80px rgba(17, 4, 40, .35); color: var(--ink); }
.dialog::backdrop { background: rgba(28, 6, 52, .45); backdrop-filter: blur(2px); }
.dialog form, .dialog-small { padding: 22px 26px; }
.dialog-small { width: min(440px, calc(100vw - 32px)); }
.dialog-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.dialog-foot { display: flex; align-items: center; gap: 10px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); }
.segmented { display: grid; grid-template-columns: 1fr 1fr; background: var(--beige); border-radius: var(--pill); padding: 4px; margin-bottom: 18px; }
.segmented label { cursor: pointer; }
.segmented input { position: absolute; opacity: 0; }
.segmented span { display: block; text-align: center; padding: 8px 10px; border-radius: var(--pill); font-weight: 500; color: var(--ink-2); transition: background .15s, color .15s; }
.segmented input:checked + span { background: var(--primary); color: #fff; }
.segmented input:focus-visible + span { outline: 2px solid var(--primary); outline-offset: 2px; }
.dialog .switch-label { margin-top: 16px; }
.provider-hint { margin: 14px 0 0; padding: 10px 14px; border-radius: 10px; background: var(--warn-bg); color: var(--warn); font-size: 14px; }
.test-result { margin-top: 14px; padding: 10px 14px; border-radius: 10px; font-size: 14px; }
.test-result.ok { background: var(--ok-bg); color: var(--ok); }
.test-result.err { background: var(--bad-bg); color: var(--bad); }
.test-result.busy { background: var(--beige); color: var(--ink-2); }

/* Log */
.log { list-style: none; margin: 0; padding: 6px 0; font-size: 14px; }
.log li { display: grid; grid-template-columns: 150px 90px 1fr; gap: 12px; padding: 9px 20px; border-bottom: 1px solid var(--line); }
.log li:last-child { border-bottom: 0; }
.log .lv { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.log .lv-info { color: var(--ok); } .log .lv-fehler { color: var(--bad); } .log .lv-warnung { color: var(--warn); }

/* Toasts */
.toasts { position: fixed; right: 24px; bottom: 24px; display: flex; flex-direction: column; gap: 10px; z-index: 50; }
.toast { background: var(--ink); color: #fff; padding: 12px 18px; border-radius: 12px; font-size: 14.5px; box-shadow: 0 10px 30px rgba(0,0,0,.25); max-width: 420px; animation: toastIn .2s ease-out; }
.toast.err { background: var(--bad); }
@keyframes toastIn { from { transform: translateY(8px); opacity: 0; } }

/* Footer */
.foot { display: flex; justify-content: space-between; max-width: 1320px; width: 100%; margin: 0 auto; padding: 18px 28px 26px; font-size: 13px; color: var(--ink-3); border-top: 1px solid var(--beige-2); }

@media (max-width: 1100px) {
  .kpis { grid-template-columns: repeat(3, 1fr); }
  .detail { grid-template-columns: 1fr; }
  .mainnav a { padding: 8px 10px; }
  .sync-info { display: none; }
}
@media (max-width: 760px) {
  main { padding: 20px 16px 40px; }
  .topbar-inner { flex-wrap: wrap; padding: 12px 16px; gap: 12px; }
  .mainnav { order: 3; width: 100%; overflow-x: auto; }
  .mb-columns, .choice-grid, .how, .grid-2 { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
  .kpis { grid-template-columns: repeat(2, 1fr); }
  .page-head { flex-direction: column; align-items: flex-start; }
  h1, .welcome h1 { font-size: 30px; }
}

/* Feinschliff */
.grid-2 .field { margin-top: 0 !important; }
.form-card > h3:first-child { margin-top: 0; }
.detail > div { align-self: start; }

/* ---- Auftragsliste-Spalten (v1.1) ---- */
table.cases { font-size: 14px; }
.cases td { padding: 10px 10px; }
.cases th { padding: 11px 10px; font-size: 11.5px; letter-spacing: .05em; }
.cases td.num { font-family: var(--mono); font-size: 13.5px; font-weight: 600; white-space: nowrap; }
.cases td.is-manual { background-image: linear-gradient(var(--primary-soft), var(--primary-soft)); background-size: 100% 100%; }
.cases td.is-manual::after { content: "✎"; font-family: var(--sans); font-weight: 400; font-size: 11px; color: var(--primary); margin-left: 4px; }
.cases .missing { color: var(--ink-3); opacity: .6; }
.cases td.bes { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-2); }
.note-tag { font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--primary); background: var(--primary-soft); border-radius: 5px; padding: 1px 5px; margin-left: 6px; }
.abg { display: inline-flex; align-items: center; gap: 5px; font-weight: 600; font-size: 13.5px; }
.abg small { font-weight: 500; font-size: 10.5px; color: var(--ok); background: var(--ok-bg); border-radius: 5px; padding: 1px 5px; }
.abg-ja { color: var(--ok); }
.abg-nein { color: var(--ink-3); font-weight: 500; }
.abg-orphan { color: var(--gray); font-weight: 500; font-size: 12.5px; }
.inv-cell { padding-top: 6px !important; padding-bottom: 6px !important; }
.inv { width: 100%; font: 600 13.5px var(--mono); color: var(--ink); background: transparent; border: 1.5px dashed var(--mist); border-radius: 8px; padding: 6px 8px; outline: none; transition: border-color .15s, background .15s; }
.inv::placeholder { color: var(--ink-3); font-weight: 400; opacity: .7; }
.inv:hover { border-color: var(--primary); background: #fff; }
.inv:focus { border-style: solid; border-color: var(--primary); background: #fff; box-shadow: 0 0 0 3px rgba(44,4,83,.12); }
tr.s-abgerechnet .inv { border-style: solid; border-color: transparent; background: var(--done-bg); color: var(--done); }
.cases tr.s-abgerechnet td:not(:first-child) { color: inherit; }
.cases tr.s-abgerechnet td { opacity: .78; }
.cases tr.s-abgerechnet td.inv-cell { opacity: 1; }
tr.is-orphan td { font-style: normal; }
.kw-row td { background: var(--beige); padding: 9px 14px !important; border-bottom: 1px solid var(--line); cursor: default; }
.kw-title { font-family: var(--serif); font-size: 16px; font-weight: 500; color: var(--primary); }
.kw-count { margin-left: 12px; font-size: 12.5px; color: var(--ink-3); }
.select-pill { display: inline-flex; align-items: center; gap: 8px; background: var(--beige); border-radius: var(--pill); padding: 0 6px 0 14px; font-size: 13px; color: var(--ink-3); }
.select-pill select { border: 0; background: transparent; font: 500 14px var(--sans); color: var(--ink); padding: 9px 6px; outline: none; cursor: pointer; }
.select-pill:focus-within { box-shadow: 0 0 0 2px var(--primary); }
.detail { grid-template-columns: minmax(0,1fr) minmax(0,1fr) 420px; }
.edit-box h4 { margin: 0 0 10px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); font-weight: 600; }
.grid-2.tight { gap: 10px 12px; }
.grid-2.tight .field input { padding: 7px 10px; font-size: 14px; }
.edit-box .field + .field { margin-top: 0; }
.reset-field { border: 0; background: var(--primary-soft); color: var(--primary); font: 500 11px var(--sans); border-radius: 6px; padding: 1px 6px; margin-left: 6px; cursor: pointer; }
.label-grid { display: grid; gap: 8px; }
.label-row { display: grid; grid-template-columns: 170px 1fr; align-items: center; gap: 12px; font-size: 14px; font-weight: 500; color: var(--ink-2); }
.label-row input { font: 400 14px var(--sans); border: 1.5px solid var(--mist); border-radius: 10px; padding: 8px 12px; outline: none; }
.label-row input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(44,4,83,.12); }
.extract-table { margin-top: 12px; border-collapse: collapse; background: #fff; border-radius: 10px; overflow: hidden; min-width: 420px; }
.extract-table th, .extract-table td { text-align: left; padding: 7px 14px; border-bottom: 1px solid var(--line); font-size: 14px; }
.extract-table th { color: var(--ink-3); font-weight: 500; width: 170px; }
.extract-table .found { font-weight: 600; color: var(--ok); }
.extract-table .missing { color: var(--ink-3); font-style: italic; }
.help.small { font-size: 13px; margin-top: 6px; }
@media (max-width: 1100px) { .detail { grid-template-columns: 1fr; } .label-row { grid-template-columns: 1fr; } }
table.cases { table-layout: fixed; min-width: 1180px; }
.cases td { overflow-wrap: anywhere; }
.cases td.num { overflow-wrap: normal; }
.detail > div, .grid-2.tight > *, .grid-2.tight input { min-width: 0; }
.detail-row td { overflow-wrap: normal; }
.pill { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.pill::before { flex: none; }

/* ---- v1.2: PDF, Tätigkeiten, Differenzen ---- */
main { max-width: 1840px; }
.topbar-inner, .testbanner-inner, .foot { max-width: 1840px; }
.kpis { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.kpi[data-s="diff"] { --bar: var(--warn-bar); }
table.cases { min-width: 1600px; }
.cases td.acts, .cases td.diffs { font-size: 12.5px; line-height: 1.4; }
.act-list, .diff-list, .cmp-list { list-style: none; margin: 0; padding: 0; }
.act-list li { position: relative; padding-left: 10px; color: var(--ink-2); }
.act-list li::before { content: ""; position: absolute; left: 0; top: .62em; width: 4px; height: 4px; border-radius: 50%; background: var(--mist); }
.act-list li.more, .diff-list li.more { color: var(--ink-3); font-style: italic; padding-left: 10px; }
.act-list li.more::before { display: none; }
.diff-list li { display: grid; grid-template-columns: 14px 1fr; gap: 2px; }
.diff-list li b { font-weight: 700; }
.diff-list .d-miss { color: var(--bad); }
.diff-list .d-extra { color: #1f5fa8; }
.diff-list .d-qty, .diff-list .d-note { color: var(--warn); }
.diff-ok { color: var(--ok); font-weight: 600; font-size: 12.5px; }
.pdf-list { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 10px; }
.pdf-chip { display: inline-flex; align-items: center; gap: 7px; max-width: 100%; font-size: 12.5px; color: var(--ink); text-decoration: none; background: var(--beige); border: 1px solid var(--line); border-radius: 8px; padding: 4px 9px 4px 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pdf-chip:hover { border-color: var(--primary); }
.pdf-chip em { color: var(--bad); font-style: normal; }
.pdf-ico { font: 700 9.5px var(--sans); color: #fff; background: #c0392b; border-radius: 4px; padding: 3px 4px; letter-spacing: .04em; }
.pdf-text { margin-top: 10px; font-size: 13px; }
.pdf-text summary { cursor: pointer; color: var(--primary); font-weight: 500; }
.pdf-text pre { white-space: pre-wrap; font: 12px/1.45 var(--mono); background: #fbfaf7; border: 1px solid var(--line); border-radius: 8px; padding: 10px; max-height: 320px; overflow: auto; tab-size: 4; }
.compare { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; margin: 0 0 14px; }
.compare h4 { margin: 0 0 10px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); font-weight: 600; display: flex; gap: 12px; align-items: center; }
.compare h4 .diff-ok { text-transform: none; letter-spacing: 0; }
.compare h5 { margin: 0 0 6px; font-size: 13px; font-weight: 600; color: var(--ink-2); }
.cmp-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.cmp-list li { font-size: 13.5px; padding: 4px 8px; border-radius: 6px; margin-bottom: 3px; border-left: 3px solid transparent; }
.c-ok { background: #f6faf7; border-left-color: var(--ok-bar) !important; }
.c-miss { background: var(--bad-bg); border-left-color: var(--bad-bar) !important; color: var(--bad); }
.c-extra { background: #e6f0fb; border-left-color: #2f74c0 !important; color: #1f5fa8; }
.c-qty { background: var(--warn-bg); border-left-color: var(--warn-bar) !important; color: var(--warn); }
.cmp-diff { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--line); font-size: 13px; }
.lg { display: inline-block; font-size: 11.5px; padding: 1px 7px; border-radius: 5px; border-left: 3px solid; margin-right: 6px; }
.edit-box textarea { font: 400 13.5px var(--sans); border: 1.5px solid var(--mist); border-radius: 10px; padding: 7px 10px; width: 100%; resize: vertical; outline: none; }
.edit-box textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(44,4,83,.12); }
@media (max-width: 1100px) { .kpis { grid-template-columns: repeat(3, 1fr); } .cmp-cols { grid-template-columns: 1fr; } }
table.cases { min-width: 1540px; }
.cases td:nth-child(4) { white-space: nowrap; overflow-wrap: normal; }
.detail-row td > .compare, .detail-row td > .detail { max-width: calc(100vw - 110px); position: sticky; left: 0; }

/* ---------- Version 2 ---------- */
.reg-tag { display: inline-block; margin-top: 3px; padding: 1px 7px; border-radius: 999px; background: var(--primary-soft); color: var(--primary); font-size: 11.5px; font-weight: 600; letter-spacing: .01em; }
.reg-tag.reg-unknown { background: var(--warn-bg); color: var(--warn); }
.nl-tag { display: inline-block; margin: 3px 0 0 4px; padding: 1px 6px; border-radius: 999px; background: var(--warn-bg); color: var(--warn); font-size: 11px; }
.storno-tag { background: var(--bad-bg) !important; color: var(--bad) !important; }
.term-mini { list-style: none; margin: 0; padding: 0; font-size: 12.5px; line-height: 1.35; }
.term-mini b { font-variant-numeric: tabular-nums; }
.kpis-regions { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.kpi-region { --bar: var(--primary); }
.cases.groups { min-width: 1100px; }
.cases.groups td { vertical-align: top; }
.term { display: flex; flex-direction: column; gap: 2px; width: 100%; text-align: left; font: inherit; font-size: 13px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 10px; background: var(--white); cursor: pointer; color: inherit; transition: border-color .15s, box-shadow .15s; }
.term:hover { border-color: var(--primary); box-shadow: 0 2px 8px rgba(44,4,83,.12); }
.term.done { border-color: var(--ok-bar); background: var(--ok-bg); }
.term.late { border-color: var(--bad-bar); }
.term-date { font-weight: 600; font-variant-numeric: tabular-nums; }
.term-label { color: var(--ink-2); line-height: 1.3; }
.term-tech { font-size: 12px; }
.cal-ico { position: absolute; margin-left: 92px; font-size: 12px; }
.term { position: relative; }
.cal-ico.err { color: var(--bad); }
.small-pill { font-size: 11px; padding: 1px 7px; margin-top: 3px; }
.ord-link { font-weight: 600; color: var(--primary); text-decoration: none; font-variant-numeric: tabular-nums; }
.ord-link:hover { text-decoration: underline; }
.cal-state { margin-left: auto; font-size: 13px; color: var(--ink-2); display: inline-flex; align-items: center; gap: 6px; }
.cal-state .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ok-bar); display: inline-block; }
.cal-state .dot.err { background: var(--bad-bar); }
.region-table { width: 100%; border-collapse: collapse; margin: 8px 0; }
.region-table th { text-align: left; font-size: 12.5px; color: var(--ink-2); font-weight: 500; padding: 4px 6px; }
.region-table td { padding: 4px 6px; }
.region-table input { width: 100%; padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: 14px; }
.region-table td:nth-child(1) { width: 11%; } .region-table td:nth-child(2) { width: 12%; } .region-table td:nth-child(6) { width: 36px; }
.file-btn { cursor: pointer; }
.steps { margin: 6px 0 14px; padding-left: 20px; color: var(--ink-2); line-height: 1.5; }
.term-box { margin: 4px 0 12px; padding: 12px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--white); }
.term-box h4 { margin: 0 0 6px; }
.term-box ul { margin: 0; padding-left: 18px; }
.related { margin-top: 10px; }
.related summary { cursor: pointer; color: var(--primary); font-size: 14px; }
.detail-loading { padding: 18px; color: var(--ink-2); }
.plan-info p { margin: 6px 0; }
.err-text { color: var(--bad); }
@media (max-width: 900px) { .kpis-regions { grid-template-columns: repeat(3, 1fr); } }
.mainnav a { white-space: nowrap; }
#kpis { grid-template-columns: repeat(9, minmax(0, 1fr)); }
#kpis .kpi { padding: 14px 14px 12px; }
.kpi[data-s="info"] { --bar: var(--gray-bar); }
@media (max-width: 1200px) { #kpis { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 640px) { #kpis { grid-template-columns: repeat(2, 1fr); } }

.cal-mode { margin: 4px 0 6px; }
.region-table td:nth-child(3), .region-table td:nth-child(4) { width: 19%; } .region-table td:nth-child(5) { width: 35%; }
#regionCard { max-width: 1180px; }

.einsatz-tag { display: inline-block; padding: 1px 8px; border-radius: 999px; background: var(--warn-bg); color: var(--warn); font-size: 12px; font-weight: 600; }
.img-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.img-list img { max-width: 100%; max-height: 220px; border: 1px solid var(--line); border-radius: 8px; display: block; }

/* ---------- Rechnungen aus Lexoffice (2.1) ---------- */
.kpi[data-s="rpruef"] { --bar: var(--bad-bar); }
@media (max-width: 1400px) { #kpis { grid-template-columns: repeat(5, 1fr); } }
@media (max-width: 1200px) { #kpis { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 640px) { #kpis { grid-template-columns: repeat(2, 1fr); } }
.inv-chips { display: flex; flex-direction: column; gap: 4px; margin-bottom: 4px; }
.inv-chip { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 0; padding: 3px 8px; border-radius: 8px; font: 600 13px var(--mono); color: var(--done); background: var(--done-bg); line-height: 1.25; max-width: 100%; }
.inv-chip small { font: 500 11px var(--sans); color: var(--ink-2); }
.inv-chip.st-paid, .inv-chip.st-paidoff { color: var(--ok); background: var(--ok-bg); }
.inv-chip.st-overdue { color: var(--bad); background: var(--bad-bg); }
.inv-chip.st-voided, .inv-chip.st-draft { color: var(--gray); background: var(--gray-bg); text-decoration-color: var(--gray); }
.inv-chip.st-voided b { text-decoration: line-through; }
.inv-chip.has-warn { box-shadow: 0 0 0 1.5px var(--bad-bar) inset; }
.inv-warn { display: inline-block; margin-top: 4px; font-size: 11.5px; font-weight: 600; color: var(--bad); background: var(--bad-bg); border-radius: 6px; padding: 1px 6px; white-space: nowrap; }
.inv-box { background: var(--white); border: 1px solid var(--line); border-radius: 12px; padding: 12px 16px; margin-bottom: 14px; }
.inv-box h4 { margin: 0 0 8px; }
.inv-box table { width: 100%; border-collapse: collapse; font-size: 14px; }
.detail-row td > .inv-box { max-width: calc(100vw - 110px); position: sticky; left: 0; }
.detail-row .inv-box td, .detail-row .inv-box th { text-align: left; padding: 5px 8px; border-bottom: 1px solid var(--line); vertical-align: top; box-shadow: none; background: none; opacity: 1; color: var(--ink); }
.inv-box td.num, .inv-box th.num { text-align: right; font-variant-numeric: tabular-nums; }
.detail-row .inv-box th { font-weight: 500; color: var(--ink-3); font-size: 12.5px; }
.inv-box .warn-list { margin: 8px 0 0; padding-left: 18px; color: var(--bad); font-size: 13.5px; }
.lx-list { margin-top: 14px; }
.lx-list summary { cursor: pointer; font-weight: 600; padding: 6px 0; }
.lx-list summary .muted { font-weight: 400; }
.lx-table { width: 100%; border-collapse: collapse; font-size: 13.5px; margin-top: 6px; }
.lx-table th, .lx-table td { text-align: left; padding: 5px 8px; border-bottom: 1px solid var(--line); vertical-align: top; }
.lx-table th { font-weight: 500; color: var(--ink-3); font-size: 12.5px; }
.lx-table td.num, .lx-table th.num { text-align: right; font-variant-numeric: tabular-nums; }
.lx-table .warn { color: var(--bad); }
.lx-table .ok { color: var(--ok); }

/* Techniker & Erinnerungen */
#techTable input:not([type="checkbox"]) { width: 100%; min-width: 90px; padding: 4px 7px; border: 1px solid var(--line); border-radius: 7px; font: inherit; font-size: 13px; background: transparent; color: inherit; }
#techTable input.warn-input { border-color: var(--bad); background: var(--bad-bg); }
#techTable tr.muted td { opacity: .55; }
.ok-text { color: var(--ok); }
#remCard .row-actions { flex-wrap: wrap; gap: 10px 14px; }

.btn-quit { background: #c0392b; color: #fff; border-color: #c0392b; }
.btn-quit:hover { background: #a93226; border-color: #a93226; }

/* ---------- Anmeldung & Benutzer (2.3.0) ---------- */
.login-main { display: flex; align-items: flex-start; justify-content: center; padding-top: 72px; }
.login-card { width: min(440px, 100%); padding: 32px 34px 30px; display: flex; flex-direction: column; gap: 14px; }
.login-card h1 { font-size: 30px; }
.login-card .help { margin: 0 0 4px; }
.login-btn { justify-content: center; margin-top: 6px; }
.login-error { background: var(--bad-bg); color: var(--bad); border-radius: 10px; padding: 9px 12px; font-size: 14px; }
.login-error.info { background: var(--primary-soft); color: var(--primary); }

.user-menu { position: relative; }
.user-chip { display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,.1); color: #fff; border: 1.5px solid rgba(255,255,255,.35); border-radius: var(--pill); padding: 4px 14px 4px 4px; font: 500 14px var(--sans); cursor: pointer; max-width: 220px; }
.user-chip:hover { background: rgba(255,255,255,.18); }
.user-chip #userName { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-avatar { width: 26px; height: 26px; border-radius: 50%; background: #fff; color: var(--primary); display: inline-grid; place-items: center; font-weight: 600; font-size: 13px; flex: none; }
.user-pop { position: absolute; right: 0; top: calc(100% + 8px); background: #fff; color: var(--ink); border-radius: 12px; box-shadow: 0 14px 40px rgba(17,4,40,.25); min-width: 220px; padding: 6px; z-index: 30; }
.user-pop-head { padding: 10px 12px 8px; border-bottom: 1px solid var(--line); margin-bottom: 4px; display: flex; flex-direction: column; gap: 2px; }
.user-pop-head span { font-size: 12.5px; color: var(--ink-3); }
.user-pop button { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 9px 12px; border-radius: 8px; font: 400 14.5px var(--sans); color: var(--ink); cursor: pointer; }
.user-pop button:hover { background: var(--beige); }

.users-card { padding: 6px 4px; overflow: hidden; }
.users-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.users-table th, .users-table td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.users-table tbody tr:last-child td { border-bottom: 0; }
.users-table th { font-size: 12px; font-weight: 500; color: var(--ink-3); line-height: 1.25; vertical-align: bottom; }
.users-table th.perm-col { width: 76px; text-align: center; }
.users-table td.perm-col { text-align: center; }
.users-table .sub { color: var(--ink-3); font-size: 12.5px; }
.users-table tr.is-off td { opacity: .6; }
.users-foot { margin-top: 14px; }
.badge.admin { background: var(--primary-soft); color: var(--primary); }
.me-tag { font-size: 11px; font-weight: 600; color: var(--primary); background: var(--primary-soft); border-radius: 6px; padding: 1px 6px; margin-left: 4px; }
.perm-tick { display: inline-grid; place-items: center; cursor: pointer; }
.perm-tick input { position: absolute; opacity: 0; width: 0; height: 0; }
.perm-tick span { width: 22px; height: 22px; border-radius: 7px; border: 1.5px solid var(--mist); background: #fff; display: grid; place-items: center; transition: background .12s, border-color .12s; }
.perm-tick input:checked + span { background: var(--ok-bar); border-color: var(--ok-bar); }
.perm-tick input:checked + span::after { content: ""; width: 10px; height: 6px; border: 2.5px solid #fff; border-top: 0; border-right: 0; transform: rotate(-45deg) translate(1px, -1px); }
.perm-tick.locked input:checked + span { background: var(--done-bar); border-color: var(--done-bar); }
.perm-tick input:disabled + span { cursor: default; }
.perm-tick input:focus-visible + span { outline: 2px solid var(--primary); outline-offset: 2px; }

.perm-list { border: 1px solid var(--line); border-radius: 12px; margin: 16px 0 0; padding: 6px 14px 4px; display: grid; grid-template-columns: 1fr 1fr; gap: 2px 18px; }
.perm-list legend { font-size: 13.5px; font-weight: 500; color: var(--ink-2); padding: 0 6px; }
.perm-row { display: flex; gap: 10px; align-items: flex-start; padding: 8px 0; cursor: pointer; }
.perm-row input { margin-top: 3px; accent-color: var(--primary); width: 16px; height: 16px; flex: none; }
.perm-row span { display: flex; flex-direction: column; font-size: 14px; }
.perm-row small { color: var(--ink-3); font-size: 12.5px; line-height: 1.35; }
.perm-base { grid-column: 1 / -1; margin: 4px 0 8px; font-size: 13px; }
@media (max-width: 700px) { .perm-list { grid-template-columns: 1fr; } }
@media (max-width: 1560px) {
  .user-chip { padding: 3px; }
  .user-chip #userName { display: none; }
  .topbar-inner { gap: 20px; }
  .mainnav a { padding: 8px 12px; }
}
@media (max-width: 1340px) {
  .topbar-inner { gap: 14px; padding: 14px 20px; }
  .mainnav { gap: 0; }
  .mainnav a { padding: 7px 9px; font-size: 14.5px; }
  .topbar-actions { gap: 10px; }
}

/* ---------- Termine in Märkte & Termine (2.5.0) ---------- */
.term { padding: 0; gap: 0; cursor: default; overflow: hidden; }
.term:hover { box-shadow: none; }
.term-open { display: flex; flex-direction: column; gap: 2px; width: 100%; text-align: left; font: inherit; font-size: 13px; padding: 7px 9px 6px; border: 0; background: transparent; color: inherit; cursor: pointer; }
.term-open:hover { background: var(--primary-soft); }
.term-open:hover .term-label { color: var(--primary); }
.term.moved { border-color: var(--warn-bar); border-style: dashed; }
.term-mark { font-size: 11.5px; font-weight: 600; margin-top: 2px; }
.term-mark.done { color: var(--ok); }
.term-mark.moved { color: var(--warn); }
.term-acts { display: flex; flex-wrap: wrap; gap: 4px; padding: 5px 6px 6px; border-top: 1px solid var(--line); background: rgba(255,255,255,.6); }
.term-act { font: 500 11.5px var(--sans); color: var(--ink-2); background: #fff; border: 1px solid var(--line); border-radius: 7px; padding: 2px 7px; cursor: pointer; white-space: nowrap; }
.term-act:hover { border-color: var(--primary); color: var(--primary); }
.term-act.ok:hover { border-color: var(--ok-bar); color: var(--ok); background: var(--ok-bg); }
.mark-tag { display: inline-block; font-size: 11px; font-weight: 600; border-radius: 6px; padding: 0 5px; white-space: nowrap; }
.mark-tag.done { color: var(--ok); background: var(--ok-bg); }
.mark-tag.moved { color: var(--warn); background: var(--warn-bg); }
tr.row.flash > td { animation: rowFlash 1.8s ease-out; }
@keyframes rowFlash { 0%, 35% { background: var(--primary-soft); } 100% { background: transparent; } }
.term-open, .term-mark { white-space: normal; }
.term-acts { flex-wrap: nowrap; }
.term-act { padding: 2px 6px; }
.term-acts { gap: 3px; padding: 4px 5px 5px; }
.term-act { padding: 2px 5px; }
tr.more-row td { text-align: center; padding: 16px; }
tr.more-row .muted { margin-left: 12px; }
.user-pop a.user-pop-link { display: block; padding: 9px 12px; border-radius: 8px; font-size: 14.5px; color: var(--ink); text-decoration: none; }
.user-pop a.user-pop-link:hover { background: var(--beige); }
.badge.tech { background: var(--ok-bg); color: var(--ok); }
