:root{
  --bg:#f5f7fb;--panel:#ffffff;--panel-2:#f8fafc;--text:#111827;--muted:#64748b;--line:#e5e7eb;--accent:#111827;--accent-2:#334155;--good:#0f9f6e;--bad:#dc5a5a;--warn:#c98600;--shadow:0 12px 38px rgba(15,23,42,.07);--radius:18px
}
body.dark{--bg:#0b1220;--panel:#111827;--panel-2:#172033;--text:#f8fafc;--muted:#94a3b8;--line:#243044;--accent:#f8fafc;--accent-2:#cbd5e1;--shadow:0 12px 38px rgba(0,0,0,.28)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}button,input,select{font:inherit}.app-shell{display:grid;grid-template-columns:264px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:22px 16px;display:flex;flex-direction:column;background:var(--panel);border-right:1px solid var(--line);z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 24px}.brand-mark{width:38px;height:38px;border-radius:12px;background:var(--text);color:var(--panel);display:grid;place-items:center;font-weight:800;letter-spacing:-.04em}.brand strong,.company-card strong{display:block;font-size:14px}.brand span,.company-card span{display:block;font-size:11px;color:var(--muted);margin-top:2px}.nav{display:flex;flex-direction:column;gap:15px;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 2px 12px;scrollbar-width:thin}.nav-section{display:flex;flex-direction:column;gap:4px}.nav-section-label{padding:0 12px 4px;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;opacity:.68}.nav-item{border:0;background:transparent;color:var(--muted);display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:11px;text-align:left;cursor:pointer;font-weight:600;font-size:13px;flex:0 0 auto}.nav-item span{width:18px;text-align:center}.nav-item:hover{background:var(--panel-2);color:var(--text)}.nav-item.active{background:var(--text);color:var(--panel)}.sidebar-footer{margin-top:10px;display:grid;gap:12px;flex:0 0 auto}.company-card{display:flex;gap:10px;align-items:center;padding:12px;background:var(--panel-2);border:1px solid var(--line);border-radius:14px}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--text);color:var(--panel);font-size:12px;font-weight:800}.main{min-width:0}.topbar{height:70px;position:sticky;top:0;z-index:15;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:0 28px}.search-wrap{display:flex;align-items:center;gap:9px;flex:1;max-width:620px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:9px 12px;color:var(--muted)}.search-wrap input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:13px}.top-actions{margin-left:auto;display:flex;gap:8px;align-items:center}.icon-btn,.primary-btn,.secondary-btn{border:0;border-radius:10px;cursor:pointer;transition:.2s ease}.icon-btn{width:38px;height:38px;background:var(--panel);border:1px solid var(--line);color:var(--text)}.primary-btn{background:var(--text);color:var(--panel);padding:10px 15px;font-weight:700}.secondary-btn{background:var(--panel-2);color:var(--text);border:1px solid var(--line);padding:10px 15px;font-weight:700}.content{padding:28px;max-width:1500px;margin:0 auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}.page-head h1{font-size:28px;line-height:1;margin:6px 0 6px;letter-spacing:-.035em}.page-head p{margin:0;color:var(--muted);font-size:13px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:800;color:var(--muted)}.period-pills{display:flex;border:1px solid var(--line);background:var(--panel);padding:3px;border-radius:11px}.period-pills button{border:0;background:transparent;color:var(--muted);padding:7px 10px;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer}.period-pills button.active{background:var(--text);color:var(--panel)}.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.kpi{padding:18px}.kpi-top{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:11px}.kpi strong{font-size:22px;display:block;margin:12px 0 4px;letter-spacing:-.03em}.delta{font-size:11px;font-weight:700}.delta.good{color:var(--good)}.delta.bad{color:var(--bad)}.grid-2{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;margin-top:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}.panel{padding:20px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.panel-head h3{margin:0;font-size:15px}.panel-head p{margin:4px 0 0;color:var(--muted);font-size:11px}.chart{height:280px;position:relative}.chart svg{width:100%;height:100%;overflow:visible}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.legend i{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}.mini-list{display:grid;gap:11px}.mini-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}.mini-row:last-child{border:0}.mini-row strong{font-size:13px}.mini-row span{font-size:11px;color:var(--muted)}.status{padding:5px 8px;border-radius:99px;font-size:10px;font-weight:800;white-space:nowrap}.status.paid{background:rgba(15,159,110,.12);color:var(--good)}.status.open{background:rgba(201,134,0,.14);color:var(--warn)}.status.overdue{background:rgba(220,90,90,.12);color:var(--bad)}.notice{display:flex;gap:10px;padding:13px 14px;background:rgba(201,134,0,.1);border:1px solid rgba(201,134,0,.22);border-radius:13px;color:var(--warn);font-size:11px;margin-bottom:16px}.table-card{overflow:hidden}.toolbar{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;gap:10px;justify-content:space-between;align-items:center}.filter-set{display:flex;gap:8px;flex-wrap:wrap}.filter-set select,.filter-set input,.form-grid input,.form-grid select{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:9px 10px;outline:none}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{padding:11px 14px;text-align:left;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line);background:var(--panel-2);white-space:nowrap}td{padding:13px 14px;border-bottom:1px solid var(--line);white-space:nowrap}tbody tr:hover{background:var(--panel-2)}.money.pos{color:var(--good);font-weight:800}.money.neg{color:var(--text);font-weight:700}.stack{display:grid;gap:16px}.tax-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.tax-box{padding:16px;background:var(--panel-2);border:1px solid var(--line);border-radius:14px}.tax-box span{display:block;color:var(--muted);font-size:10px}.tax-box strong{display:block;margin-top:8px;font-size:18px}.clickable{cursor:pointer}.clickable:hover{outline:2px solid color-mix(in srgb,var(--text) 12%,transparent)}.progress{height:8px;background:var(--panel-2);border-radius:99px;overflow:hidden;border:1px solid var(--line)}.progress > div{height:100%;background:var(--text);border-radius:99px}.donut-wrap{display:flex;align-items:center;gap:24px}.donut{width:170px;height:170px;border-radius:50%;background:conic-gradient(#111827 0 43%,#64748b 43% 65%,#94a3b8 65% 79%,#cbd5e1 79% 90%,#e2e8f0 90%);position:relative;flex:0 0 auto}.dark .donut{background:conic-gradient(#f8fafc 0 43%,#cbd5e1 43% 65%,#94a3b8 65% 79%,#64748b 79% 90%,#334155 90%)}.donut:after{content:"";position:absolute;inset:31px;border-radius:50%;background:var(--panel)}.donut-center{position:absolute;inset:0;display:grid;place-items:center;z-index:2;text-align:center;font-size:11px;color:var(--muted)}.donut-center strong{display:block;color:var(--text);font-size:18px}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px;z-index:50}.modal-backdrop.hidden,.toast.hidden{display:none}.modal{width:min(720px,100%);background:var(--panel);border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 80px rgba(0,0,0,.28);padding:22px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start}.modal-head h2{margin:4px 0 18px;font-size:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid label{display:grid;gap:6px;font-size:11px;color:var(--muted);font-weight:700}.span-2{grid-column:span 2}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.toast{position:fixed;right:24px;bottom:24px;background:var(--text);color:var(--panel);padding:12px 16px;border-radius:12px;font-size:12px;font-weight:700;box-shadow:var(--shadow);z-index:60}.detail-drawer{margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);font-size:12px}.empty{padding:48px;text-align:center;color:var(--muted)}.mobile-only{display:none}
@media(max-width:1150px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:1fr}.grid-3{grid-template-columns:1fr 1fr}}
@media(max-width:820px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-280px;width:264px;transition:.2s ease}.sidebar.open{left:0;box-shadow:20px 0 60px rgba(0,0,0,.18)}.mobile-only{display:inline-grid;place-items:center}.content{padding:18px}.topbar{padding:0 16px}.search-wrap{display:none}.kpi-grid,.grid-3,.tax-breakdown{grid-template-columns:1fr 1fr}.page-head{align-items:flex-start;flex-direction:column}.donut-wrap{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.kpi-grid,.grid-3,.tax-breakdown{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.top-actions .icon-btn:nth-child(2){display:none}.content{padding:14px}.period-pills{overflow:auto;max-width:100%}.donut{width:145px;height:145px}.topbar{height:62px}.page-head h1{font-size:24px}}

/* v2 additions */
.bank-hero{padding:24px;display:grid;grid-template-columns:1.4fr .6fr;gap:24px;align-items:end;background:linear-gradient(135deg,var(--panel),var(--panel-2));overflow:hidden;position:relative}.bank-hero:after{content:"KT";position:absolute;right:24px;top:-26px;font-size:150px;font-weight:900;letter-spacing:-.08em;color:var(--text);opacity:.025;pointer-events:none}.bank-balance .eyebrow{display:block}.bank-balance strong{display:block;font-size:42px;letter-spacing:-.05em;margin:10px 0 8px}.bank-balance p{margin:0;color:var(--muted);font-size:12px}.account-meta{display:grid;gap:8px;text-align:right}.account-meta span{font-size:11px;color:var(--muted)}.account-meta strong{font-size:13px}.statement-list{display:grid}.statement-item{display:grid;grid-template-columns:42px minmax(0,1.35fr) minmax(150px,.7fr) 120px 130px;gap:14px;align-items:center;padding:14px 18px;border-top:1px solid var(--line)}.statement-item:first-child{border-top:0}.tx-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--panel-2);font-weight:900}.tx-icon.in{color:var(--good)}.tx-icon.out{color:var(--bad)}.tx-main strong{display:block;font-size:13px}.tx-main span,.tx-category span{display:block;font-size:11px;color:var(--muted);margin-top:3px}.tx-category strong{font-size:12px}.tx-date{font-size:12px;color:var(--muted)}.tx-amount{text-align:right;font-size:14px;font-weight:800}.tx-amount.in{color:var(--good)}.tx-amount.out{color:var(--text)}.automation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.automation-card{padding:18px}.automation-card .score{font-size:30px;font-weight:850;letter-spacing:-.04em;margin:12px 0 4px}.suggestion-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.suggestion-row:first-of-type{border-top:0}.suggestion-actions{display:flex;gap:8px}.tiny-btn{border:1px solid var(--line);background:var(--panel-2);color:var(--text);padding:7px 10px;border-radius:9px;font-size:11px;font-weight:750;cursor:pointer}.tiny-btn.approve{background:var(--text);color:var(--panel)}.report-sheet{background:#fff;color:#111827;border-radius:16px;padding:36px;box-shadow:var(--shadow);border:1px solid #e5e7eb}.report-brand{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:22px;border-bottom:2px solid #111827}.report-brand h2{margin:0;font-size:24px;letter-spacing:-.04em}.report-brand p{margin:6px 0 0;color:#64748b;font-size:12px}.report-logo{width:48px;height:48px;border-radius:13px;background:#111827;color:#fff;display:grid;place-items:center;font-weight:900}.report-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0}.report-summary div{padding:14px;background:#f8fafc;border-radius:12px}.report-summary span{display:block;color:#64748b;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.report-summary strong{display:block;margin-top:7px;font-size:16px}.report-table{width:100%;border-collapse:collapse;font-size:11px}.report-table th,.report-table td{padding:10px 8px;border-bottom:1px solid #e5e7eb;text-align:left}.report-table th{font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:#64748b}.report-table td:last-child,.report-table th:last-child{text-align:right}.report-footer{margin-top:26px;padding-top:16px;border-top:1px solid #e5e7eb;color:#64748b;font-size:10px;display:flex;justify-content:space-between}.api-status{padding:12px 14px;border:1px dashed var(--line);border-radius:12px;background:var(--panel-2);font-size:12px;color:var(--muted)}
@media(max-width:900px){.bank-hero{grid-template-columns:1fr}.account-meta{text-align:left}.statement-item{grid-template-columns:38px 1fr 100px}.tx-category,.tx-date{display:none}.automation-grid,.report-summary{grid-template-columns:1fr 1fr}}@media(max-width:620px){.statement-item{grid-template-columns:34px 1fr auto;padding:12px}.bank-balance strong{font-size:32px}.automation-grid,.report-summary{grid-template-columns:1fr}.report-sheet{padding:20px}}
@media print{.sidebar,.topbar,.page-head,.no-print{display:none!important}.app-shell{display:block}.content{padding:0;max-width:none}.report-sheet{box-shadow:none;border:0;border-radius:0;padding:0}.card:not(.report-sheet){box-shadow:none}body{background:#fff}}

/* v5 invoice creator */
.invoice-editor-modal{width:min(780px,100%)}
.table-empty strong{display:block;color:var(--text);font-size:13px;margin-bottom:5px}
@media print{#invoiceModalBackdrop{display:none!important}}
.period-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:9px}.period-pills{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.period-pills button{border:1px solid var(--border);background:var(--card);color:var(--muted);border-radius:999px;padding:8px 11px;font:inherit;font-size:12px;cursor:pointer}.period-pills button:hover{color:var(--text)}.period-pills button.active{background:var(--text);color:var(--bg);border-color:var(--text)}.custom-range{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.custom-range input{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:9px;padding:7px 9px}.modal input[type=file]{padding:10px;background:var(--surface)}
@media(max-width:760px){.period-wrap{align-items:flex-start;width:100%}.period-pills{justify-content:flex-start}.custom-range{flex-wrap:wrap}}

/* v7 — ruhiges Finanzdashboard */
.overview-shell{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);gap:18px;align-items:stretch}.revenue-overview,.ring-overview{padding:30px;min-height:430px}.overview-label{text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:800;color:var(--muted)}.overview-revenue{font-size:clamp(46px,6vw,78px);font-weight:760;letter-spacing:-.065em;line-height:.95;margin:24px 0 8px}.overview-period{color:var(--muted);font-size:12px}.calc-list{margin-top:46px;max-width:620px}.calc-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 0;font-size:14px}.calc-row span{color:var(--muted)}.calc-row strong{font-size:15px}.calc-row.subtle{padding-top:5px}.calc-divider{height:1px;background:var(--line);margin:8px 0}.calc-row.result{padding-top:16px}.calc-row.result span{color:var(--text);font-weight:750}.calc-row.result strong{font-size:24px;letter-spacing:-.035em}.overview-note{margin-top:22px;max-width:620px;color:var(--muted);font-size:11px;line-height:1.6}.ring-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.ring-head h3{margin:6px 0 0;font-size:18px;letter-spacing:-.02em}.ring-caption{font-size:10px;color:var(--muted);white-space:nowrap}.ring-layout{display:grid;grid-template-columns:1fr 200px;align-items:center;gap:24px;min-height:330px}.finance-rings{width:min(310px,100%);aspect-ratio:1;position:relative;display:grid;place-items:center;margin:auto}.finance-rings svg{width:100%;height:100%;transform:rotate(-90deg);overflow:visible}.ring-track,.ring-progress{fill:none;stroke-width:2.3}.ring-track{stroke:var(--line)}.ring-progress{stroke-linecap:round;transition:stroke-dasharray .35s ease}.ring-revenue{stroke:var(--text)}.ring-profit{stroke:color-mix(in srgb,var(--text) 62%,var(--muted))}.ring-tax{stroke:color-mix(in srgb,var(--text) 34%,var(--muted))}.ring-center{position:absolute;text-align:center;display:grid;gap:4px}.ring-center span{font-size:10px;color:var(--muted)}.ring-center strong{font-size:31px;letter-spacing:-.045em}.ring-values{display:grid;gap:24px}.ring-value{display:grid;grid-template-columns:30px 1fr;gap:11px;align-items:center}.line-swatch{height:0;border-top:2px solid var(--text);width:28px;display:block}.line-swatch.profit{opacity:.62}.line-swatch.tax{opacity:.34}.ring-value span{font-size:11px;color:var(--muted);display:block;margin-bottom:5px}.ring-value strong{font-size:16px;letter-spacing:-.02em}.dashboard-lower{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.compact-panel{padding:22px}.compact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:21px}.compact-head h3{margin:5px 0 0;font-size:16px}.text-action{border:0;background:transparent;color:var(--muted);font-weight:700;font-size:11px;cursor:pointer;padding:4px}.text-action:hover{color:var(--text)}.status-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.status-grid>div{padding:18px 14px 4px 0}.status-grid span,.tax-simple span{display:block;color:var(--muted);font-size:10px;margin-bottom:7px}.status-grid strong{font-size:21px;letter-spacing:-.03em}.tax-simple{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.tax-simple>div{padding:18px 16px 4px 0}.tax-simple strong{font-size:18px;letter-spacing:-.025em}.tax-simple .emphasis strong{font-size:23px}
@media(max-width:1100px){.overview-shell{grid-template-columns:1fr}.ring-layout{grid-template-columns:1fr 220px}.dashboard-lower{grid-template-columns:1fr}.revenue-overview,.ring-overview{min-height:unset}}
@media(max-width:680px){.revenue-overview,.ring-overview{padding:22px}.overview-revenue{font-size:48px}.ring-layout{grid-template-columns:1fr}.ring-values{grid-template-columns:repeat(3,1fr);gap:12px}.ring-value{grid-template-columns:1fr;gap:7px}.status-grid,.tax-simple{grid-template-columns:1fr 1fr}.calc-list{margin-top:34px}.ring-caption{display:none}}

/* v8 final visual pass */
:root{
  --bg:#f7f7f5;
  --panel:#ffffff;
  --panel-2:#f2f2ef;
  --text:#101114;
  --muted:#74777f;
  --line:#e7e7e2;
  --chart-profit:#111214;
  --chart-tax:#7d8189;
  --chart-base:#c8c9c6;
  --radius:16px;
  --shadow:none;
}
body.dark{
  --bg:#0f1012;
  --panel:#151619;
  --panel-2:#1b1c20;
  --text:#f5f5f3;
  --muted:#9b9da3;
  --line:#292b30;
  --chart-profit:#f5f5f3;
  --chart-tax:#9b9da3;
  --chart-base:#51545a;
}
html,body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Inter,Arial,sans-serif;letter-spacing:-.01em}
.sidebar{width:auto;padding:24px 14px}.app-shell{grid-template-columns:248px 1fr}.brand{padding:2px 10px 26px}.brand-mark{border-radius:10px;width:36px;height:36px;font-size:12px}.brand strong{font-size:13px;letter-spacing:-.015em}.brand span{font-size:10.5px}.nav{gap:2px}.nav-item{font-size:12.5px;font-weight:560;padding:9px 11px;border-radius:9px}.nav-item.active{font-weight:650}.company-card{border-radius:12px;padding:11px;box-shadow:none}.topbar{height:66px;padding:0 30px;background:color-mix(in srgb,var(--bg) 94%,transparent)}.search-wrap{max-width:520px;border-radius:10px;background:transparent;border-color:transparent;padding-left:0}.search-wrap:focus-within{background:var(--panel);border-color:var(--line);padding-left:10px}.icon-btn{border-radius:9px;background:transparent}.icon-btn:hover{background:var(--panel-2)}.primary-btn,.secondary-btn{border-radius:9px;font-size:12px}.content{padding:34px 38px;max-width:1380px}.page-head{margin-bottom:28px;align-items:center}.page-head h1{font-size:26px;font-weight:680;letter-spacing:-.045em;margin:5px 0 5px}.page-head p{font-size:12px}.eyebrow{font-size:9px;letter-spacing:.14em}.card{box-shadow:none}.period-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.period-pills{padding:3px;border-radius:10px;background:transparent}.period-pills button{font-size:11px;padding:6px 9px}.custom-range{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted)}.custom-range input{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:8px;padding:6px 8px}

.minimal-dashboard{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(400px,.92fr);border:1px solid var(--line);border-radius:20px;background:var(--panel);overflow:hidden;min-height:520px}.balance-card{padding:46px 48px 40px;display:flex;flex-direction:column}.allocation-card{padding:46px 46px 36px;border-left:1px solid var(--line);display:grid;grid-template-rows:auto 1fr auto}.metric-label{font-size:9px;letter-spacing:.16em;font-weight:750;color:var(--muted)}.hero-amount{font-size:clamp(44px,5.1vw,72px);line-height:1;font-weight:690;letter-spacing:-.065em;margin-top:16px}.period-copy{font-size:12px;color:var(--muted);margin-top:10px}.balance-lines{margin-top:auto;padding-top:62px;display:grid;gap:0}.balance-line{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 0;border-bottom:1px solid var(--line);font-size:13px}.balance-line span{color:var(--muted)}.balance-line strong{font-weight:620}.profit-line{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding-top:24px}.profit-line span{font-size:14px;font-weight:620}.profit-line strong{font-size:30px;letter-spacing:-.045em}.micro-note{font-size:10.5px;line-height:1.55;color:var(--muted);max-width:560px;margin:26px 0 0}.allocation-copy h2{font-size:22px;margin:7px 0 5px;letter-spacing:-.035em}.allocation-copy p{font-size:11.5px;color:var(--muted);margin:0}.single-donut-wrap{display:grid;place-items:center;padding:30px 0 24px}.single-donut{width:238px;height:238px;border-radius:50%;position:relative;display:grid;place-items:center}.single-donut:after{content:"";position:absolute;inset:13px;border-radius:50%;background:var(--panel)}.single-donut-hole{position:relative;z-index:2;text-align:center}.single-donut-hole span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.single-donut-hole strong{display:block;font-size:20px;letter-spacing:-.035em;margin-top:6px}.allocation-legend{border-top:1px solid var(--line)}.allocation-row{display:grid;grid-template-columns:20px 1fr 48px 96px;align-items:center;gap:8px;min-height:43px;border-bottom:1px solid var(--line);font-size:11.5px}.allocation-row:last-child{border-bottom:0}.allocation-row span{color:var(--muted)}.allocation-row strong{text-align:right;font-size:12px}.allocation-row small{text-align:right;color:var(--muted);font-size:10.5px}.legend-stroke{width:16px;height:3px;border-radius:3px}.legend-stroke.profit{background:var(--chart-profit)}.legend-stroke.tax{background:var(--chart-tax)}.legend-stroke.base{background:var(--chart-base)}.minimal-status-row{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:16px;background:var(--panel);overflow:hidden;margin-top:16px}.minimal-stat{border:0;border-right:1px solid var(--line);background:transparent;color:var(--text);padding:18px 20px;text-align:left;cursor:pointer}.minimal-stat:last-child{border-right:0}.minimal-stat:hover{background:var(--panel-2)}.minimal-stat span{display:block;font-size:10.5px;color:var(--muted)}.minimal-stat strong{display:block;margin-top:8px;font-size:16px;letter-spacing:-.025em}.toolbar-caption{font-size:11px;color:var(--muted)}

.table-card,.panel,.tax-box,.modal{box-shadow:none}.panel{padding:19px}.panel-head h3{font-weight:650}.table-card{border-radius:15px}th{font-size:9px;letter-spacing:.08em}td{font-size:11.5px}.status{font-size:9px}.tiny-btn{font-size:10px}.form-grid label{font-size:10.5px}.form-grid input,.form-grid select{font-size:12px}.notice{font-size:10.5px}.toast{font-size:11px;border-radius:10px}

@media(max-width:1050px){.minimal-dashboard{grid-template-columns:1fr}.allocation-card{border-left:0;border-top:1px solid var(--line)}.minimal-status-row{grid-template-columns:1fr 1fr}.minimal-stat:nth-child(2){border-right:0}.minimal-stat:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:820px){.content{padding:22px 18px}.topbar{padding:0 16px}.minimal-dashboard{min-height:0}.balance-card,.allocation-card{padding:30px 24px}.hero-amount{font-size:48px}.single-donut{width:210px;height:210px}.page-head{align-items:flex-start}}
@media(max-width:560px){.minimal-status-row{grid-template-columns:1fr}.minimal-stat{border-right:0;border-bottom:1px solid var(--line)}.minimal-stat:last-child{border-bottom:0}.balance-card,.allocation-card{padding:26px 20px}.balance-lines{padding-top:42px}.profit-line{align-items:flex-start;flex-direction:column}.profit-line strong{font-size:27px}.allocation-row{grid-template-columns:18px 1fr 40px 78px}.single-donut{width:188px;height:188px}.hero-amount{font-size:42px}}
.danger-btn{color:#9f2d2d!important;border-color:rgba(159,45,45,.22)!important;background:transparent!important}
.danger-btn:hover{background:rgba(159,45,45,.07)!important;border-color:rgba(159,45,45,.34)!important}
td>div[style*="display:flex"]{flex-wrap:wrap}


/* v11 product polish */
.head-actions{display:flex;gap:8px;align-items:center}.row-actions{display:flex;gap:6px;flex-wrap:nowrap}.section-title{font-size:13px;font-weight:670}.section-subtitle{font-size:10.5px;color:var(--muted);margin-top:3px}.banking-list{margin-top:16px}.warning-notice{margin-top:14px}
.partner-summary{display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden;margin-bottom:16px}.partner-summary>div{padding:20px 22px;border-right:1px solid var(--line)}.partner-summary>div:last-child{border-right:0}.partner-summary span{display:block;font-size:10px;color:var(--muted);margin-bottom:8px}.partner-summary strong{display:block;font-size:19px;letter-spacing:-.035em}.partner-list{display:grid;gap:12px}.partner-card{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(480px,1.6fr) auto;gap:24px;align-items:center;padding:22px 24px}.partner-main{display:flex;gap:14px;align-items:center}.partner-avatar{width:46px;height:46px;border:1px solid var(--line);background:var(--panel-2);border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:750;letter-spacing:.04em}.partner-main h3{font-size:16px;letter-spacing:-.025em;margin:5px 0 3px}.partner-main p{font-size:10.5px;color:var(--muted);margin:0}.partner-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.partner-metrics>div{padding:4px 18px;border-left:1px solid var(--line)}.partner-metrics span{display:block;font-size:9.5px;color:var(--muted);margin-bottom:7px}.partner-metrics strong{display:block;font-size:14px;letter-spacing:-.02em}.partner-edit{white-space:nowrap}.partner-note{margin-top:14px}.filter-set select{min-width:130px}
@media(max-width:1100px){.partner-card{grid-template-columns:1fr auto}.partner-metrics{grid-column:1/-1;border-top:1px solid var(--line);padding-top:16px}.partner-metrics>div:first-child{border-left:0;padding-left:0}.partner-summary{grid-template-columns:1fr 1fr}.partner-summary>div:nth-child(2){border-right:0}.partner-summary>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:680px){.head-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.partner-summary{grid-template-columns:1fr}.partner-summary>div{border-right:0;border-bottom:1px solid var(--line)}.partner-summary>div:last-child{border-bottom:0}.partner-card{grid-template-columns:1fr;padding:20px}.partner-edit{width:100%}.partner-metrics{grid-template-columns:1fr 1fr}.partner-metrics>div{border-left:0;border-top:1px solid var(--line);padding:12px 8px 8px 0}.partner-metrics>div:nth-child(odd){border-right:1px solid var(--line)}.row-actions{flex-direction:column}}

/* v12: kompakte Banking-Ansichten für Einnahmen und Ausgaben */
.type-overview-grid{
  display:grid;
  grid-template-columns:minmax(260px,1.5fr) repeat(3,minmax(150px,1fr));
  gap:14px;
  margin-bottom:18px;
}
.type-total-card,.type-metric-card{min-height:148px;display:flex;flex-direction:column;justify-content:center}
.type-total-card{padding:28px 30px}
.type-total-amount{font-size:clamp(32px,4vw,52px);letter-spacing:-.045em;line-height:1.02;margin-top:8px}
.type-total-card p{margin:8px 0 0;color:var(--muted)}
.type-metric-card{padding:24px}
.type-metric-card>span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.type-metric-card>strong{font-size:25px;letter-spacing:-.025em;margin:9px 0 5px}
.type-metric-card>small{color:var(--muted);font-size:12px}
.type-ledger .statement-item{grid-template-columns:42px minmax(170px,1.4fr) minmax(150px,1fr) 105px 130px auto}
.ledger-actions{justify-content:flex-end;white-space:nowrap}
@media(max-width:1100px){
  .type-overview-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:720px){
  .type-overview-grid{grid-template-columns:1fr}
  .type-total-card,.type-metric-card{min-height:auto}
  .type-ledger .statement-item{grid-template-columns:38px 1fr auto;gap:10px}
  .type-ledger .tx-category,.type-ledger .tx-date{display:none}
  .type-ledger .ledger-actions{grid-column:2/-1;justify-content:flex-start}
}

.net-balance{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12px;color:var(--muted)}
.net-balance b{font-size:13px;color:var(--text);font-weight:650}

/* v14 bank filters */
.bank-summary-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(170px,.6fr) minmax(170px,.6fr);gap:14px;margin-bottom:18px}
.bank-mini-card{display:flex;flex-direction:column;justify-content:center;padding:24px}
.bank-mini-card>span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.bank-mini-card>strong{font-size:28px;letter-spacing:-.03em;margin:8px 0 4px}
.bank-mini-card>small{color:var(--muted)}
.bank-toolbar{align-items:flex-start;gap:18px}
.filter-panel{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:end}
.filter-panel select,.amount-filter input{height:38px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:9px;padding:0 10px;font:inherit;font-size:13px}
.amount-filter{display:flex;flex-direction:column;gap:4px}
.amount-filter span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}
.amount-filter input{width:100px}
.compact-filter-btn{height:38px}
@media(max-width:1100px){
  .bank-summary-grid{grid-template-columns:1fr 1fr}
  .bank-summary-grid .bank-hero{grid-column:1/-1}
}
@media(max-width:760px){
  .bank-summary-grid{grid-template-columns:1fr}
  .bank-summary-grid .bank-hero{grid-column:auto}
  .filter-panel{justify-content:flex-start;width:100%}
  .filter-panel select,.amount-filter{flex:1 1 140px}
  .amount-filter input{width:100%}
}

/* v15 audit polish */
.banking-list:not(.type-ledger) .statement-item{grid-template-columns:42px minmax(170px,1.35fr) minmax(145px,.9fr) 105px 130px auto}
@media(max-width:900px){
  .banking-list:not(.type-ledger) .statement-item{grid-template-columns:38px 1fr auto}
  .banking-list:not(.type-ledger) .tx-category,.banking-list:not(.type-ledger) .tx-date{display:none}
  .banking-list:not(.type-ledger) .ledger-actions{grid-column:2/-1;justify-content:flex-start}
}

.name-filter{display:flex;flex-direction:column;gap:4px}
.name-filter span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}
.name-filter input{height:38px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:9px;padding:0 10px;font:inherit;font-size:13px;min-width:170px}
@media(max-width:760px){.name-filter{flex:1 1 180px}.name-filter input{width:100%;min-width:0}}

