/* Anwendung */
body.app{background:var(--bg)}
.shell{display:flex;min-height:100vh}
.side{width:280px;flex-shrink:0;background:var(--navy);color:#fff;display:flex;flex-direction:column;padding:16px;position:sticky;top:0;height:100vh;overflow-y:auto}
.side .brand{display:flex;flex-direction:column;gap:10px;padding:8px 8px 4px;text-decoration:none}
.side .brand img{height:40px;width:auto;align-self:flex-start}
.side .brand span{font-size:13px;font-weight:500;color:#d3dde5}
.side .ctx{margin-top:14px;border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.side .ctx b{font-size:14px;font-weight:500}
.side .ctx span{font-size:12px;color:#a9b8c4}
.side .cap{font-size:12px;letter-spacing:.1em;color:#8ea1b1;padding:16px 12px 6px;font-weight:500}
.side nav a{display:flex;align-items:center;gap:10px;min-height:36px;padding:4px 12px;border-radius:8px;text-decoration:none;color:#d3dde5;font-size:14px}
.side nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.side nav a[aria-current]{background:rgba(255,255,255,.1);color:#fff;font-weight:500}
.side nav a .num{width:22px;height:22px;border-radius:11px;border:1.5px solid #6f8394;color:#a9b8c4;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.side nav a .num.done{background:var(--tur);border-color:var(--tur);color:var(--navy)}
.side nav a[aria-current] .num:not(.done){border-color:#fff;color:#fff}
.side nav a .lbl{flex-grow:1}
.side nav a .req{font-size:10px;color:#8ea1b1;border:1px solid #44596b;border-radius:4px;padding:1px 5px}
.side nav a .opt{font-size:10px;color:#8ea1b1}
.side .grow{flex-grow:1;min-height:16px}
.side .who{background:rgba(255,255,255,.06);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:10px;font-size:12px;line-height:1.5;color:#c9d4dc}
.side .who .r{display:flex;gap:8px;align-items:flex-start}
.side .who .warn{color:#f3c77a}
.side .who a{color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:8px;min-height:36px;display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-size:13px}
.side .who a:hover{background:rgba(255,255,255,.06)}
.menu-btn{display:none}

main.main{flex-grow:1;min-width:0;padding:36px 48px 64px;display:flex;gap:28px;align-items:flex-start}
.col{flex-grow:1;min-width:0;display:flex;flex-direction:column;gap:24px;max-width:1080px}
.aside{width:340px;flex-shrink:0;display:flex;flex-direction:column;gap:20px;position:sticky;top:24px}
.vh{display:flex;flex-direction:column;gap:6px}
.vh .kick{font-size:14px;color:var(--mu)}
.vh h1{font-size:30px;font-weight:700;outline:none}
.vh p{font-size:17px;color:var(--mu);max-width:820px}
h2.h2{font-size:19px;font-weight:700}
.sub{font-size:14px;color:var(--mu)}
.stack{display:flex;flex-direction:column;gap:14px}
.row{display:flex;gap:16px;flex-wrap:wrap}
.row > .fld{flex:1;min-width:200px}
.row-btns{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.fld{display:flex;flex-direction:column;gap:6px;min-width:0}
.fld > span{font-size:13px;font-weight:500}
.fld em{font-style:normal;font-weight:400;color:var(--mu)}
.fld input,.fld select,.fld textarea{border:1px solid #cdd4da;border-radius:8px;background:#fff;font-size:15px;padding:10px 12px;min-height:44px;width:100%}
.fld textarea{line-height:1.55;resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--teal);outline:2px solid var(--tealbg)}
.fld small{font-size:12px;color:var(--mu);line-height:1.45}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg button{min-height:36px;padding:0 14px;font-size:14px;border-radius:7px;background:#fff;border:1px solid var(--line);cursor:pointer}
.seg button:hover{border-color:var(--teal)}
.seg button.on{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:500}
.tags{display:flex;gap:8px;flex-wrap:wrap}
.tags button{min-height:36px;padding:0 14px;display:inline-flex;align-items:center;gap:6px;font-size:14px;border-radius:18px;background:#fff;border:1px solid var(--line);cursor:pointer}
.tags button:hover{border-color:var(--teal)}
.tags button.on{background:var(--tealbg);border-color:var(--teal);color:var(--teal);font-weight:500}
.radio{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--line);background:#fff;border-radius:10px;padding:16px 18px;cursor:pointer;text-align:left;width:100%}
.radio:hover{border-color:var(--teal)}
.radio.on{border:2px solid var(--teal);background:#f7fbfb;padding:15px 17px}
.radio .dot{width:20px;height:20px;border-radius:10px;border:2px solid #9aa6b1;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;margin-top:1px}
.radio.on .dot{border-color:var(--teal)}
.radio.on .dot::after{content:'';width:10px;height:10px;border-radius:5px;background:var(--teal)}
.radio b{display:block;font-size:15px;font-weight:500}
.radio span.d{display:block;font-size:14px;color:var(--mu);line-height:1.5;margin-top:4px}
.chk{display:flex;gap:12px;align-items:flex-start;cursor:pointer;font-size:14px;line-height:1.45}
.chk input{width:20px;height:20px;margin:0;accent-color:var(--teal);flex-shrink:0}
.chk small{display:block;color:var(--mu);font-size:13px}

.kpis{background:#fff;border:1px solid var(--line);border-radius:12px;display:grid;grid-template-columns:repeat(4,1fr)}
.kpis > div{padding:18px 20px;display:flex;flex-direction:column;gap:6px}
.kpis > div + div{border-left:1px solid var(--line)}
.kpis .l{font-size:13px;color:var(--mu)}
.kpis .v{font-size:28px;font-weight:700;line-height:1.1}
.kpis .s{font-size:12px;color:var(--mu)}
.list{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.list > .lh{padding:16px 20px;display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:16px;font-weight:700}
.list > .li{display:flex;align-items:center;gap:16px;padding:14px 20px 14px 16px;border-top:1px solid var(--line);border-left:4px solid transparent}
.list > .li.now{border-left-color:var(--tur)}
.li .m{width:30px;height:30px;border-radius:15px;border:1.5px solid #9aa6b1;color:var(--mu);font-size:13px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.li .m.done{background:var(--teal);border-color:var(--teal);color:#fff}
.li .m.now{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:700}
.li .b{flex-grow:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.li .b > span:first-child{font-size:15px;font-weight:500;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.li .b > span + span{font-size:13px;color:var(--mu)}
.li a.go{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:500;text-decoration:none;white-space:nowrap}
.stepnav{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:20px;flex-wrap:wrap}

/* Schnell-Review */
.qtop{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:24px;padding:0 32px}
.qtop img{height:34px;width:auto}
.qtop .t{font-size:15px;font-weight:500;color:var(--mu)}
.qtop .sp{flex-grow:1}
.qtop .st{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--mu)}
.qwrap{display:flex;gap:40px;padding:40px 32px;align-items:flex-start;max-width:1440px;margin:0 auto}
.qnav{width:260px;flex-shrink:0;display:flex;flex-direction:column;position:sticky;top:24px}
.qnav a{display:flex;gap:12px;align-items:center;padding:8px 0;text-decoration:none;color:var(--mu);font-size:14px}
.qnav a .n{width:24px;height:24px;border-radius:12px;border:1.5px solid #b4bec7;font-size:12px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.qnav a.done{color:var(--navy)}.qnav a.done .n{background:var(--teal);border-color:var(--teal);color:#fff}
.qnav a[aria-current]{color:var(--navy);font-weight:700}.qnav a[aria-current] .n{background:var(--navy);border-color:var(--navy);color:#fff}
.bar{height:6px;border-radius:3px;background:#e8ecef;display:flex}.bar span{border-radius:3px;background:var(--teal)}
.qgroup{display:flex;flex-direction:column;gap:12px;padding:20px 0;border-top:1px solid var(--line)}
.qgroup > b{font-size:16px;font-weight:500}
.summary .it{display:flex;flex-direction:column;gap:2px;padding:9px 0;border-bottom:1px solid var(--line)}
.summary .it span:first-child{font-size:12px;color:var(--mu)}
.summary .it span:last-child{font-size:14px}
.summary .it .unk{color:var(--blue);font-weight:500}

/* Ergebnisse */
.fieldrow{display:flex;gap:20px;align-items:flex-start;padding:16px 20px;border-top:1px solid var(--line)}
.fieldrow .n{width:230px;flex-shrink:0;font-size:15px;font-weight:500}
.fieldrow .r{width:130px;flex-shrink:0}
.fieldrow .d{flex-grow:1;font-size:14px;line-height:1.5}
.pf{background:#fff;border:1px solid var(--line);border-radius:12px}
.pf.open{border:2px solid var(--teal)}
.pf > summary{display:flex;gap:16px;align-items:center;padding:16px 22px;cursor:pointer;list-style:none}
.pf > summary::-webkit-details-marker{display:none}
.pf > summary .t{flex-grow:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.pf > summary .n{font-size:16px;font-weight:700}
.pf > summary .d{font-size:14px;line-height:1.45;color:var(--mu)}
.pf > summary .c{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}
.pf > summary > svg{flex-shrink:0;color:var(--mu);transition:transform .15s}
.pf[open] > summary > svg{transform:rotate(180deg)}
.pf .in{padding:4px 22px 22px;display:flex;flex-direction:column;gap:4px}
.stmt{display:flex;flex-direction:column;gap:6px;padding:14px 0;border-top:1px solid var(--line)}
.stmt .top{display:flex;gap:12px;align-items:flex-start}
.stmt .top > span:first-child{flex-grow:1;display:flex;flex-direction:column;gap:3px}
.stmt .cat{font-size:12px;color:var(--mu)}
.stmt .tx{font-size:15px;font-weight:500;line-height:1.4}
.stmt .src{font-size:12px;color:var(--mu)}
.stmt details summary{font-size:13px;font-weight:500;color:var(--teal);cursor:pointer}
.kv{display:flex;gap:12px;font-size:13px;line-height:1.5;padding:4px 0}
.kv > span:first-child{width:170px;flex-shrink:0;color:var(--mu)}
.deriv{margin-top:8px;background:#fafbfc;border:1px solid var(--line);border-radius:8px;padding:10px 14px}
.cov{display:flex;flex-direction:column;gap:6px}
.cov .cr{display:flex;gap:4px;align-items:center}
.cov .cr > b{width:120px;flex-shrink:0;font-size:13px;font-weight:500}
.cov .cr > span{flex:1;min-width:0;height:32px;border-radius:6px;font-size:11px;display:inline-flex;align-items:center;justify-content:center}
.cov .ok{background:var(--tealbg);color:var(--teal)}
.cov .weak{background:var(--ambbg);color:var(--amb);font-weight:700;border:1px solid #e9c98d}
.cov .miss{background:#f0f2f4;border:1px dashed #c4ccd3;color:var(--mu)}
.cov .hd > span{background:none;height:auto;color:var(--mu);font-size:11px}
.linkbar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:#e8ecef}
.linkbar span:nth-child(1){background:var(--teal)}.linkbar span:nth-child(2){background:#e9b55c}.linkbar span:nth-child(3){background:#9aa6b1}
.stages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.stage{background:#fff;border:1px solid var(--line);border-top:4px solid #b4bec7;border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:8px}
.stage.ok{border-top-color:var(--teal)}.stage.fix{border-top-color:#e9b55c}
.stage b{font-size:15px}
.stage textarea{font-size:13px;min-height:110px}
.stage .src{font-size:11px;color:var(--mu)}
.drop{border:2px dashed #b4c2cc;border-radius:12px;background:#fff;padding:24px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.drop.over{border-color:var(--teal);background:#f7fbfb}
.imps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.imp{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:8px}
.imp .code{font-size:12px;font-weight:700;color:var(--teal);letter-spacing:.06em}
.imp b{font-size:16px;line-height:1.3}
.imp p{font-size:13px;line-height:1.5;color:var(--mu);flex-grow:1}
.file{display:flex;gap:16px;padding:16px 20px;border-top:1px solid var(--line);border-left:4px solid var(--teal)}
.file.warn{border-left-color:var(--amb)}.file.err{border-left-color:var(--red)}
.file .b{flex-grow:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.file .b > div{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.file ul{margin:0;padding-left:18px;font-size:13px;line-height:1.5}
.chip.amb{background:var(--ambbg);color:var(--amb)}.chip.red{background:var(--redbg);color:var(--red)}.chip.blue{background:var(--bluebg);color:var(--blue)}
.tl{display:flex;gap:14px}
.tl .d{display:flex;flex-direction:column;align-items:center}
.tl .d i{width:22px;height:22px;border-radius:11px;background:var(--teal);color:#fff;display:inline-flex;align-items:center;justify-content:center}
.tl .d s{width:2px;flex-grow:1;background:var(--line);margin:4px 0;text-decoration:none}
.tl .b{display:flex;flex-direction:column;gap:3px;padding-bottom:16px}
.tl .b b{font-size:14px;font-weight:500}
.tl .b span{font-size:13px}
.tl .b small{font-size:12px;color:var(--mu)}
.mail{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.mail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;background:#fafbfc;border-bottom:1px solid var(--line)}
.mail-head > span:first-child{display:flex;gap:10px;align-items:center;font-size:15px;font-weight:700}
.mail-head svg{color:var(--teal)}
.mail-body{padding:20px;display:flex;flex-direction:column;gap:14px}
.mail-status{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--mu)}
.mail-after{border-top:1px solid var(--line);padding-top:16px;display:flex;flex-direction:column;gap:10px}
.outs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.outs div{border:1px solid var(--line);border-radius:10px;padding:14px;font-size:13px;line-height:1.5;background:#fff}
.agenda .it{display:flex;gap:14px;padding:10px 0;border-top:1px solid var(--line)}
.agenda .it i{width:24px;height:24px;border-radius:12px;background:var(--tealbg);color:var(--teal);font-size:12px;font-weight:700;font-style:normal;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.agenda .it b{display:block;font-size:14px;font-weight:500}
.agenda .it span{font-size:13px;color:var(--mu)}
.dark-card{background:var(--navy);color:#fff;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:12px}
.dark-card p{color:#d3dde5;font-size:14px;line-height:1.55}
.dark-card a:not(.btn){color:var(--tur)}
.sheet{width:100%;max-width:840px;background:#fff;box-shadow:0 8px 30px rgba(10,31,47,.12);border-radius:4px;padding:48px 56px;align-self:center}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--navy);color:#fff;padding:12px 18px;border-radius:8px;font-size:14px;z-index:50;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.modal-bg{position:fixed;inset:0;background:rgba(10,31,47,.5);display:flex;align-items:center;justify-content:center;z-index:40;padding:16px}
.modal{background:#fff;border-radius:12px;max-width:640px;width:100%;max-height:90vh;overflow:auto;padding:28px;display:flex;flex-direction:column;gap:16px}
.modal h2{font-size:21px}
.start{max-width:1100px;margin:0 auto;padding:48px 32px 80px;display:flex;flex-direction:column;gap:24px}
.start .two{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.empty{color:var(--mu);font-size:14px;padding:16px 20px;border-top:1px solid var(--line)}

/* Dokumentansicht (Druck und Vorschau) */
.doc{font-family:var(--f);color:var(--navy);font-size:13px;line-height:1.5}
.doc .dh{font-size:11px;color:var(--mu);border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:18px}
.doc .dk{font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--teal)}
.doc h1{font-size:24px;font-weight:300;margin:6px 0 16px}
.doc h2{font-size:15px;font-weight:700;margin:18px 0 8px}
.doc p{margin:6px 0}.doc p.b{font-weight:700}.doc p.sm{font-size:11px;color:var(--mu)}
.doc .co{background:#f5f8f9;border-left:3px solid var(--tur);padding:10px 14px;margin:10px 0}
.doc table{width:100%;border-collapse:collapse;margin:6px 0 10px}
.doc th,.doc td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top;font-size:12px}
.doc thead th{background:#f2f5f7;font-weight:500}
.doc table.kv th{width:30%;background:#f2f5f7;font-weight:500}
.doc ul,.doc ol{margin:6px 0;padding-left:20px}
.doc .df{border-top:1px solid var(--line);margin-top:22px;padding-top:8px;font-size:10px;color:var(--mu)}
#print{display:none}
@media print{
  @page{size:A4;margin:16mm}
  body.printing > *:not(#print){display:none !important}
  body.printing #print{display:block}
  body.printing{background:#fff}
  .doc table{page-break-inside:auto}.doc tr{page-break-inside:avoid}
}

@media (max-width:1180px){
  main.main{flex-direction:column}
  .aside{width:100%;position:static}
  .stages,.imps{grid-template-columns:1fr 1fr}
  .outs{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  .shell{flex-direction:column}
  .side{width:100%;height:auto;position:static}
  .side nav,.side .cap,.side .grow{display:none}
  .side.open nav,.side.open .cap{display:block}
  .menu-btn{display:inline-flex;margin-top:10px}
  main.main{padding:24px 16px 48px}
  .kpis{grid-template-columns:1fr 1fr}
  .kpis > div:nth-child(3){border-left:0}
  .kpis > div:nth-child(n+3){border-top:1px solid var(--line)}
  .stages,.imps,.outs,.start .two{grid-template-columns:1fr}
  .fieldrow,.pf > summary{flex-wrap:wrap}
  .fieldrow .n{width:100%}
  .qwrap{flex-direction:column;padding:24px 16px}
  .qnav{width:100%;position:static}
  .qtop{padding:0 16px;gap:12px}
  .qtop .st{display:none}
  .sheet{padding:24px 18px}
  .kv{flex-direction:column;gap:2px}
}
.flex1{flex:1;min-width:260px}
.pad20{padding:20px}
.entry .meta svg,.sub svg{flex-shrink:0}
.nextbox{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit}
.nextbox:hover{border-color:var(--teal)}
.nextbox b{display:block;font-size:14px;font-weight:500}
.nextbox span span{font-size:12px;color:var(--mu)}
.side .who svg,.side nav svg{flex-shrink:0}
.srcsel > span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
main.main > .col{width:100%}
.cov{overflow-x:auto;padding-bottom:4px}
.cov .cr{min-width:620px}
.sheet{overflow-x:auto}
@media (max-width:860px){.aside{width:100%}.row > .fld{min-width:100%}.stepnav .btn{white-space:normal}.btn{white-space:normal;text-align:left}}
