@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{--bg:#f3f6f9;--panel:#fff;--panel2:#eef4f8;--text:#152332;--muted:#687888;--line:#dce5eb;--accent:#1678a8;--accent2:#4aa7c7;--nav:#0f2232;--good:#18855a;--warn:#b96b16;--danger:#b53b48;--shadow:0 18px 55px rgba(20,43,60,.09);--hero:url('bg-light.svg')}[data-theme="dark"]{--bg:#09131c;--panel:#10202c;--panel2:#152a38;--text:#edf5f9;--muted:#91a6b4;--line:#263d4b;--accent:#52b7dd;--accent2:#76c8e5;--nav:#07111a;--good:#55c997;--warn:#e5a457;--danger:#e66d77;--shadow:0 18px 55px rgba(0,0,0,.25);--hero:url('bg-dark.svg')}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:14px}a{color:var(--accent);text-decoration:none}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:var(--nav);color:#d8e6ee;padding:24px 16px;display:flex;flex-direction:column;z-index:20}.brand{font-weight:800;letter-spacing:.04em;font-size:18px}.brand span{color:#56b8dc;font-size:25px}.portal-name{font-size:11px;color:#7894a5;margin:3px 0 28px 42px;text-transform:uppercase;letter-spacing:.14em}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav a{color:#a9bfcb;padding:10px 12px;border-radius:10px;font-weight:600;display:flex;gap:12px;align-items:center}.sidebar nav a span{width:20px;text-align:center;font-size:17px}.sidebar nav a:hover,.sidebar nav a.active{background:#17384b;color:#fff}.side-bottom{margin-top:auto;border-top:1px solid #203b4b;padding:17px 8px 0;display:grid;grid-template-columns:10px 1fr auto;gap:9px;align-items:center}.side-bottom small{display:block;color:#7691a0}.user-dot{width:8px;height:8px;border-radius:50%;background:#4ac790}.shell{margin-left:250px;min-height:100vh;padding:26px 34px 20px;max-width:1800px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.topbar h1{font-size:25px;margin:3px 0}.eyebrow{font-size:10px;letter-spacing:.18em;color:var(--accent);font-weight:800}.top-actions{display:flex;align-items:center;gap:12px}.iconbtn,.mobile-menu{border:1px solid var(--line);background:var(--panel);color:var(--text);width:38px;height:38px;border-radius:11px;cursor:pointer}.mobile-menu{display:none}.date{color:var(--muted);font-size:12px}.hero{background-image:linear-gradient(90deg,rgba(12,43,61,.94),rgba(12,43,61,.68)),var(--hero);background-size:cover;background-position:center;border-radius:20px;color:#fff;padding:35px 38px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow);margin-bottom:18px}.hero h2{font-size:29px;margin:9px 0 5px}.hero p{color:#c4d9e4;margin:0}.pill{font-size:10px;letter-spacing:.15em;background:rgba(80,188,224,.15);border:1px solid rgba(114,205,235,.35);padding:7px 10px;border-radius:999px}.hero-orb{width:82px;height:82px;border:1px solid rgba(255,255,255,.25);border-radius:50%;display:grid;place-items:center;font-size:27px;font-weight:800;background:rgba(255,255,255,.06);backdrop-filter:blur(8px)}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:17px 0}.kpis.three{grid-template-columns:repeat(3,1fr)}.kpi,.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.kpi{padding:19px}.kpi small{color:var(--muted);display:block}.kpi strong{font-size:23px;display:block;margin:8px 0}.kpi span{font-size:11px;color:var(--muted)}.card{padding:20px;margin-bottom:16px}.grid2{display:grid;grid-template-columns:1.35fr 1fr;gap:16px}.card h3{margin:0 0 16px;font-size:16px}.cardhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.cardhead h3{margin:0}.timeline{display:grid;grid-template-columns:105px 1fr;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.timeline:last-child{border:0}.timeline time{color:var(--accent);font-size:11px;font-weight:700}.timeline small,td small{display:block;color:var(--muted);margin-top:4px}.quick{display:grid;grid-template-columns:1fr 1fr;gap:9px}.quick a,.btn{background:var(--panel2);border:1px solid var(--line);padding:10px 12px;border-radius:10px;color:var(--text);font-weight:600}.quick a:hover,.btn:hover{border-color:var(--accent)}.notice{margin-top:16px;padding:13px 15px;border-left:3px solid var(--accent);background:var(--panel2);border-radius:8px}.notice p{margin:4px 0;color:var(--muted);font-size:12px}.notice.warning{border-color:var(--warn)}.alert{padding:12px 15px;border-radius:10px;margin:0 0 16px;background:var(--panel2);border:1px solid var(--line)}.alert.success{border-color:var(--good)}.alert.danger{border-color:var(--danger)}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th{text-align:left;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;padding:10px;border-bottom:1px solid var(--line)}td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}tr:hover td{background:var(--panel2)}.status{font-size:10px;padding:5px 8px;border-radius:999px;background:var(--panel2);border:1px solid var(--line)}.status.ok{color:var(--good)}.status.warn{color:var(--warn)}form label{font-size:11px;color:var(--muted);font-weight:600;display:block;margin-bottom:11px}input,select,textarea{width:100%;margin-top:5px;padding:10px 11px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);font:inherit}textarea{min-height:80px;resize:vertical}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px}.formgrid .wide{grid-column:1/-1}button,.primary{border:0;cursor:pointer}.primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:white!important;padding:11px 16px;border-radius:10px;font-weight:700;display:inline-block}.formgrid button{width:max-content}.details{display:grid;grid-template-columns:150px 1fr;gap:8px}.details dt{color:var(--muted)}.details dd{margin:0}.export-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.bars{display:flex;flex-direction:column;gap:8px}.barrow{display:grid;grid-template-columns:65px 1fr 1fr;gap:7px;align-items:center;font-size:10px;color:var(--muted)}.bar{height:11px;border-radius:5px;background:var(--accent);width:var(--w);min-width:2px}.bar.expense{background:var(--warn)}code{font-size:11px;color:var(--accent)}footer{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;padding:15px 3px}.empty,.muted,.tiny{color:var(--muted)}.login-body{min-height:100vh;display:grid;place-items:center;background-image:linear-gradient(120deg,rgba(6,21,31,.86),rgba(9,40,57,.7)),url('bg-dark.svg');background-size:cover;padding:20px}.login-card{width:min(430px,100%);background:rgba(255,255,255,.96);color:#152332;padding:34px;border-radius:22px;box-shadow:0 30px 90px rgba(0,0,0,.3);backdrop-filter:blur(14px)}.login-card h1{font-size:27px;margin-bottom:6px}.login-card .muted{color:#667986}.login-card form{margin-top:24px}.login-card input{background:#f4f7f9;color:#152332;border-color:#d9e3e9}.login-card button{width:100%;margin-top:5px}.login-card .tiny{text-align:center;font-size:10px;margin-top:18px;color:#82919a}@media(max-width:1050px){.kpis{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}}@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.2s}.nav-open .sidebar{transform:none}.shell{margin-left:0;padding:18px}.mobile-menu{display:inline-block}.topbar{gap:12px}.topbar h1{font-size:20px}.hero{padding:25px}.hero-orb{display:none}.kpis,.kpis.three{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}.date{display:none}footer{flex-direction:column;gap:5px}}.logout-form{margin-left:auto}.logout-form button{border:0;background:transparent;color:inherit;font-size:20px;cursor:pointer;padding:8px;border-radius:10px}.logout-form button:hover{background:rgba(127,127,127,.14)}
.setup-wide{max-width:620px}.setup-status{display:grid;gap:8px;margin:18px 0}.setup-status>div{display:flex;justify-content:space-between;gap:18px;padding:10px 12px;border:1px solid rgba(127,127,127,.2);border-radius:10px}.status-ok{color:#25a269}.status-bad{color:#d34b4b}.status-warn{color:#c98216}.button-link{display:inline-block;text-decoration:none}hr{border:0;border-top:1px solid rgba(127,127,127,.2);margin:22px 0}
/* v2.7 Angebotskalkulation & einfache Buchhaltung */
.row-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.row-actions form{display:inline-flex;margin:0}.row-actions select{margin:0;min-width:110px}.form-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:10px}.filterbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:0 0 14px}.filterbar label{margin:0;min-width:130px}.filterbar select{margin-top:4px}.offer-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0 10px}.offer-toolbar select{max-width:620px}.offer-items-head,.offer-item{display:grid;grid-template-columns:minmax(260px,3fr) .65fr .65fr .9fr .72fr .72fr .9fr auto;gap:8px;align-items:center}.offer-items-head{padding:7px 5px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em}.offer-item{padding:9px 0;border-bottom:1px solid var(--line)}.offer-item textarea,.offer-item input{margin:0}.offer-item textarea{min-height:52px}.offer-item .lineTotal{text-align:right;white-space:nowrap}.danger-soft{color:var(--danger)!important}.calc-summary{margin:18px 0 12px auto;width:min(390px,100%);background:var(--panel2);border:1px solid var(--line);border-radius:13px;padding:12px 15px}.calc-summary>div{display:flex;justify-content:space-between;padding:5px 0}.calc-summary .total{border-top:1px solid var(--line);margin-top:5px;padding-top:10px;font-size:16px}.flow-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}.flow-choice label{border:1px solid var(--line);border-radius:12px;padding:15px;background:var(--panel2);color:var(--text);cursor:pointer;margin:0}.flow-choice input{width:auto;margin:0 7px 0 0}.flow-choice b{font-size:14px}.flow-choice small{display:block;color:var(--muted);margin:5px 0 0 25px}.money-in{color:var(--good)}.money-out{color:var(--warn)}
@media(max-width:1150px){.offer-items-head{display:none}.offer-item{grid-template-columns:2fr 1fr 1fr}.offer-item textarea{grid-column:1/-1}.offer-item .lineTotal{text-align:left}}
@media(max-width:760px){.flow-choice{grid-template-columns:1fr}.offer-item{grid-template-columns:1fr 1fr}.offer-item textarea{grid-column:1/-1}.filterbar{align-items:stretch}.filterbar label,.filterbar .btn{width:100%}}