/* v17: formaler, hochwertiger Kontoauszug */
.formal-statement{padding:34px}
.formal-statement-top{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding-bottom:24px;border-bottom:1px solid var(--line)}
.formal-brand{display:flex;gap:16px;align-items:center}
.formal-monogram{width:48px;height:48px;border:1px solid var(--text);border-radius:13px;display:flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:-.04em}
.formal-brand h2{margin:4px 0 4px;font-size:25px;letter-spacing:-.035em}
.formal-brand p{margin:0;color:var(--muted);font-size:12px}
.formal-meta{display:grid;grid-template-columns:auto auto;gap:4px 14px;text-align:right;font-size:11px;color:var(--muted)}
.formal-meta strong{color:var(--text);font-size:12px}
.statement-filter-note{margin:18px 0 0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.statement-filter-note span{display:block;font-size:9px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px}
.statement-filter-note strong{font-size:11px;line-height:1.5}
.formal-summary{display:grid;grid-template-columns:repeat(4,1fr);margin:26px 0 30px;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.formal-summary>div{padding:18px;border-right:1px solid var(--line)}
.formal-summary>div:last-child{border-right:0}
.formal-summary span{display:block;font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:7px}
.formal-summary strong{font-size:18px;letter-spacing:-.025em}
.formal-summary-main{background:var(--text);color:var(--bg)}
.formal-summary-main span{color:color-mix(in srgb,var(--bg) 65%,transparent)}
.formal-ledger-head,.formal-ledger-row{display:grid;grid-template-columns:105px minmax(0,1.65fr) minmax(135px,.8fr) 135px;gap:16px;align-items:center}
.formal-ledger-head{padding:0 6px 10px;border-bottom:1px solid var(--line);font-size:9px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}
.formal-ledger-head span:last-child{text-align:right}
.formal-ledger-row{padding:15px 6px;border-bottom:1px solid var(--line)}
.formal-date{color:var(--muted);font-size:11px}
.formal-booking strong{display:block;font-size:12px;margin-bottom:3px}
.formal-booking span{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}
.formal-booking small{font-size:9px;color:var(--muted)}
.formal-category{font-size:11px;color:var(--muted)}
.formal-amount{text-align:right;font-weight:700;font-size:12px}
.formal-amount.in{color:var(--positive,#166534)}
.formal-amount.out{color:var(--negative,#991b1b)}
.formal-empty{padding:40px 0;text-align:center;color:var(--muted)}
.formal-footer{display:flex;justify-content:space-between;gap:20px;padding-top:16px;margin-top:26px;border-top:1px solid var(--line);color:var(--muted);font-size:10px}
@media(max-width:800px){
  .formal-statement{padding:20px}
  .formal-statement-top{flex-direction:column}
  .formal-meta{text-align:left}
  .formal-summary{grid-template-columns:1fr 1fr}
  .formal-summary>div:nth-child(2){border-right:0}
  .formal-summary>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .formal-ledger-head{display:none}
  .formal-ledger-row{grid-template-columns:1fr auto}
  .formal-date,.formal-category{display:none}
}

.clickable-booking{cursor:pointer;transition:background .16s ease}.clickable-booking:hover{background:var(--surface-2)}
.transaction-detail-modal{max-width:760px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.detail-hero{grid-column:1/-1;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}.detail-hero>span{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.detail-hero>strong{display:block;font-size:34px;letter-spacing:-.04em;margin:8px 0 5px}.detail-hero>p{margin:0;color:var(--muted);font-size:12px}.detail-card{padding:18px;border:1px solid var(--line);border-radius:14px}.detail-card>span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin-bottom:7px}.detail-card>strong{font-size:18px}.detail-card>small{display:block;margin-top:4px;color:var(--muted)}.detail-section{margin-top:18px;padding:20px;border-top:1px solid var(--line)}.detail-section h3{margin:4px 0 10px}.detail-section>p{color:var(--muted);line-height:1.6}.detail-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.detail-meta>div{padding:12px 0;border-bottom:1px solid var(--line)}.detail-meta span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}
.invoice-items-block{border:1px solid var(--line);border-radius:16px;padding:16px}.invoice-items-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.invoice-items-head h3{margin:3px 0 0}.invoice-item-row{display:grid;grid-template-columns:minmax(220px,1.8fr) 90px 140px 100px 40px;gap:10px;align-items:end;padding:12px 0;border-top:1px solid var(--line)}.invoice-item-row:first-child{border-top:0}.invoice-item-row label{margin:0}.invoice-remove-btn{margin-bottom:1px}
@media(max-width:820px){.detail-grid{grid-template-columns:1fr 1fr}.invoice-item-row{grid-template-columns:1fr 1fr}.invoice-item-desc{grid-column:1/-1}.invoice-remove-btn{justify-self:end}}
@media(max-width:560px){.detail-grid{grid-template-columns:1fr}.detail-meta{grid-template-columns:1fr}.invoice-item-row{grid-template-columns:1fr}.invoice-item-desc{grid-column:auto}}

.field-hint{display:block;margin-top:5px;color:var(--muted);font-size:10px}.dashboard-filter-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.month-select{height:38px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:9px;padding:0 10px;font:inherit;font-size:12px}@media(max-width:720px){.dashboard-filter-row{width:100%}.month-select{width:100%}}

.detail-document{margin-top:16px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--surface-2)}
.detail-document h3{margin:4px 0 5px}
.detail-document p{margin:0;color:var(--muted);font-size:11px}
@media(max-width:620px){.detail-document{align-items:flex-start;flex-direction:column}.detail-document .primary-btn{width:100%}}

/* v24 kompaktere Buchungsdetailansicht */
.detail-compact-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:4px 0 18px;border-bottom:1px solid var(--line)}
.detail-compact-head>div:first-child>strong{display:block;font-size:32px;letter-spacing:-.04em;margin:6px 0 4px}
.detail-compact-head p{margin:0;color:var(--muted);font-size:11px}
.detail-status{font-size:11px;border:1px solid var(--line);border-radius:999px;padding:7px 10px;color:var(--muted)}
.detail-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-bottom:1px solid var(--line)}
.detail-stats-row>div{padding:16px 14px;border-right:1px solid var(--line)}
.detail-stats-row>div:last-child{border-right:0}
.detail-stats-row span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:5px}
.detail-stats-row strong{font-size:16px}
.detail-stats-row small{display:block;color:var(--muted);font-size:9px;margin-top:3px}
.detail-doc-strip{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 0;border-bottom:1px solid var(--line)}
.detail-doc-strip p{margin:4px 0 0;color:var(--muted);font-size:11px}
.detail-doc-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.detail-meta-compact{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:4px}
.detail-meta-compact>div{padding:14px 0;border-bottom:1px solid var(--line)}
.detail-meta-compact>div:nth-child(odd){padding-right:14px}
.detail-meta-compact>div:nth-child(even){padding-left:14px;border-left:1px solid var(--line)}
.detail-meta-compact .span-2{grid-column:1/-1;padding-left:0!important;padding-right:0!important;border-left:0!important}
.detail-meta-compact span{display:block;font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}
.detail-meta-compact strong{font-size:11px}
@media(max-width:760px){
  .detail-stats-row{grid-template-columns:1fr 1fr}
  .detail-stats-row>div:nth-child(2n){border-right:0}
  .detail-doc-strip{align-items:flex-start;flex-direction:column}
  .detail-doc-actions{justify-content:flex-start}
  .detail-doc-actions button{flex:1 1 auto}
}

/* v25 – großzügige Premium-Buchungsdetailansicht */
.transaction-detail-modal{max-width:920px}
.booking-detail-hero{
  display:flex;justify-content:space-between;gap:24px;align-items:flex-start;
  padding:10px 0 28px;border-bottom:1px solid var(--line)
}
.booking-detail-amount{
  font-size:clamp(40px,5vw,62px);line-height:1;letter-spacing:-.055em;font-weight:760;margin:8px 0 10px
}
.booking-detail-sub{font-size:13px;color:var(--muted)}
.booking-detail-badge{
  border:1px solid var(--line);border-radius:999px;padding:9px 13px;font-size:11px;color:var(--muted);white-space:nowrap
}
.booking-detail-finance{
  display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)
}
.finance-cell{padding:22px 20px;border-right:1px solid var(--line)}
.finance-cell:nth-child(3n){border-right:0}
.finance-cell:nth-child(n+4){border-top:1px solid var(--line)}
.finance-cell span{display:block;font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:7px}
.finance-cell strong{display:block;font-size:22px;letter-spacing:-.025em}
.finance-cell small{display:block;margin-top:5px;color:var(--muted);font-size:10px}
.booking-documents-panel{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:26px;align-items:center;
  margin-top:24px;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--surface-2)
}
.booking-documents-copy h3{font-size:20px;margin:5px 0 7px;letter-spacing:-.025em}
.booking-documents-copy p{margin:0;color:var(--muted);font-size:12px;line-height:1.55;max-width:520px}
.booking-documents-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:360px}
.booking-detail-bottom{
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:18px;margin-top:20px
}
.booking-tax-card,.booking-meta-card{border:1px solid var(--line);border-radius:16px;padding:22px}
.booking-tax-card h3{margin:5px 0 9px;font-size:18px;letter-spacing:-.02em}
.booking-tax-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.7}
.booking-meta-card{display:grid;grid-template-columns:1fr 1fr;gap:0}
.booking-meta-card>div{padding:8px 0 14px}
.booking-meta-card span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin-bottom:4px}
.booking-meta-card strong{font-size:11px;line-height:1.4}
.booking-detail-note{margin-top:16px}
@media(max-width:820px){
  .booking-detail-finance{grid-template-columns:1fr 1fr}
  .finance-cell:nth-child(3n){border-right:1px solid var(--line)}
  .finance-cell:nth-child(2n){border-right:0}
  .finance-cell:nth-child(n+3){border-top:1px solid var(--line)}
  .booking-documents-panel{grid-template-columns:1fr}
  .booking-documents-actions{justify-content:flex-start;max-width:none}
  .booking-detail-bottom{grid-template-columns:1fr}
}
@media(max-width:560px){
  .booking-detail-hero{flex-direction:column}
  .booking-detail-finance{grid-template-columns:1fr}
  .finance-cell,.finance-cell:nth-child(n){border-right:0;border-top:1px solid var(--line)}
  .finance-cell:first-child{border-top:0}
  .booking-documents-actions{display:grid;grid-template-columns:1fr}
  .booking-meta-card{grid-template-columns:1fr}
}

