:root{--bg:#0b0c10;--card:#111317;--muted:#9aa3af;--ink:#e5e7eb;--ok:#14b8a6;--warn:#f59e0b;--bad:#ef4444;--accent:#60a5fa}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.4 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial}
h1,h2,h3{margin:0 0 .5rem 0}
h1{font-size:1.4rem}
h2{font-size:1.1rem;color:var(--muted)}
header{position:sticky;top:0;z-index:10;background:linear-gradient(180deg,rgba(0,0,0,.7),rgba(0,0,0,.2));backdrop-filter: blur(6px)}
.bar{display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem;border-bottom:1px solid #1f232b}
.bar .grow{flex:1}
.btn{background:#1f232b;border:1px solid #2a303a;color:var(--ink);padding:.5rem .7rem;border-radius:.6rem;cursor:pointer}
.btn:hover{border-color:#3a4352}
.btn.primary{background:#1e293b;border-color:#2b3a4e;color:#e2e8f0}
.grid{display:grid;gap:1rem}
.two{grid-template-columns:1fr 1fr}
.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:980px){.two,.three{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid #1b1f26;border-radius:.9rem;padding:1rem}
label{display:flex;align-items:center;gap:.4rem;margin:.35rem 0;color:#cbd5e1}
label>span{min-width:160px;color:#9aa3af}
input,select,textarea{width:100%;padding:.5rem .55rem;background:#0f1217;color:#e5e7eb;border:1px solid #262c36;border-radius:.6rem}
input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{opacity:1}
small{color:var(--muted)}
.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;gap:.35rem;background:#0f1217;border:1px solid #262c36;border-radius:999px;padding:.25rem .55rem;color:#cbd5e1}
.muted{color:var(--muted)}
.kpi{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:.6rem}
.kpi .box{background:#0f1217;border:1px solid #262c36;border-radius:.8rem;padding:.7rem .8rem}
.kpi .box b{display:block;font-size:1.1rem;margin-bottom:.15rem}
.pass{color:var(--ok)}.warn{color:var(--warn)}.fail{color:var(--bad)}
table{width:100%;border-collapse:collapse}
th,td{padding:.5rem;border-bottom:1px dashed #2a3036;text-align:left;vertical-align:top}
th{color:#aab3be;font-weight:600}
.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}
.section-title h2{color:#cbd5e1}
.right{margin-left:auto}
details{border:1px solid #1b1f26;border-radius:.8rem}
details>summary{cursor:pointer;padding:.6rem .8rem;background:#0f1217;border-bottom:1px solid #1b1f26}
details[open]>summary{border-bottom-color:#1f2937}
.note{background:#0f1217;border:1px solid #262c36;border-radius:.6rem;padding:.6rem}
.foot{color:#94a3b8;font-size:.85rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.tag{font:12px/1.2 system-ui;border-radius:.4rem;border:1px solid #2a3036;padding:.2rem .35rem;color:#cbd5e1;background:#0f1217}
.danger{border-color:#6b1a1a;background:#1b0e0e}
.ok{border-color:#134e4a;background:#062e2a}
.warnbg{border-color:#5a3c0b;background:#20160a}
.flex{display:flex;gap:.6rem;align-items:center}
.end{justify-content:flex-end}
.monospace{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.nowrap{white-space:nowrap}
.center{text-align:center}
.ghost{opacity:.6}
.circuit{border:1px solid #21242c;border-radius:.8rem;padding:.8rem;background:#0e1116}
.circuit header{position:static;background:none}
.circuit h3{font-size:1rem}
.del{background:#1b1010;border-color:#2a1717;color:#fca5a5}
.add{background:#101b13;border-color:#14321c;color:#86efac}
.small{font-size:.85rem}
.w-120{max-width:120px}
.print-only{display:none}
.c-body[hidden]{display:none}
.linklike{background:none;border:none;color:#93c5fd;cursor:pointer;padding:.25rem .2rem;border-radius:.4rem}
.linklike:hover{background:#0f1217}
.pulse{box-shadow:0 0 0 2px #60a5fa inset}
.circuits-layout{display:grid;grid-template-columns:260px 1fr;gap:1rem}
#circuitsSidebar{background:#0f1217;border:1px solid #262c36;border-radius:.8rem;padding:.6rem;position:sticky;top:70px;max-height:calc(100vh - 90px);overflow:auto}
.c-list-item{margin:.2rem 0}
.tabs{display:flex;gap:.5rem;align-items:center;margin:0 0 1.1rem 0}
.tab-btn{
  background: var(--bg);
  color: #ffffff;
  padding: .5rem 1rem;
  border: 1px solid #222;
  border-radius: 0;
  cursor: pointer;
  font-weight:700;
  font-size:0.95rem;
  box-shadow: none;
  transition: background 120ms ease, color 120ms ease;
}
.tab-btn:hover{ background:#0f0f10 }
.tab-btn:focus{ outline:2px solid #ffffff; outline-offset:2px }
.tab-btn.active{
  background: #ffffff;
  color: #000000;
  border-color: #000000;
  box-shadow: none;
}
.tab-panel{margin-top:.6rem;padding:0}
@media print{
  /* Force landscape orientation for A4 */
  @page {
    size: A4 landscape;
    margin: 1.5cm;
  }
  
  /* Hide non-print elements */
  header,.no-print,main{display:none!important}
  
  /* Reset body styles for print */
  body{
    background:#fff;
    color:#000;
    font-family:Arial,sans-serif;
    font-size:10pt;
    line-height:1.3;
    margin:0;
    padding:0;
  }
  
  /* Show print-only elements */
  .print-only{display:block!important}
  
  /* Print page layout */
  .print-page{
    width:100%;
    height:100vh;
    display:flex;
    flex-direction:column;
    page-break-after:always;
    position:relative;
  }
  
  .print-page:last-child{
    page-break-after:auto;
  }
  
  /* Print header */
  .print-header{
    border-bottom:2px solid #333;
    padding-bottom:1rem;
    margin-bottom:1.5rem;
  }
  
  .print-header h1{
    margin:0 0 0.5rem 0;
    font-size:18pt;
    font-weight:bold;
    color:#333;
    text-align:center;
  }
  
  .print-project-info{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:1rem;
    font-size:9pt;
  }
  
  .print-project-brief{
    text-align:center;
    font-size:11pt;
    font-weight:bold;
    color:#555;
  }
  
  /* Print content */
  .print-content{
    flex:1;
    overflow:hidden;
  }
  
  .print-section{
    margin-bottom:1.5rem;
    page-break-inside:avoid;
  }
  
  .print-section h2{
    color:#333;
    border-bottom:1px solid #333;
    padding-bottom:0.3rem;
    margin-bottom:1rem;
    font-size:12pt;
    font-weight:bold;
  }
  
  /* Hypotheses grid */
  .hypotheses-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:2rem;
  }
  
  .input-data,.earth-details,.spd-details,.influences-details{
    font-size:9pt;
  }
  
  .input-data>div,.earth-details>div,.spd-details>div,.influences-details>div{
    margin-bottom:0.4rem;
    display:flex;
    justify-content:space-between;
  }
  
  .input-data strong,.earth-details strong,.spd-details strong,.influences-details strong{
    font-weight:bold;
    color:#222;
    min-width:120px;
  }
  
  /* Circuit table */
  .table-responsive{
    overflow:visible;
  }
  
  .print-table{
    width:100%;
    border-collapse:collapse;
    font-size:8pt;
    margin-bottom:1rem;
  }
  
  .print-table th{
    background:#f5f5f5;
    border:1px solid #333;
    padding:0.3rem 0.2rem;
    text-align:center;
    font-weight:bold;
    font-size:7pt;
    line-height:1.1;
  }
  
  .print-table td{
    border:1px solid #666;
    padding:0.3rem 0.2rem;
    text-align:center;
    font-size:8pt;
  }
  
  .print-table .circuit-name{
    text-align:left;
    font-weight:bold;
  }
  
  .print-table .rgie-ok{
    background:#e8f5e8;
    font-weight:bold;
    color:#2d5a2d;
  }
  
  .print-table .rgie-nok{
    background:#ffeaea;
    font-weight:bold;
    color:#8b0000;
  }
  
  /* Print footer */
  .print-footer{
    border-top:1px solid #333;
    padding-top:1rem;
    margin-top:auto;
  }
  
  .print-footer-content{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:2rem;
    margin-bottom:1rem;
  }
  
  .footer-col{
    border:1px solid #666;
    padding:0.8rem;
    background:#f9f9f9;
  }
  
  .footer-col h4{
    margin:0 0 0.5rem 0;
    font-size:10pt;
    font-weight:bold;
    color:#333;
    border-bottom:1px solid #ccc;
    padding-bottom:0.3rem;
  }
  
  .footer-col>div{
    font-size:8pt;
    margin-bottom:0.3rem;
  }
  
  .signature-area{
    margin-top:1.5rem;
    font-size:8pt;
    font-style:italic;
  }
  
  .page-number{
    text-align:center;
    font-size:8pt;
    color:#666;
    margin-top:0.5rem;
  }
  
  /* Utilities */
  .page-break{
    page-break-before:always;
  }

  .no-break{
    page-break-inside:avoid;
  }
  
  /* Formulas page styling */
  .formula-group{
    margin-bottom:1.5rem;
  }
  
  .formula-item{
    margin-bottom:1rem;
    padding:0.5rem;
    border-left:3px solid #333;
    background:#f9f9f9;
  }
  
  .formula-item strong{
    color:#333;
    font-weight:bold;
    display:block;
    margin-bottom:0.3rem;
  }
  
  .formula{
    font-family:Times,serif;
    font-size:11pt;
    font-style:italic;
    margin:0.3rem 0;
    padding:0.2rem 0.5rem;
    background:#fff;
    border:1px solid #ddd;
  }
  
  .formula-item .note{
    font-size:8pt;
    color:#555;
    margin-top:0.3rem;
    font-style:italic;
  }
  
  /* Two-column layout for formulas */
  .formulas-two-columns{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1.5rem;
  }
  
  /* .formula-column inherits styles from parent */
}
