/* BauCockpit – Gestaltung: dunkelblau, weiss, dezentes Grau */
:root{
  --navy:#0F2A4A;--navy2:#18375C;--navy3:#23456E;--blue:#1F4E85;--blue2:#6E93C2;--blue3:#DCE6F3;
  --ink:#14202E;--ink2:#344257;--mute:#5B6675;--line:#E1E6ED;--line2:#EEF1F5;--bg:#F3F5F8;--card:#FFFFFF;--soft:#F6F9FD;
  --ok:#1E6B3C;--okbg:#E2F2E8;--warn:#6B2F06;--warnbg:#FDE3CF;--warnc:#B4510E;--bad:#B4231A;--badbg:#FDECEA;--info:#0F2A4A;--infobg:#DCE6F3;
  --r:12px;--font:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 var(--font)}
a{color:var(--navy)}a:hover{color:var(--blue)}
h1{margin:4px 0 0;font-size:26px;letter-spacing:-.02em;color:var(--navy)}
h2{font-size:17px;margin:4px 0 12px;color:var(--navy)}
h3{font-size:15px;margin:16px 0 8px}
hr{border:0;border-top:1px solid var(--line2);margin:16px 0}
.num{font-variant-numeric:tabular-nums}.mono{font-family:ui-monospace,"SF Mono",Consolas,monospace;font-size:13px;color:var(--ink2)}
.r{text-align:right}.strong{font-weight:600}.small{font-size:13px}.tiny{font-size:11px}.muted{color:var(--mute)}.hidden{display:none!important}
.pos{color:var(--ok)}.neg{color:var(--bad)}.warnc{color:var(--warnc)}.big{font-size:17px}
.strike{text-decoration:line-through;color:var(--mute)}
.flexsb{display:flex;justify-content:space-between}