/* v26 – neue Buchungsdetailansicht */
.transaction-detail-modal{max-width:940px}

.bd-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
  padding:8px 0 26px;
  border-bottom:1px solid var(--line);
}
.bd-amount{
  margin:7px 0 10px;
  font-size:clamp(42px,5vw,64px);
  line-height:1;
  letter-spacing:-.055em;
  font-weight:760;
}
.bd-subline{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--muted);
  font-size:12px;
}
.bd-subline i{width:3px;height:3px;border-radius:999px;background:var(--muted)}
.bd-status{
  padding:8px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  font-size:11px;
  color:var(--muted);
}

.bd-finance{
  display:grid;
  grid-template-columns:minmax(230px,.8fr) minmax(0,2.2fr);
  border-bottom:1px solid var(--line);
}
.bd-finance-main{
  padding:30px 26px 30px 4px;
  border-right:1px solid var(--line);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.bd-main-label{
  font-size:9px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:10px;
}
.bd-main-value{
  font-size:34px;
  letter-spacing:-.04em;
  font-weight:740;
}
.bd-main-caption{margin-top:5px;color:var(--muted);font-size:11px}

.bd-breakdown{
  display:grid;
  grid-template-columns:repeat(3,1fr);
}
.bd-metric{
  padding:28px 22px;
  min-height:125px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.bd-metric:nth-child(3n){border-right:0}
.bd-metric:nth-last-child(-n+3){border-bottom:0}
.bd-metric span{
  display:block;
  font-size:9px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:8px;
}
.bd-metric strong{
  display:block;
  font-size:22px;
  letter-spacing:-.025em;
}
.bd-metric small{
  display:block;
  margin-top:5px;
  font-size:10px;
  color:var(--muted);
}

.bd-document{
  margin-top:24px;
  padding:24px;
  border:1px solid var(--line);
  border-radius:18px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:26px;
  align-items:center;
  background:var(--surface-2);
}
.bd-document-copy{
  display:flex;
  gap:15px;
  align-items:flex-start;
}
.bd-doc-icon{
  width:42px;
  height:42px;
  border:1px solid var(--line);
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:750;
  flex:0 0 auto;
  background:var(--surface);
}
.bd-document h3{
  margin:4px 0 6px;
  font-size:19px;
  letter-spacing:-.025em;
}
.bd-document p{
  margin:0;
  color:var(--muted);
  font-size:11px;
  line-height:1.55;
}
.bd-document-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
  max-width:390px;
}

.bd-lower{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);
  gap:18px;
  margin-top:18px;
}
.bd-tax,.bd-info{
  border:1px solid var(--line);
  border-radius:16px;
  padding:22px;
}
.bd-tax h3{
  margin:5px 0 9px;
  font-size:17px;
  letter-spacing:-.02em;
}
.bd-tax p{
  margin:0;
  color:var(--muted);
  line-height:1.65;
  font-size:11px;
}
.bd-info{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
}
.bd-info>div{
  padding:7px 0 13px;
}
.bd-info span{
  display:block;
  margin-bottom:4px;
  font-size:9px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.bd-info strong{font-size:11px;line-height:1.4}
.bd-footnote{
  margin-top:14px;
  font-size:9px;
  color:var(--muted);
}

@media(max-width:840px){
  .bd-finance{grid-template-columns:1fr}
  .bd-finance-main{border-right:0;border-bottom:1px solid var(--line);padding-left:0}
  .bd-document{grid-template-columns:1fr}
  .bd-document-actions{justify-content:flex-start;max-width:none}
  .bd-lower{grid-template-columns:1fr}
}
@media(max-width:640px){
  .bd-head{flex-direction:column}
  .bd-breakdown{grid-template-columns:1fr 1fr}
  .bd-metric:nth-child(n){border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .bd-metric:nth-child(2n){border-right:0}
  .bd-document-actions{display:grid;grid-template-columns:1fr}
  .bd-info{grid-template-columns:1fr}
}

.period-selects{display:flex;gap:8px;align-items:center}
.invoice-live-totals{display:flex;justify-content:flex-end;gap:18px;padding-top:12px;margin-top:8px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
.invoice-live-totals b{color:var(--text);margin-left:5px}
@media(max-width:720px){.period-selects{width:100%;display:grid;grid-template-columns:1fr 1fr}.invoice-live-totals{justify-content:flex-start;flex-wrap:wrap}}

/* macOS Safari compatibility */
.mac-compat-note{
  position:fixed;left:50%;bottom:18px;transform:translateX(-50%);
  z-index:9999;display:flex;align-items:center;gap:16px;
  min-width:360px;max-width:calc(100vw - 32px);
  padding:11px 14px;border-radius:14px;background:#111;color:#fff;
  box-shadow:0 14px 42px rgba(0,0,0,.22);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",Inter,Arial,sans-serif
}
.mac-compat-note div{display:flex;flex-direction:column;gap:2px}
.mac-compat-note strong{font-size:12px}
.mac-compat-note span{font-size:10px;opacity:.72}
.mac-compat-note button{border:0;background:transparent;color:#fff;font-size:18px;cursor:pointer}
@supports (-webkit-touch-callout:none){
  input,select,textarea,button{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",Inter,Arial,sans-serif}
}

/* Safari-safe finance input */
input[name="grossAmount"]{font-variant-numeric:tabular-nums}

.sale-cost-fields{margin-top:4px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.sale-cost-head h3{margin:4px 0}.sale-cost-head p{margin:0 0 14px;color:var(--muted);font-size:11px}
.sale-cost-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;align-items:end}
.sale-cost-preview{grid-column:1/-1;padding:12px;border:1px solid var(--line);border-radius:10px;font-size:11px;color:var(--muted)}
.tx-time{display:block;margin-top:3px;font-size:9px;color:var(--muted)}
.profit-metric strong{font-variant-numeric:tabular-nums}
@media(max-width:760px){.sale-cost-grid{grid-template-columns:1fr}.sale-cost-preview{grid-column:auto}}

.optional-label{font-size:9px;color:var(--muted);font-weight:500;margin-left:4px}
.invoice-settings-preview{margin-top:18px;padding:16px 17px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);font-size:11px;line-height:1.65;color:var(--muted)}
.invoice-settings-preview p{margin:8px 0 0}.invoice-settings-preview b{color:var(--text)}

.invoice-items-helper{margin:5px 0 0;color:var(--muted);font-size:10px;line-height:1.45}
.invoice-item-row{grid-template-columns:minmax(210px,2fr) 90px minmax(145px,1fr) 95px 38px}
.invoice-item-row .field-hint{display:block;margin-top:5px;color:var(--muted);font-size:9px;font-weight:500}
.invoice-shipping-row{background:rgba(127,127,127,.035);border-radius:12px;padding:10px}
@media(max-width:760px){.invoice-item-row{grid-template-columns:1fr 1fr}.invoice-item-desc{grid-column:1/-1}.invoice-remove-btn{justify-self:end}.invoice-shipping-row{padding:10px}}

/* Vier feste Rechnungspositionen */
.fixed-invoice-position{position:relative;padding-top:34px;margin-top:10px}
.invoice-position-label{
  position:absolute;left:14px;top:10px;
  font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted)
}
.fixed-invoice-position[data-position="4"]{background:var(--surface-2)}
@media(max-width:760px){
  .fixed-invoice-position{padding-top:38px}
}

/* Dynamische Rechnungspositionen */
.dynamic-position-head{align-items:end;gap:18px}
.invoice-position-count-label{
  min-width:170px;
  font-size:11px;
  color:var(--muted);
}
.invoice-position-count-label select{margin-top:7px}
.dynamic-invoice-position{
  position:relative;
  padding-top:34px;
  margin-top:10px;
}
.invoice-position-label{
  position:absolute;
  left:14px;
  top:10px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
}
@media(max-width:760px){
  .dynamic-position-head{align-items:stretch;flex-direction:column}
  .invoice-position-count-label{width:100%}
}

/* FIX: Rechnungspositionen müssen auf kleinen Mac/Safari-Fenstern sichtbar und scrollbar sein */
#invoiceModalBackdrop{
  overflow-y:auto !important;
  align-items:flex-start !important;
  padding-top:24px !important;
  padding-bottom:24px !important;
}
#invoiceModalBackdrop .modal,
#invoiceModalBackdrop .invoice-editor-modal{
  width:min(920px,100%) !important;
  max-height:calc(100vh - 48px) !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch;
  margin:auto;
}
.invoice-fields-label{
  margin:16px 0 8px;
  padding-top:14px;
  border-top:1px solid var(--line);
  font-size:11px;
  font-weight:800;
  color:var(--text);
}
.invoice-items-container{
  display:flex;
  flex-direction:column;
  gap:12px;
  width:100%;
}
#invoiceItemsContainer .invoice-item-row.dynamic-invoice-position{
  display:grid !important;
  grid-template-columns:minmax(220px,1.8fr) 90px minmax(150px,1fr) 110px !important;
  gap:12px !important;
  position:relative !important;
  padding:42px 14px 16px !important;
  margin:0 !important;
  border:1px solid var(--line) !important;
  border-radius:14px !important;
  background:var(--panel) !important;
  min-height:130px !important;
}
#invoiceItemsContainer .invoice-position-label{
  left:14px !important;
  top:12px !important;
  color:var(--text) !important;
}
#invoiceItemsContainer input,
#invoiceItemsContainer select{
  width:100% !important;
  min-height:42px !important;
}
@media(max-width:820px){
  #invoiceItemsContainer .invoice-item-row.dynamic-invoice-position{
    grid-template-columns:1fr 1fr !important;
  }
  #invoiceItemsContainer .invoice-item-desc{grid-column:1/-1}
}
@media(max-width:560px){
  #invoiceItemsContainer .invoice-item-row.dynamic-invoice-position{
    grid-template-columns:1fr !important;
  }
  #invoiceItemsContainer .invoice-item-desc{grid-column:auto}
}

/* Rechnungsnummern / Buchungsreferenzen */
.reference-badge{
  display:inline-flex;align-items:center;width:max-content;
  margin-top:5px;padding:4px 7px;border-radius:7px;
  border:1px solid var(--line);background:var(--surface-2);
  color:var(--text);font-size:9px;font-weight:800;
  letter-spacing:.03em;white-space:nowrap
}
.detail-reference{font-weight:700;color:var(--text)}
.dashboard-invoice-strip{margin-top:16px;padding:18px 20px}
.dashboard-invoice-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px}
.dashboard-invoice-head h3{margin:4px 0 0}
.dashboard-invoice-list{display:flex;flex-direction:column}
.dashboard-invoice-row{
  display:grid;grid-template-columns:130px minmax(180px,1fr) 120px 130px;
  gap:12px;align-items:center;width:100%;
  padding:12px 4px;border:0;border-top:1px solid var(--line);
  background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer
}
.dashboard-invoice-row:hover{background:var(--surface-2)}
.dashboard-invoice-row .invoice-ref{font-weight:850}
.dashboard-invoice-row .invoice-customer{color:var(--muted)}
.dashboard-invoice-row .invoice-date{color:var(--muted);font-size:11px}
.dashboard-invoice-row strong{text-align:right}
@media(max-width:760px){
  .dashboard-invoice-row{grid-template-columns:1fr auto}
  .dashboard-invoice-row .invoice-customer{grid-column:1}
  .dashboard-invoice-row .invoice-date{display:none}
}

/* Ausgaben: Wareneinkauf / Händlerrechnung */
.expense-purchase-fields{
  margin-top:4px;padding:16px;border:1px solid var(--line);
  border-radius:14px;background:var(--surface-2)
}
.expense-purchase-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end
}
.expense-invoice-status{
  min-height:42px;padding:10px 12px;border:1px dashed var(--line);
  border-radius:10px;color:var(--muted);font-size:10px
}
.expense-invoice-status strong{display:block;color:var(--text);margin-top:6px}
.expense-invoice-status small{display:block;margin-top:3px}
#expensePurchaseFields input[type="file"]{
  min-height:44px;padding:9px;background:var(--panel)
}
@media(max-width:640px){
  .expense-purchase-grid{grid-template-columns:1fr}
  .expense-purchase-grid .span-2{grid-column:auto}
}

/* Berichte: Rechnungs-/Belegnummern bewusst schwarz und stärker */
.report-reference{
  display:block;
  width:max-content;
  margin-top:4px;
  color:var(--text) !important;
  font-size:10px;
  font-weight:850;
  letter-spacing:.01em;
}
@media print{
  .report-reference{color:#000 !important;font-weight:800}
}

/* Firmendaten am Anfang von Berichten */
.report-company-lines{
  display:flex;
  flex-wrap:wrap;
  gap:4px 12px;
  margin-top:7px;
  max-width:560px;
}
.report-company-lines span{
  color:var(--muted);
  font-size:9px;
  line-height:1.45;
}
@media print{
  .report-company-lines span{color:#666}
}

/* Rechnungsnummern B-JJJJ-XXX */
.invoice-number-field-status{min-height:14px;margin-top:2px;font-size:9.5px;font-weight:700}
.invoice-number-field-status.free{color:#15803d}
.invoice-number-field-status.used,.invoice-number-field-status.own{color:#b91c1c}
.invoice-number-field-status.invalid{color:#b45309}
#invoiceForm input.invoice-no-free{border-color:rgba(21,128,61,.55);box-shadow:0 0 0 2px rgba(21,128,61,.06)}
#invoiceForm input.invoice-no-used{border-color:rgba(185,28,28,.55);box-shadow:0 0 0 2px rgba(185,28,28,.06)}
#invoiceForm input.invoice-no-invalid{border-color:rgba(180,83,9,.55)}
.invoice-number-registry{margin-top:16px;padding:18px}
.invoice-number-registry-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}
.invoice-number-registry-head h3{margin:5px 0 5px;font-size:19px}
.invoice-number-registry-head p{margin:0;color:var(--muted);font-size:11px}
.invoice-number-next{min-width:220px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.invoice-number-next span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.invoice-number-next strong{display:block;margin:5px 0 9px;font-size:17px}
.invoice-number-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:6px;max-height:330px;overflow:auto;margin-top:15px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.invoice-number-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 9px;border-radius:9px;font:inherit;text-align:left;cursor:pointer}
.invoice-number-chip span{font-size:10px;font-weight:850}
.invoice-number-chip small{font-size:8px;font-weight:700}
.invoice-number-chip.used{color:#991b1b;border:1px solid rgba(220,38,38,.24);background:rgba(220,38,38,.075)}
.invoice-number-chip.free{color:#166534;border:1px solid rgba(22,163,74,.24);background:rgba(22,163,74,.07)}
.invoice-number-chip.used:hover{background:rgba(220,38,38,.12)}
.invoice-number-chip.free:hover{background:rgba(22,163,74,.13)}
@media(max-width:700px){.invoice-number-registry-head{flex-direction:column}.invoice-number-next{width:100%;min-width:0}.invoice-number-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Plattform-Auswahl und Verkaufsübersicht */
#incomePlatformField{display:flex;flex-direction:column}
.platform-badge{
  display:inline-flex;width:max-content;align-items:center;
  padding:4px 8px;border-radius:999px;border:1px solid var(--line);
  background:var(--surface-2);color:var(--text);
  font-size:9px;line-height:1;font-weight:800;letter-spacing:.015em
}
.sales-overview-summary{
  display:grid;grid-template-columns:minmax(260px,1.5fr) repeat(2,minmax(160px,.75fr));
  gap:12px;margin-bottom:12px
}
.sales-overview-total,.sales-overview-metric{padding:18px}
.sales-overview-total>strong{display:block;margin:8px 0 4px;font-size:30px;letter-spacing:-.045em}
.sales-overview-total p{margin:0;color:var(--muted);font-size:11px}
.sales-overview-metric{display:flex;flex-direction:column;justify-content:center}
.sales-overview-metric span{color:var(--muted);font-size:10px}
.sales-overview-metric strong{margin:7px 0 3px;font-size:19px}
.sales-overview-metric small{color:var(--muted)}
.platform-summary-grid{
  display:grid;grid-template-columns:repeat(6,minmax(115px,1fr));
  gap:10px;margin-bottom:14px
}
.platform-summary-card{padding:14px}
.platform-summary-card>div{display:flex;align-items:center;justify-content:space-between;gap:7px}
.platform-summary-card>div>span:last-child{color:var(--muted);font-size:9px}
.platform-summary-card>strong{display:block;margin-top:12px;font-size:16px}
.sales-ledger{overflow:hidden}
.sales-ledger .toolbar{padding:17px 18px}
.sales-ledger-head,.sales-ledger-row{
  display:grid;grid-template-columns:100px minmax(190px,1.5fr) 110px 135px minmax(150px,1fr) 120px;
  gap:12px;align-items:center
}
.sales-ledger-head{
  padding:9px 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  color:var(--muted);font-size:8px;font-weight:750;letter-spacing:.08em;text-transform:uppercase
}
.sales-ledger-row{padding:13px 18px;border-bottom:1px solid var(--line)}
.sales-ledger-row:last-child{border-bottom:0}
.sales-ledger-date{font-size:10px;color:var(--muted)}
.sales-ledger-date small{display:block;margin-top:3px}
.sales-ledger-main strong{display:block;font-size:11px}
.sales-ledger-main span{display:block;margin-top:3px;color:var(--muted);font-size:9.5px}
.sales-ledger-ref strong{color:var(--text);font-size:10px;font-weight:900}
.sales-ledger-ref span{color:var(--muted)}
.sales-ledger-tax strong{display:block;font-size:10px}
.sales-ledger-tax span{display:block;margin-top:3px;color:var(--muted);font-size:9px}
.sales-ledger-gross{text-align:right;font-size:12px;font-weight:850}
@media(max-width:1050px){
  .platform-summary-grid{grid-template-columns:repeat(3,minmax(125px,1fr))}
  .sales-ledger{overflow-x:auto}
  .sales-ledger-head,.sales-ledger-row{min-width:900px}
}
@media(max-width:700px){
  .sales-overview-summary{grid-template-columns:1fr}
  .platform-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Umbuchungen */
.transfer-fields{display:none;margin-top:4px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.transfer-head h3{margin:5px 0 4px}
.transfer-head p{margin:0 0 14px;color:var(--muted);font-size:11px;line-height:1.5}
.transfer-grid{display:grid;grid-template-columns:minmax(180px,1fr) 38px minmax(180px,1fr);gap:10px;align-items:end}
.transfer-arrow{display:grid;place-items:center;min-height:43px;font-size:20px;font-weight:800;color:var(--muted)}
.transfer-badge{display:inline-flex;width:max-content;margin-top:5px;padding:4px 7px;border-radius:7px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);font-size:9px;font-weight:850}
.platform-balance{display:block;margin-top:8px;color:var(--muted);font-size:9px;line-height:1.4}
.platform-balance b{color:var(--text);font-weight:800}
@media(max-width:620px){.transfer-grid{grid-template-columns:1fr}.transfer-arrow{min-height:22px;transform:rotate(90deg)}}


/* Dashboard: gleichmäßige Konten-/Plattformübersicht */
.dashboard-wallet-section{
  margin-bottom:16px;
  padding:20px;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--panel);
}
.dashboard-wallet-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:16px;
}
.dashboard-wallet-head h3{
  margin:5px 0 4px;
  font-size:18px;
  letter-spacing:-.025em;
}
.dashboard-wallet-head p{
  margin:0;
  color:var(--muted);
  font-size:11px;
}
.dashboard-wallet-total{
  min-width:180px;
  text-align:right;
}
.dashboard-wallet-total span{
  display:block;
  color:var(--muted);
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.09em;
}
.dashboard-wallet-total strong{
  display:block;
  margin-top:5px;
  font-size:20px;
  letter-spacing:-.03em;
}
.dashboard-wallet-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
  align-items:stretch;
}
.dashboard-wallet-card{
  min-width:0;
  min-height:124px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:space-between;
  padding:14px;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--panel-2);
  color:var(--text);
  text-align:left;
  cursor:pointer;
}
.dashboard-wallet-card:hover{
  transform:translateY(-1px);
  border-color:var(--muted);
}
.dashboard-wallet-card-top{
  min-height:25px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.dashboard-wallet-card-top>span:last-child{
  overflow:hidden;
  color:var(--muted);
  font-size:8.5px;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.dashboard-wallet-card>strong{
  display:block;
  margin-top:14px;
  font-size:20px;
  line-height:1;
  letter-spacing:-.035em;
}
.dashboard-wallet-card>small{
  display:block;
  margin-top:9px;
  color:var(--muted);
  font-size:8.5px;
  line-height:1.35;
}

/* Die beiden großen Dashboard-Boxen stehen exakt auf einem Raster. */
.minimal-dashboard{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  align-items:stretch;
}
.balance-card,.allocation-card{
  min-width:0;
  height:100%;
}

/* Verkaufsübersicht: alle Plattformboxen gleich breit und gleich hoch. */
.platform-summary-grid{
  grid-template-columns:repeat(6,minmax(0,1fr)) !important;
  align-items:stretch;
}
.platform-summary-card{
  min-width:0;
  min-height:118px;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.platform-summary-card>div{
  min-height:25px;
}
.platform-summary-card>strong{
  margin-top:14px;
}
.platform-balance{
  margin-top:9px;
}

/* Einnahmen sind immer Verkauf; das Feld bleibt sichtbar, aber gesperrt. */
#transactionCategoryField select:disabled{
  opacity:1;
  color:var(--text);
  cursor:not-allowed;
}

@media(max-width:1150px){
  .dashboard-wallet-grid,.platform-summary-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}
@media(max-width:1050px){
  .minimal-dashboard{
    grid-template-columns:1fr !important;
  }
}
@media(max-width:720px){
  .dashboard-wallet-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .dashboard-wallet-total{
    min-width:0;
    text-align:left;
  }
  .dashboard-wallet-grid,.platform-summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:480px){
  .dashboard-wallet-grid,.platform-summary-grid{
    grid-template-columns:1fr !important;
  }
}

/* Dashboard Umsatz-Fix: gleichmäßige und stabile Ausrichtung */
.dashboard-wallet-grid{
  grid-auto-rows:1fr;
}
.dashboard-wallet-card{
  height:100%;
}
.minimal-dashboard{
  align-items:stretch !important;
}
.balance-card,.allocation-card{
  align-self:stretch;
}
.balance-lines{
  width:100%;
}


/* Einnahme/Ausgabe/Umbuchung – sauberes Formularraster */
#transactionForm.form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:22px;
  row-gap:18px;
  align-items:start;
}

#transactionForm > label{
  min-width:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}

#transactionForm > label.span-2,
#transactionForm > .span-2{
  grid-column:1 / -1;
}

#transactionForm input,
#transactionForm select{
  width:100%;
  min-width:0;
  height:48px;
  box-sizing:border-box;
}

#transactionForm .field-hint{
  display:block;
  min-height:15px;
  margin-top:1px;
  line-height:1.35;
}

/* Feste, nachvollziehbare Anordnung */
#transactionForm .tx-grid-partner{grid-column:1}
#transactionForm .tx-grid-platform{grid-column:2}
#transactionForm .tx-grid-category{grid-column:1}
#transactionForm .tx-grid-amount{grid-column:2}
#transactionForm .tx-grid-tax{grid-column:1}
#transactionForm .tx-grid-business{grid-column:2}
#transactionForm .tx-grid-status{grid-column:1}

/* Partner/Kunde darf nicht mehr als schmale Sonderbox erscheinen */
#transactionForm .tx-grid-partner input,
#transactionForm .tx-grid-platform select,
#transactionForm .tx-grid-category select,
#transactionForm .tx-grid-amount input,
#transactionForm .tx-grid-tax select,
#transactionForm .tx-grid-business input,
#transactionForm .tx-grid-status select{
  max-width:none !important;
  width:100% !important;
}

