/* EngTool module styles — shared by every tool page. Light theme. */
.wrap{max-width:1100px;margin:0 auto;padding:20px 16px 8px;}

.page-head{margin:6px 0 18px;}
.page-head h1{font-size:24px;margin:0 0 4px;color:var(--et-brand2);}
.page-head .sub{margin:0;color:var(--et-mut);font-size:14px;}

/* ---- Tabs ---- */
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px;}
.tab{
  appearance:none;border:1px solid var(--et-line);background:#fff;color:var(--et-ink);
  padding:9px 14px;border-radius:10px;font-size:13.5px;font-weight:600;cursor:pointer;
  transition:all .15s;
}
.tab:hover{border-color:var(--et-brand);}
.tab.active{background:var(--et-brand);border-color:var(--et-brand);color:#fff;box-shadow:0 2px 8px rgba(11,92,171,.25);}

/* ---- Layout grid ---- */
.grid{display:grid;grid-template-columns:minmax(320px,420px) 1fr;gap:18px;align-items:start;}
@media (max-width:860px){ .grid{grid-template-columns:1fr;} }

.card{
  background:var(--et-card);border:1px solid var(--et-line);border-radius:14px;
  padding:18px;box-shadow:0 1px 3px rgba(20,40,70,.06);
}
.card h2{font-size:16px;margin:0 0 14px;color:var(--et-ink);}
.card h2:not(:first-child){margin-top:22px;}

/* ---- Fields ---- */
.field{margin-bottom:13px;}
.field > label{display:block;font-size:13px;font-weight:600;margin-bottom:5px;color:#33414f;}
.inrow{display:flex;align-items:center;gap:8px;}
.inrow input,.inrow select{flex:1 1 auto;min-width:0;}
input,select{
  width:100%;padding:9px 10px;font-size:14px;border:1px solid var(--et-line);
  border-radius:9px;background:#fff;color:var(--et-ink);font-family:inherit;
}
input:focus,select:focus{outline:none;border-color:var(--et-brand);box-shadow:0 0 0 3px rgba(11,92,171,.15);}
.unit{font-size:12.5px;color:var(--et-mut);white-space:nowrap;min-width:34px;}
.field .hint{font-size:12px;color:var(--et-mut);margin-top:4px;}

/* ---- Actions ---- */
.actions,.btnrow{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap;}
.btn{
  appearance:none;border:1px solid var(--et-brand);background:var(--et-brand);color:#fff;
  padding:10px 18px;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;
  transition:background .15s,box-shadow .15s;
}
.btn:hover{background:var(--et-brand2);box-shadow:0 2px 10px rgba(11,92,171,.3);}
.btn.alt{background:#fff;color:var(--et-brand);border-color:var(--et-line);font-weight:600;}
.btn.alt:hover{border-color:var(--et-brand);background:#f3f8ff;box-shadow:none;}
.btn.primary{background:var(--et-accent);border-color:var(--et-accent);}
.btn.primary:hover{background:#cf5f1c;border-color:#cf5f1c;}
.btn.ghost{background:#fff;color:var(--et-mut);border-color:var(--et-line);font-weight:600;}
.btn.ghost:hover{color:var(--et-ink);border-color:var(--et-mut);background:#f6f8fb;box-shadow:none;}

/* ---- Results ---- */
.results{display:flex;flex-direction:column;gap:2px;}
.results .row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding:9px 2px;border-bottom:1px dashed var(--et-line);}
.results .row:last-child{border-bottom:none;}
.results .k{font-size:13.5px;color:#33414f;}
.results .v{display:flex;align-items:baseline;gap:6px;}
.results .val{font-size:16px;font-weight:700;color:var(--et-brand2);font-variant-numeric:tabular-nums;}
.results .u{font-size:12px;color:var(--et-mut);}
.results .row.big .val{font-size:20px;color:var(--et-accent);}

/* ---- Notes ---- */
.notes-h{font-size:13px;font-weight:700;margin:18px 0 8px;color:#33414f;}
.notes{list-style:none;padding:0;margin:0;}
.notes li{font-size:13px;padding:7px 11px;border-radius:8px;margin-bottom:6px;line-height:1.45;}
.notes li.ok{background:#eaf6ee;color:#1c6b3a;border-left:3px solid var(--et-ok);}
.notes li.warn{background:#fdf2e2;color:#9a5400;border-left:3px solid var(--et-warn);}
.notes li.info{background:#eef3fb;color:#234b7a;border-left:3px solid var(--et-brand);}

.disclaimer{font-size:11.5px;color:var(--et-mut);margin-top:18px;line-height:1.5;
  border-top:1px solid var(--et-line);padding-top:12px;}

/* ---- Drawing card ---- */
.draw-card{margin-top:18px;}
.draw-canvas{width:100%;height:auto;border:1px solid var(--et-line);border-radius:10px;background:#fbfcfe;}
.btnrow.export{margin-top:12px;}

/* ---- Sub-nav (cross-page links) ---- */
.subnav{display:flex;gap:14px;flex-wrap:wrap;margin:4px 0 16px;}
.et-link{display:inline-block;font-size:13.5px;font-weight:600;color:var(--et-brand);
  text-decoration:none;border:1px solid var(--et-line);border-radius:8px;padding:7px 13px;background:#fff;}
.et-link:hover{background:#f3f7fb;border-color:var(--et-brand);}

/* ---- Standards & References table ---- */
.stdref-table{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:2px;}
.stdref-table th,.stdref-table td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--et-line);vertical-align:top;}
.stdref-table th{background:#f3f7fb;color:#33414f;font-weight:700;border-bottom:2px solid var(--et-line);}
.stdref-table td.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:12.5px;color:#27313c;white-space:nowrap;}
.stdref-table td a{color:var(--et-brand);font-weight:600;text-decoration:none;}
.stdref-table td a:hover{text-decoration:underline;}
.stdref-table tbody tr:hover td{background:#fafcfe;}

/* ---- Material data sources / caveats footer (stdref) ---- */
.src-foot{margin-top:22px;padding-top:16px;border-top:1px dashed var(--et-line);}
.src-title{font-size:14px;font-weight:700;color:#33414f;margin:0 0 8px;}
.src-list{margin:0;padding-left:18px;}
.src-list li{font-size:12.5px;line-height:1.55;color:#5a6672;margin-bottom:6px;}

/* ---- Multilingual printable report (window.print -> Save as PDF) ---- */
#report-sheet{display:none;}
.rep-head{border-bottom:2px solid var(--et-line);padding-bottom:8px;margin-bottom:14px;}
.rep-head h2{font-size:18px;margin:0 0 4px;color:#27313c;}
.rep-meta{font-size:12px;color:#5a6672;margin:0;}
.rep-sec{margin:14px 0;}
.rep-sec h3{font-size:14px;margin:0 0 8px;color:var(--et-brand);}
.rep-sec .row{display:flex;justify-content:space-between;border-bottom:1px dotted var(--et-line);padding:4px 0;font-size:13px;}
.rep-sec .row .k{color:#5a6672;}
.rep-sec .row .v{font-weight:600;}
.rep-sec svg{width:100%;height:auto;border:1px solid var(--et-line);border-radius:8px;background:#fbfcfe;}
@media print{
  body.printing-report > *:not(#report-sheet){display:none !important;}
  body.printing-report #report-sheet{display:block !important;}
  @page{margin:14mm;}
}

/* ---- Recipe / Batch mode ---- */
.field.checkbox{display:flex;align-items:center;gap:8px;}
.field.checkbox label{display:flex;align-items:center;gap:8px;font-weight:500;}
.hint.ok{color:#1f8a4c;}
.hint.err{color:#c0392b;font-weight:600;}
#batch-mats{width:100%;border:1px solid var(--et-line);border-radius:8px;padding:6px;background:#fff;font-size:13px;min-height:160px;}
table.rtab{border-collapse:collapse;width:100%;margin-top:8px;font-size:13px;background:#fff;border:1px solid var(--et-line);border-radius:8px;overflow:hidden;}
table.rtab th,table.rtab td{border:1px solid var(--et-line);padding:6px 8px;text-align:right;}
table.rtab thead th,table.rtab tbody th{background:#f3f6fa;text-align:left;color:#33414f;font-weight:600;}
table.rtab thead th:first-child{text-align:left;}
table.rtab td:first-child,table.rtab th:first-child{text-align:left;white-space:nowrap;}

/* ===== top control bar (search / favorites / units / theme) ===== */
.ft-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:6px 0 14px;padding:8px 10px;background:var(--et-card);border:1px solid var(--et-line);border-radius:10px;}
.ft-search{flex:1 1 220px;min-width:160px;padding:7px 10px;border:1px solid var(--et-line);border-radius:8px;background:#fff;color:var(--et-ink);font-family:inherit;font-size:13px;}
.ft-chip{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--et-mut);}
.ft-chip select{padding:5px 6px;border:1px solid var(--et-line);border-radius:7px;background:#fff;color:var(--et-ink);font-family:inherit;font-size:13px;}
.ft-spacer{flex:1 1 auto;min-width:8px;}
#ft-fav.on{background:var(--et-brand);color:#fff;border-radius:8px;padding:4px 9px;}
#ft-fav.on .star{color:#ffd54a;}
.ft-nomatch{color:var(--et-mut);font-size:13px;margin:2px 2px 12px;}
.panel .card{position:relative;}
.star-btn{position:absolute;top:10px;right:14px;background:transparent;border:none;font-size:18px;color:#caa94a;cursor:pointer;line-height:1;padding:2px 4px;}
.star-btn:hover{color:#e0b94a;}

/* ===== dark theme ===== */
body.theme-dark{--et-bg:#0f1722;--et-card:#172230;--et-ink:#e6edf5;--et-mut:#9fb0c3;--et-line:#2a3a4f;--et-brand:#3b82f6;--et-brand2:#1e40af;--et-accent:#f0883a;--et-ok:#34d399;--et-warn:#fbbf24;background:var(--et-bg);color:var(--et-ink);}
body.theme-dark #et-topbar{background:linear-gradient(95deg,#10203a,#0b1830);}
body.theme-dark #et-footer{background:#0b1422;color:#9fb2d0;}
body.theme-dark .card,body.theme-dark .results,body.theme-dark .et-link,body.theme-dark .btn.alt,body.theme-dark .btn.ghost,body.theme-dark #batch-mats,body.theme-dark table.rtab,body.theme-dark .rep-sec svg,body.theme-dark .draw-canvas{background:#172230;color:var(--et-ink);border-color:var(--et-line);}
body.theme-dark input,body.theme-dark select{background:#101a27;color:var(--et-ink);}
body.theme-dark .btn.alt,body.theme-dark .btn.ghost{background:#172230;}
body.theme-dark .btn.alt:hover,body.theme-dark .btn.ghost:hover{background:#1f2e40;}
body.theme-dark .field>label,body.theme-dark .results .k,body.theme-dark .notes-h,body.theme-dark .stdref-table th,body.theme-dark .src-title,body.theme-dark .rep-head h2,body.theme-dark table.rtab thead th,body.theme-dark table.rtab tbody th{color:#cdd9e8;}
body.theme-dark .draw-canvas,body.theme-dark .rep-sec svg{background:#0c1622;}
body.theme-dark .notes li.ok{background:#0f2a1c;color:#7ee2a8;}
body.theme-dark .notes li.warn{background:#2c2410;color:#f2c879;}
body.theme-dark .notes li.info{background:#102036;color:#9cc4f0;}
body.theme-dark .stdref-table tbody tr:hover td,body.theme-dark .et-link:hover{background:#1f2e40;}
body.theme-dark .tab{background:#14202e;color:var(--et-mut);border-color:var(--et-line);}
body.theme-dark .tab.active{background:var(--et-brand);color:#fff;}
body.theme-dark .hint.err{color:#ff8a8a;}
body.theme-dark .hint.ok{color:#5fe0a0;}
body.theme-dark .ft-bar,body.theme-dark .ft-search,body.theme-dark .ft-chip select{background:#172230;color:var(--et-ink);}
body.theme-dark .ft-search{background:#101a27;}

/* ---------- process route card (Wave 9-A) ---------- */
.rc-title{margin:0 0 2px;font-size:18px;color:var(--et-ink);}
.rc-sub{margin:0 0 10px;color:var(--et-mut);font-size:13px;}
.rc-section{margin:12px 0 4px;padding:8px 10px;background:rgba(127,127,127,0.05);border:1px solid var(--et-line);border-radius:8px;}
.rc-section h4{margin:0 0 6px;font-size:13px;letter-spacing:.02em;text-transform:uppercase;color:var(--et-brand);}
.rc-section .row{font-size:13px;}
.rc-section .notes{margin:6px 0 0;font-size:12px;}

/* print: show only the route card */
@media print{
  .tabs,.ft-bar,#et-topbar,#et-footer,.card:not(.route-print-area),.actions{display:none !important;}
  .panel{display:block !important;}
  body{background:#fff;color:#000;}
  .route-print-area{box-shadow:none;border:none;width:100%;}
}
