/* ==========================================================================
   MerckZeugkasten — stylesheet
   Recreated from the MerckZeugkasten.dc.html design export (inline styles
   converted to classes so :hover / :focus states are real CSS).
   ========================================================================== */

/* Merck-Hausschrift für Überschriften und markante Stellen */
@font-face{
  font-family:'Merck';
  src:url('../assets/fonts/MerckRegular.ttf') format('truetype');
  font-weight:400 700;
  font-display:swap;
}

:root{
  /* Markenfarben nach Design-Sheet: Violett/Teal (Pink/Gelb als Akzente) */
  --primary:#503291; --primary-dark:#3F2775;
  --accent:#2DBECD; --accent-light:#96D7D2;
  --pink:#EB3C96; --yellow:#FFC832; --ink:#1A1F36;
  --bg:#F1F3F6; --text:#1C1C1C; --border:#EAECF0;
  --muted:#6B7280; --muted-2:#9CA3AF;
}

*{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;}
body{font-family:'DM Sans',system-ui,sans-serif;background:var(--bg);color:var(--text);}
input,select,textarea,button{font-family:inherit;}
button{border:none;background:none;cursor:pointer;}
a{color:inherit;}
::-webkit-scrollbar{width:5px;height:5px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:#D1D5DB;border-radius:3px;}

@keyframes fadeUp{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}

.mono{font-family:'DM Mono',monospace;}

/* ---------------- Login ---------------- */
.login-screen{min-height:100vh;background:linear-gradient(145deg,#12102a 0%,#1A1F36 100%);display:flex;align-items:center;justify-content:center;padding:24px;}
.login-wrap{width:100%;max-width:420px;animation:fadeUp .5s ease;}
.login-logo-row{text-align:center;margin-bottom:36px;}
.login-logo-inner{display:inline-flex;align-items:center;gap:14px;}
.login-logo-box{width:52px;height:52px;background:var(--primary);border-radius:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 32px rgba(80,50,145,.45);}
.login-title{text-align:left;}
.login-title .name{font-family:'Merck','DM Sans',sans-serif;font-size:24px;font-weight:400;color:#fff;letter-spacing:.2px;}
.login-title .name span{color:var(--accent);}
.login-title .sub{font-size:12px;color:rgba(255,255,255,.4);margin-top:2px;letter-spacing:.3px;}
.login-card{background:#fff;border-radius:20px;padding:40px;box-shadow:0 24px 64px rgba(0,0,0,.4);}
.login-card h2{font-size:20px;font-weight:600;margin-bottom:6px;}
.login-card > p{font-size:14px;color:var(--muted);margin-bottom:28px;}
.field-group{margin-bottom:16px;}
.field-label{display:block;font-size:13px;font-weight:500;color:#374151;margin-bottom:6px;}
.text-input{width:100%;padding:11px 14px;border:1.5px solid #E5E7EB;border-radius:9px;font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s;}
.text-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(80,50,145,.08);}
.login-error{padding:10px 13px;background:#FEF2F2;border:1px solid #FECACA;border-radius:7px;font-size:13px;color:#DC2626;margin-top:10px;}
.btn-login{width:100%;padding:13px;background:var(--primary);color:#fff;border-radius:9px;font-size:15px;font-weight:600;cursor:pointer;margin-top:20px;transition:background .2s;}
.btn-login:hover{background:var(--primary-dark);}
.login-demo-hint{margin-top:22px;padding-top:18px;border-top:1px solid #F3F4F6;text-align:center;}
.login-demo-hint p{font-size:12px;color:var(--muted-2);}

/* ---------------- Gewerk-Hub (Zwischenscreen nach Login) ---------------- */
.hub-screen{min-height:100vh;background:linear-gradient(145deg,#12102a 0%,#1A1F36 100%);display:flex;align-items:center;justify-content:center;padding:32px 24px;}
.hub-wrap{width:100%;max-width:980px;animation:fadeUp .5s ease;}
.hub-top{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:40px;}
.hub-user{display:flex;align-items:center;gap:12px;color:#C7CBE0;font-size:13.5px;}
.hub-user .btn-mini{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.25);}
.hub-user .btn-mini:hover{background:rgba(255,255,255,.2);}
.hub-frage{color:#fff;font-size:24px;font-weight:600;margin-bottom:24px;}
.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;}
.hub-card{background:#fff;border-radius:18px;padding:26px;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease;box-shadow:0 12px 40px rgba(0,0,0,.35);}
.hub-card:hover{transform:translateY(-4px);box-shadow:0 20px 56px rgba(0,0,0,.45);}
.hub-card.disabled{cursor:default;opacity:.75;background:rgba(255,255,255,.92);}
.hub-card.disabled:hover{transform:none;box-shadow:0 12px 40px rgba(0,0,0,.35);}
.hub-card-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:26px;color:#fff;margin-bottom:16px;}
.hub-card-titel{font-size:19px;font-weight:700;}
.hub-card-sub{font-size:12.5px;color:var(--muted);margin-bottom:10px;}
.hub-card-desc{font-size:13px;color:var(--muted);line-height:1.55;min-height:60px;}
.hub-card-cta{margin-top:14px;font-size:13.5px;font-weight:600;color:var(--primary);display:flex;align-items:center;gap:5px;}
.hub-badge{font-size:11.5px;font-weight:600;color:#92400E;background:#FEF3C7;padding:3px 10px;border-radius:999px;}
.hub-back{margin-top:12px;font-size:12px;color:var(--muted);cursor:pointer;}
.hub-back:hover{color:var(--primary);}

/* ---------------- App shell ---------------- */
.app-shell{display:flex;height:100vh;overflow:hidden;animation:fadeIn .3s ease;}
.sidebar{width:252px;min-width:252px;background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;}
.brand-block{padding:20px 18px 16px;border-bottom:1px solid #F3F4F6;}
.sidebar-search{position:relative;margin:14px 14px 4px;}
.sidebar-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);pointer-events:none;}
.sidebar-search-input{width:100%;padding:9px 10px 9px 32px;border:1.5px solid #E5E7EB;border-radius:9px;font-size:13px;outline:none;background:#F8F9FA;transition:border-color .15s,background .15s;}
.sidebar-search-input:focus{border-color:var(--primary);background:#fff;}
.brand-row{display:flex;align-items:center;gap:10px;}
.brand-box{width:36px;height:36px;background:var(--primary);border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.brand-name{font-family:'Merck','DM Sans',sans-serif;font-size:13px;font-weight:400;letter-spacing:0;white-space:nowrap;color:var(--primary);}
.brand-name span{color:var(--accent);}
.brand-sub{font-size:11px;color:var(--muted-2);margin-top:1px;}
nav.nav{flex:1;padding:10px 8px;overflow-y:auto;}
.nav-section-label{padding:12px 11px 5px;font-size:10.5px;font-weight:600;color:var(--muted-2);text-transform:uppercase;letter-spacing:.7px;}
.nav-item{display:flex;align-items:center;gap:9px;padding:9px 11px;border-radius:8px;cursor:pointer;margin-bottom:2px;font-size:14px;font-weight:400;color:#4B5563;transition:background .15s;background:transparent;}
.nav-item:hover{background:#F9FAFB;}
.nav-item.active{background:#EFEBF7;color:var(--primary);font-weight:600;}
.nav-item svg{flex-shrink:0;}
.nav-item.external{justify-content:space-between;}
.user-bar{padding:14px 16px;border-top:1px solid #F3F4F6;}
.user-bar-row{display:flex;align-items:center;gap:9px;}
.user-avatar{width:32px;height:32px;background:linear-gradient(135deg,var(--accent),var(--accent-light));border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.user-avatar span{font-size:12px;font-weight:700;color:#fff;}
.user-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.user-role{font-size:11px;color:var(--muted-2);}
.logout-btn{cursor:pointer;color:var(--muted-2);padding:4px;display:flex;}
.logout-btn:hover{color:var(--primary);}

.main{flex:1;overflow-y:auto;background:var(--bg);}
.page{padding:36px;animation:fadeUp .3s ease;}
.page-head{margin-bottom:28px;}
.page-head.large{margin-bottom:32px;}
.page-head h1{font-family:'Merck','DM Sans',sans-serif;font-size:24px;font-weight:400;letter-spacing:.2px;margin-bottom:6px;}
.page-head.large h1{font-size:28px;}
.page-head p{font-size:15px;color:var(--muted);}

/* ---------------- Filter chips ---------------- */
.chip-row{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap;}
.chip{padding:7px 16px;border-radius:20px;cursor:pointer;font-size:13px;font-weight:500;border:1.5px solid #E5E7EB;background:#fff;color:#374151;transition:all .15s;}
.chip.active{background:var(--primary);color:#fff;border-color:var(--primary);}

/* ---------------- Dashboard cards ---------------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px;margin-bottom:32px;}
.tool-card{background:#fff;border-radius:14px;padding:24px;box-shadow:0 1px 4px rgba(0,0,0,.06);cursor:pointer;border:1px solid var(--border);transition:all .2s;}
.tool-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.1);transform:translateY(-2px);}
.tool-icon{width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;overflow:hidden;line-height:1;font-size:20px;}
.tool-card h3{font-size:16px;font-weight:600;margin-bottom:5px;}
.tool-card p{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:14px;}
.tool-count{font-size:13px;font-weight:500;display:flex;align-items:center;gap:4px;}

.onboard-banner{background:linear-gradient(130deg,#1C1C2E 0%,#2D1450 100%);border-radius:16px;padding:28px 32px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.onboard-banner .eyebrow{font-size:11px;font-weight:600;color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;}
.onboard-banner h3{font-size:20px;font-weight:700;letter-spacing:-.4px;margin-bottom:8px;}
.onboard-banner p{font-size:14px;color:rgba(255,255,255,.6);line-height:1.55;max-width:480px;}
.onboard-actions{display:flex;gap:10px;flex-shrink:0;}
.onboard-btn{padding:10px 18px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s;}
.onboard-btn:hover{background:rgba(255,255,255,.18);}
.onboard-btn.primary{background:var(--primary);border:none;font-weight:600;}
.onboard-btn.primary:hover{background:var(--primary-dark);}

/* ---------------- Rechner list ---------------- */
.rechner-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;}
.rechner-card{background:#fff;border-radius:13px;padding:22px;box-shadow:0 1px 3px rgba(0,0,0,.06);cursor:pointer;border:1px solid var(--border);transition:all .2s;}
.rechner-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.1);transform:translateY(-1px);}
.rechner-card-top{display:flex;align-items:flex-start;gap:14px;margin-bottom:14px;}
.rechner-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:20px;overflow:hidden;line-height:1;}
.rechner-card-title{font-size:15px;font-weight:600;margin-bottom:4px;}
.rechner-card-desc{font-size:13px;color:var(--muted);line-height:1.4;}
.rechner-card-foot{display:flex;align-items:center;justify-content:space-between;}
.tag{font-size:12px;font-weight:500;padding:3px 10px;border-radius:10px;}
.open-link{font-size:13px;color:var(--muted-2);display:flex;align-items:center;gap:3px;}

/* ---------------- Rechner detail ---------------- */
.breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:22px;font-size:14px;color:var(--muted);}
.breadcrumb .crumb{cursor:pointer;display:flex;align-items:center;gap:3px;transition:color .15s;}
.breadcrumb .crumb:hover{color:var(--primary);}
.breadcrumb .sep{color:#D1D5DB;}
.breadcrumb .current{color:var(--text);font-weight:500;}
.calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
@media (max-width:900px){.calc-grid{grid-template-columns:1fr;}}
.ref-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:22px;margin-top:22px;align-items:start;}
.see-also-list{display:flex;flex-wrap:wrap;gap:10px;}
.see-also-chip{display:flex;align-items:center;gap:6px;padding:9px 14px;background:#F8F9FA;border:1px solid var(--border);border-radius:20px;font-size:13px;font-weight:500;color:#374151;cursor:pointer;transition:all .15s;}
.see-also-chip:hover{background:#F3F4F6;border-color:#D1D5DB;}
.see-also-chip svg{flex-shrink:0;color:var(--muted-2);}
.panel{background:#fff;border-radius:14px;padding:28px;box-shadow:0 1px 3px rgba(0,0,0,.06);}
.panel h3{font-size:15px;font-weight:600;margin-bottom:20px;}
.panel-sub{margin-bottom:16px;}
.field-hint{font-size:12px;color:var(--muted-2);margin-top:3px;}
.section-label{font-size:11px;font-weight:600;color:var(--muted-2);text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.note-box{padding:13px;border-radius:8px;font-size:12px;line-height:1.55;}
.note-box.amber{background:#FFF8E7;border:1px solid #FCD34D;color:#92400E;}
.note-box.teal{background:#F0FFFE;border:1px solid #A7F3D0;color:#065F46;}
.note-box.purple{background:#EFEBF7;border:1px solid #DDD6FE;color:#5B21B6;}
.note-box.indigo{background:#EEF2FF;border:1px solid #C7D2FE;color:#3730A3;}
.note-box.red{background:#FEF2F2;border:1px solid #FECACA;color:#991B1B;}

.result-hero{border-radius:12px;padding:24px;color:#fff;text-align:center;margin-bottom:18px;}
.result-hero .label{font-size:13px;font-weight:500;opacity:.8;margin-bottom:6px;}
.result-hero .value{font-size:54px;font-weight:700;letter-spacing:-2px;line-height:1;}
.result-hero .value.md{font-size:48px;}
.result-hero .sub{font-size:13px;opacity:.75;margin-top:5px;}

.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.stat-box{padding:13px;background:#F8F9FA;border-radius:8px;}
.stat-box .k{font-size:10.5px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px;}
.stat-box .v{font-size:20px;font-weight:700;}
.stat-box .v .unit{font-size:12px;font-weight:400;color:var(--muted);}
.stat-box .status{font-size:13px;font-weight:600;}

.ref-panel{background:#fff;border-radius:14px;padding:20px;box-shadow:0 1px 3px rgba(0,0,0,.06);}
.ref-title{font-size:11.5px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;}
table.ref-table{width:100%;border-collapse:collapse;font-size:13px;}
.ref-table thead tr{border-bottom:2px solid #F0F0F0;}
.ref-table th{text-align:left;padding:5px 6px;color:var(--muted);font-weight:500;}
.ref-table th.r{text-align:right;}
.ref-table td{padding:6px 6px;border-bottom:1px solid #F8F9FA;color:#374151;}
.ref-table td.r{text-align:right;}

.share-bar{margin-bottom:10px;}
.share-row{display:flex;justify-content:space-between;font-size:12px;color:#374151;margin-bottom:4px;}
.share-track{height:7px;background:#E5E7EB;border-radius:4px;overflow:hidden;}
.share-fill{height:100%;border-radius:4px;}

/* ---------------- Normen / Checklisten / Vorlagen / Tabellen ---------------- */
.list-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.06);}
.list-row{display:flex;align-items:center;gap:16px;padding:18px 22px;border-bottom:1px solid #F3F4F6;transition:background .15s;}
.list-row:last-child{border-bottom:none;}
.list-row:hover{background:#FAFAFA;}
.doc-icon{width:42px;height:42px;border-radius:10px;background:#EFF8FF;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.doc-title-row{display:flex;align-items:center;gap:8px;margin-bottom:3px;}
.doc-title-row .nr{font-size:14px;font-weight:600;}
.doc-desc{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.doc-year{font-size:12px;color:var(--muted-2);margin-bottom:5px;}
.doc-link{font-size:12px;font-weight:500;color:var(--accent);cursor:pointer;display:flex;align-items:center;gap:3px;}
.doc-link:hover{opacity:.7;}
.info-banner{margin-top:18px;padding:14px 18px;background:#FFF8E7;border:1px solid #FCD34D;border-radius:10px;font-size:13px;color:#92400E;line-height:1.5;}

.checklist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;}
.tabellen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;}
.simple-card{background:#fff;border-radius:13px;padding:22px;box-shadow:0 1px 3px rgba(0,0,0,.06);border:1px solid var(--border);transition:all .2s;cursor:pointer;}
.simple-card:hover{box-shadow:0 6px 18px rgba(0,0,0,.1);transform:translateY(-1px);}
.simple-card-top{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.simple-card-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.simple-card-title{font-size:15px;font-weight:600;margin-bottom:2px;}
.simple-card-sub{font-size:12px;color:var(--muted-2);}
.simple-card-foot{display:flex;align-items:center;justify-content:space-between;}
.action-link{font-size:13px;font-weight:500;cursor:pointer;}

/* ---------------- Glossar ---------------- */
.search-wrap{position:relative;margin-bottom:20px;}
.search-wrap svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);pointer-events:none;}
.search-input{width:100%;padding:12px 14px 12px 42px;border:1.5px solid #E5E7EB;border-radius:10px;font-size:14px;outline:none;background:#fff;}
.search-input:focus{border-color:#F59E0B;}
.glossar-count{font-size:13px;color:var(--muted-2);margin-bottom:16px;}
.glossar-list{display:flex;flex-direction:column;gap:8px;}
.glossar-item{background:#fff;border-radius:12px;padding:20px 22px;box-shadow:0 1px 2px rgba(0,0,0,.05);border:1px solid #F0F0F0;transition:all .15s;}
.glossar-item:hover{border-color:#E5E7EB;box-shadow:0 2px 8px rgba(0,0,0,.08);}
.glossar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:7px;}
.glossar-head h3{font-size:15px;font-weight:600;}
.glossar-def{font-size:13px;color:var(--muted);line-height:1.6;}

/* ---------------- Forms ---------------- */
.num-input,.select-input{width:100%;padding:10px 12px;border:1.5px solid #E5E7EB;border-radius:8px;font-size:14px;outline:none;background:#fff;}

/* ---------------- PDF-Export (Berechnungsbericht) ---------------- */
.btn-pdf{padding:10px 16px;background:#fff;color:var(--primary);border:1.5px solid var(--primary);border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s;flex-shrink:0;}
.btn-pdf:hover{background:var(--primary);color:#fff;}

body.pdf-report{background:#fff;padding:0;margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:var(--text);-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.pdf-report *{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.pdf-report .pdf-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px;border-bottom:3px solid var(--primary);margin-bottom:20px;}
.pdf-report .pdf-brand{display:flex;align-items:center;gap:12px;}
.pdf-report .pdf-logo{width:38px;height:38px;background:var(--primary);border-radius:9px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;}
.pdf-report .pdf-brand-name{font-family:'Merck','DM Sans',sans-serif;font-size:18px;font-weight:400;}
.pdf-report .pdf-brand-name span{color:var(--accent);}
.pdf-report .pdf-brand-sub{font-size:11px;color:var(--muted);}
.pdf-report .pdf-doctype{font-size:13px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;}
.pdf-report .pdf-title{font-family:'Merck','DM Sans',sans-serif;font-size:22px;font-weight:400;margin-bottom:4px;}
.pdf-report .pdf-desc{font-size:12.5px;color:var(--muted);line-height:1.5;margin-bottom:8px;}
.pdf-report .pdf-meta{font-size:12px;color:var(--muted);padding:8px 12px;background:#F8F9FA;border-radius:7px;margin-bottom:20px;}
.pdf-report .pdf-section-label{font-size:12px;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:.08em;margin:18px 0 10px;}
.pdf-report .panel{background:#fff;border:1px solid #E5E7EB;border-radius:10px;padding:18px;box-shadow:none;margin-bottom:12px;page-break-inside:avoid;}
.pdf-report .panel h3{font-size:14px;margin-bottom:12px;}
.pdf-report .print-val{display:inline-block;padding:4px 10px;background:#F3F4F6;border-radius:6px;font-size:13px;font-weight:600;font-family:'SF Mono','Cascadia Mono',Consolas,monospace;margin-top:2px;}
.pdf-report .field-group{margin-bottom:12px;}
.pdf-report .field-label{display:block;font-size:11.5px;font-weight:600;color:var(--muted);margin-bottom:3px;}
.pdf-report .field-hint{display:none;}
.pdf-report .note-box{page-break-inside:avoid;}
.pdf-report .result-hero{page-break-inside:avoid;}
.pdf-report .pdf-footer{margin-top:26px;padding-top:12px;border-top:1px solid #E5E7EB;font-size:10.5px;color:var(--muted-2);line-height:1.5;}
@media print{
  .pdf-report{padding:0;}
  @page{size:A4;margin:14mm 13mm;}
}

/* ---------------- Eingabe-Validierung (Warnbänder) ---------------- */
.num-input.input-warn{border-color:#F59E0B;background:#FFFBEB;}
.num-input.input-warn:focus{border-color:#D97706;}
.num-input.input-err{border-color:#E61E50;background:#FFF5F5;}
.num-input.input-err:focus{border-color:#C41442;}
.field-warn-msg{font-size:11.5px;margin-top:4px;color:#B45309;line-height:1.4;}
.field-warn-msg.err{color:#E61E50;font-weight:600;}

/* ---------------- Externer Tool-Absprung (z. B. Wilo-Schnellauslegung) ---------------- */
.btn-extern{display:inline-block;padding:10px 14px;background:#F0FFF4;color:#149B5F;border:1.5px solid #149B5F;border-radius:9px;font-size:13px;font-weight:600;text-decoration:none;line-height:1.4;transition:all .15s;}
.btn-extern:hover{background:#149B5F;color:#fff;}
.pdf-report .btn-extern{display:none;}
.pdf-report .btn-extern + .field-hint{display:none;}

/* ---------------- Logo (assets/logo.svg) ---------------- */
.brand-logo-img{width:42px;height:42px;flex-shrink:0;}
.login-logo-img{width:64px;height:64px;flex-shrink:0;}
.pdf-report .pdf-logo-img{width:44px;height:44px;}

/* ---------------- Buttons (Zusatzmodule) ---------------- */
.btn-primaer{padding:10px 16px;background:var(--primary);color:#fff;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s;}
.btn-primaer:hover{background:var(--primary-dark);}
.btn-sekundaer{padding:10px 16px;background:#fff;color:var(--primary);border:1.5px solid var(--primary);border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s;}
.btn-sekundaer:hover{background:var(--primary);color:#fff;}
.btn-mini{padding:5px 11px;background:#F8F9FA;border:1px solid var(--border);border-radius:7px;font-size:12px;font-weight:500;color:#374151;cursor:pointer;transition:all .15s;}
.btn-mini:hover{background:#F3F4F6;border-color:#D1D5DB;}
.btn-mini.rot{color:#C41442;}
.btn-mini.rot:hover{background:#FFF5F5;border-color:#FECACA;}

/* ---------------- Energie & CO₂ ---------------- */
.energie-input{padding:7px 10px;font-size:13px;}
.energie-platzhalter-tag{display:inline-block;padding:1px 8px;border-radius:9px;background:#FFF8E7;border:1px solid #FCD34D;color:#92400E;font-size:10.5px;font-weight:600;vertical-align:2px;margin-left:4px;}

/* ---------------- Fremdfirmen-Kartei ---------------- */
.ff-firma-kopf{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;}
.ff-firma-name{font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.ff-firma-meta{font-size:12.5px;color:var(--muted);margin-top:4px;}
.ff-firma-meta a{color:var(--accent);text-decoration:none;}
.ff-taetigkeiten{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;}
.ff-taetigkeit{padding:3px 11px;border-radius:12px;background:#EFEBF7;color:var(--primary);font-size:12px;font-weight:500;}
.visitenkarten-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:6px;}
.visitenkarte{background:linear-gradient(150deg,#FDFDFE 0%,#F5F6FA 100%);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:0 1px 3px rgba(0,0,0,.05);}
.visitenkarte-kopf{display:flex;align-items:center;gap:11px;margin-bottom:10px;}
.visitenkarte-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--accent));display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.visitenkarte-avatar span{font-size:13px;font-weight:700;color:#fff;}
.visitenkarte-foto{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0;border:1px solid var(--border);}
.visitenkarte-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.visitenkarte-funktion{font-size:11.5px;color:var(--muted);}
.visitenkarte-firma{font-size:10.5px;font-weight:600;color:var(--muted-2);text-transform:uppercase;letter-spacing:.5px;border-top:1px solid var(--border);padding-top:8px;margin-bottom:6px;}
.visitenkarte-zeilen{font-size:12.5px;color:#374151;line-height:1.7;}
.visitenkarte-zeilen a{color:inherit;text-decoration:none;}
.visitenkarte-zeilen a:hover{color:var(--primary);}
.visitenkarte-aktionen{display:flex;gap:6px;margin-top:10px;}
.visitenkarte-neu{display:flex;align-items:center;justify-content:center;text-align:center;border:1.5px dashed #D1D5DB;background:none;color:var(--muted-2);font-size:13px;font-weight:500;cursor:pointer;min-height:120px;transition:all .15s;}
.visitenkarte-neu:hover{border-color:var(--primary);color:var(--primary);background:#FBFAFE;}

/* ---------------- LV-Rechner ---------------- */
.dropzone{border:2px dashed #C7CBD4;border-radius:14px;background:#FBFCFE;padding:36px 24px;text-align:center;transition:all .15s;}
.dropzone.aktiv{border-color:var(--primary);background:#F3EFFB;}
.dropzone-icon{font-size:30px;color:var(--primary);margin-bottom:8px;}
.dropzone-titel{font-size:16px;font-weight:600;margin-bottom:4px;}
.dropzone-sub{font-size:12.5px;color:var(--muted-2);}
.dropzone.kompakt{display:flex;align-items:center;gap:14px;padding:12px 18px;text-align:left;flex-wrap:wrap;}
.dropzone.kompakt .dropzone-titel{margin-bottom:0;}
.lv-tabelle td{vertical-align:middle;}
.lv-zellinput{padding:6px 8px;font-size:13px;text-align:right;min-width:70px;}
.lv-ep-fehlt{border-color:#FCD34D;background:#FFFBEB;}
.lv-zeile-im-korb td{background:#F6F3FB;}
.lv-hinzu{color:var(--primary);border-color:#DDD6FE;white-space:nowrap;}
.lv-hinzu:hover{background:#EFEBF7;border-color:var(--primary);}
.lv-stepper{display:inline-flex;align-items:center;gap:5px;}
.lv-step-btn{width:26px;height:26px;border-radius:7px;border:1.5px solid var(--primary);background:#fff;color:var(--primary);font-size:15px;font-weight:700;line-height:1;cursor:pointer;transition:all .12s;flex-shrink:0;}
.lv-step-btn:hover{background:var(--primary);color:#fff;}
.lv-step-menge{min-width:30px;text-align:center;font-weight:600;font-size:13px;}
.lv-korb-menge{width:62px;padding:5px 6px;font-size:13px;text-align:center;}
.lv-korb-tabelle td{padding:9px 6px;}
.lv-summen-block{margin-top:16px;border-top:2px solid #F0F0F0;padding-top:12px;}
.lv-summen-zeile{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:#374151;padding:4px 0;}
.lv-summen-zeile.zwischensumme{border-top:1px solid var(--border);margin-top:4px;padding-top:8px;font-weight:600;}
.lv-pdf-tabelle{margin-bottom:8px;}
.lv-pdf-tabelle th{border-bottom:2px solid #E5E7EB;}
.lv-pdf-tabelle td{border-bottom:1px solid #F0F0F0;vertical-align:top;}
.lv-pdf-summen{max-width:420px;margin-left:auto;}
.lv-pdf-summen tr.zwischensumme td{border-top:2px solid #E5E7EB;}
.lv-pdf-summen tr.gesamt td{border-top:2px solid var(--primary);border-bottom:none;font-size:15px;padding-top:9px;}

/* ---------------- PDF-Bericht Fremdfirmen-Kartei ---------------- */
.pdf-ff-firma{page-break-inside:avoid;padding:10px 0 12px;border-bottom:1px solid #E5E7EB;}
.pdf-ff-firma:last-of-type{border-bottom:none;}
.pdf-ff-name{font-size:15px;font-weight:700;margin-bottom:2px;}
.pdf-ff-gewerk{font-size:11px;font-weight:600;color:var(--primary);border:1px solid var(--primary);border-radius:9px;padding:1px 8px;margin-left:6px;vertical-align:2px;}
.pdf-ff-meta{font-size:12px;color:#374151;line-height:1.5;margin-top:2px;}

/* ---------------- Azubi-Quiz ---------------- */
.quiz-stufen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;}
.quiz-stufe-karte{background:#fff;border-radius:14px;padding:24px;border:1px solid var(--border);box-shadow:0 1px 4px rgba(0,0,0,.06);cursor:pointer;transition:all .2s;}
.quiz-stufe-karte:hover{box-shadow:0 6px 20px rgba(0,0,0,.1);transform:translateY(-2px);}
.quiz-stufe-karte.gesperrt{opacity:.55;cursor:not-allowed;}
.quiz-stufe-karte.gesperrt:hover{box-shadow:0 1px 4px rgba(0,0,0,.06);transform:none;}
.quiz-stufe-nr{width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:700;margin-bottom:14px;}
.quiz-stufe-karte h3{font-size:16px;font-weight:600;margin-bottom:5px;}
.quiz-stufe-karte p{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:14px;}
.quiz-stufe-fuss{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;}
.quiz-best{font-size:12.5px;font-weight:600;}
.quiz-panel{max-width:760px;margin:0 auto;}
.quiz-kopf{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.quiz-fortschritt{font-size:12.5px;color:var(--muted);font-weight:500;}
.quiz-balken{height:6px;background:#F0F0F3;border-radius:3px;overflow:hidden;margin-bottom:22px;}
.quiz-balken-fuellung{height:100%;border-radius:3px;transition:width .3s ease;}
.quiz-frage{font-size:17px;font-weight:600;line-height:1.5;margin-bottom:18px;}
.quiz-antworten{display:flex;flex-direction:column;gap:9px;}
.quiz-antwort{display:flex;align-items:center;gap:12px;text-align:left;padding:13px 15px;border:1.5px solid #E5E7EB;border-radius:10px;background:#fff;font-size:14px;line-height:1.45;cursor:pointer;transition:all .15s;color:var(--text);}
.quiz-antwort:hover:not(:disabled){border-color:var(--primary);background:#FBFAFE;}
.quiz-antwort:disabled{cursor:default;}
.quiz-antwort-buchstabe{width:26px;height:26px;border-radius:7px;background:#F3F4F6;display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:700;color:var(--muted);flex-shrink:0;}
.quiz-antwort.richtig{border-color:#149B5F;background:#F0FFF4;font-weight:600;}
.quiz-antwort.richtig .quiz-antwort-buchstabe{background:#149B5F;color:#fff;}
.quiz-antwort.falsch{border-color:#E61E50;background:#FFF5F5;}
.quiz-antwort.falsch .quiz-antwort-buchstabe{background:#E61E50;color:#fff;}
.quiz-antwort.inaktiv{opacity:.55;}

/* ---------------- Normen (hinterlegte Dokumente) ---------------- */
.norm-gruppe-label{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin:6px 2px 10px;}
.norm-gruppe-label span{color:var(--muted-2);font-weight:500;}
.btn-norm-dl{font-size:12.5px;font-weight:600;color:var(--primary);border:1.5px solid var(--primary);border-radius:8px;padding:6px 12px;text-decoration:none;white-space:nowrap;transition:all .15s;}
.btn-norm-dl:hover{background:var(--primary);color:#fff;}
.norm-row-leer{opacity:.62;}
.norm-nichthinterlegt{font-size:12px;color:var(--muted-2);font-style:italic;white-space:nowrap;}
.norm-amtlich{font-size:10.5px;font-weight:600;color:#149B5F;background:#F0FFF4;border:1px solid #A7F3D0;border-radius:9px;padding:1px 8px;}
.norm-quelle{font-size:10.5px;font-weight:600;color:#0F69AF;background:#EFF8FF;border:1px solid #BEE3F8;border-radius:9px;padding:1px 8px;white-space:nowrap;}
