:root{--bg:#ffffff;--fg:#111827;--muted:#6b7280;--border:#e5e7eb;--primary:#2563eb;--card:#f9fafb;--header:#f3f4f6}
*{box-sizing:border-box;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}
html,body{margin:0;height:100%;background:var(--bg);color:var(--fg)}
.topbar{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--header)}
h1{margin:0;font-size:18px;font-weight:700}
.badge{font-size:12px;color:#374151;border:1px solid var(--border);padding:2px 8px;border-radius:999px;margin-right:8px;background:#fff}
.badge.demo{background:#facc15;border-color:#facc15;color:#111}
.hdr-left{display:flex;align-items:center;gap:8px}
.hdr-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.btn,button{border:1px solid var(--border);background:#fff;padding:8px 12px;border-radius:10px;cursor:pointer}
.btn.primary,button.primary{background:var(--primary);border-color:var(--primary);color:#fff}
.container{max-width:1200px;margin:16px auto;padding:0 16px;display:grid;grid-template-columns:1fr;gap:16px}
.nav{display:flex;align-items:stretch;gap:0;border:1px solid var(--border);border-radius:14px;background:#fff;overflow:hidden}
.nav .item{padding:10px 16px;border-right:1px solid var(--border);cursor:pointer;display:flex;align-items:center;gap:8px}
.nav .item.active{background:#eef2ff}
.content{border:1px solid var(--border);border-radius:14px;background:#fff;overflow:hidden}
.section{padding:16px;border-bottom:1px solid var(--border)}
.section:last-child{border-bottom:0}
.table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.table th,.table td{padding:10px;border-bottom:1px solid var(--border);text-align:left;font-size:14px;background:#fff}
.table th{background:#f3f4f6}
.actions{display:flex;gap:8px}
.graph{border:1px solid var(--border);border-radius:12px;background:#fff;height:460px;width:100%;display:block}
.kv{display:grid;grid-template-columns:160px 1fr;gap:8px;align-items:center;margin:8px 0}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.30);display:none;align-items:center;justify-content:center;padding:20px;z-index:50}
.modal{background:#fff;border-radius:14px;max-width:680px;width:100%;box-shadow:0 20px 50px rgba(0,0,0,.20);overflow:hidden;border:1px solid var(--border)}
.modal header{padding:12px 16px;border-bottom:1px solid var(--border)}
.modal .body{padding:16px;max-height:60vh;overflow:auto}
.modal .footer{padding:12px 16px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}
@media (max-width:860px){.container{grid-template-columns:1fr}}
.nav .item:last-child{border-right:0}

.alert.error{
 background:#fee2e2; color:#991b1b; border:1px solid #fecaca;
 border-radius:8px; padding:10px 12px; margin:8px 0 12px; font-size:14px;
}
.kv.invalid input, .kv.invalid select{
 border-color:#ef4444!important;
 box-shadow:0 0 0 3px rgba(239,68,68,0.15);
}
.hint{font-size:12px;color:var(--muted)}


/* UBO PDF report print view */
#uboReportRoot{display:none}
@media print{
  #uboReportRoot{display:block!important}
  .topbar,.container,.hdr-tools,.badge,.modal-backdrop{display:none!important}
  .no-print{display:none!important}

}


/* Sponsor / support banner */
.support-banner {
  margin-top: 32px;
  padding: 16px 20px;
  border-top: 1px solid #e5e7eb;
  background: #f9fafb;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  font-size: 0.9rem;
}

.support-banner-text {
  flex: 1 1 220px;
  color: #374151;
}

.support-banner-text strong {
  display: block;
  font-size: 1rem;
  margin-bottom: 2px;
}

.support-banner-slot {
  flex: 0 0 auto;
  min-width: 160px;
  text-align: right;
}

/* Any sponsor image / banner dropped in here */
.support-banner-slot img {
  max-width: 220px;     /* tweak as needed */
  height: auto;
  display: inline-block;
}
  
/* Mobile: stack vertically */
@media (max-width: 640px) {
  .support-banner {
    flex-direction: column;
    align-items: flex-start;
  }
  .support-banner-slot {
    text-align: left;
  }
}

p.hint {
  font-size: 12px;
  color: var(--muted);
  margin: 4px 0;   /* or 0 if you want them tight */
}

.hdr-tools .btn.active-tab {
background-color: #d9e1f2;  /* light blue */
border-color: #9bbce0;
  font-size: 13px; 
  border: 1px solid #ccc;
  text-decoration: none; 
}

/* Unsaved changes status badge in wizard nav */
.save-status{
  margin-left:auto;
  padding:0 12px;
  font-size:12px;
  display:flex;
  align-items:center;
  white-space:nowrap;
}
.save-status.unsaved{
  color:#d00000;
  font-weight:600;
}
.save-status.saved{
  color:#059669;
  font-weight:500;
}

.graph-fs-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15,23,42,0.85);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
}

.graph-fs-inner {
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
  width: 95vw;
  height: 90vh;
  box-shadow: 0 20px 40px rgba(15,23,42,0.45);
  display: flex;
  flex-direction: column;
}

.graph-fs-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.graph-fs-controls button {
  margin-right: 4px;
}

.graph-fs-inner svg.graph {
  flex: 1;
  width: 100%;
  height: 100%;
}

#linksCoverageWarnings {
  color: #bc544b;          /* dark red */
  white-space: pre-line;
}