/* Kategorie bei Einnahmen bleibt gesperrt, sieht aber wie ein normales Feld aus */
#transactionForm .tx-grid-category select:disabled{
  opacity:1;
  -webkit-text-fill-color:var(--text);
  color:var(--text);
  background:var(--panel-2);
}

/* Verkaufskostenblock sauber unterhalb des Grundformulars */
#transactionForm .sale-cost-fields,
#transactionForm .expense-purchase-fields,
#transactionForm .transfer-fields{
  grid-column:1 / -1;
  width:100%;
  margin-top:2px;
}

/* Innenraster des Wareneinsatz-Blocks angleichen */
#transactionForm .sale-cost-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  align-items:end;
}
#transactionForm .sale-cost-grid > label{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
#transactionForm .sale-cost-preview{
  grid-column:1 / -1;
  min-height:48px;
  display:flex;
  align-items:center;
}

/* Buttons bündig */
#transactionForm .form-actions{
  grid-column:1 / -1;
  margin-top:2px;
}

/* Modal etwas ruhiger/breiter, damit nichts gequetscht wirkt */
#modalBackdrop .modal{
  width:min(960px,calc(100vw - 36px));
}
#modalBackdrop .modal-body,
#modalBackdrop .modal-content{
  min-width:0;
}

@media(max-width:760px){
  #transactionForm.form-grid{
    grid-template-columns:1fr;
    column-gap:0;
    row-gap:16px;
  }
  #transactionForm .tx-grid-partner,
  #transactionForm .tx-grid-platform,
  #transactionForm .tx-grid-category,
  #transactionForm .tx-grid-amount,
  #transactionForm .tx-grid-tax,
  #transactionForm .tx-grid-business,
  #transactionForm .tx-grid-status,
  #transactionForm > label.span-2,
  #transactionForm > .span-2{
    grid-column:1;
  }
  #transactionForm .sale-cost-grid{
    grid-template-columns:1fr;
  }
  #transactionForm .sale-cost-preview{
    grid-column:1;
  }
}


/* Modal-Scroll FIX: Einnahmen/Ausgaben/Umbuchungen vollständig scrollbar */
#modalBackdrop{
  position:fixed;
  inset:0;
  overflow-y:auto !important;
  overflow-x:hidden;
  padding:24px 16px;
  align-items:flex-start !important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}

#modalBackdrop .modal{
  width:min(960px,calc(100vw - 32px));
  max-height:none !important;
  min-height:0;
  margin:auto;
  overflow:visible !important;
}

#modalBackdrop .modal-card{
  max-height:none !important;
  overflow:visible !important;
}

#modalBackdrop .modal-body,
#modalBackdrop .modal-content{
  max-height:none !important;
  overflow:visible !important;
}

#transactionForm{
  padding-bottom:28px;
}

/* Falls ältere CSS-Regeln das Modal zentrieren oder abschneiden */
#modalBackdrop.hidden{
  display:none !important;
}

@media(max-height:820px){
  #modalBackdrop{
    padding-top:14px;
    padding-bottom:28px;
  }
}

@media(max-width:760px){
  #modalBackdrop{
    padding:10px 8px 24px;
  }
  #modalBackdrop .modal{
    width:100%;
  }
}


/* GLOBALER MODAL-SCROLL FIX
   Alle Dialoge bleiben auf Mac/Safari und kleinen Displays vollständig erreichbar. */
#invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop{
  position:fixed !important;
  inset:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  align-items:flex-start !important;
  justify-content:center;
  padding:24px 16px 34px !important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  box-sizing:border-box;
}

#invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop > .modal,
#invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop > .modal-card,
#invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop .modal{
  flex:0 0 auto;
  max-height:none !important;
  min-height:0 !important;
  overflow:visible !important;
  margin:auto !important;
}

#invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop .modal-card,
#invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop .modal-body,
#invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop .modal-content,
#invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop form{
  max-height:none !important;
}

#invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop .modal-body,
#invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop .modal-content{
  overflow:visible !important;
}

/* Unten immer Luft lassen, damit Speichern/Abbrechen nicht abgeschnitten werden. */
#invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop form{
  padding-bottom:max(24px,env(safe-area-inset-bottom)) !important;
}

#invoiceModalBackdrop.hidden,#invoiceUploadBackdrop.hidden,#modalBackdrop.hidden,#partnerModalBackdrop.hidden,#receiptModalBackdrop.hidden,#transactionDetailBackdrop.hidden{
  display:none !important;
}

@media(max-height:820px){
  #invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop{
    padding-top:12px !important;
    padding-bottom:30px !important;
  }
}

@media(max-width:760px){
  #invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop{
    padding:10px 8px 28px !important;
  }
  #invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop > .modal,
  #invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop > .modal-card,
  #invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop .modal{
    width:100% !important;
    max-width:100% !important;
  }
}


/* =========================================================
   FINALER SCROLL-FIX – GILT FÜR ALLE POP-UPS / BUCHUNGSARTEN
   ========================================================= */

/* Auch die normale Übersichtsseite darf immer vertikal scrollen. */
html,body{
  min-height:100% !important;
  height:auto !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch;
}
.app-shell,.main,.content{
  min-height:0;
  height:auto;
}
.main,.content{
  overflow:visible !important;
}

/* Backdrop bleibt am Bildschirm. Gescrollt wird IM Fenster selbst. */
#invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop{
  position:fixed !important;
  inset:0 !important;
  display:flex !important;
  align-items:flex-start !important;
  justify-content:center !important;
  overflow:hidden !important;
  padding:12px !important;
  box-sizing:border-box !important;
}

/* JEDES Modal: eigener Scrollbereich.
   100vh = Safari-Fallback, 100dvh = moderne Browser. */
#invoiceModalBackdrop > .modal,#invoiceUploadBackdrop > .modal,#modalBackdrop > .modal,#partnerModalBackdrop > .modal,#receiptModalBackdrop > .modal,#transactionDetailBackdrop > .modal{
  width:min(960px,100%) !important;
  max-width:100% !important;
  max-height:calc(100vh - 24px) !important;
  max-height:calc(100dvh - 24px) !important;
  min-height:0 !important;
  margin:0 auto !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior:contain !important;
  scrollbar-gutter:stable;
  box-sizing:border-box !important;
}

/* Alte Regeln dürfen Inhalte innerhalb des Fensters nicht abschneiden. */
#invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop .modal-body,
#invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop .modal-content{
  max-height:none !important;
  overflow:visible !important;
}

#invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop form{
  max-height:none !important;
  overflow:visible !important;
  padding-bottom:max(32px,env(safe-area-inset-bottom)) !important;
}

/* Überschrift oben sichtbar, während man im langen Fenster scrollt. */
#invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop .modal-head{
  position:sticky;
  top:-1px;
  z-index:8;
  background:var(--panel);
  padding-top:1px;
}

/* Versteckte Fenster bleiben natürlich verborgen. */
#invoiceModalBackdrop.hidden,#invoiceUploadBackdrop.hidden,#modalBackdrop.hidden,#partnerModalBackdrop.hidden,#receiptModalBackdrop.hidden,#transactionDetailBackdrop.hidden{
  display:none !important;
}

@media(max-width:760px){
  #invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop{
    padding:6px !important;
  }
  #invoiceModalBackdrop > .modal,#invoiceUploadBackdrop > .modal,#modalBackdrop > .modal,#partnerModalBackdrop > .modal,#receiptModalBackdrop > .modal,#transactionDetailBackdrop > .modal{
    width:100% !important;
    max-height:calc(100vh - 12px) !important;
    max-height:calc(100dvh - 12px) !important;
    border-radius:14px !important;
  }
}


/* Status "Bezahlt" klar grün hervorheben */
.status.paid,
.bd-status.paid,
.invoice-status.paid,
.paid-status,
.status-badge.paid{
  color:#16803a !important;
  background:rgba(22,128,58,.10) !important;
  border-color:rgba(22,128,58,.22) !important;
  font-weight:800 !important;
}

body.dark .status.paid,
body.dark .bd-status.paid,
body.dark .invoice-status.paid,
body.dark .paid-status,
body.dark .status-badge.paid{
  color:#57d47b !important;
  background:rgba(87,212,123,.11) !important;
  border-color:rgba(87,212,123,.24) !important;
}


/* Automatische Zuordnung von Plattform-Auszahlungen */
.transfer-auto-match{
  margin-top:14px;
}
.transfer-match-note,
.transfer-match-success,
.transfer-match-warning{
  border:1px solid var(--line);
  border-radius:13px;
  padding:14px;
  background:var(--panel-2);
  display:grid;
  gap:7px;
}
.transfer-match-note strong,
.transfer-match-warning strong,
.transfer-match-success strong{
  color:var(--text);
}
.transfer-match-note>span,
.transfer-match-warning>span,
.transfer-match-note>small,
.transfer-match-warning>small,
.transfer-match-success>small{
  color:var(--muted);
  font-size:10px;
  line-height:1.5;
}
.transfer-match-success{
  border-color:rgba(22,128,58,.24);
  background:rgba(22,128,58,.055);
}
.transfer-match-success>.transfer-match-title{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
}
.transfer-match-success>.transfer-match-title>strong{
  color:#16803a;
}
.transfer-match-success>.transfer-match-title>span{
  font-size:10px;
  color:var(--muted);
  white-space:nowrap;
}
.transfer-match-warning{
  border-color:rgba(190,120,20,.25);
  background:rgba(190,120,20,.06);
}
.transfer-match-list{
  display:grid;
  border-top:1px solid var(--line);
  margin-top:3px;
}
.transfer-match-list>div{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  padding:9px 0;
  border-bottom:1px solid var(--line);
}
.transfer-match-list>div:last-child{
  border-bottom:0;
}
.transfer-match-list>div>span{
  min-width:0;
}
.transfer-match-list b{
  display:block;
  font-size:10px;
}
.transfer-match-list small{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:8.5px;
}
.transfer-match-list>div>strong{
  white-space:nowrap;
  font-size:10.5px;
}
.transfer-ref-preview{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:3px;
}
.transfer-ref-preview span{
  padding:4px 7px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--panel);
  color:var(--text);
  font-size:8.5px;
  font-weight:800;
}
body.dark .transfer-match-success>.transfer-match-title>strong{
  color:#57d47b;
}
@media(max-width:650px){
  .transfer-match-success>.transfer-match-title{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }
}


/* Plattform-Reports: Monat / Gesamtjahr */
.platform-report-builder{margin-bottom:16px;overflow:hidden;position:relative}
.platform-report-builder .panel-head{align-items:center}
.platform-report-pdf-mark{width:48px;height:48px;border:1px solid var(--line);border-radius:13px;display:grid;place-items:center;font-size:11px;font-weight:900;letter-spacing:.09em;background:var(--panel-2)}
.platform-report-controls{display:grid;grid-template-columns:1.15fr .85fr .8fr 1fr auto;gap:10px;align-items:end;margin-top:18px}
.platform-report-controls label{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:10px;font-weight:750}
.platform-report-controls select{height:46px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2);color:var(--text);padding:0 12px;font:inherit;font-size:12px;outline:none}
.platform-report-controls select:focus{border-color:var(--text)}
.platform-report-download{height:46px;white-space:nowrap}
.platform-report-includes{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}
.platform-report-includes span{font-size:9px;color:var(--muted);font-weight:750;margin-right:3px}
.platform-report-includes b{font-size:8.5px;padding:5px 8px;border:1px solid var(--line);border-radius:999px;background:var(--panel-2)}
.report-year-cards{margin-top:0}
@media(max-width:1050px){.platform-report-controls{grid-template-columns:1fr 1fr 1fr 1fr}.platform-report-download{grid-column:1/-1}}
@media(max-width:680px){.platform-report-controls{grid-template-columns:1fr 1fr}.platform-report-download{grid-column:1/-1}.platform-report-pdf-mark{display:none}}
@media(max-width:440px){.platform-report-controls{grid-template-columns:1fr}.platform-report-download{grid-column:auto}}


/* Vinted Username - nur interne Verkaufszuordnung */
.vinted-username-field{
  flex-direction:column;
}
.vinted-user-tag{
  display:inline-flex;
  width:max-content;
  margin-top:6px;
  padding:4px 7px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--panel-2);
  color:var(--muted);
  font-size:9px;
  font-weight:700;
  letter-spacing:.01em;
}


/* Vinted Username direkt in der Einnahmen-Übersicht */
.vinted-income-username{
  display:block;
  width:max-content;
  margin-top:4px;
  margin-bottom:2px;
  color:var(--muted);
  font-size:10px;
  font-weight:750;
  line-height:1.35;
}


/* Positive Einnahmen immer grün – konsistent in allen Ansichten */
.positive-income,
.sales-ledger-gross,
.tx-amount.in,
.money.pos,
.type-ledger .tx-amount.in,
.banking-list .tx-amount.in{
  color:#0b9f62 !important;
  font-weight:800;
}

/* Auch grüne Einnahmen in Detailansichten */
.bd-amount.positive-income{
  color:#0b9f62 !important;
}

/* Dark Mode: heller, gut lesbarer Grünton */
body.dark .positive-income,
body.dark .sales-ledger-gross,
body.dark .tx-amount.in,
body.dark .money.pos,
body.dark .type-ledger .tx-amount.in,
body.dark .banking-list .tx-amount.in,
body.dark .bd-amount.positive-income{
  color:#43d58a !important;
}


