:root{
 --bg:#f4f1ea;--card:#fff;--ink:#241f19;--ink2:#5f574c;--ink3:#9a9082;--line:#ddd6ca;
 --brass:#9a6f00;--copper:#b06a2c;--moss:#4a5c3d;--slate:#3d4a55;--gold:#e3cf94;--gold-bg:#fdf8ec;--stop:#a04830;--ok:#2e7d32;
 --sans:'Segoe UI',system-ui,Arial,sans-serif;--serif:'Segoe UI',system-ui,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5}
a{color:var(--copper)}
/* Header + Nav */
header.top{background:linear-gradient(135deg,#3d4a55,#2a323a);color:#f4ecdb;padding:11px 18px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
header.top .brand{font-family:var(--serif);font-weight:600;font-size:17px}
header.top .who{font-size:12.5px;color:#e7dcc4}
header.top .who a{color:#f4ecdb}
.badge{display:inline-block;background:var(--brass);color:#fff;border-radius:3px;padding:1px 7px;font-size:10.5px;text-transform:uppercase;letter-spacing:.4px}
nav.mainnav{background:#2a323a;display:flex;flex-wrap:wrap;gap:2px;padding:0 10px}
nav.mainnav a{color:#cdbfa4;text-decoration:none;font-size:12.5px;padding:8px 12px;border-bottom:2px solid transparent}
nav.mainnav a:hover{color:#fff}
nav.mainnav a.active{color:#fff;border-bottom-color:var(--gold)}
main.wrap{max-width:1180px;margin:0 auto;padding:18px}
h1{font-family:var(--serif);font-size:22px;color:var(--slate);margin-bottom:12px}
h2{font-family:var(--serif);font-size:17px;color:var(--slate);margin:22px 0 10px;border-bottom:2px solid var(--gold);padding-bottom:4px}
/* Cards / project */
.projcard{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--brass);border-radius:5px;padding:12px 16px;margin-bottom:14px}
.projcard .pnum{font-size:11px;color:var(--brass);font-weight:700;letter-spacing:.5px}
.projcard .pname{font-family:var(--serif);font-size:18px;font-weight:600}
.projcard .pmeta{font-size:12.5px;color:var(--ink2);margin-top:3px}
.card{background:var(--card);border:1px solid var(--line);border-radius:5px;padding:12px 16px}
.card.info{background:var(--gold-bg);border-color:var(--gold);color:#6a521a}
.card.info+.card,.card p+p{margin-top:6px}
/* KPIs */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:10px 0}
.kpi{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--brass);border-radius:4px;padding:11px 14px}
.kpi .n{font-family:var(--serif);font-size:21px;font-weight:600;color:var(--brass)}
.kpi.crit{border-top-color:var(--stop)}.kpi.crit .n{color:var(--stop)}
.kpi.ok{border-top-color:var(--moss)}.kpi.ok .n{color:var(--moss)}
.kpi .l{font-size:11px;color:var(--ink2);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}
/* Module grid */
.mods{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.mod{display:block;text-decoration:none;color:inherit;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--copper);border-radius:5px;padding:12px 14px;transition:.12s}
.mod:hover{background:#fffdf8;border-left-color:var(--brass)}
.mod .t{font-weight:700;color:var(--slate)}
.mod .d{font-size:12px;color:var(--ink2);margin-top:3px}
.foot{max-width:1180px;margin:18px auto;padding:10px 18px;font-size:11px;color:var(--ink3);border-top:1px solid var(--line)}
/* Login */
body.loginpage{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#3d4a55,#2a323a)}
.loginbox{background:var(--card);border-radius:6px;padding:26px 28px;width:320px;box-shadow:0 8px 30px rgba(0,0,0,.3)}
.loginbox h1{font-size:19px;margin-bottom:2px}
.loginbox .sub{font-size:12px;color:var(--ink3);margin-bottom:14px}
.loginbox label{display:block;font-size:12px;color:var(--ink2);margin-top:10px}
.loginbox input{width:100%;border:1px solid var(--line);border-radius:4px;padding:8px 10px;font-size:14px;margin-top:3px}
.loginbox button{width:100%;margin-top:16px;background:var(--brass);color:#fff;border:0;border-radius:4px;padding:10px;font-size:14px;cursor:pointer}
.loginbox .err{background:#fdeeee;color:var(--stop);border:1px solid #e6c3bb;border-radius:4px;padding:7px 10px;font-size:12.5px;margin-bottom:6px}
code{background:#f0ece2;border-radius:3px;padding:1px 5px;font-size:12.5px}
/* Tabellen */
table.tbl{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:5px;overflow:hidden;font-size:13px}
table.tbl th{background:#efe9dd;text-align:left;padding:8px 10px;font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink2);border-bottom:1px solid var(--line)}
table.tbl td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
table.tbl tr:last-child td{border-bottom:0}
table.tbl tr:hover td{background:#fffdf8}
.tag{display:inline-block;border-radius:3px;padding:1px 7px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.tag.admin{background:#f3e2c2;color:#7a5a12}.tag.architekt{background:#dfe6d6;color:#3f5230}.tag.gewerk{background:#d9e2ea;color:#33454f}
.tag.on{background:#dcecdd;color:#2e7d32}.tag.off{background:#eee;color:#888}
/* Formulare */
.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 14px}
.formgrid label,.fld label{display:block;font-size:11.5px;color:var(--ink2);margin-bottom:3px;text-transform:uppercase;letter-spacing:.3px}
.formgrid input,.formgrid select,.fld input,.fld select,.fld textarea{width:100%;border:1px solid var(--line);border-radius:4px;padding:7px 9px;font-size:13.5px;font-family:inherit}
.btn{display:inline-block;background:var(--brass);color:#fff;border:0;border-radius:4px;padding:8px 15px;font-size:13px;cursor:pointer;text-decoration:none}
.btn:hover{background:#835e00}
.btn.sec{background:#e7e0d2;color:var(--ink)}.btn.sec:hover{background:#d8cfbc}
.btn.danger{background:var(--stop)}.btn.danger:hover{background:#832f1f}
.btn.sm{padding:4px 9px;font-size:11.5px}
.msg{border-radius:4px;padding:9px 12px;font-size:13px;margin-bottom:12px}
.msg.ok{background:#e7f2e8;border:1px solid #b8d8ba;color:#256428}
.msg.err{background:#fdeeee;border:1px solid #e6c3bb;color:var(--stop)}
.row-actions{display:flex;gap:6px;flex-wrap:wrap}
details.panel{background:var(--card);border:1px solid var(--line);border-radius:5px;margin-bottom:16px}
details.panel>summary{cursor:pointer;padding:11px 15px;font-family:var(--serif);font-weight:600;color:var(--slate);list-style:none}
details.panel>summary::-webkit-details-marker{display:none}
details.panel>summary::before{content:'▸ ';color:var(--brass)}
details.panel[open]>summary::before{content:'▾ '}
details.panel .body{padding:4px 15px 15px}
.muted{color:var(--ink3);font-size:12px}
