@font-face { font-family:'Titillium Web'; src:url('/assets/fonts/titillium-400.woff2') format('woff2'); font-weight:400; }
@font-face { font-family:'Titillium Web'; src:url('/assets/fonts/titillium-600.woff2') format('woff2'); font-weight:600; }
@font-face { font-family:'Titillium Web'; src:url('/assets/fonts/titillium-700.woff2') format('woff2'); font-weight:700; }

:root {
  --kit-blue:        #274c90;
  --kit-blue-dark:   #1f3d7a;
  --kit-blue-light:  #f5f7ff;
  --kit-blue-border: #e0e8ff;
  --kit-dark:        #4c5261;
  --kit-grey:        #727a92;
  --kit-bg:          #f0f4ff;

  --kit-green:       #0d6926;
  --kit-green-bg:    #e6f4ea;
  --kit-orange:      #b26a00;
  --kit-orange-dark: #e07b00;
  --kit-orange-bg:   #fff8e1;
  --kit-red:         #c62828;
  --kit-red-bg:      #fdecea;
  --kit-yellow-bg:   #fff3cd;
  --kit-yellow-text: #856404;
}

/* Base */
body { font-family:'Titillium Web',sans-serif; background:var(--kit-bg); color:var(--kit-dark); }

/* Navbar */
.navbar { background:#fff !important; border-bottom:3px solid var(--kit-blue); }
.navbar-brand { color:var(--kit-blue) !important; font-weight:700; font-size:1.2rem; letter-spacing:.5px; }
.navbar-sub { color:var(--kit-grey); font-size:.8rem; }

/* Buttons */
.btn-primary { background:var(--kit-blue); border-color:var(--kit-blue); font-weight:600; }
.btn-primary:hover { background:var(--kit-blue-dark); border-color:var(--kit-blue-dark); }
.btn-outline-primary { color:var(--kit-blue); border-color:var(--kit-blue); }
.btn-outline-primary:hover { background:var(--kit-blue); color:#fff; }

/* Cards */
.card { border:0; box-shadow:0 2px 12px rgba(29,130,245,.08); }
.card-header { background:#fff; border-bottom:2px solid var(--kit-blue); font-weight:600; color:var(--kit-dark); }

/* Badges */
.badge-kit-green { background:var(--kit-green-bg); color:var(--kit-green); font-weight:700; }
.badge-kit-warn  { background:var(--kit-orange-bg); color:var(--kit-orange); font-weight:700; }
.badge-kit-red   { background:var(--kit-red-bg); color:var(--kit-red); font-weight:700; }

/* Table */
.score-cell { text-align:center; width:60px; }
.url-cell { max-width:240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.url-cell a { color:var(--kit-dark); text-decoration:none; font-weight:600; }
.url-cell a:hover { color:var(--kit-blue); }
.dsgvo-ok   { color:var(--kit-green); }
.dsgvo-fail { color:var(--kit-red); }
table.dataTable thead th { background:var(--kit-blue-light); color:var(--kit-dark); font-weight:600; border-bottom:2px solid var(--kit-blue); }
.hover-row:hover { background:var(--kit-blue-light); }

/* Modal */
.modal-header { background:var(--kit-blue); color:#fff; }
.modal-header .btn-close { filter:invert(1); }
.modal-title { font-weight:700; }
.section-title { color:var(--kit-blue); font-weight:700; font-size:.95rem; margin-top:1rem; border-bottom:1px solid var(--kit-blue-border); padding-bottom:4px; }

/* Score-Kreise */
.score-circle { width:72px; height:72px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.25rem; font-weight:700; margin:0 auto 4px; border:4px solid; }
.score-circle.green  { color:var(--kit-green);  border-color:var(--kit-green);       background:var(--kit-green-bg); }
.score-circle.orange { color:var(--kit-orange); border-color:var(--kit-orange-dark); background:var(--kit-orange-bg); }
.score-circle.red    { color:var(--kit-red);    border-color:var(--kit-red);         background:var(--kit-red-bg); }
.score-circle.grey   { color:#666; border-color:#ccc; background:#f5f5f5; }
.score-label { font-size:.72rem; color:var(--kit-grey); text-align:center; font-weight:600; }

/* Opportunities */
.opp-table td { padding:3px 8px; border-top:1px solid #eee; font-size:.8rem; }
.opp-toggle { cursor:pointer; user-select:none; }
.opp-toggle:hover { background:var(--kit-blue-light); }
.savings-badge { background:var(--kit-yellow-bg); color:var(--kit-yellow-text); font-size:.75rem; padding:2px 7px; border-radius:10px; font-weight:600; }
.savings-badge.red { background:var(--kit-red-bg); color:var(--kit-red); }

/* Audit-Abschnitte */
.audit-section { margin-bottom:1.2rem; }
.audit-item { border:1px solid var(--kit-blue-border); border-radius:6px; margin-bottom:6px; overflow:hidden; }
.audit-item-header { display:flex; align-items:center; gap:8px; padding:8px 12px; background:#fff; }
.audit-item.pass .audit-item-header { background:#f9fff9; }
.audit-item.fail .audit-item-header { background:#fffdf0; }
.audit-score-dot { width:12px; height:12px; border-radius:50%; flex-shrink:0; }
.dot-green  { background:var(--kit-green); }
.dot-orange { background:var(--kit-orange-dark); }
.dot-red    { background:var(--kit-red); }
.dot-grey   { background:#aaa; }

/* Modul-Status */
.mod-status-ok   { color:var(--kit-green); }
.mod-status-warn { color:var(--kit-orange); }
.mod-status-fail { color:var(--kit-red); }
.mod-status-info { color:#0d6efd; }
.mod-status-skip { color:#aaa; }

/* Paket-Auswahl */
.pkg-card { border:2px solid var(--kit-blue-border); border-radius:8px; cursor:pointer; transition:border-color .15s; }
.pkg-card.selected { border-color:var(--kit-blue); background:var(--kit-blue-light); }
.pkg-card:hover { border-color:#7a9fd4; }
.pkg-header { display:flex; align-items:center; gap:10px; padding:10px 14px; }
.pkg-name { font-weight:700; font-size:.9rem; flex-grow:1; }
.pkg-desc { font-size:.75rem; color:var(--kit-grey); }
.pkg-modules { padding:4px 14px 10px 38px; display:none; }
.pkg-modules.show { display:block; }
.pkg-module-item { font-size:.8rem; color:var(--kit-dark); padding:2px 0; }

/* Seiten-Popup */
.pages-link { color:var(--kit-dark); text-decoration:none; font-weight:600; cursor:pointer; }
.pages-link:hover { color:var(--kit-blue); }
.pages-link .page-count { font-size:.7rem; background:var(--kit-blue-border); color:var(--kit-blue); border-radius:10px; padding:1px 7px; margin-left:4px; font-weight:700; }
.crawl-progress { font-size:.8rem; }

/* Login */
.login-box { max-width:380px; margin:120px auto; }
.brand { color:var(--kit-blue); font-weight:700; font-size:1.4rem; }
.sub { color:var(--kit-grey); font-size:.85rem; }

/* Druck */
@media print {
  .navbar, .card:first-of-type, #pushBtn, [data-bs-dismiss], .btn-print-close,
  .modal-footer, .dataTables_wrapper { display:none !important; }
  .modal { position:static !important; display:block !important; }
  .modal-dialog { max-width:100% !important; margin:0; }
  .modal-content { border:0; box-shadow:none; }
  .opp-details { display:block !important; }
  body { background:#fff; }
}