/* Mehrfachauswahl / Sammellöschen */
.bulk-selection-controls{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.bulk-selection-count{
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-height:38px;
  padding:0 11px;
  border:1px solid var(--line);
  border-radius:10px;
  color:var(--muted);
  background:var(--panel);
  font-size:10px;
  white-space:nowrap;
}
.bulk-selection-count b{
  color:var(--text);
  font-size:12px;
}
.bulk-delete-btn{
  min-height:38px;
  padding:0 13px;
  border:1px solid rgba(188,48,48,.30);
  border-radius:10px;
  background:rgba(188,48,48,.06);
  color:#ad2d2d;
  font-weight:800;
  cursor:pointer;
}
.bulk-delete-btn:hover:not(:disabled){
  background:rgba(188,48,48,.11);
}
.bulk-delete-btn:disabled{
  opacity:.42;
  cursor:not-allowed;
}
.bulk-select-marker{
  width:25px;
  height:25px;
  min-width:25px;
  display:inline-grid;
  place-items:center;
  padding:0;
  margin-right:10px;
  border:1.5px solid var(--line);
  border-radius:8px;
  background:var(--panel);
  color:#fff;
  font-size:13px;
  font-weight:900;
  cursor:pointer;
  vertical-align:middle;
  transition:.14s ease;
}
.bulk-select-marker:hover{
  border-color:rgba(11,159,98,.55);
}
.bulk-select-marker.selected{
  background:#0b9f62;
  border-color:#0b9f62;
  color:#fff;
}
.statement-item.bulk-selectable-row,
.sales-ledger-row.bulk-selectable-row{
  position:relative;
  cursor:pointer;
}
.statement-item.bulk-selectable-row>.bulk-select-marker,
.sales-ledger-row.bulk-selectable-row>.bulk-select-marker{
  position:absolute;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  margin:0;
  z-index:2;
}
.statement-item.bulk-selectable-row{
  padding-left:56px !important;
}
.sales-ledger-row.bulk-selectable-row{
  padding-left:54px !important;
}
.bulk-selected{
  background:rgba(11,159,98,.055) !important;
  box-shadow:inset 3px 0 0 rgba(11,159,98,.70);
}
table tr.bulk-selected td{
  background:rgba(11,159,98,.045);
}
.bulk-table-selectable{
  cursor:pointer;
}
.toolbar-actions{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
body.dark .bulk-select-marker.selected{
  background:#43d58a;
  border-color:#43d58a;
  color:#102018;
}
body.dark .bulk-selected{
  background:rgba(67,213,138,.065) !important;
  box-shadow:inset 3px 0 0 rgba(67,213,138,.72);
}
body.dark table tr.bulk-selected td{
  background:rgba(67,213,138,.045);
}
@media(max-width:760px){
  .bulk-selection-controls{
    width:100%;
  }
  .bulk-selection-controls .secondary-btn,
  .bulk-selection-controls .bulk-delete-btn{
    flex:1 1 auto;
  }
}


/* =========================================================
   V29 · Datensicherheit, Bankabgleich, Auszahlungen & Reports
   ========================================================= */

.negative-expense{color:#b34a43!important}
.closed-month-badge{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:8px;
  font-weight:700;
}
.closed-month-inline{margin-left:6px;font-size:10px;opacity:.65}

/* Dashboard Monatsvergleich */
.dashboard-comparison{margin:18px 0 20px}
.dashboard-comparison-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:10px}
.dashboard-comparison-head h3{margin:4px 0 0;font-size:16px}
.dashboard-comparison-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.dashboard-comparison-grid .card{padding:16px 17px;display:grid;gap:7px}
.dashboard-comparison-grid span{font-size:9px;color:var(--muted);font-weight:750;text-transform:uppercase;letter-spacing:.06em}
.dashboard-comparison-grid strong{font-size:19px;letter-spacing:-.03em}
.dashboard-comparison-grid small{font-size:9px;color:var(--muted)}

/* Bankabgleich */
.reconciliation-card{margin:16px 0;padding:18px}
.reconciliation-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.reconciliation-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}
.reconciliation-stats>div{padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2);display:grid;gap:4px}
.reconciliation-stats span{font-size:8px;text-transform:uppercase;color:var(--muted);font-weight:750}
.reconciliation-stats strong{font-size:17px}
.reconciliation-list{display:grid;border-top:1px solid var(--line)}
.reconciliation-row{display:grid;grid-template-columns:minmax(0,1.5fr) 130px minmax(220px,1fr);gap:14px;align-items:center;padding:12px 2px;border-bottom:1px solid var(--line)}
.reconciliation-row>div:first-child{display:grid;gap:3px}
.reconciliation-row>div:first-child strong{font-size:10px}
.reconciliation-row>div:first-child span{font-size:9px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.reconciliation-row>strong{text-align:right}
.reconciliation-match{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0}
.reconciliation-match .tiny-btn{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Vinted Auszahlungen */
.vinted-payout-stats,.receivable-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}
.vinted-payout-stats .card,.receivable-stats .card{padding:18px;display:grid;gap:7px}
.vinted-payout-stats span,.receivable-stats span{font-size:9px;color:var(--muted);text-transform:uppercase;font-weight:750;letter-spacing:.06em}
.vinted-payout-stats strong,.receivable-stats strong{font-size:22px}
.vinted-payout-stats small,.receivable-stats small{font-size:9px;color:var(--muted)}
.payout-section{padding:18px;margin-bottom:16px}
.payout-sales-list{display:grid;border-top:1px solid var(--line)}
.payout-sale-row{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);display:grid;grid-template-columns:minmax(0,1.7fr) 150px 150px;gap:14px;align-items:center;padding:13px 4px;text-align:left;cursor:pointer}
.payout-sale-row:hover{background:var(--panel-2)}
.payout-sale-row>div{display:grid;gap:4px}
.payout-sale-row>div strong{font-size:11px}
.payout-sale-row>div span,.payout-sale-row>span{font-size:9px;color:var(--muted)}
.payout-sale-row>strong{text-align:right}

/* Offene Rechnungen */
.receivable-list-card{padding:18px}
.receivable-list{display:grid;border-top:1px solid var(--line)}
.receivable-row{display:grid;grid-template-columns:minmax(0,1.5fr) 105px 130px auto;gap:12px;align-items:center;padding:12px 2px;border-bottom:1px solid var(--line)}
.receivable-main{border:0;background:transparent;color:var(--text);display:grid;gap:4px;text-align:left;cursor:pointer;padding:0}
.receivable-main strong{font-size:11px}
.receivable-main span{font-size:9px;color:var(--muted)}
.receivable-row>strong{text-align:right}

/* Papierkorb & Verlauf */
.trash-card,.audit-card{padding:18px;margin-bottom:16px}
.trash-list,.audit-list{display:grid;border-top:1px solid var(--line)}
.trash-row{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;gap:14px;align-items:center;padding:13px 2px;border-bottom:1px solid var(--line)}
.trash-row>div:first-child{display:grid;gap:4px}
.trash-row strong{font-size:11px}
.trash-row span,.trash-row small{font-size:9px;color:var(--muted)}
.trash-row>div:last-child{display:flex;gap:7px;justify-content:flex-end}
.audit-row{display:grid;grid-template-columns:130px minmax(0,1fr);gap:14px;padding:10px 2px;border-bottom:1px solid var(--line)}
.audit-row>span{font-size:9px;color:var(--muted)}
.audit-row>div{display:grid;gap:3px}
.audit-row strong{font-size:10px}
.audit-row small{font-size:9px;color:var(--muted)}

/* Globale Suche */
.search-result-section{padding:17px;margin-bottom:13px}
.search-result-list{display:grid;border-top:1px solid var(--line)}
.search-result-list>button{border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);display:grid;grid-template-columns:minmax(0,1.5fr) 170px 150px;gap:14px;align-items:center;text-align:left;padding:12px 3px;cursor:pointer}
.search-result-list>button:hover{background:var(--panel-2)}
.search-result-list>button>div{display:grid;gap:3px}
.search-result-list strong{font-size:11px}
.search-result-list span,.search-result-list small{font-size:9px;color:var(--muted)}
.search-result-list>button>strong{text-align:right}

/* Monatsabschluss */
.month-close-card,.tax-advisor-card,.backup-settings-card{margin:16px 0}
.month-close-controls,.tax-advisor-controls{display:grid;grid-template-columns:180px 220px auto;gap:10px;align-items:end;margin-top:14px}
.month-close-controls label,.tax-advisor-controls label{display:flex;flex-direction:column;gap:6px;font-size:9px;color:var(--muted);font-weight:700}
.month-close-controls select,.tax-advisor-controls select{min-height:43px}
.closed-month-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}
.closed-month-list button{border:1px solid var(--line);border-radius:11px;background:var(--panel-2);color:var(--text);padding:9px 11px;display:grid;gap:4px;text-align:left;cursor:pointer}
.closed-month-list button strong{font-size:10px}
.closed-month-list button small{font-size:8px;color:var(--muted)}

/* Backup */
.backup-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}

/* Kleine leere Zustände */
.empty-state.compact{min-height:110px;padding:20px}

/* Nav: zusätzlicher Platz bei mehr Menüpunkten */
.sidebar .nav{overflow-y:auto;min-height:0;padding-bottom:8px}

@media(max-width:1000px){
  .dashboard-comparison-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reconciliation-row{grid-template-columns:minmax(0,1fr) 120px}
  .reconciliation-match{grid-column:1/-1;justify-content:flex-start}
  .receivable-row{grid-template-columns:minmax(0,1fr) 100px 120px}
  .receivable-row>.secondary-btn{grid-column:1/-1;width:max-content}
}
@media(max-width:720px){
  .dashboard-comparison-grid,.vinted-payout-stats,.receivable-stats,.reconciliation-stats{grid-template-columns:1fr}
  .payout-sale-row,.search-result-list>button{grid-template-columns:1fr}
  .payout-sale-row>strong,.search-result-list>button>strong{text-align:left}
  .receivable-row{grid-template-columns:1fr}
  .receivable-row>strong{text-align:left}
  .trash-row{grid-template-columns:1fr}
  .trash-row>div:last-child{justify-content:flex-start;flex-wrap:wrap}
  .audit-row{grid-template-columns:1fr}
  .month-close-controls,.tax-advisor-controls{grid-template-columns:1fr}
}


/* Brutto-/Nettogewinn: Dashboard und einzelne Einnahme */
.dashboard-profit-summary{margin:18px 0 20px}
.dashboard-profit-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:10px}
.dashboard-profit-head h3{margin:4px 0 3px;font-size:16px}
.dashboard-profit-head p{margin:0;color:var(--muted);font-size:10px}
.dashboard-profit-count{border:1px solid var(--line);border-radius:10px;background:var(--panel-2);padding:7px 10px;color:var(--muted);font-size:9px;font-weight:750;white-space:nowrap}
.dashboard-profit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dashboard-profit-card{padding:19px 20px;display:grid;gap:8px}
.dashboard-profit-card>span{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.dashboard-profit-card>strong{font-size:26px;letter-spacing:-.045em}
.dashboard-profit-card>small{color:var(--muted);font-size:9px;line-height:1.45}
.dashboard-profit-note{margin:8px 2px 0;color:var(--muted);font-size:8.5px;line-height:1.45}

.bd-metric.profit-highlight{border-color:rgba(11,159,98,.18);background:rgba(11,159,98,.035)}
.bd-sale-profit{margin-top:16px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}
.bd-sale-profit-head h3{margin:4px 0 0;font-size:16px}
.bd-sale-profit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:14px}
.bd-sale-profit-grid>div{padding:13px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2);display:grid;gap:6px}
.bd-sale-profit-grid span{color:var(--muted);font-size:8px;font-weight:750;text-transform:uppercase;letter-spacing:.05em}
.bd-sale-profit-grid strong{font-size:14px}
.bd-sale-profit-grid .profit-result{border-color:rgba(11,159,98,.20);background:rgba(11,159,98,.045)}
.bd-sale-profit>p{margin:10px 2px 0;color:var(--muted);font-size:8.5px;line-height:1.45}
body.dark .bd-metric.profit-highlight,
body.dark .bd-sale-profit-grid .profit-result{border-color:rgba(67,213,138,.20);background:rgba(67,213,138,.045)}
@media(max-width:760px){
  .dashboard-profit-grid{grid-template-columns:1fr}
  .dashboard-profit-head{align-items:flex-start;flex-direction:column}
  .bd-sale-profit-grid{grid-template-columns:1fr}
}


/* =========================================================
   V29 · Globaler Scroll-Fix
   Nichts darf in Seiten, Modals oder Tabellen abgeschnitten werden.
   ========================================================= */

/* Browser-/Safari-Grundlage */
html,
body{
  width:100%;
  max-width:100%;
  min-height:100%;
}
html{
  overflow-y:auto !important;
  overflow-x:hidden !important;
}
body{
  min-height:100vh !important;
  min-height:100dvh !important;
  overflow-x:hidden !important;
}

/* Haupt-App: Inhaltsbereich darf immer vertikal scrollen */
.app-shell,
.app,
.layout,
.shell{
  min-height:100vh;
  min-height:100dvh;
  max-height:100vh;
  max-height:100dvh;
  overflow:hidden;
}

main,
.main,
.main-content,
.content,
#content{
  min-height:0 !important;
  max-height:100vh !important;
  max-height:100dvh !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}

/* Genug Platz am Ende jeder Seite, damit der letzte Bereich nie untergeht */
#content{
  padding-bottom:56px !important;
}

/* Sidebar separat scrollbar */
.sidebar{
  min-height:0 !important;
  max-height:100vh !important;
  max-height:100dvh !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  -webkit-overflow-scrolling:touch;
}
.sidebar .nav{
  overflow-y:auto !important;
  overflow-x:hidden !important;
  min-height:0 !important;
  padding-bottom:24px !important;
}

/* Alle Backdrops bleiben im Viewport, der eigentliche Dialog scrollt */
.modal-backdrop,
.backdrop,
[id$="Backdrop"]{
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  height:100vh !important;
  height:100dvh !important;
  max-height:100vh !important;
  max-height:100dvh !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding:12px !important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}

/* Direkte Modals / Dialoge */
.modal-backdrop > .modal,
.backdrop > .modal,
[id$="Backdrop"] > .modal,
.modal,
.dialog,
.modal-card{
  max-height:calc(100vh - 24px) !important;
  max-height:calc(100dvh - 24px) !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  min-height:0 !important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding-bottom:28px;
}

/* Falls ein Modal einen eigenen Body/Inhaltscontainer besitzt */
.modal-body,
.modal-content,
.dialog-body,
.transaction-detail-content,
#transactionDetailContent,
.invoice-preview,
.receipt-preview{
  min-height:0 !important;
  max-height:none !important;
  overflow:visible;
}

/* Kopf im Modal bleibt sichtbar, Inhalt darunter kann scrollen */
.modal-head,
.modal-header{
  position:sticky;
  top:0;
  z-index:10;
  background:var(--panel);
}

/* Tabellen horizontal scrollbar statt abgeschnitten */
.table-scroll,
.table-wrap,
.table-container{
  width:100%;
  max-width:100%;
  overflow-x:auto !important;
  overflow-y:visible !important;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable;
}

/* Große Listen/Reports dürfen nicht von festen Höhen abgeschnitten werden */
.statement-list,
.sales-ledger-list,
.payout-sales-list,
.receivable-list,
.reconciliation-list,
.search-result-list,
.trash-list,
.audit-list,
.invoice-number-grid,
.closed-month-list{
  max-height:none !important;
  overflow:visible !important;
}

/* Karten / Panels dürfen ihren Inhalt wachsen lassen */
.card,
.panel,
.banking-list,
.sales-ledger,
.payout-section,
.receivable-list-card,
.reconciliation-card,
.trash-card,
.audit-card,
.dashboard-profit-summary{
  min-height:0;
  max-height:none;
}

/* Kleine Screens: Header/Actions dürfen umbrechen statt abgeschnitten werden */
.page-head,
.panel-head,
.toolbar,
.head-actions,
.dashboard-filter-row,
.bulk-selection-controls,
.backup-actions,
.reconciliation-actions{
  flex-wrap:wrap !important;
}

@media(max-width:900px){
  #content{
    padding-bottom:72px !important;
  }

  .modal-backdrop,
  .backdrop,
  [id$="Backdrop"]{
    align-items:flex-start !important;
    padding:8px !important;
  }

  .modal-backdrop > .modal,
  .backdrop > .modal,
  [id$="Backdrop"] > .modal,
  .modal,
  .dialog,
  .modal-card{
    width:100% !important;
    max-width:100% !important;
    max-height:calc(100dvh - 16px) !important;
  }
}

/* Safari-Fallback, falls dvh nicht unterstützt wird */
@supports not (height:100dvh){
  main,
  .main,
  .main-content,
  .content,
  #content,
  .sidebar{
    max-height:100vh !important;
  }

  .modal-backdrop,
  .backdrop,
  [id$="Backdrop"]{
    height:100vh !important;
    max-height:100vh !important;
  }

  .modal-backdrop > .modal,
  .backdrop > .modal,
  [id$="Backdrop"] > .modal,
  .modal,
  .dialog,
  .modal-card{
    max-height:calc(100vh - 24px) !important;
  }
}


/* =========================================================
   V29 · Globaler Layout-/Ausrichtungs-Fix
   Saubere Leerzustände, kein Text-Überlauf, nichts abgeschnitten.
   ========================================================= */

/* Allgemein: Grid-/Flex-Kinder dürfen korrekt schrumpfen */
#content *,
.card *,
.panel *,
.statement-item > *,
.sales-ledger-row > *,
.sales-ledger-head > *,
.reconciliation-row > *,
.receivable-row > *,
.payout-sale-row > *,
.search-result-list > button > *{
  min-width:0;
}

/* Lange Namen, Beschreibungen und Referenzen umbrechen sauber */
.tx-main,
.tx-category,
.sales-ledger-main,
.sales-ledger-ref,
.sales-ledger-tax,
.reconciliation-row,
.receivable-main,
.payout-sale-row,
.search-result-list{
  overflow-wrap:anywhere;
  word-break:normal;
}

/* Einheitlicher Leerzustand für ALLE Listen/Karten */
.empty-state{
  width:100%;
  min-height:132px;
  padding:28px 24px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:7px;
  color:var(--muted);
  background:transparent;
  line-height:1.45;
  overflow:visible;
}

.empty-state strong{
  display:block;
  margin:0;
  color:var(--text);
  font-size:14px;
  font-weight:800;
  line-height:1.3;
  letter-spacing:-.01em;
}

.empty-state span,
.empty-state p{
  display:block;
  margin:0;
  max-width:720px;
  color:var(--muted);
  font-size:11px;
  line-height:1.55;
  white-space:normal;
}

.empty-state.compact{
  min-height:110px;
  padding:22px 20px;
}

/* Verkaufsübersicht: Header und Inhalt strikt getrennt */
.sales-ledger{
  overflow:hidden;
}

.sales-ledger-head{
  position:relative;
  z-index:1;
  min-height:42px;
  background:var(--panel-2);
}

.sales-ledger-list{
  display:block;
  width:100%;
  min-height:0;
}

.sales-ledger-list > .empty-state{
  border-top:0;
  border-radius:0 0 18px 18px;
}

/* Kein Text darf sich über die Spalten legen */
.sales-ledger-head > span,
.sales-ledger-row > div{
  min-width:0;
  overflow:hidden;
}

.sales-ledger-head > span{
  white-space:nowrap;
  text-overflow:ellipsis;
}

.sales-ledger-main strong,
.sales-ledger-main span,
.sales-ledger-main small,
.sales-ledger-ref strong,
.sales-ledger-ref span,
.sales-ledger-tax strong,
.sales-ledger-tax span{
  max-width:100%;
}

.sales-ledger-main strong,
.sales-ledger-main span{
  white-space:normal;
}

.sales-ledger-ref strong,
.sales-ledger-ref span{
  white-space:normal;
  overflow-wrap:anywhere;
}

/* Normale Buchungslisten */
.statement-list{
  width:100%;
  min-width:0;
}

.statement-item{
  width:100%;
  min-width:0;
}

.tx-main strong,
.tx-main span,
.tx-main small,
.tx-category strong,
.tx-category span{
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
}

/* Tabellen: Inhalte bleiben erreichbar, ohne dass Karten abgeschnitten werden */
.table-card{
  min-width:0;
  overflow:hidden;
}

.table-scroll{
  display:block;
  width:100%;
  max-width:100%;
  overflow-x:auto !important;
  overflow-y:visible !important;
  -webkit-overflow-scrolling:touch;
}

.table-scroll table{
  min-width:max-content;
}

/* Überschriften / Aktionen umbrechen sauber */
.page-head,
.page-head > div,
.panel-head,
.toolbar,
.head-actions{
  min-width:0;
}

.page-head{
  gap:16px;
}

.head-actions{
  max-width:100%;
}

/* Karten und Statistiken dürfen nicht überlaufen */
.sales-overview-summary,
.platform-summary-grid,
.dashboard-wallet-grid,
.dashboard-comparison-grid,
.dashboard-profit-grid,
.vinted-payout-stats,
.receivable-stats,
.reconciliation-stats{
  min-width:0;
}

.sales-overview-summary > *,
.platform-summary-grid > *,
.dashboard-wallet-grid > *,
.dashboard-comparison-grid > *,
.dashboard-profit-grid > *,
.vinted-payout-stats > *,
.receivable-stats > *,
.reconciliation-stats > *{
  min-width:0;
}

/* Texte in Kennzahlenkarten sauber umbrechen */
.card strong,
.card span,
.card small,
.card p{
  overflow-wrap:anywhere;
}

/* Buttons dürfen bei langen Beschriftungen wachsen statt abgeschnitten werden */
.primary-btn,
.secondary-btn,
.tiny-btn,
.danger-btn{
  max-width:100%;
  white-space:normal;
  line-height:1.25;
}

/* Desktop kleiner / Tablet: Tabellenlisten bleiben zugänglich */
@media(max-width:1050px){
  .sales-ledger{
    overflow-x:auto !important;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
  }

  .sales-ledger-head,
  .sales-ledger-row{
    min-width:900px;
  }

  /* Der Leerzustand soll NICHT 900px breit erzwungen werden */
  .sales-ledger-list > .empty-state{
    min-width:min(100%,900px);
    width:100%;
  }
}

