*{box-sizing:border-box}
:root{--bg:#f6f2ec;--surface:#fff;--text:#242424;--muted:#706b64;--gold:#b79a61;--line:#e7dfd4}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}
.container{width:min(1160px,92%);margin:0 auto}.narrow{width:min(760px,92%);margin:auto}
.card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:30px;box-shadow:0 14px 38px rgba(35,28,20,.07)}
h1{font-size:clamp(2rem,5vw,3.5rem);line-height:1.1;margin:.35em 0}h2{margin-top:0}
label{display:block;font-weight:700;margin:14px 0 6px}
input,textarea,select{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;font:inherit}
button,.button{display:inline-block;margin-top:14px;border:0;border-radius:999px;padding:12px 20px;background:#222;color:#fff;text-decoration:none;font-weight:700;cursor:pointer}
.button.secondary{background:#fff;color:#222;border:1px solid var(--line)}
.installer-body{min-height:100vh;display:grid;place-items:center;padding:35px 0 90px}
.brand-row,.admin-brand{display:flex;align-items:center;gap:12px}.brand-row>div{display:grid}.brand-row span{font-size:.86rem;color:var(--muted)}
.logo-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid var(--gold);color:var(--gold);font-family:Georgia,serif}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.full{grid-column:1/-1}
.alert{padding:13px 15px;border-radius:12px;margin:16px 0}.alert.error{background:#fbeaea;color:#9c2c2c}.alert.success{background:#e9f7ef;color:#286b45}
.topbar{background:#fff;border-bottom:1px solid var(--line);padding:14px 0}.row{display:flex;justify-content:space-between;align-items:center;gap:20px}
.admin-brand{color:#222;text-decoration:none;font-weight:700}.admin-links{display:flex;gap:16px}.admin-links a{color:#222;text-decoration:none}
.admin-main{padding:48px 0}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.page-heading p{color:var(--muted)}
.eyebrow{color:var(--gold);font-weight:700;letter-spacing:.05em}.muted{color:var(--muted)}
.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.actions form,.actions .button{margin:0}
.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.summary-card{display:grid;gap:8px}.summary-card span{color:var(--muted)}.summary-card strong{font-size:2rem}
.month-table{display:grid}.month-row{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line)}
.month-row:last-child{border-bottom:0}.total-row{margin-top:8px;padding-top:18px;font-size:1.15rem}
.income-table-wrap{overflow:auto}.income-table{width:100%;border-collapse:collapse}.income-table th,.income-table td{padding:13px 10px;text-align:left;border-bottom:1px solid var(--line)}
.income-table th{font-size:.84rem;color:var(--muted)}.income-table tr.is-cancelled{opacity:.55;text-decoration:line-through}
.income-table a{color:var(--gold);font-weight:700;text-decoration:none}
.stack{display:grid;gap:18px}
code{display:block;padding:14px;border-radius:12px;background:#f1ece4;word-break:break-all}.token-code{font-size:.82rem}
.nd-footer{margin-top:42px;padding:20px 0;border-top:1px solid var(--line);background:#fff;color:var(--muted);text-align:center;font-size:.88rem}
.installer-body .nd-footer{position:fixed;left:0;right:0;bottom:0;margin:0}
@media(max-width:760px){
    .form-grid,.summary-grid{grid-template-columns:1fr}.full{grid-column:auto}
    .row,.page-heading{align-items:flex-start;flex-direction:column}
    .admin-links{flex-wrap:wrap}
    .installer-body .nd-footer{position:static;margin-top:24px}
}


/* ND Einnahmen & Ausgaben 1.1 */
.expense-summary strong{
    color:#a4473e
}
.result-summary strong{
    color:#356847
}
.year-month-filter{
    display:flex;
    gap:8px;
    align-items:center;
    flex-wrap:wrap
}
@media(max-width:760px){
    .year-month-filter{
        width:100%
    }
    .year-month-filter select,
    .year-month-filter button{
        width:100%
    }
}


/* ND Einnahmen & Ausgaben 1.2.2 */
.table-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px
}
.table-actions form{
    margin:0
}
.small-button{
    padding:7px 10px;
    font-size:.84rem;
    line-height:1.2
}
