
:root{
--navy:#0F1F3D;--navy-mid:#1a2f50;--navy-light:#e8ecf4;
--orange:#E8630A;--orange-dk:#c8520a;--orange-lt:#FDF0E8;--orange-mid:#f5a36b;
--bg:#F8F7F4;--surface:#FFFFFF;--border:#E2DED6;--border-mid:#C8C2B8;
--text:#1A1714;--muted:#6B6560;--hint:#A09B96;
--green:#1D6F42;--green-bg:#EAF4EE;--green-mid:#b8dfc9;
--red:#A32D2D;--red-bg:#FCEBEB;--red-mid:#f0c0c0;
--yellow:#7A5500;--yellow-bg:#FFF8E6;--yellow-mid:#f5d980;
--blue:#1a4f8a;--blue-bg:#EBF2FF;--blue-mid:#b3ccee;
--teal:#0e6e6e;--teal-bg:#e6f4f4;
--radius:8px;--radius-lg:12px;
--shadow:0 1px 3px rgba(15,31,61,0.08);--shadow-md:0 4px 16px
rgba(15,31,61,0.12);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Georgia','Times New
Roman',serif;background:var(--bg);color:var(--text);min-height:100vh;}
.app{max-width:800px;margin:0 auto;padding:1.25rem 1rem 5rem;}
/* NAV */
.top-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px
solid var(--border);}
.logo-wrap{display:flex;align-items:center;gap:10px;}
.logo-mark{width:32px;height:32px;background:var(--navy);border-radius:6px;display:flex;align-items:center;justify-content:center;color:white;font-size:12px;font-weight:bold;font-family:'Helvetica
Neue',sans-serif;}
.logo-text{font-size:14px;color:var(--navy);font-family:'Helvetica
Neue',sans-serif;font-weight:600;}
.logo-sub{font-size:11px;color:var(--hint);font-family:'Helvetica
Neue',sans-serif;}
/* TAB BAR */
.tab-bar{display:flex;gap:2px;margin-bottom:1.25rem;background:var(--surface);border:1px
solid
var(--border);border-radius:var(--radius-lg);padding:4px;overflow-x:auto;scrollbar-width:none;}
.tab-bar::-webkit-scrollbar{display:none;}
.tab-btn{flex-shrink:0;padding:7px
12px;border-radius:8px;font-size:11px;font-family:'Helvetica
Neue',sans-serif;font-weight:500;cursor:pointer;border:none;background:transparent;color:var(--muted);transition:all
0.15s;white-space:nowrap;}
.tab-btn.active{background:var(--navy);color:white;}
.tab-btn:hover:not(.active){color:var(--navy);background:var(--bg);}
.tab-btn
.badge{display:inline-block;background:var(--red);color:white;font-size:9px;font-weight:700;padding:1px
5px;border-radius:10px;margin-left:4px;vertical-align:middle;}
/* SCREENS */
.screen{display:none;}.screen.active{display:block;}
/* TYPOGRAPHY */
h1{font-size:21px;font-weight:normal;color:var(--navy);margin-bottom:0.2rem;}
h2{font-size:17px;font-weight:normal;color:var(--navy);margin-bottom:0.8rem;}
h3{font-size:14px;font-weight:600;color:var(--text);margin-bottom:0.5rem;font-family:'Helvetica
Neue',sans-serif;}
p.sub{font-size:13px;color:var(--muted);margin-bottom:1rem;font-family:'Helvetica
Neue',sans-serif;}
/* CARDS */
.card{background:var(--surface);border:1px solid
var(--border);border-radius:var(--radius-lg);padding:1rem
1.15rem;box-shadow:var(--shadow);margin-bottom:10px;}
.card-click{cursor:pointer;transition:border-color .15s,box-shadow
.15s;}.card-click:hover{border-color:var(--orange);box-shadow:0 2px 8px
rgba(232,99,10,.12);}
.acc-orange{border-top:3px solid var(--orange);}
.acc-navy{border-top:3px solid var(--navy);}
.acc-green{border-top:3px solid var(--green);}
.acc-red{border-top:3px solid var(--red);}
/* FORMS */
label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px;font-family:'Helvetica
Neue',sans-serif;}
input,textarea,select{width:100%;padding:9px 12px;border:1px solid
var(--border);border-radius:var(--radius);font-size:13.5px;color:var(--text);background:var(--surface);outline:none;transition:border-color
.15s;font-family:'Helvetica Neue',sans-serif;margin-bottom:10px;}
input:focus,textarea:focus,select:focus{border-color:var(--navy);}
textarea{min-height:64px;resize:vertical;}
input[type=checkbox]{width:auto;margin:0 6px 0
0;accent-color:var(--navy);}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;}
.row4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:10px;}
@media(max-width:520px){.row2,.row3,.row4{grid-template-columns:1fr;}}
/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px
15px;border-radius:var(--radius);font-size:12.5px;font-family:'Helvetica
Neue',sans-serif;font-weight:500;cursor:pointer;transition:all
.15s;border:1px solid transparent;}
.btn-primary{background:var(--navy);color:white;border-color:var(--navy);}.btn-primary:hover{background:var(--navy-mid);}
.btn-orange{background:var(--orange);color:white;border-color:var(--orange);}.btn-orange:hover{background:var(--orange-dk);}
.btn-green{background:var(--green);color:white;border-color:var(--green);}
.btn-outline{background:transparent;color:var(--navy);border-color:var(--border-mid);}.btn-outline:hover{border-color:var(--navy);background:var(--navy-light);}
.btn-danger{background:transparent;color:var(--red);border-color:var(--red-mid);}.btn-danger:hover{background:var(--red-bg);}
.btn-sm{padding:5px 11px;font-size:11.5px;}.btn-xs{padding:3px
8px;font-size:11px;}
.btn-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.back-btn{background:none;border:none;cursor:pointer;color:var(--muted);font-size:12px;padding:0
0 12px;display:flex;align-items:center;gap:4px;font-family:'Helvetica
Neue',sans-serif;}.back-btn:hover{color:var(--navy);}
/* TAGS & ALERTS */
.tag{display:inline-flex;align-items:center;font-size:11px;padding:2px
8px;border-radius:4px;font-family:'Helvetica
Neue',sans-serif;font-weight:600;margin-right:4px;}
.tag-green{background:var(--green-bg);color:var(--green);border:1px
solid var(--green-mid);}
.tag-red{background:var(--red-bg);color:var(--red);border:1px solid
var(--red-mid);}
.tag-yellow{background:var(--yellow-bg);color:var(--yellow);border:1px
solid var(--yellow-mid);}
.tag-navy{background:var(--navy-light);color:var(--navy);border:1px
solid #b8c8e0;}
.tag-orange{background:var(--orange-lt);color:var(--orange-dk);border:1px
solid var(--orange-mid);}
.tag-gray{background:var(--bg);color:var(--muted);border:1px solid
var(--border);}
.alert{padding:9px
13px;border-radius:var(--radius);font-size:13px;font-family:'Helvetica
Neue',sans-serif;margin-bottom:10px;line-height:1.5;}
.alert-ok{background:var(--green-bg);color:var(--green);border:1px solid
var(--green-mid);}
.alert-err{background:var(--red-bg);color:var(--red);border:1px solid
var(--red-mid);}
.alert-warn{background:var(--yellow-bg);color:var(--yellow);border:1px
solid var(--yellow-mid);}
.alert-info{background:var(--navy-light);color:var(--navy);border:1px
solid #b8c8e0;}
/* FILTER */
.filter-bar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}
.chip{padding:5px
12px;border-radius:20px;font-size:12px;font-family:'Helvetica
Neue',sans-serif;cursor:pointer;border:1px solid
var(--border);background:var(--surface);color:var(--muted);transition:all
.15s;}
.chip.active{background:var(--navy);color:white;border-color:var(--navy);}
.chip:hover:not(.active){border-color:var(--navy);color:var(--navy);}
/* KONTO REIHEN */
.mieter-row{border:1px solid
var(--border);border-radius:var(--radius-lg);padding:12px
15px;margin-bottom:8px;background:var(--surface);cursor:pointer;transition:border-color
.15s,box-shadow .15s;display:flex;align-items:center;gap:12px;}
.mieter-row:hover{border-color:var(--orange);box-shadow:0 2px 8px
rgba(232,99,10,.1);}
.mieter-avatar{width:38px;height:38px;border-radius:50%;background:var(--navy);color:white;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;font-family:'Helvetica
Neue',sans-serif;flex-shrink:0;}
.mieter-info{flex:1;min-width:0;}
.mieter-name{font-size:14px;font-weight:600;color:var(--navy);font-family:'Helvetica
Neue',sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mieter-meta{font-size:11px;color:var(--muted);font-family:'Helvetica
Neue',sans-serif;margin-top:2px;}
.saldo-box{text-align:right;flex-shrink:0;}
.saldo-val{font-size:16px;font-weight:700;font-family:'Helvetica
Neue',sans-serif;}
.saldo-lbl{font-size:10px;color:var(--muted);font-family:'Helvetica
Neue',sans-serif;margin-top:1px;}
/* BUCHUNGS-TABELLE */
.buch-table{width:100%;border-collapse:collapse;font-family:'Helvetica
Neue',sans-serif;font-size:12px;}
.buch-table
th{font-size:10px;text-transform:uppercase;font-weight:700;color:var(--muted);padding:6px
8px;border-bottom:2px solid var(--border);text-align:left;}
.buch-table td{padding:7px 8px;border-bottom:1px solid
var(--border);vertical-align:middle;}
.buch-table tr:last-child td{border-bottom:none;}
.buch-table tr:hover td{background:var(--bg);}
.buch-soll{color:var(--red);font-weight:600;}
.buch-haben{color:var(--green);font-weight:600;}
/* KPI */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-bottom:14px;}
.kpi-card{background:var(--surface);border:1px solid
var(--border);border-radius:var(--radius);padding:10px;text-align:center;}
.kpi-val{font-size:18px;font-weight:700;color:var(--navy);font-family:'Helvetica
Neue',sans-serif;line-height:1.2;}
.kpi-lbl{font-size:10px;color:var(--muted);font-family:'Helvetica
Neue',sans-serif;margin-top:2px;}
/* SEP / MISC */
.sep{border-top:1px solid var(--border);margin:12px 0;}
.empty-state{text-align:center;padding:2rem;color:var(--muted);font-family:'Helvetica
Neue',sans-serif;}
.empty-icon{font-size:36px;margin-bottom:10px;}.empty-text{font-size:13px;}
.mono{font-family:'Courier New',monospace;}
/* MAHNAMPEL */
.mahn-0{color:var(--green);}
.mahn-1{color:var(--yellow);}
.mahn-2{color:var(--orange);}
.mahn-3{color:var(--red);font-weight:700;}
/* IMPORT */
.import-drop{border:2px dashed
var(--border-mid);border-radius:var(--radius-lg);padding:2rem;text-align:center;cursor:pointer;transition:border-color
.15s;font-family:'Helvetica Neue',sans-serif;}
.import-drop:hover,.import-drop.drag-over{border-color:var(--orange);background:var(--orange-lt);}
.import-row{display:flex;align-items:center;gap:10px;padding:8px
0;border-bottom:1px solid var(--border);font-family:'Helvetica
Neue',sans-serif;font-size:12px;}
.import-row:last-child{border-bottom:none;}
.import-match{color:var(--green);font-size:11px;font-weight:600;}
.import-nomatch{color:var(--red);font-size:11px;}