/* Kleinere Fenster: Listen werden kompakter statt abgeschnitten */
@media(max-width:760px){
  .empty-state{
    min-height:118px;
    padding:22px 18px;
  }

  .empty-state strong{
    font-size:13px;
  }

  .empty-state span,
  .empty-state p{
    font-size:10.5px;
  }

  .page-head,
  .panel-head{
    align-items:flex-start !important;
  }
}

/* Sehr kleine Displays: Buchungslisten in lesbares Raster bringen */
@media(max-width:620px){
  .statement-item{
    grid-template-columns:34px minmax(0,1fr) auto !important;
    gap:10px;
  }

  .statement-item .tx-category,
  .statement-item .tx-date{
    grid-column:2/-1;
    display:block !important;
  }

  .statement-item .tx-amount{
    align-self:start;
  }

  .statement-item .row-actions{
    grid-column:2/-1;
    justify-content:flex-start;
    flex-wrap:wrap;
  }
}


/* =========================================================
   V30 · Bestandsverwaltung
   ========================================================= */

.inventory-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-bottom:16px;
}
.inventory-summary-grid>.card{
  padding:18px;
  display:grid;
  gap:7px;
}
.inventory-summary-grid span,
.dashboard-inventory-summary span{
  color:var(--muted);
  font-size:9px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.inventory-summary-grid strong,
.dashboard-inventory-summary strong{
  font-size:22px;
  letter-spacing:-.035em;
}
.inventory-summary-grid small,
.dashboard-inventory-summary small{
  color:var(--muted);
  font-size:9px;
}

.inventory-card,
.inventory-help-card{
  padding:18px;
  margin-bottom:16px;
}

.inventory-table td strong{
  font-size:11px;
}
.inventory-low{
  color:#b27a18 !important;
}
.inventory-help-card>p{
  margin:14px 0 0;
  color:var(--muted);
  font-size:9px;
  line-height:1.5;
}
.inventory-flow{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
  margin-top:14px;
}
.inventory-flow>div{
  padding:14px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--panel-2);
  display:grid;
  gap:5px;
}
.inventory-flow strong{
  font-size:11px;
}
.inventory-flow span{
  color:var(--muted);
  font-size:9px;
  line-height:1.45;
}

.dashboard-inventory{
  margin:18px 0 20px;
}
.dashboard-inventory-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-bottom:10px;
}
.dashboard-inventory-head h3{
  margin:4px 0 3px;
  font-size:16px;
}
.dashboard-inventory-head p{
  margin:0;
  color:var(--muted);
  font-size:10px;
}
.dashboard-inventory-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.dashboard-inventory-summary>.card{
  padding:17px 18px;
  display:grid;
  gap:7px;
}
.dashboard-stock-strip{
  margin-top:9px;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:7px;
}
.dashboard-stock-strip button{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel);
  color:var(--text);
  padding:10px;
  display:grid;
  gap:5px;
  text-align:left;
  cursor:pointer;
  min-width:0;
}
.dashboard-stock-strip button:hover{
  background:var(--panel-2);
}
.dashboard-stock-strip span{
  color:var(--muted);
  font-size:8.5px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dashboard-stock-strip strong{
  font-size:12px;
}

.inventory-live-preview{
  min-height:68px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:3px;
}
.inventory-live-preview span,
.inventory-live-preview small{
  color:var(--muted);
  font-size:9px;
}
.inventory-live-preview strong{
  font-size:16px;
}
.inventory-inline-tag{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  margin-top:5px;
  padding:4px 7px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--panel-2);
  color:var(--muted);
  font-size:9px;
  font-weight:750;
}
.bd-metric.inventory-metric{
  border-color:rgba(11,159,98,.16);
}

@media(max-width:1050px){
  .inventory-summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .dashboard-stock-strip{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:700px){
  .inventory-summary-grid,
  .dashboard-inventory-summary,
  .inventory-flow{
    grid-template-columns:1fr;
  }
  .dashboard-stock-strip{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .dashboard-inventory-head{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* =========================================================
   V30 · Klickbare Warenauswahl bei Einnahmen
   ========================================================= */

.inventory-picker-field{
  grid-column:span 2;
}

.inventory-picker-input-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
}

.inventory-picker-input-row input{
  min-width:0;
}

.inventory-picker-open{
  min-height:48px;
  white-space:nowrap;
}

.inventory-picker-modal{
  width:min(720px,100%) !important;
}

.inventory-picker-search{
  margin:4px 0 12px;
}

.inventory-picker-search input{
  width:100%;
  min-height:44px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel);
  color:var(--text);
  outline:none;
}

.inventory-picker-list{
  display:grid;
  gap:8px;
  min-height:120px;
  max-height:55vh;
  max-height:55dvh;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding-right:2px;
  -webkit-overflow-scrolling:touch;
}

.inventory-picker-item{
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  padding:14px 15px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--panel);
  color:var(--text);
  text-align:left;
  cursor:pointer;
  transition:.14s ease;
}

.inventory-picker-item:hover{
  background:var(--panel-2);
}

.inventory-picker-item.selected{
  border-color:rgba(11,159,98,.35);
  background:rgba(11,159,98,.055);
}

.inventory-picker-item-main{
  min-width:0;
  display:grid;
  gap:4px;
}

.inventory-picker-item-main strong{
  font-size:12px;
  overflow-wrap:anywhere;
}

.inventory-picker-item-main span{
  color:var(--muted);
  font-size:9px;
}

.inventory-picker-stock{
  min-width:92px;
  display:grid;
  gap:4px;
  text-align:right;
}

.inventory-picker-stock span{
  color:var(--muted);
  font-size:8px;
  font-weight:750;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.inventory-picker-stock strong{
  font-size:13px;
}

.inventory-picker-actions{
  margin-top:14px;
}

body.dark .inventory-picker-item.selected{
  border-color:rgba(67,213,138,.34);
  background:rgba(67,213,138,.06);
}

@media(max-width:680px){
  .inventory-picker-field{
    grid-column:span 1;
  }

  .inventory-picker-input-row{
    grid-template-columns:1fr;
  }

  .inventory-picker-open{
    width:100%;
  }

  .inventory-picker-item{
    grid-template-columns:1fr auto;
    gap:10px;
    padding:12px;
  }
}


/* =========================================================
   V30 · Versandkosten aus Verkauf automatisch als Bank-Ausgabe
   ========================================================= */

.shipping-expense-box{
  grid-column:1/-1;
  margin:3px 0 5px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--panel-2);
}

.shipping-expense-toggle{
  display:flex !important;
  flex-direction:row !important;
  align-items:flex-start;
  gap:10px;
  cursor:pointer;
}

.shipping-expense-toggle>input{
  width:18px;
  height:18px;
  margin:2px 0 0;
  flex:0 0 auto;
}

.shipping-expense-toggle>span{
  display:grid;
  gap:3px;
}

.shipping-expense-toggle strong{
  color:var(--text);
  font-size:11px;
}

.shipping-expense-toggle small{
  color:var(--muted);
  font-size:9px;
  line-height:1.45;
}

.shipping-expense-fields{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:13px;
  padding-top:13px;
  border-top:1px solid var(--line);
}

.shipping-expense-preview{
  grid-column:1/-1;
  min-height:62px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  gap:3px;
}

.shipping-expense-preview span,
.shipping-expense-preview small{
  color:var(--muted);
  font-size:9px;
}

.shipping-expense-preview strong{
  font-size:15px;
}

.shipping-linked-tag{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  margin-top:5px;
  padding:4px 7px;
  border:1px solid rgba(179,74,67,.18);
  border-radius:7px;
  background:rgba(179,74,67,.045);
  color:var(--muted);
  font-size:9px;
  font-weight:750;
}

.bd-metric.shipping-expense-metric{
  border-color:rgba(179,74,67,.18);
  background:rgba(179,74,67,.035);
}

body.dark .shipping-linked-tag,
body.dark .bd-metric.shipping-expense-metric{
  border-color:rgba(220,110,100,.20);
  background:rgba(220,110,100,.045);
}

@media(max-width:720px){
  .shipping-expense-fields{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   V31 · Manuelle Bestandskorrektur
   ========================================================= */

.inventory-adjust-modal{
  width:min(660px,100%) !important;
}

.inventory-adjust-preview{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--panel-2);
}

.inventory-adjust-preview>div{
  min-width:0;
  display:grid;
  gap:4px;
}

.inventory-adjust-preview span{
  color:var(--muted);
  font-size:8px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.inventory-adjust-preview strong{
  font-size:14px;
}

.inventory-row-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex-wrap:wrap;
  min-width:210px;
}

.inventory-row-actions .tiny-btn{
  white-space:nowrap;
}

.inventory-row-actions .positive-action{
  color:#0b9f62;
  border-color:rgba(11,159,98,.20);
  background:rgba(11,159,98,.055);
}

body.dark .inventory-row-actions .positive-action{
  color:#43d58a;
  border-color:rgba(67,213,138,.22);
  background:rgba(67,213,138,.055);
}

.inventory-table{
  min-width:980px;
}

@media(max-width:700px){
  .inventory-adjust-preview{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   V31 · Bestandsartikel komplett ausblenden/löschen
   ========================================================= */
.inventory-row-actions .inventory-delete-btn{
  border-style:dashed;
}

.inventory-row-actions{
  min-width:300px;
}


/* =========================================================
   V31 · Einkaufskosten in der Bestandsliste
   ========================================================= */
.inventory-summary-grid{
  grid-template-columns:repeat(5,minmax(0,1fr));
}

.inventory-table{
  min-width:1240px;
}

.inventory-table td{
  vertical-align:middle;
}

.inventory-cost-hint{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:8px;
  line-height:1.3;
  white-space:nowrap;
}

@media(max-width:1180px){
  .inventory-summary-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:760px){
  .inventory-summary-grid{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:480px){
  .inventory-summary-grid{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   V31 · Versandauswahl kompakt
   ========================================================= */

/* Die Versandoption ist nur noch eine kleine, saubere Auswahlzeile. */
.sale-cost-grid > .shipping-expense-box{
  grid-column:1/-1 !important;
  width:100% !important;
  min-height:0 !important;
  margin:2px 0 4px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  overflow:visible !important;
}

.sale-cost-grid > .shipping-expense-box > .shipping-expense-toggle{
  display:inline-flex !important;
  width:auto !important;
  max-width:100% !important;
  min-height:36px !important;
  padding:7px 10px !important;
  margin:0 !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;
  border:1px solid var(--line) !important;
  border-radius:9px !important;
  background:var(--panel) !important;
  cursor:pointer;
  box-sizing:border-box;
}

.sale-cost-grid > .shipping-expense-box > .shipping-expense-toggle:hover{
  background:var(--panel-2) !important;
}

.sale-cost-grid > .shipping-expense-box > .shipping-expense-toggle > input[type="checkbox"]{
  appearance:auto !important;
  -webkit-appearance:checkbox !important;
  width:15px !important;
  height:15px !important;
  min-width:15px !important;
  min-height:15px !important;
  max-width:15px !important;
  max-height:15px !important;
  flex:0 0 15px !important;
  margin:0 !important;
  padding:0 !important;
  border-radius:3px !important;
}

.sale-cost-grid > .shipping-expense-box > .shipping-expense-toggle > span{
  min-width:0 !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:7px !important;
}

.sale-cost-grid > .shipping-expense-box > .shipping-expense-toggle strong{
  flex:0 0 auto;
  margin:0 !important;
  font-size:10.5px !important;
  line-height:1.25 !important;
  white-space:nowrap !important;
}

.sale-cost-grid > .shipping-expense-box > .shipping-expense-toggle small{
  min-width:0 !important;
  margin:0 !important;
  color:var(--muted) !important;
  font-size:8.5px !important;
  line-height:1.3 !important;
  white-space:normal !important;
  overflow-wrap:anywhere !important;
}

/* Erst nach Aktivierung erscheint darunter ein normaler, kompakter Bereich. */
.sale-cost-grid > .shipping-expense-box > .shipping-expense-fields{
  width:100% !important;
  margin:8px 0 0 !important;
  padding:12px !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:9px !important;
  border:1px solid var(--line) !important;
  border-radius:10px !important;
  background:var(--panel-2) !important;
  box-sizing:border-box;
  overflow:visible !important;
}

.sale-cost-grid > .shipping-expense-box .shipping-expense-preview{
  min-height:48px !important;
  padding:10px 12px !important;
  margin:0 !important;
}

/* Kein seitliches Herauslaufen mehr. */
.sale-cost-grid > .shipping-expense-box,
.sale-cost-grid > .shipping-expense-box *{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}

@media(max-width:820px){
  .sale-cost-grid > .shipping-expense-box > .shipping-expense-toggle{
    width:100% !important;
  }

  .sale-cost-grid > .shipping-expense-box > .shipping-expense-toggle > span{
    flex-wrap:wrap !important;
    gap:3px 7px !important;
  }

  .sale-cost-grid > .shipping-expense-box > .shipping-expense-fields{
    grid-template-columns:1fr !important;
  }
}


/* =========================================================
   V32 · Kategorie-Reports für Ausgaben
   ========================================================= */
.expense-category-report-builder{
  margin-top:16px;
}
.expense-category-report-builder .panel-head p{
  max-width:720px;
}
.expense-category-report-controls{
  grid-template-columns:minmax(170px,1.3fr) minmax(150px,.8fr) minmax(120px,.7fr) minmax(150px,.8fr) auto;
}
@media(max-width:1080px){
  .expense-category-report-controls{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .expense-category-report-controls .platform-report-download{
    grid-column:1/-1;
    width:100%;
  }
}
@media(max-width:680px){
  .expense-category-report-controls{
    grid-template-columns:1fr;
  }
  .expense-category-report-controls .platform-report-download{
    grid-column:auto;
  }
}


/* =========================================================
   V33 · Hinweis bei direktem file://-Start
   ========================================================= */
.local-file-persistence-warning{
  position:fixed;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  z-index:99999;
  width:min(760px,calc(100vw - 28px));
  padding:12px 14px;
  border:1px solid rgba(181,116,0,.24);
  border-radius:11px;
  background:rgba(255,249,232,.97);
  box-shadow:0 12px 36px rgba(0,0,0,.12);
  color:#5d4300;
  backdrop-filter:blur(12px);
}
.local-file-persistence-warning div{display:grid;gap:3px}
.local-file-persistence-warning strong{font-size:11px}
.local-file-persistence-warning span{font-size:9.5px;line-height:1.45}
body.dark .local-file-persistence-warning{
  background:rgba(56,44,17,.96);
  color:#ffe5a3;
  border-color:rgba(255,213,102,.20);
}


/* =========================================================
   V33 · Rechnungsnummer an automatischer Versand-Ausgabe
   ========================================================= */
.bd-metric.shipping-invoice-ref-metric strong{
  letter-spacing:.015em;
}

.bd-metric.shipping-invoice-ref-metric small{
  max-width:240px;
}



/* V42 · Dashboard beim Öffnen sofort sichtbar */
#content{min-height:1px;}


/* V43 · HTML-Fallback statt weißer Hauptfläche */
.dashboard-start-fallback{
  min-height:260px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:28px;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--panel);
}
.dashboard-start-fallback h1{
  margin:7px 0 8px;
  font-size:28px;
  letter-spacing:-.035em;
}
.dashboard-start-fallback p{
  margin:0;
  color:var(--muted);
  font-size:13px;
}


/* =========================================================
   V44 · Versand-Ausgabe in der Buchungsliste sauber anordnen
   ========================================================= */
.tx-main-meta-row{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  margin-top:5px;
}

.tx-main-meta-row .inventory-inline-tag,
.tx-main-meta-row .platform-badge{
  margin-top:0;
}

.tx-main .shipping-income-tag{
  display:flex;
  width:max-content;
  max-width:100%;
  margin-top:6px;
  margin-bottom:1px;
  padding:4px 8px;
  clear:both;
  line-height:1.25;
}

@media(max-width:700px){
  .tx-main-meta-row{
    gap:5px;
  }
  .tx-main .shipping-income-tag{
    margin-top:5px;
  }
}


/* =========================================================
   V46 · Rechnungsnummern nur in der normalen App-Oberfläche
   Bericht-/PDF-Layout bleibt exakt wie v44.
   ========================================================= */
#content .reference-badge,
#content .invoice-reference-strong,
.transaction-detail-modal .reference-badge,
.modal .reference-badge{
  color:#111111 !important;
  font-weight:850 !important;
  background:#ffffff !important;
  border-color:rgba(17,17,17,.16) !important;
}
#content .invoice-number-chip,
#content .invoice-no,
#content .invoice-number{
  color:#111111 !important;
  font-weight:850 !important;
}
body.dark #content .reference-badge,
body.dark #content .invoice-reference-strong,
body.dark .transaction-detail-modal .reference-badge,
body.dark .modal .reference-badge,
body.dark #content .invoice-number-chip{
  color:#111111 !important;
  background:#f8f8f6 !important;
  border-color:rgba(17,17,17,.18) !important;
}


/* =========================================================
   V48 · Kassenbuch – bewusst 1:1 im Stil der Vinted-Auszahlungen
   ========================================================= */
.cash-book-stats .card strong{
  letter-spacing:-.03em;
}

.cash-book-section .payout-sale-row > div > strong{
  color:var(--text);
  font-weight:850;
}


/* =========================================================
   V50 · Bestand: verkaufte Stückzahl nach Zeitraum
   ========================================================= */
.inventory-sales-overview{
  margin-bottom:16px;
  padding:20px;
}

.inventory-sales-overview-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:18px;
  margin-bottom:16px;
}

.inventory-sales-overview-head h3{
  margin:5px 0 4px;
  font-size:16px;
}

.inventory-sales-overview-head p{
  margin:0;
  max-width:680px;
  color:var(--muted);
  font-size:10px;
  line-height:1.5;
}

.inventory-sales-filter{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
}

.inventory-sales-filter-buttons{
  display:flex;
  gap:3px;
  padding:3px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--panel-2);
}

.inventory-sales-filter-buttons button{
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--muted);
  padding:7px 10px;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
}

.inventory-sales-filter-buttons button.active{
  background:var(--text);
  color:var(--panel);
}

.inventory-sales-custom{
  display:flex;
  align-items:center;
  gap:7px;
}

.inventory-sales-custom span{
  color:var(--muted);
  font-size:9px;
}

.inventory-sales-custom input{
  min-height:36px;
  padding:6px 9px;
  font-size:10px;
}

.inventory-sales-kpis{
  display:grid;
  grid-template-columns:1.1fr 1fr 1fr;
  gap:9px;
}

.inventory-sales-kpis>div{
  min-width:0;
  padding:14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--panel-2);
  display:grid;
  gap:5px;
}

.inventory-sales-kpis span{
  color:var(--muted);
  font-size:8px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.055em;
}

.inventory-sales-kpis strong{
  font-size:18px;
  letter-spacing:-.025em;
}

.inventory-sales-kpis small{
  color:var(--muted);
  font-size:9px;
}

.inventory-period-sales-hint{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:8px;
  white-space:nowrap;
}

@media(max-width:900px){
  .inventory-sales-overview-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .inventory-sales-filter{
    align-items:flex-start;
    width:100%;
  }
  .inventory-sales-filter-buttons{
    max-width:100%;
    overflow-x:auto;
  }
}

@media(max-width:650px){
  .inventory-sales-kpis{
    grid-template-columns:1fr;
  }
  .inventory-sales-custom{
    flex-wrap:wrap;
  }
}


/* V51 · Bestandsbericht PDF */
.inventory-sales-actions{
  display:flex;
  align-items:flex-end;
  gap:9px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.inventory-pdf-btn{
  white-space:nowrap;
  min-height:36px;
}

@media(max-width:900px){
  .inventory-sales-actions{
    width:100%;
    justify-content:flex-start;
  }
}


/* =========================================================
   V54 · Umbuchung nur bei vorhandenem Guthaben
   ========================================================= */
.transfer-balance-guard{
  margin-top:10px;
}

.transfer-funds-state{
  border:1px solid var(--line);
  border-radius:11px;
  padding:11px 12px;
  display:grid;
  gap:5px;
}

.transfer-funds-state>div{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}

.transfer-funds-state span{
  color:var(--muted);
  font-size:9px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.transfer-funds-state strong{
  font-size:14px;
}

.transfer-funds-state p{
  margin:0;
  color:var(--muted);
  font-size:9px;
  line-height:1.45;
}

.transfer-funds-state.allowed{
  border-color:rgba(11,159,98,.20);
  background:rgba(11,159,98,.045);
}

.transfer-funds-state.allowed strong{
  color:#0b9f62;
}

.transfer-funds-state.blocked{
  border-color:rgba(179,74,67,.22);
  background:rgba(179,74,67,.05);
}

.transfer-funds-state.blocked strong,
.transfer-funds-state.blocked p b{
  color:#b34a43;
}

#saveTransactionBtn:disabled{
  opacity:.42;
  cursor:not-allowed;
}


/* V57 · Professionellere Sidebar-Icons */
.nav-item .nav-svg-icon{
  width:18px;
  min-width:18px;
  height:18px;
  display:grid;
  place-items:center;
  color:currentColor;
}
.nav-item .nav-svg-icon svg{
  width:17px;
  height:17px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}


/* V58 · zentraler Serverspeicher */
.server-storage-note.connected{
  border-color:rgba(11,159,98,.24);
}
.server-storage-note.offline,
.server-storage-note.conflict{
  border-color:rgba(179,74,67,.30);
}
.server-storage-note.offline strong,
.server-storage-note.conflict strong{
  color:#b34a43;
}


/* V60 · sichtbarer zentraler Serverstatus */
.kt-server-badge{
  display:flex;
  align-items:center;
  gap:7px;
  min-height:34px;
  padding:0 10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel);
  color:var(--muted);
  font-size:9px;
  font-weight:700;
  white-space:nowrap;
}
.kt-server-badge span{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#9ca3af;
  flex:0 0 auto;
}
.kt-server-badge.connected span{background:#0b9f62;}
.kt-server-badge.saving span{background:#c98600;}
.kt-server-badge.offline span,
.kt-server-badge.conflict span{background:#b34a43;}
.kt-server-badge.offline,
.kt-server-badge.conflict{color:#b34a43;}
@media(max-width:800px){
  .kt-server-badge b{display:none;}
  .kt-server-badge{padding:0 9px;}
}


/* V62 · Server zuerst laden, dann App rendern */
.server-loading-screen{
  min-height:420px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:9px;
  color:var(--text);
}
.server-loading-screen strong{
  font-size:16px;
}
.server-loading-screen span{
  color:var(--muted);
  font-size:11px;
}
.server-loading-spinner{
  width:28px;
  height:28px;
  border-radius:50%;
  border:2px solid var(--line);
  border-top-color:var(--text);
  animation:ktServerSpin .8s linear infinite;
  margin-bottom:4px;
}
@keyframes ktServerSpin{
  to{transform:rotate(360deg)}
}


/* =========================================================
   V66 · Login-Gate – bewusst getrennt von der stabilen v64-App
   ========================================================= */
.kt-auth-gate{
  position:fixed;
  inset:0;
  z-index:100000;
  display:grid;
  place-items:center;
  padding:24px;
  background:var(--bg);
}
.kt-auth-gate.hidden{display:none!important;}
.kt-auth-card{
  width:min(430px,100%);
  padding:28px;
  border:1px solid var(--line);
  border-radius:22px;
  background:var(--panel);
  box-shadow:0 28px 90px rgba(0,0,0,.14);
}
.kt-auth-brand{
  display:flex;
  align-items:center;
  gap:12px;
  padding-bottom:24px;
  margin-bottom:25px;
  border-bottom:1px solid var(--line);
}
.kt-auth-brand strong{display:block;font-size:14px;}
.kt-auth-brand span{display:block;margin-top:2px;color:var(--muted);font-size:10px;}
.kt-auth-panel.hidden{display:none!important;}
.kt-auth-panel h1{margin:8px 0;font-size:28px;letter-spacing:-.04em;}
.kt-auth-panel>p{margin:0 0 22px;color:var(--muted);font-size:11px;line-height:1.55;}
.kt-auth-form{display:grid;gap:13px;}
.kt-auth-form label{display:grid;gap:6px;color:var(--muted);font-size:10px;font-weight:750;}
.kt-auth-form input{
  width:100%;
  min-height:43px;
  padding:9px 11px;
  border:1px solid var(--line);
  border-radius:10px;
  outline:none;
  background:var(--panel-2);
  color:var(--text);
  font:inherit;
}
.kt-auth-form input:focus{border-color:var(--text);}
.kt-auth-submit{width:100%;min-height:44px;margin-top:4px;}
.kt-auth-error{
  padding:10px 11px;
  border:1px solid rgba(179,74,67,.25);
  border-radius:10px;
  background:rgba(179,74,67,.06);
  color:#b34a43;
  font-size:10px;
}
.kt-auth-error.hidden{display:none!important;}
.kt-account-btn{font-size:13px;}


/* =========================================================
   V67 · Benutzerkonto unten links
   ========================================================= */
.sidebar-footer{position:relative;}
.company-account-card{
  width:100%;
  appearance:none;
  text-align:left;
  cursor:pointer;
  color:var(--text);
  font:inherit;
  position:relative;
  transition:background .15s ease,border-color .15s ease;
}
.company-account-card:hover,
.company-account-card[aria-expanded="true"]{
  background:var(--panel);
  border-color:color-mix(in srgb,var(--text) 18%,var(--line));
}
.company-account-copy{min-width:0;flex:1;}
.company-account-copy strong,
.company-account-copy span{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.company-account-chevron{
  width:auto!important;
  margin-left:auto!important;
  margin-top:0!important;
  color:var(--muted);
  font-size:12px!important;
}
.avatar.small{width:30px;height:30px;font-size:9px;}

.sidebar-account-menu{
  position:absolute;
  left:0;
  right:0;
  bottom:68px;
  z-index:90;
  padding:7px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--panel);
  box-shadow:0 18px 45px rgba(0,0,0,.12);
}
.sidebar-account-menu.hidden{display:none!important;}
.sidebar-account-head{
  display:flex;
  align-items:center;
  gap:9px;
  padding:9px 9px 11px;
  margin-bottom:4px;
  border-bottom:1px solid var(--line);
}
.sidebar-account-head>div:last-child{min-width:0;}
.sidebar-account-head strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11px;
}
.sidebar-account-head span{
  display:block;
  margin-top:2px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--muted);
  font-size:9px;
}
.sidebar-account-menu>button{
  width:100%;
  display:grid;
  grid-template-columns:22px 1fr;
  align-items:center;
  gap:8px;
  padding:9px;
  border:0;
  border-radius:9px;
  background:transparent;
  color:var(--text);
  text-align:left;
  cursor:pointer;
}
.sidebar-account-menu>button:hover{background:var(--panel-2);}
.sidebar-account-menu>button>span{
  width:22px;
  color:var(--muted);
  text-align:center;
  font-size:13px;
}
.sidebar-account-menu button strong{display:block;font-size:10px;}
.sidebar-account-menu button small{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:8px;
}
.sidebar-account-menu .logout-action{
  margin-top:3px;
  border-top:1px solid var(--line);
  border-radius:0 0 9px 9px;
  color:#b34a43;
}

.kt-profile-modal{max-width:640px;}
.kt-profile-identity{
  display:flex;
  align-items:center;
  gap:13px;
  padding:14px;
  margin-bottom:14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--panel-2);
}
.profile-avatar{width:45px;height:45px;font-size:12px;}
.kt-profile-identity strong{display:block;font-size:12px;}
.kt-profile-identity span{display:block;margin-top:2px;color:var(--muted);font-size:9px;}
.kt-profile-identity small{
  display:inline-block;
  margin-top:5px;
  padding:3px 6px;
  border-radius:999px;
  background:var(--panel);
  color:var(--muted);
  font-size:7px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.kt-profile-tabs{
  display:flex;
  gap:4px;
  padding:3px;
  margin-bottom:17px;
  border-radius:10px;
  background:var(--panel-2);
}
.kt-profile-tabs button{
  flex:1;
  padding:8px 10px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--muted);
  font-size:10px;
  font-weight:750;
  cursor:pointer;
}
.kt-profile-tabs button.active{
  background:var(--panel);
  color:var(--text);
  box-shadow:0 1px 3px rgba(0,0,0,.05);
}
.kt-profile-tabs button.hidden{display:none!important;}
.kt-profile-section.hidden{display:none!important;}
.kt-profile-section h3{margin:0 0 12px;font-size:12px;}
.kt-profile-divider{
  height:1px;
  margin:18px 0;
  background:var(--line);
}
.kt-users-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.kt-users-heading h3{margin:0 0 4px;}
.kt-users-heading p{margin:0;color:var(--muted);font-size:9px;}
.kt-users-list{
  display:grid;
  gap:2px;
  max-height:240px;
  overflow:auto;
}
.kt-user-row{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto;
  align-items:center;
  gap:9px;
  padding:9px 0;
  border-bottom:1px solid var(--line);
}
.kt-user-copy{min-width:0;}
.kt-user-copy strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10px;
}
.kt-user-copy span{
  display:block;
  margin-top:2px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--muted);
  font-size:8px;
}
.kt-users-loading{
  padding:15px 0;
  color:var(--muted);
  font-size:9px;
}
.kt-user-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.kt-profile-section .kt-auth-form select{
  width:100%;
  min-height:43px;
  padding:9px 11px;
  border:1px solid var(--line);
  border-radius:10px;
  outline:none;
  background:var(--panel-2);
  color:var(--text);
  font:inherit;
}

