/* IndusSolutions engineering tools – shared layout (inputs | drawings), same look as the spiral casing calculator */
:root{
  --bg:#f6f7f4;--panel:#fff;--ink:#14212a;--muted:#50616d;--line:#d7e0dd;
  --accent:#188f83;--accent-dark:#0f625c;--accent-soft:#e3f2ef;--warn:#b4541a;--bad:#c0392b;
  --plate:#dce9f6;--plate-ink:#123a5e;--roll:#b7791f;
}
*{box-sizing:border-box}
html{font-size:var(--fs,15px)}
html,body{margin:0;height:100%}
body{display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font:1rem/1.45 "Segoe UI",system-ui,sans-serif}
a{color:var(--accent-dark)}
header{display:flex;align-items:center;gap:12px;padding:8px 14px;background:var(--accent-dark);color:#fff;flex-wrap:wrap}
header .back{display:inline-flex;align-items:center;gap:7px;padding:4px 13px 4px 5px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.24);color:#fff;text-decoration:none;font-size:.86rem;font-weight:600;white-space:nowrap;transition:background .15s,transform .15s}
header .back:hover,header .back:focus-visible{background:rgba(255,255,255,.22);outline:none}
header .back:hover svg{transform:translateX(-2px)}
header .back svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}
header .back img{width:24px;height:24px;border-radius:50%;background:#fff;padding:2px;order:-1}
header h1{font-size:1.15rem;margin:0 8px 0 0;font-weight:600}
.hbtns{display:flex;gap:8px;align-items:center;flex:1;flex-wrap:wrap}
.hbtns .sp{flex:1}
button,.btn{font:inherit;border:1px solid var(--line);background:#fff;color:var(--ink);padding:5px 11px;border-radius:6px;cursor:pointer;white-space:nowrap}
button:hover{border-color:var(--accent)}
header button{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3);color:#fff}
header button:hover{background:rgba(255,255,255,.24)}
button.pri{background:var(--accent);border-color:var(--accent);color:#fff}
.fsz{display:flex;gap:2px;align-items:center}
.fsz button{padding:3px 8px;min-width:32px}
.fsz span{font-size:.8rem;opacity:.85;margin:0 4px}
#mswitch{display:none}
.app{display:grid;grid-template-columns:var(--side,400px) 8px minmax(0,1fr);flex:1;min-height:0}
aside{overflow:auto;background:var(--panel);padding:10px 14px 30px}
aside h2{font-size:.82rem;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:18px 0 6px;font-weight:700}
aside h2:first-child{margin-top:4px}
.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,40%);gap:6px 10px;align-items:center}
.grid label small,.hint{color:var(--muted);font-size:.86rem}
input,select,textarea{font:inherit;border:1px solid var(--line);border-radius:5px;padding:4px 7px;width:100%;background:#fff;color:var(--ink)}
input:focus,select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}
input[type=checkbox]{width:auto;justify-self:start}
input.bad,select.bad{border-color:var(--bad);background:#fff3f1}
.msg{margin-top:10px;padding:7px 9px;border-radius:6px;background:#fff4e8;color:var(--warn);white-space:pre-wrap;display:none}
.msg.on{display:block}
.splitter{cursor:col-resize;background:var(--line);position:relative;touch-action:none}
.splitter::after{content:"";position:absolute;left:2px;top:50%;width:4px;height:44px;margin-top:-22px;border-radius:3px;background:#9fb3ae}
.splitter:hover,.splitter:focus-visible,.splitter.drag{background:var(--accent);outline:none}
.splitter:hover::after,.splitter.drag::after{background:#fff}
body.resizing{cursor:col-resize;user-select:none}
main{display:flex;flex-direction:column;min-width:0;min-height:0}
nav.tabs{display:flex;gap:2px;padding:6px 10px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
nav.tabs button{border:1px solid transparent;border-bottom:none;border-radius:6px 6px 0 0;background:transparent;padding:7px 14px;color:var(--muted)}
nav.tabs button.on{background:var(--panel);border-color:var(--line);color:var(--ink);font-weight:600;margin-bottom:-1px}
.pane{display:none;flex:1;min-height:0;overflow:auto;background:var(--panel);padding:12px 16px}
.pane.on{display:block}
.tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.tools .sp{flex:1}
.tools select{width:auto}
.svgbox{border:1px solid var(--line);border-radius:8px;background:#fff;margin-bottom:12px}
.svgbox svg{display:block;width:100%;height:auto;max-height:78vh}
.two{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:14px;align-items:start}
h3{margin:14px 0 6px;font-size:1.05rem}
table.res{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums;margin-bottom:12px}
table.res th,table.res td{border-bottom:1px solid var(--line);padding:4px 8px;text-align:right}
table.res th{background:#f2f6f5;color:var(--muted);font-weight:600;position:sticky;top:0}
table.res td:first-child,table.res th:first-child{text-align:left}
table.res tr.tot td{font-weight:700;border-top:2px solid var(--ink)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.kpi{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fbfdfc}
.kpi b{display:block;font-size:1.35rem;color:var(--accent-dark);font-variant-numeric:tabular-nums}
.kpi span{color:var(--muted);font-size:.86rem}
/* editable lists (parts, joints) */
.list{width:100%;border-collapse:collapse}
.list th{font-size:.8rem;color:var(--muted);text-align:left;font-weight:600;padding:3px 3px}
.list td{padding:2px 2px;vertical-align:middle}
.list td input,.list td select{padding:3px 5px}
.list td.num{width:4.2em}
.x{border:none;background:none;color:#a33;padding:2px 6px;cursor:pointer;font-size:1.1rem}
.row{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
#print{display:none}
@media (max-width:900px){
  body{height:100vh;height:100dvh}
  header{gap:6px;padding:6px 10px}
  header h1{font-size:1.05rem;flex:1;margin:0}
  .hbtns{flex-basis:100%;flex-wrap:wrap;gap:6px;padding-bottom:2px}
  .hbtns button{padding:6px 10px;font-size:.86rem}
  .hbtns .sp{display:none}
  .hbtns .nest{order:-1}
  #mswitch{display:flex;gap:6px;padding:0 10px 8px;background:var(--accent-dark)}
  #mswitch button{flex:1;padding:7px;background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3);color:#fff}
  #mswitch button.on{background:#fff;color:var(--accent-dark);font-weight:600}
  .app{display:block;flex:1;min-height:0}
  .splitter{display:none}
  aside,main{height:100%}
  body:not(.m-in) aside,body.m-in main{display:none}
  nav.tabs{flex-wrap:nowrap;overflow-x:auto}
  nav.tabs button{flex:none;padding:7px 10px}
  .pane{padding:8px}
  .two{grid-template-columns:1fr}
  .svgbox svg{max-height:65vh;max-height:65dvh}
  table.res{font-size:.85rem}
  table.res th,table.res td{padding:3px 5px}
}
@media print{
  @page{size:A4 landscape;margin:10mm}
  body{display:block;background:#fff}
  header,#mswitch,.app{display:none!important}
  #print{display:block}
  .pg{page-break-after:always;break-after:page}
  .pg:last-child{page-break-after:auto}
  .pg h2{font-size:15px;margin:0 0 6px}
  .pg svg{width:100%;height:auto;max-height:160mm}
  .pg .two svg{max-height:120mm}
  .pg table.res{font-size:10px}
  .pg table.res th{position:static}
  .pg.mark svg{max-height:115mm}
  .pg h3{font-size:12px;margin:8px 0 3px}
  .mnote{font-size:11px;margin:4px 0 6px}
}
/* part cards (plate list) */
.pcard{border:1px solid var(--line);border-radius:9px;padding:7px;margin-bottom:7px;background:#fbfdfc}
.pc1{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto) auto;gap:6px;align-items:center}
.pc2{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:6px;margin-top:6px}
.pc2 label span{display:block;font-size:.72rem;color:var(--muted);margin-bottom:1px}
/* 3D view */
.c3d{display:block;width:100%;height:min(68vh,640px);min-height:320px;background:radial-gradient(circle at 50% 40%,#fdfefe,#e4e9ef);border:1px solid var(--line);border-radius:8px;cursor:grab}
.c3d:active{cursor:grabbing}
@media (max-width:900px){.c3d{height:58vh;height:58dvh;min-height:260px}}

/* send to nesting + toast */
header button.nest{display:inline-flex;align-items:center;gap:6px;background:#f2b760;border-color:#f2b760;color:#14212a;font-weight:700}
header button.nest:hover{background:#f6c87f}
header button.nest svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
.ek-toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,20px);background:#14212a;color:#fff;padding:10px 16px;border-radius:12px;box-shadow:0 14px 34px rgba(0,0,0,.28);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:50;max-width:min(92vw,560px);font-size:.92rem}
.ek-toast.on{opacity:1;transform:translate(-50%,0)}
@media print{.ek-toast{display:none}}
header button.pri-h{background:#fff;border-color:#fff;color:#0f625c;font-weight:700}
header button.pri-h:hover{background:#e3f2ef}
/* nesting: linked developments and flat-pattern cards */
.linked{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px;padding:8px;border:1px dashed #9cc9c1;border-radius:9px;background:#f1f8f6}
.linked b{flex-basis:100%;font-size:.8rem;color:var(--accent-dark)}
.linked .lk{display:inline-flex;align-items:center;gap:2px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:2px 4px 2px 10px;font-size:.82rem;font-weight:600}
.pcard.dev{border-left:4px solid #f2b760}
.pcard .src{font-size:.72rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}
.pc3{display:grid;grid-template-columns:56px minmax(0,1fr) 64px 56px;gap:6px;align-items:end;margin-top:6px}
.pc3 .thumb{width:56px;height:40px;display:block;background:#fff;border:1px solid var(--line);border-radius:6px}
.pc3 .thumb svg{width:100%;height:100%;display:block}
.pc3 .sz{font-size:.78rem;color:var(--muted);align-self:center}
.pc3 label span{display:block;font-size:.72rem;color:var(--muted);margin-bottom:1px}

/* measuring tool */
.ek-measuring svg[data-mm]{cursor:crosshair}
#bMeasure.on{background:#f2b760!important;border-color:#f2b760!important;color:#14212a!important}
/* measuring tools v2 (2026-11-05) */
.ek-meas-info{position:fixed;left:50%;bottom:12px;transform:translateX(-50%);z-index:90;width:min(96vw,780px);box-sizing:border-box;background:#14212a;color:#fff;border-radius:14px;padding:8px 10px 10px;font:600 .9rem/1.35 "Segoe UI",system-ui,sans-serif;box-shadow:0 12px 30px rgba(0,0,0,.3)}
.ek-meas-info small{color:#cbd5e1;font-weight:500}
.ek-meas-info button{font:inherit;cursor:pointer;border-radius:999px;border:1px solid #3b4d5a;background:#1f313d;color:#fff;padding:4px 11px}
.ek-meas-info button:disabled{opacity:.4;cursor:default}
.ek-meas-info button.pri{background:#f2b760;border-color:#f2b760;color:#14212a;font-weight:800}
.ek-meas-info .mt-modes{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px}
.ek-meas-info .mt-modes button{display:inline-flex;align-items:center;gap:5px;font-size:.84rem}
.ek-meas-info .mt-modes button span{font-size:1.02rem;line-height:1;min-width:1.1em;text-align:center}
.ek-meas-info .mt-modes button.on{background:#f2b760;border-color:#f2b760;color:#14212a;font-weight:800}
.ek-meas-info .mt-msg{padding:2px 2px 7px;min-height:2.7em}
.ek-meas-info .mt-tip{color:#f2b760}
.ek-meas-info .mt-err{color:#ffb4a2}
.ek-meas-info .mt-act{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.ek-meas-info .mt-list{max-height:30vh;overflow:auto;margin-top:8px;background:#fff;color:#14212a;border-radius:10px}
.ek-meas-info .mt-list table{border-collapse:collapse;width:100%;font-size:.84rem;font-variant-numeric:tabular-nums}
.ek-meas-info .mt-list th,.ek-meas-info .mt-list td{padding:4px 6px;border-bottom:1px solid #e3e9e7;text-align:left;vertical-align:top}
.ek-meas-info .mt-list th{position:sticky;top:0;background:#f2f6f5;color:#5d6b7a;font-weight:600}
.ek-meas-info .mt-list small{color:#5d6b7a}
.ek-meas-info .mt-list input{width:100%;min-width:90px;box-sizing:border-box;padding:3px 6px;border:1px solid #c9d6d2;border-radius:6px;font:inherit;font-weight:500}
.ek-meas-info .mt-list button{background:#fff;color:#c0392b;border-color:#e3c4bf;padding:0 9px;font-weight:800}
@media (max-width:560px){.ek-meas-info{bottom:6px;padding:6px 8px 8px}.ek-meas-info .mt-modes button{padding:3px 8px;font-size:.8rem}}
@media print{.ek-mrep .ek-meas{display:inline!important}.ek-mrep table.res td{text-align:left}.ek-mrep svg{max-height:150mm}}
@media print{.ek-meas-info,.ek-meas{display:none}}

/* 2026-11-05: Measure is hidden while no flat drawing is on screen (eng.js) */
#bMeasure[hidden]{display:none!important}