/* Rahmen */
.shell{display:flex;min-height:100vh}
.side{flex:0 0 250px;background:var(--navy);padding:18px 12px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;overflow-y:auto}
.brand{display:flex;align-items:center;gap:10px;padding:4px 10px 18px;color:#fff;text-decoration:none;font-weight:700;font-size:18px}
.brand.dark{color:var(--navy);padding:0 0 12px}
.nav{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;border-radius:8px;color:#C9D4E3;text-decoration:none;font-size:14px}
.nav:hover{background:var(--navy2);color:#fff}
.nav.on{background:#fff;color:var(--navy);font-weight:600}
.navsep{margin-top:14px;border-top:1px solid var(--navy3);border-radius:0;padding-top:12px;min-height:52px}
.navbadge{margin-left:auto;background:var(--warnc);color:#fff;font-size:12px;font-weight:600;border-radius:10px;padding:1px 8px}
.sideuser{margin-top:auto;padding:14px 12px 4px;font-size:13px;color:#B9C7DA}.sideuser a{color:#fff}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.top{display:flex;align-items:center;gap:12px;padding:14px 28px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.proj{font-weight:600;color:var(--navy);white-space:nowrap}
.search{flex:1;max-width:520px;margin-left:auto}
.search input{width:100%;min-height:42px;border:1px solid #D5DCE5;border-radius:10px;padding:0 14px;font:inherit;background:var(--bg)}
.menubtn{display:none;cursor:pointer;color:var(--navy);padding:6px}
.navtoggle{position:absolute;left:-9999px}
.adminbar{background:var(--bad);color:#fff;padding:8px 28px;font-size:14px;font-weight:600}.adminbar a{color:#fff}
.content{padding:22px 28px 48px;display:flex;flex-direction:column;gap:18px;max-width:1500px;width:100%}
.foot{padding:12px 28px 24px;font-size:12px;color:var(--mute)}

/* Elemente */
.pagehead{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}
.pagehead>div:first-child{flex:1 1 320px}.pagehead .sub{font-size:13px;color:var(--mute)}
.pagehead.small h2{margin:0}
.actions,.actionsrow,.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.btn,.btn2,.btn-warn,.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;border-radius:10px;font:inherit;font-size:14px;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap}
.btn{background:var(--navy);color:#fff;border:0}.btn:hover{background:var(--blue);color:#fff}
.btn2{background:#fff;color:var(--navy);border:1px solid #C3CDDA}.btn2:hover{border-color:var(--navy)}
.btn-warn{background:#fff;color:#9A1F17;border:1px solid #E7B4AF}
.btn-danger{background:var(--bad);color:#fff;border:0}
.btn.big{width:100%;min-height:50px;font-size:16px}
.btn2.small,.btn-warn.small{min-height:36px;padding:0 12px;font-size:13px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 22px;min-width:0}
.card.nopad{padding:0}.pad{padding:14px 16px}
.tablecard{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow-x:auto;min-width:0}
.cardhead{display:flex;align-items:baseline;gap:12px;margin-bottom:10px}.cardhead h2{margin:0}.cardhead a{margin-left:auto;font-size:13px}.cardhead.pad{padding:14px 16px 4px}
.cols{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}
.grow0{flex:0 1 240px}.grow1{flex:1 1 340px;min-width:0}.grow2{flex:999 1 560px;min-width:0}
.stackcol{display:flex;flex-direction:column;gap:18px}
.flash,.alert{border-radius:12px;padding:12px 16px;font-size:14px;border:1px solid}
.flash.ok,.alert.ok{background:var(--okbg);border-color:#B9DEC6;color:var(--ok)}
.flash.warn,.alert.warn{background:#FFF4EC;border-color:#F4C9A6;color:var(--warn)}
.flash.bad,.alert.bad{background:var(--badbg);border-color:#F1B7B1;color:#7A1A12}
.flash.info,.alert.info{background:var(--soft);border-color:var(--blue3);color:var(--navy)}
.pill{display:inline-block;font-size:12px;font-weight:600;border-radius:6px;padding:3px 8px;white-space:nowrap;vertical-align:middle}
.pill.ok{color:var(--ok);background:var(--okbg)}.pill.warn{color:var(--warn);background:var(--warnbg)}.pill.bad{color:#fff;background:var(--bad)}.pill.neu{color:var(--ink2);background:#E6EBF2}.pill.info{color:var(--info);background:var(--infobg)}

.kpis{display:grid;gap:12px}.k3{grid-template-columns:repeat(3,minmax(0,1fr))}.k4{grid-template-columns:repeat(4,minmax(0,1fr))}.k5{grid-template-columns:repeat(5,minmax(0,1fr))}
.kpis.inner{margin:12px 0}
.kpi{display:flex;flex-direction:column;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;text-decoration:none;color:var(--ink);min-width:0}
a.kpi:hover{border-color:var(--blue2)}
.kpi.dark{background:var(--navy);border-color:var(--navy)}.kpi.dark .kl,.kpi.dark .ks{color:#B9C7DA}.kpi.dark .kv{color:#fff}
.kpi.soft{background:var(--soft);border:0}
.kl{font-size:13px;color:var(--mute)}.kv{font-size:24px;font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}.kv.sm{font-size:20px}.ks{font-size:12px;color:var(--mute)}
.kv.pos{color:var(--ok)}.kv.neg{color:var(--bad)}.kv.warnc{color:var(--warnc)}

.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--mute);margin-bottom:10px;align-items:center}
.sw{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}.sw.line{width:2px;height:14px;background:var(--ink)}
.barrow,.phase{display:grid;grid-template-columns:200px minmax(0,1fr) 140px;gap:14px;align-items:center;padding:10px 0;border-top:1px solid var(--line2)}
.bar{position:relative;height:18px;background:var(--bg);border-radius:4px}
.bar .b1{position:absolute;left:0;top:0;bottom:0;background:var(--navy);border-radius:4px 0 0 4px}
.bar .b2{position:absolute;top:0;bottom:0;background:var(--blue2)}
.bar .bm{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--ink)}
.br{text-align:right;font-size:13px}
.listrow,.firmrow,.adminrow{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--line2);text-decoration:none;color:var(--ink)}
.lr-main{flex:1 1 200px;min-width:0}.lr-main small{color:var(--mute)}
.firmrow{padding:12px 16px}.firmrow:hover{background:var(--soft)}.firmrow.sel{background:#EEF4FB;box-shadow:inset 4px 0 0 var(--navy)}
.av{width:38px;height:38px;border-radius:19px;background:var(--blue3);color:var(--navy);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}
.meter{height:10px;background:#E6EBF2;border-radius:5px;overflow:hidden;margin:6px 0 12px}.meter>div,.meter>span{display:block;height:100%;background:var(--navy);border-radius:5px}
.meter.thin{height:6px;margin:6px 0 0}.meter .badbar{background:var(--bad)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;gap:6px;align-items:center;min-height:36px;padding:0 12px;border:1px solid #D5DCE5;border-radius:18px;background:#fff;font-size:13px;text-decoration:none;color:var(--ink)}
.chip span{opacity:.7}.chip.sel{background:var(--navy);color:#fff;border-color:var(--navy)}
.accgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.acc{display:flex;flex-direction:column;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;text-decoration:none;color:var(--ink)}
.acc.sel{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy);background:var(--soft)}

/* Tabellen */
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{font-size:12px;font-weight:600;color:var(--mute);text-align:left;padding:10px 12px;background:#FAFBFC;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:10px 12px;border-bottom:1px solid var(--line2);vertical-align:middle}
.tbl th.r,.tbl td.r{text-align:right}
.tbl.dense td{padding:7px 10px;font-size:13px}
.tbl tr.chapter td{background:#F3F6FA;font-weight:700;color:var(--navy)}
.tbl tr.total td{border-top:2px solid var(--ink);font-weight:700;background:#FAFBFC}
.clickrow{cursor:pointer}.clickrow:hover td{background:var(--soft)}
.budgetin{width:120px;text-align:right;min-height:36px;border:1px solid #C3CDDA;border-radius:6px;padding:0 8px;font:inherit}
.cmpwrap{overflow-x:auto}.cmp td,.cmp th{min-width:170px;vertical-align:top}.cmp td.rl{min-width:170px;background:#FAFBFC;color:var(--mute);font-size:13px}
.cmp th.win{background:#EEF4FB;border-top:3px solid var(--navy)}
.sumtbl{width:100%;max-width:720px;border-collapse:collapse;font-size:14px;margin-bottom:12px}
.sumtbl td{padding:8px 0;border-top:1px solid var(--line2);vertical-align:top}.sumtbl tr.total td{border-top:2px solid var(--ink);font-weight:700}
.sumtbl td.r{width:140px}

/* Formulare */
.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.formgrid.boxed{background:var(--soft);border-radius:12px;padding:16px;margin:12px 0}
.fl{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--mute);min-width:0}
.fl.wide,.formgrid .wide,.formgrid fieldset{grid-column:1/-1}
.fl input,.fl select,.fl textarea,.filterbar input,.filterbar select,.in{min-height:44px;width:100%;border:1px solid #C3CDDA;border-radius:8px;padding:8px 12px;font:inherit;font-size:14px;color:var(--ink);background:#fff}
.fl select[multiple]{min-height:120px}
.fl textarea{min-height:72px;resize:vertical}
.fl input[readonly],.fl select:disabled{background:#F3F5F8;color:var(--ink2)}
.fl input:focus,.fl select:focus,.fl textarea:focus,.search input:focus{outline:2px solid var(--blue2);outline-offset:1px;border-color:var(--blue)}
.hint{font-size:12px;color:var(--mute);margin:4px 0 0}
.formactions{display:flex;flex-wrap:wrap;gap:10px;grid-column:1/-1;margin-top:4px}
.formactions.sticky{position:sticky;bottom:0;background:var(--bg);padding:12px 0}
.chk{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--ink);min-height:36px}.chk input{width:20px;height:20px}
fieldset{border:1px solid var(--line);border-radius:10px;padding:12px 14px}legend{font-size:13px;color:var(--mute);padding:0 6px}
.checkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:4px 16px}
.stack{display:flex;flex-direction:column;gap:12px}
.inline{display:inline-flex;gap:6px;align-items:center;margin:0}
.inlineform{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-top:12px}.inlineform .fl{flex:1 1 220px}
.filterbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.filterbar input,.filterbar select{width:auto;flex:1 1 180px}
.srcbadge:empty{display:none}
.srcbadge{font-size:11px;font-weight:600;border-radius:5px;padding:1px 6px;margin-left:4px;background:#E6EBF2;color:var(--ink2)}
.srcbadge.qr{background:var(--infobg);color:var(--navy)}.srcbadge.tx{background:#E6EBF2;color:var(--ink2)}.srcbadge.sg{background:var(--warnbg);color:var(--warn)}
details.box,details.markbox,details.confirmbox{margin:10px 0}
details>summary{list-style:none;cursor:pointer}details>summary::-webkit-details-marker{display:none}
details.markbox>summary{font-size:13px;color:#9A1F17;display:inline-block;padding:6px 0}
details.markbox[open]{background:#FFF8F4;border:1px solid #F4C9A6;border-radius:10px;padding:10px 12px}
details.markbox form{display:flex;flex-direction:column;gap:8px;max-width:420px}
details.markbox label{display:flex;flex-direction:column;gap:4px;font-size:13px}
details.markbox input{min-height:40px;border:1px solid #C3CDDA;border-radius:8px;padding:0 10px;font:inherit}
.dangerbox{background:#FDF1EF;border:1px solid #E7B4AF;border-radius:12px;padding:14px 16px;margin-top:10px;font-size:14px}
.dangerbox ul{margin:6px 0 4px;padding-left:20px}
.adminrow .confirmbox{flex-basis:100%}
.tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid #D5DCE5}
.tab{min-height:44px;display:flex;align-items:center;gap:6px;padding:0 16px;font-size:14px;color:var(--ink2);text-decoration:none;border-bottom:3px solid transparent}
.tab.sel{color:var(--navy);font-weight:600;border-bottom-color:var(--navy)}
.cnt{font-size:12px;background:#E6EBF2;border-radius:10px;padding:1px 7px;color:var(--ink2)}
.subtabs{display:flex;flex-direction:column;gap:4px}
.subtab{display:flex;align-items:center;min-height:44px;padding:0 14px;border-radius:10px;text-decoration:none;color:var(--ink2);font-size:14px}
.subtab:hover{background:#E9EEF5}.subtab.sel{background:#fff;color:var(--navy);font-weight:600;box-shadow:0 0 0 1px #D5DCE5}
.subtab.danger{color:#9A1F17;font-weight:600;border-top:1px solid #D5DCE5;border-radius:0;margin-top:8px}
.linkcard{display:block;text-decoration:none;color:var(--ink)}.linkcard:hover{border-color:var(--blue2)}
.dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0 0 12px}.dl dt{color:var(--mute)}.dl dd{margin:0}
.notebox{background:#FAFBFC;border-radius:10px;padding:12px 14px;margin-top:12px}
.docframe{width:100%;height:560px;border:1px solid var(--line);border-radius:8px;margin:8px 0 16px;background:#fff}.docframe.tall{height:78vh}
.docimg{max-width:100%;border:1px solid var(--line);border-radius:8px;margin:8px 0}
.doclink{display:inline-flex;gap:8px;align-items:center;padding:4px 0;text-decoration:none;font-size:14px}
.doclink .ext{font-size:11px;font-weight:700;color:#9A1F17;background:#FBE4E2;border-radius:5px;padding:2px 6px}
.pager{display:flex;gap:16px;justify-content:center;font-size:14px}
.stackbar{display:flex;height:24px;border-radius:6px;overflow:hidden;background:#E6EBF2;margin:6px 0}
.repgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.rep{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.rep .row{margin-top:auto}
ul.plain{padding-left:18px;line-height:1.55}ul.plain li{margin-bottom:8px}

/* Rechnungsimport */
.dropzone{display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;text-align:center;border:2px dashed #A9B7C9;border-radius:14px;background:#FAFBFC;padding:28px 16px;cursor:pointer}
.dropzone.drag{border-color:var(--navy);background:var(--soft)}
.dropzone input{max-width:100%}
.importstatus{font-size:14px;margin:12px 0}
.importstatus .ok{color:var(--ok)}.importstatus .warn{color:var(--warnc)}
.pdfpreview canvas,.pdfpreview img{width:100%;border:1px solid var(--line);border-radius:6px;margin-bottom:8px}
.newcompany{display:grid;grid-template-columns:1fr 1fr;gap:12px;background:var(--soft);border-radius:10px;padding:12px}

/* Login */
.loginpage{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:16px}
.login{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;width:100%;max-width:420px;display:flex;flex-direction:column;gap:14px}
.login h1{margin:0}

/* Handy */
@media (max-width:1100px){.k5{grid-template-columns:repeat(3,minmax(0,1fr))}.k4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){
  .side{position:fixed;left:0;top:0;bottom:0;z-index:20;transform:translateX(-100%);transition:transform .2s;box-shadow:0 0 30px rgba(0,0,0,.3)}
  .navtoggle:checked~.shell .side{transform:none}
  .menubtn{display:inline-flex}
  .top{padding:10px 14px;flex-wrap:wrap}.search{order:5;flex-basis:100%;max-width:none}
  .content{padding:16px 14px 40px}
  .formgrid{grid-template-columns:1fr}
  .barrow,.phase{grid-template-columns:1fr;gap:6px}.br{text-align:left}
  .k3,.k4,.k5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid3,.newcompany{grid-template-columns:1fr}
  .kv{font-size:20px}.kv.sm{font-size:17px}
  h1{font-size:22px}
  .tbl{font-size:13px}.tbl td,.tbl th{padding:8px}
}
@media print{.side,.top,.foot,.adminbar,.actions,.formactions,details{display:none!important}.content{padding:0}}