@media(max-width:650px){
  .kt-user-grid{grid-template-columns:1fr;}
  .kt-user-row{grid-template-columns:auto 1fr auto;}
  .kt-user-row .tiny-btn{grid-column:2/4;justify-self:start;}
}


/* =========================================================
   V69 · STABILITÄT & LESBARKEIT
   Keine PDF-/Report-Styles werden hier verändert.
   ========================================================= */

/* Höherer Kontrast für sekundäre Texte. */
:root{
  --muted:#5f6670;
  --line:#dde1e6;
}
body.dark{
  --muted:#b2b6bf;
  --line:#34373e;
}

/* Lesbarkeit der zentralen Oberfläche. */
html,body{
  font-size:14px;
  line-height:1.42;
}
.page-head h1{
  line-height:1.08;
}
.page-head p,
.panel-head p,
.sales-overview-total p,
.inventory-sales-overview-head p,
.kt-users-heading p{
  font-size:11.5px !important;
  line-height:1.55 !important;
  color:var(--muted) !important;
}
.eyebrow,
.nav-section-label{
  font-size:9.5px !important;
  line-height:1.3;
}
.nav-section-label{
  opacity:.9 !important;
}
.nav-item{
  font-size:13px !important;
  line-height:1.25;
  min-height:38px;
}
.form-grid label,
.kt-auth-form label,
.month-close-controls label,
.tax-advisor-controls label{
  font-size:11.5px !important;
  line-height:1.35;
}
.form-grid input,
.form-grid select,
.form-grid textarea,
.kt-auth-form input,
.kt-auth-form select{
  font-size:13px !important;
  line-height:1.35;
}
input::placeholder,
textarea::placeholder{
  color:color-mix(in srgb,var(--muted) 86%,transparent);
  opacity:1;
}
.field-hint,
.invoice-item-row .field-hint,
.inventory-cost-hint,
.inventory-period-sales-hint,
.shipping-expense-toggle small,
.shipping-expense-preview small{
  font-size:10px !important;
  line-height:1.45 !important;
  color:var(--muted) !important;
}
.notice,
.warning-notice,
.server-storage-note,
.detail-drawer{
  line-height:1.5;
}

/* Tabellen / Listen */
th,
.sales-ledger-head,
.formal-ledger-head{
  font-size:9.5px !important;
  letter-spacing:.07em !important;
  color:var(--muted) !important;
}
td{
  font-size:12px !important;
  line-height:1.45;
}
.status,
.platform-badge,
.reference-badge,
.transfer-badge,
.inventory-inline-tag,
.shipping-linked-tag,
.vinted-user-tag{
  font-size:9.5px !important;
  line-height:1.2 !important;
}
.tx-time,
.formal-booking small,
.search-result-list small,
.trash-row small,
.audit-row small{
  font-size:10px !important;
  line-height:1.4;
}
.tiny-btn{
  min-height:30px;
  padding:6px 9px;
  font-size:10.5px !important;
}

/* Dashboard: kleine Beschriftungen nicht mehr mikroskopisch. */
.metric-label,
.dashboard-profit-card>span,
.dashboard-profit-card>small,
.dashboard-wallet-card-top>span:last-child,
.dashboard-wallet-card>small,
.dashboard-comparison-grid span,
.dashboard-comparison-grid small,
.dashboard-inventory-summary span,
.dashboard-inventory-summary small,
.dashboard-stock-strip span,
.inventory-sales-kpis span,
.inventory-sales-kpis small{
  font-size:9.5px !important;
  line-height:1.4;
}

/* Serverstatus besser lesbar, aber weiterhin kompakt. */
.kt-server-badge{
  font-size:10px !important;
  min-height:36px;
  padding:0 11px;
}

/* ---------------------------------------------------------
   Unteres Benutzerkonto – komplett überarbeitet
   --------------------------------------------------------- */
.company-account-card{
  min-height:66px;
  padding:10px 11px !important;
  gap:10px !important;
  border-radius:13px !important;
  background:var(--panel-2) !important;
}
.company-account-card:hover,
.company-account-card[aria-expanded="true"]{
  background:var(--panel) !important;
  border-color:color-mix(in srgb,var(--text) 22%,var(--line)) !important;
  box-shadow:0 8px 24px rgba(0,0,0,.055);
}
.account-avatar-main{
  width:38px !important;
  height:38px !important;
  font-size:11px !important;
}
.company-account-copy{
  display:grid;
  gap:1px;
  min-width:0;
}
.company-account-kicker{
  margin:0 !important;
  color:var(--muted) !important;
  font-size:7.5px !important;
  font-weight:850;
  letter-spacing:.1em;
}
.company-account-copy strong{
  margin:0;
  color:var(--text);
  font-size:11.5px !important;
  line-height:1.25;
}
.company-account-copy small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--muted);
  font-size:9px;
  line-height:1.25;
}
.company-account-chevron{
  display:grid;
  place-items:center;
  width:24px !important;
  height:24px;
  flex:0 0 24px;
  border-radius:7px;
  background:var(--panel);
}
.company-account-chevron svg{
  width:14px;
  height:14px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .16s ease;
}
.company-account-card[aria-expanded="true"] .company-account-chevron svg{
  transform:rotate(180deg);
}

/* Account dropdown */
.sidebar-account-menu{
  left:0;
  right:0;
  bottom:74px;
  padding:8px;
  border-radius:15px;
  box-shadow:0 18px 50px rgba(0,0,0,.16);
}
body.dark .sidebar-account-menu{
  box-shadow:0 20px 55px rgba(0,0,0,.42);
}
.sidebar-account-menu-label{
  padding:6px 9px 7px;
  color:var(--muted);
  font-size:8px;
  font-weight:850;
  letter-spacing:.11em;
}
.sidebar-account-head{
  gap:10px;
  padding:10px;
  margin-bottom:5px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--panel-2);
}
.sidebar-account-head-copy{
  min-width:0;
}
.sidebar-account-head strong{
  font-size:11.5px !important;
}
.sidebar-account-head span{
  font-size:9.5px !important;
}
.sidebar-account-head small{
  display:inline-block;
  margin-top:4px;
  padding:2px 5px;
  border-radius:999px;
  background:var(--panel);
  color:var(--muted);
  font-size:7.5px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.sidebar-account-menu>button{
  min-height:50px;
  grid-template-columns:32px 1fr;
  gap:9px;
  padding:8px 9px;
  border-radius:10px;
}
.account-menu-icon{
  width:30px !important;
  height:30px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--panel-2);
  color:var(--text) !important;
}
.account-menu-icon svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.sidebar-account-menu button strong{
  font-size:11px !important;
  line-height:1.25;
}
.sidebar-account-menu button small{
  margin-top:3px;
  font-size:9px !important;
  line-height:1.3;
}
.sidebar-account-menu .logout-action{
  margin-top:5px;
  border-top:1px solid var(--line);
}
.sidebar-account-menu .logout-action .account-menu-icon{
  color:#b34a43 !important;
}

/* Profilfenster */
.kt-profile-modal{
  width:min(680px,100%) !important;
}
.kt-profile-identity{
  padding:16px;
  border-radius:15px;
}
.profile-avatar{
  width:48px !important;
  height:48px !important;
  font-size:12px !important;
}
.kt-profile-identity strong{
  font-size:13px !important;
}
.kt-profile-identity span{
  font-size:10px !important;
}
.kt-profile-identity small{
  font-size:8px !important;
}
.kt-profile-tabs{
  margin-bottom:20px;
}
.kt-profile-tabs button{
  min-height:38px;
  font-size:11px !important;
}
.kt-profile-section h3{
  font-size:13px !important;
}
.kt-readonly-hint{
  font-size:9.5px !important;
  color:var(--muted);
}
.kt-users-list{
  max-height:280px;
}
.kt-user-row{
  min-height:52px;
  gap:10px;
  padding:10px 2px;
}
.kt-user-copy strong{
  font-size:11px !important;
}
.kt-user-copy span{
  font-size:9.5px !important;
  line-height:1.35;
}
.kt-users-loading{
  font-size:10px !important;
}

/* Login ebenfalls besser lesbar */
.kt-auth-brand strong{font-size:15px !important;}
.kt-auth-brand span{font-size:11px !important;}
.kt-auth-panel>p{font-size:12px !important;}
.kt-auth-error{font-size:11px !important;line-height:1.45;}

/* ---------------------------------------------------------
   BUGFIX: alte, fehlerhaft gruppierte Modal-Selektoren haben
   teilweise den Backdrop selbst auf overflow:visible gesetzt.
   Dieser finale Block setzt ALLE Dialoge eindeutig korrekt.
   --------------------------------------------------------- */
#invoiceModalBackdrop,
#invoiceUploadBackdrop,
#modalBackdrop,
#partnerModalBackdrop,
#receiptModalBackdrop,
#transactionDetailBackdrop,
#ktProfileBackdrop{
  position:fixed !important;
  inset:0 !important;
  display:flex !important;
  align-items:flex-start !important;
  justify-content:center !important;
  overflow:hidden !important;
  padding:12px !important;
  box-sizing:border-box !important;
}
#invoiceModalBackdrop.hidden,
#invoiceUploadBackdrop.hidden,
#modalBackdrop.hidden,
#partnerModalBackdrop.hidden,
#receiptModalBackdrop.hidden,
#transactionDetailBackdrop.hidden,
#ktProfileBackdrop.hidden{
  display:none !important;
}

#invoiceModalBackdrop > .modal,
#invoiceUploadBackdrop > .modal,
#modalBackdrop > .modal,
#partnerModalBackdrop > .modal,
#receiptModalBackdrop > .modal,
#transactionDetailBackdrop > .modal,
#ktProfileBackdrop > .modal{
  flex:0 0 auto !important;
  width:min(960px,100%) !important;
  max-width:100% !important;
  max-height:calc(100vh - 24px) !important;
  max-height:calc(100dvh - 24px) !important;
  min-height:0 !important;
  margin:0 auto !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  overscroll-behavior:contain !important;
  -webkit-overflow-scrolling:touch !important;
  scrollbar-gutter:stable;
}

#invoiceModalBackdrop > .modal > .modal-head,
#invoiceUploadBackdrop > .modal > .modal-head,
#modalBackdrop > .modal > .modal-head,
#partnerModalBackdrop > .modal > .modal-head,
#receiptModalBackdrop > .modal > .modal-head,
#transactionDetailBackdrop > .modal > .modal-head,
#ktProfileBackdrop > .modal > .modal-head{
  position:sticky !important;
  top:-1px !important;
  z-index:10 !important;
  margin:-1px -1px 14px !important;
  padding:1px 1px 12px !important;
  border-bottom:1px solid var(--line);
  background:var(--panel) !important;
}

#invoiceModalBackdrop > .modal form,
#invoiceUploadBackdrop > .modal form,
#modalBackdrop > .modal form,
#partnerModalBackdrop > .modal form,
#receiptModalBackdrop > .modal form,
#transactionDetailBackdrop > .modal form,
#ktProfileBackdrop > .modal form{
  max-height:none !important;
  overflow:visible !important;
}

@media(max-width:760px){
  html,body{font-size:14px;}
  .content{padding:18px 14px !important;}
  .sidebar-account-menu{bottom:72px;}
  #invoiceModalBackdrop,
  #invoiceUploadBackdrop,
  #modalBackdrop,
  #partnerModalBackdrop,
  #receiptModalBackdrop,
  #transactionDetailBackdrop,
  #ktProfileBackdrop{
    padding:6px !important;
  }
  #invoiceModalBackdrop > .modal,
  #invoiceUploadBackdrop > .modal,
  #modalBackdrop > .modal,
  #partnerModalBackdrop > .modal,
  #receiptModalBackdrop > .modal,
  #transactionDetailBackdrop > .modal,
  #ktProfileBackdrop > .modal{
    max-height:calc(100vh - 12px) !important;
    max-height:calc(100dvh - 12px) !important;
  }
}

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


/* =========================================================
   V70 · MOBILE DEBUG / HANDY-STABILITÄT
   ========================================================= */
html{min-height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-height:100dvh;overflow-x:hidden}
button,input,select,textarea{touch-action:manipulation}
button,.nav-item,.company-account-card,.sidebar-account-menu>button,.period-pills button,.tiny-btn{-webkit-tap-highlight-color:transparent}
input,select,textarea{max-width:100%}
.table-wrap,.ledger-table,.sales-ledger,.formal-ledger,.inventory-table-wrap,.invoice-number-table,.report-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.sidebar-scrim,.sidebar-mobile-close{display:none}

@media(max-width:900px){
  body.mobile-nav-open{overflow:hidden!important}
  .app-shell,.app{display:block!important;min-width:0!important;width:100%!important}
  .main{width:100%!important;min-width:0!important}

  .sidebar{
    position:fixed!important;z-index:1000!important;left:0!important;top:0!important;bottom:0!important;
    width:min(86vw,320px)!important;height:100dvh!important;max-height:100dvh!important;
    transform:translateX(-104%);transition:transform .2s ease;
    box-shadow:18px 0 50px rgba(0,0,0,.18);
    padding-top:max(18px,env(safe-area-inset-top))!important;
    padding-bottom:max(12px,env(safe-area-inset-bottom))!important;
    overflow:hidden!important
  }
  .sidebar.open{transform:translateX(0)!important}
  .sidebar-scrim{display:block;position:fixed;z-index:999;inset:0;background:rgba(12,16,22,.38);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .18s ease}
  .sidebar-scrim.open{opacity:1;pointer-events:auto}
  .sidebar-mobile-close{display:grid;place-items:center;position:absolute;top:max(10px,env(safe-area-inset-top));right:10px;z-index:5;width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);font-size:20px}
  .sidebar .brand{padding-right:46px}
  .nav{padding-bottom:8px!important}

  .topbar{
    height:auto!important;min-height:60px;position:sticky!important;top:0!important;z-index:30!important;
    padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) 8px max(10px,env(safe-area-inset-left))!important;
    gap:8px!important;flex-wrap:nowrap!important;background:color-mix(in srgb,var(--bg) 96%,transparent)!important
  }
  .mobile-only{display:inline-grid!important;place-items:center;flex:0 0 40px}
  .search-wrap{min-width:0!important;flex:1 1 auto!important;max-width:none!important;padding:8px 9px!important;border:1px solid var(--line)!important;background:var(--panel)!important}
  .search-wrap input{min-width:0!important;width:100%!important;font-size:16px!important}
  .top-actions{margin-left:0!important;flex:0 0 auto;gap:5px!important}
  .top-actions .kt-server-badge{display:none!important}
  .top-actions .icon-btn{width:38px!important;height:38px!important;flex:0 0 38px}
  .top-actions .primary-btn{min-height:38px;padding:8px 11px!important;white-space:nowrap}

  .content{
    width:100%!important;max-width:none!important;
    padding:16px max(12px,env(safe-area-inset-right)) max(24px,calc(env(safe-area-inset-bottom) + 12px)) max(12px,env(safe-area-inset-left))!important;
    overflow-x:hidden!important
  }
  .page-head{display:block!important;margin-bottom:18px!important}
  .page-head h1{font-size:24px!important}
  .page-head>div:last-child,.page-head .actions{margin-top:12px;width:100%}

  .minimal-dashboard,.dashboard-layout,.dashboard-grid,.dashboard-main-grid,.dashboard-secondary-grid,.dashboard-profit-grid,.dashboard-wallet-grid,.dashboard-comparison-grid,.summary-grid,.stat-grid,.report-grid,.inventory-summary-grid,.inventory-sales-kpis,.cash-management-grid,.vinted-management-grid{
    grid-template-columns:1fr!important;width:100%!important;min-width:0!important
  }
  .minimal-dashboard{min-height:0!important}
  .balance-card,.allocation-card{padding:22px 18px!important;border-left:0!important}
  .allocation-card{border-top:1px solid var(--line)!important}
  .hero-value,.balance-value,.dashboard-balance{font-size:clamp(30px,10vw,48px)!important;line-height:1!important;overflow-wrap:anywhere}
  .dashboard-wallet-card,.dashboard-profit-card,.card,.panel{min-width:0!important}

  .filters,.filter-row,.toolbar,.toolbar-row,.period-wrap,.report-actions,.bank-actions,.page-actions,.invoice-actions,.inventory-actions,.cash-actions,.sales-actions{
    display:flex!important;flex-wrap:wrap!important;gap:8px!important;width:100%!important
  }
  .filters>*,.filter-row>*,.toolbar>*{min-width:0!important;max-width:100%!important}
  .period-pills{max-width:100%;overflow-x:auto;flex-wrap:nowrap!important;padding-bottom:2px;-webkit-overflow-scrolling:touch}
  .period-pills button{flex:0 0 auto;min-height:36px}

  .form-grid,.user-form-grid,.kt-user-grid,.invoice-form-grid,.transaction-grid{grid-template-columns:1fr!important}
  .form-grid .span-2,.kt-auth-form .span-2,.invoice-form-grid .span-2{grid-column:auto!important}
  input,select,textarea{font-size:16px!important}
  .form-actions{position:sticky;bottom:-1px;z-index:7;display:flex!important;gap:8px;margin:16px -2px -2px!important;padding:10px 2px 2px!important;background:linear-gradient(to bottom,transparent,var(--panel) 28%)}
  .form-actions>*{flex:1 1 0;min-height:44px}

  .invoice-item-row,.invoice-position-row{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;min-width:0!important}
  .invoice-item-row>*,.invoice-position-row>*{min-width:0!important;width:100%!important}

  table{width:max-content;min-width:100%}
  th,td{white-space:nowrap}
  td .booking,td .item-name,.formal-booking{white-space:normal!important;min-width:160px}

  #invoiceModalBackdrop,#invoiceUploadBackdrop,#modalBackdrop,#partnerModalBackdrop,#receiptModalBackdrop,#transactionDetailBackdrop,#ktProfileBackdrop,#inventoryPickerBackdrop,#inventoryAdjustBackdrop{
    padding:0!important;align-items:stretch!important
  }
  #invoiceModalBackdrop > .modal,#invoiceUploadBackdrop > .modal,#modalBackdrop > .modal,#partnerModalBackdrop > .modal,#receiptModalBackdrop > .modal,#transactionDetailBackdrop > .modal,#ktProfileBackdrop > .modal,#inventoryPickerBackdrop > .modal,#inventoryAdjustBackdrop > .modal{
    width:100%!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;min-height:100dvh!important;
    margin:0!important;border-radius:0!important;
    padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))!important;
    overflow-y:auto!important;overflow-x:hidden!important
  }
  .modal-head{gap:10px!important}
  .modal-head h2{font-size:20px!important;line-height:1.15}

  .sidebar-account-menu{
    position:fixed!important;left:12px!important;right:12px!important;bottom:max(12px,env(safe-area-inset-bottom))!important;
    width:auto!important;max-height:min(70dvh,520px);overflow:auto;z-index:1100!important
  }
  .kt-profile-tabs{position:sticky;top:0;z-index:8;background:var(--panel);padding-top:4px}
  .kt-user-row{grid-template-columns:auto minmax(0,1fr) auto!important}
  .kt-user-row .tiny-btn{grid-column:2/4!important;justify-self:stretch!important;width:100%!important}

  .kt-auth-gate{
    min-height:100dvh;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))!important;
    align-items:center;overflow-y:auto
  }
  .kt-auth-card{width:100%!important;max-width:440px!important;padding:22px 18px!important}

  .toast{
    left:12px!important;right:12px!important;bottom:max(18px,calc(env(safe-area-inset-bottom) + 10px))!important;
    width:auto!important;max-width:none!important;text-align:center
  }

  .cash-card,.vinted-card,.inventory-card,.platform-card{min-width:0!important;width:100%!important}
  .detail-grid,.detail-row{grid-template-columns:1fr!important;min-width:0!important}
  .search-result-list{min-width:0!important}
  .search-result-list>*{min-width:0!important;overflow-wrap:anywhere}
}

@media(max-width:520px){
  .top-actions .primary-btn{width:40px!important;height:40px!important;padding:0!important;overflow:hidden;color:transparent!important;position:relative}
  .top-actions .primary-btn::after{content:'+';position:absolute;inset:0;display:grid;place-items:center;color:var(--panel);font-size:21px;font-weight:750}
  .search-wrap span{display:none}
  .page-head h1{font-size:22px!important}
}

@media(max-width:900px) and (orientation:landscape){
  .sidebar{width:min(50vw,320px)!important}
  .kt-auth-gate{align-items:flex-start}
  .kt-auth-card{margin:10px auto}
}


/* =========================================================
   V71 · Kontobewegungen / Einlagen / kompakter Bankabgleich
   ========================================================= */

.bank-filter-selection{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  width:100%;
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid var(--line);
}

.bank-filter-selection .bulk-selection-controls{
  width:auto;
}

.bank-deposit-btn{
  font-weight:720;
}

.deposit-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  margin-top:5px;
  padding:3px 7px;
  border-radius:999px;
  border:1px solid rgba(25,135,84,.22);
  background:rgba(25,135,84,.075);
  color:#18794e;
  font-size:9px;
  font-weight:760;
  letter-spacing:.01em;
}

body.dark .deposit-badge{
  color:#77d7a6;
  background:rgba(67,213,138,.08);
  border-color:rgba(67,213,138,.22);
}

/* Bankabgleich bewusst klein halten */
.reconciliation-card.reconciliation-card-compact{
  margin:10px 0 14px;
  padding:11px 13px;
}

.reconciliation-compact-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.reconciliation-compact-copy{
  display:grid;
  gap:2px;
  min-width:0;
}

.reconciliation-compact-copy .eyebrow{
  font-size:8px;
}

.reconciliation-compact-copy > strong{
  font-size:12px;
  line-height:1.2;
}

.reconciliation-compact-copy > small{
  color:var(--muted);
  font-size:9px;
  line-height:1.35;
}

.reconciliation-card-compact .reconciliation-actions{
  display:flex;
  align-items:center;
  gap:6px;
  flex:0 0 auto;
}

.reconciliation-card-compact .compact-bank-sync-btn{
  min-height:32px;
  padding:6px 10px;
  font-size:9px;
}

.reconciliation-list-compact{
  margin-top:9px;
  border-top:1px solid var(--line);
}

.reconciliation-list-compact .reconciliation-row{
  padding:8px 1px;
  gap:10px;
}

.reconciliation-list-compact .reconciliation-row > div:first-child strong{
  font-size:9px;
}

.reconciliation-list-compact .reconciliation-row > div:first-child span{
  font-size:8.5px;
}

@media(max-width:900px){
  .bank-filter-selection{
    margin-top:8px;
    padding-top:8px;
  }

  .bank-filter-selection .bulk-selection-controls{
    width:100%;
  }

  .reconciliation-card.reconciliation-card-compact{
    padding:10px 11px;
  }

  .reconciliation-compact-top{
    align-items:flex-start;
  }

  .reconciliation-compact-copy > small{
    max-width:58vw;
  }
}

@media(max-width:560px){
  .reconciliation-compact-top{
    gap:8px;
  }

  .reconciliation-compact-copy > small{
    max-width:52vw;
    font-size:8px;
  }

  .reconciliation-card-compact .compact-bank-sync-btn{
    padding:6px 8px;
  }
}


/* =========================================================
   V72 · übersichtliche Navigation / Forderungen / Audit / Entnahmen
   ========================================================= */
.nav-section-fixed .nav-section-label{padding:0 10px 7px}
.nav-collapsible{margin:2px 0;border-radius:11px}
.nav-collapsible>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;border-radius:10px;user-select:none}
.nav-collapsible>summary::-webkit-details-marker{display:none}
.nav-collapsible>summary:hover{background:var(--panel-2);color:var(--text)}
.nav-section-chevron{font-size:13px;transition:transform .16s ease}
.nav-collapsible[open] .nav-section-chevron{transform:rotate(180deg)}
.nav-section-items{display:grid;gap:2px}
.nav-collapsible:not([open])>.nav-section-items{display:none}
.nav-collapsible[open]{padding-bottom:5px}

.withdrawal-badge{display:inline-flex;align-items:center;width:max-content;margin-top:5px;padding:3px 7px;border-radius:999px;border:1px solid rgba(190,70,70,.22);background:rgba(190,70,70,.07);color:#a53d3d;font-size:9px;font-weight:760}
body.dark .withdrawal-badge{color:#ff9b9b;background:rgba(255,100,100,.08);border-color:rgba(255,100,100,.2)}

.receivable-stats-advanced{grid-template-columns:repeat(4,minmax(0,1fr))}
.receivable-stats-advanced .warning{border-color:rgba(211,150,34,.22)}
.receivable-stats-advanced .danger{border-color:rgba(190,70,70,.25)}
.receivable-row.warning{background:rgba(211,150,34,.035)}
.receivable-row.critical{background:rgba(190,70,70,.045)}
.receivable-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.payment-suggest-btn{border-color:rgba(20,125,75,.28)!important}

#paymentMatchBackdrop.hidden{display:none!important}
.payment-match-modal{max-width:720px}
.payment-match-content{min-height:150px}
.payment-candidate-list{display:grid;border-top:1px solid var(--line)}
.payment-candidate{display:grid;grid-template-columns:minmax(0,1fr) 130px auto;gap:12px;align-items:center;width:100%;padding:13px 2px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);text-align:left;cursor:pointer}
.payment-candidate:hover{background:var(--panel-2)}
.payment-candidate>div{display:grid;gap:4px}.payment-candidate>div span{font-size:9px;color:var(--muted)}
.match-confidence{font-size:8px;font-weight:750;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 7px;white-space:nowrap}
.match-confidence.strong{color:#18794e;border-color:rgba(25,135,84,.25);background:rgba(25,135,84,.06)}

.audit-filter-card,.audit-ledger-card{padding:17px;margin-bottom:14px}
.audit-filter-grid{display:grid;grid-template-columns:180px 200px minmax(240px,1fr);gap:10px;align-items:end}
.audit-filter-grid label{display:grid;gap:6px;font-size:9px;color:var(--muted);font-weight:720}
.audit-filter-grid input,.audit-filter-grid select{min-height:42px}
.audit-ledger{display:grid;border-top:1px solid var(--line)}
.audit-ledger-row{display:grid;grid-template-columns:190px minmax(0,1fr);gap:18px;padding:15px 2px;border-bottom:1px solid var(--line)}
.audit-ledger-meta{display:grid;align-content:start;gap:4px}.audit-ledger-meta strong{font-size:10px}.audit-ledger-meta span,.audit-ledger-meta small{font-size:8.5px;color:var(--muted)}
.audit-ledger-main{min-width:0}.audit-ledger-main h4{font-size:11px;margin:5px 0 3px}.audit-ledger-main p{font-size:9px;color:var(--muted);margin:0;overflow-wrap:anywhere}
.audit-entity-chip{display:inline-flex;padding:3px 7px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line);font-size:8px;font-weight:750;color:var(--muted)}
.audit-change-details{margin-top:9px}.audit-change-details summary{font-size:9px;font-weight:720;cursor:pointer;color:var(--text)}
.audit-change-details>div{display:grid;margin-top:7px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.audit-change-row{display:grid;grid-template-columns:150px minmax(0,1fr) 20px minmax(0,1fr);gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);font-size:8.5px;align-items:center}.audit-change-row:last-child{border-bottom:0}.audit-change-row strong{font-size:8.5px}.audit-change-row span{overflow-wrap:anywhere;color:var(--muted)}.audit-change-row i{text-align:center;color:var(--muted);font-style:normal}

.month-close-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:15px}.month-close-kpis article{padding:16px;display:grid;gap:6px}.month-close-kpis span{font-size:8.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:750}.month-close-kpis strong{font-size:18px}.month-close-kpis small{font-size:8.5px;color:var(--muted)}
.month-close-info{padding:18px}.month-close-info h3{margin:0 0 13px}.month-close-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.month-close-info-grid>div{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2)}.month-close-info-grid strong{font-size:10px}.month-close-info-grid span{font-size:8.5px;color:var(--muted);line-height:1.45}

@media(max-width:1100px){
  .receivable-stats-advanced,.month-close-kpis,.month-close-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .audit-filter-grid{grid-template-columns:1fr 1fr}.audit-search-label{grid-column:1/-1}
}
@media(max-width:900px){
  .nav-collapsible>summary{min-height:42px;font-size:10px;padding:10px 12px}
  .nav-collapsible .nav-item{min-height:43px}
  #paymentMatchBackdrop{padding:0!important;align-items:stretch!important}
  #paymentMatchBackdrop>.modal{width:100%!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;margin:0!important;border-radius:0!important;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))!important;overflow-y:auto!important;overflow-x:hidden!important}
  .receivable-actions{justify-content:flex-start}
  .audit-ledger-row{grid-template-columns:1fr;gap:8px}
  .audit-ledger-meta{grid-template-columns:auto 1fr;align-items:center}.audit-ledger-meta small{grid-column:1/-1}
  .month-close-controls,.tax-advisor-controls{grid-template-columns:1fr!important}.month-close-controls button,.tax-advisor-controls button{width:100%}
}
@media(max-width:640px){
  .receivable-stats-advanced,.month-close-kpis,.month-close-info-grid,.audit-filter-grid{grid-template-columns:1fr!important}
  .audit-search-label{grid-column:auto}
  .payment-candidate{grid-template-columns:1fr}.payment-candidate>strong{text-align:left}.match-confidence{width:max-content}
  .audit-change-row{grid-template-columns:1fr}.audit-change-row i{display:none}.audit-change-row span{padding-left:8px;border-left:2px solid var(--line)}
  .receivable-row{padding:14px 0!important;gap:9px!important}.receivable-actions{width:100%}.receivable-actions button{flex:1 1 145px;min-height:42px}
  .bank-deposit-btn,.bank-withdrawal-btn{flex:1 1 140px}
}


/* V72 · zusätzliche Handy-Feinarbeit */
@media(max-width:900px){
  .page-head .head-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;width:100%!important}
  .page-head .head-actions>.period-selects{grid-column:1/-1;width:100%}
  .page-head .head-actions>button{width:100%;min-height:42px;white-space:normal;line-height:1.2}
  .receivable-list-card,.audit-ledger-card,.audit-filter-card,.month-close-info{padding:14px!important}
}
@media(max-width:520px){
  .page-head .head-actions{grid-template-columns:1fr!important}
  .page-head .head-actions>.period-selects{grid-column:auto}
  .period-selects{width:100%;display:grid!important;grid-template-columns:1fr 1fr;gap:7px}
  .period-selects select{min-width:0;width:100%}
  .bank-summary-grid{grid-template-columns:1fr!important}
  .bank-hero{min-width:0!important}
  .bank-balance strong{font-size:clamp(30px,12vw,46px)!important;overflow-wrap:anywhere}
  .statement-item{min-width:0!important}
  .statement-item .tx-main,.statement-item .tx-category{min-width:0!important}
}
