/* Electricista Pro AR — tema industrial: grafito + ámbar de seguridad */
:root{
  --bg:#0d1117; --bg-elev:#161d27; --bg-field:#1c2531;
  --text:#eef1f6; --text-muted:#8b93a7;
  --accent:#f5a623; --accent-ink:#241a06;
  --danger:#ef5766; --success:#3ecf8e; --border:#2a3441;
  --font-head:'Space Grotesk',system-ui,sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
}
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]){
    --bg:#f3f4f7; --bg-elev:#ffffff; --bg-field:#eef0f4;
    --text:#151a23; --text-muted:#5b6472; --border:#dde1e8;
    --accent-ink:#241a06;
  }
}
:root[data-theme="light"]{
  --bg:#f3f4f7; --bg-elev:#ffffff; --bg-field:#eef0f4;
  --text:#151a23; --text-muted:#5b6472; --border:#dde1e8;
}
*{box-sizing:border-box}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:var(--font-body); line-height:1.5;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
h1,h2{font-family:var(--font-head); margin:0}

.hero{
  padding:44px 20px 36px; text-align:center;
  background:
    repeating-linear-gradient(90deg, rgba(245,166,35,.08) 0 1px, transparent 1px 64px),
    repeating-linear-gradient(0deg, rgba(245,166,35,.08) 0 1px, transparent 1px 64px),
    var(--bg-elev);
  border-bottom:1px solid var(--border);
}
.hero h1{font-size:clamp(1.6rem,4vw,2.4rem); letter-spacing:-.01em}
.hero p{color:var(--text-muted); margin:10px auto 0; max-width:46ch}
.hero #btn-instalar{
  width:auto; margin:16px auto 0; padding:10px 18px; display:block;
}

#offline-banner{
  background:var(--danger); color:#fff; text-align:center; font-size:.85rem;
  padding:9px 16px; font-weight:600;
}

.grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:18px; padding:20px; max-width:1100px; margin:0 auto;
}
.card{
  background:var(--bg-elev); border:1px solid var(--border); border-left:3px solid var(--cat,var(--accent));
  border-radius:12px; padding:20px; display:flex; flex-direction:column; gap:4px;
}
.card--ohm{--cat:#f5a623} .card--consumo{--cat:#4ea1ff}
.card--tri{--cat:#ef5766} .card--cable{--cat:#3ecf8e} .card--pres{--cat:#a78bfa}
.card--caida{--cat:#22d3ee} .card--tierra{--cat:#8bc34a} .card--termica{--cat:#818cf8}
.card--dif{--cat:#f472b6}
.card--wide{grid-column:1 / -1}

.pres-items{display:flex; flex-direction:column; gap:8px; margin:10px 0}
.item-row{
  border:1px solid var(--border); border-radius:10px; background:var(--bg-field);
  padding:10px; display:flex; flex-direction:column; gap:7px;
}
.item-row .item-desc{
  width:100%; padding:9px 10px; border-radius:7px; border:1px solid var(--border);
  background:var(--bg-elev); color:var(--text); font-size:.88rem; font-family:var(--font-body);
}
.item-row-nums{display:grid; grid-template-columns:64px 1fr auto 26px; gap:6px; align-items:center}
.item-row-nums input{
  width:100%; padding:8px 6px; border-radius:7px; border:1px solid var(--border);
  background:var(--bg-elev); color:var(--text); font-size:.85rem; font-family:var(--font-body); text-align:right;
}
.item-subtotal{font-size:.85rem; font-weight:600; color:var(--text); text-align:right; white-space:nowrap}
.item-remove{
  width:26px; height:26px; padding:0; margin:0; border-radius:7px; border:1px solid var(--border);
  background:transparent; color:var(--text-muted); font-size:.85rem; line-height:1;
}
.item-remove:hover{border-color:var(--danger); color:var(--danger); filter:none}
.btn-add{
  width:auto; background:transparent; border:1px dashed var(--cat,var(--accent)); color:var(--cat,var(--accent));
  font-size:.85rem; padding:9px 14px; margin:2px 0 14px;
}
.btn-add:hover{filter:none; background:rgba(167,139,250,.08)}
.pres-total-row{
  display:flex; justify-content:space-between; align-items:center; padding:10px 2px;
  border-top:1px solid var(--border); font-family:var(--font-head); font-size:1.15rem; font-weight:600;
}
.pres-total-row strong{color:var(--accent)}

.btn-tema{
  position:fixed; top:calc(14px + env(safe-area-inset-top,0px)); right:14px; z-index:50;
  width:40px; height:40px; padding:0; margin:0; border-radius:50%; border:1px solid var(--border);
  background:var(--bg-elev); color:var(--text); font-size:1.05rem; display:flex; align-items:center; justify-content:center;
  box-shadow:0 2px 8px rgba(0,0,0,.15);
}
.btn-tema:hover{filter:none; border-color:var(--accent)}

.card--datos{--cat:#fb923c}
.logo-preview{display:flex; align-items:center; gap:10px; margin:6px 0 2px}
.logo-preview img{
  width:48px; height:48px; object-fit:contain; border-radius:8px; border:1px solid var(--border);
  background:var(--bg-field); padding:4px;
}

.card-head{display:flex; align-items:center; gap:10px; margin-bottom:8px}
.card-head svg{flex:none; width:22px; height:22px; color:var(--cat,var(--accent))}
.card h2{font-size:1.05rem}
.hint{font-size:.82rem; color:var(--text-muted); margin:-2px 0 10px}

.field{margin:8px 0}
.field label{display:block; font-size:.82rem; color:var(--text-muted); margin-bottom:5px}
.field-row{position:relative}
.field input,.field select{
  width:100%; padding:11px 46px 11px 12px; border-radius:9px; border:1px solid var(--border);
  background:var(--bg-field); color:var(--text); font-size:.98rem; font-family:var(--font-body);
}
.field select{padding-right:32px; appearance:auto}
.field input::placeholder{color:var(--text-muted)}
.field input:focus-visible,.field select:focus-visible{outline:2px solid var(--accent); outline-offset:1px}
.unit{
  position:absolute; right:10px; top:50%; transform:translateY(-50%);
  font-size:.78rem; color:var(--text-muted); pointer-events:none;
}

button{
  width:100%; padding:12px; margin-top:6px; border:none; border-radius:9px; cursor:pointer;
  background:var(--accent); color:var(--accent-ink); font-weight:700; font-family:var(--font-body); font-size:.95rem;
  transition:filter .15s ease, transform .05s ease;
}
button:hover{filter:brightness(1.08)}
button:active{transform:translateY(1px)}
button:focus-visible{outline:2px solid var(--text); outline-offset:2px}

.result{margin-top:12px; min-height:1.4em}
.result:empty{margin-top:0}
.readout{
  font-family:var(--font-head); font-size:1.5rem; font-weight:600; color:var(--accent);
}
.readout small{display:block; font-family:var(--font-body); font-size:.78rem; font-weight:400; color:var(--text-muted); margin-top:2px}
.error{color:var(--danger); font-size:.85rem}

footer{text-align:center; padding:26px 16px 34px; color:var(--text-muted); font-size:.82rem}
footer p{margin:4px 0}

.share-row{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px}
.share-row button{
  width:auto; flex:1 1 auto; margin:0; padding:9px 10px; font-size:.82rem; font-weight:600;
  background:transparent; color:var(--text); border:1px solid var(--border);
}
.share-row button:hover{border-color:var(--cat,var(--accent)); color:var(--cat,var(--accent))}
.share-row button.copiado{border-color:var(--success); color:var(--success)}

#printArea{display:none}
@media print{
  #appRoot{display:none}
  #printArea{
    display:block; padding:32px; font-family:var(--font-body); color:#111; background:#fff;
  }
  #printArea .p-header{display:flex; align-items:center; gap:14px}
  #printArea .p-logo{width:56px; height:56px; object-fit:contain}
  #printArea h1{font-family:var(--font-head); margin-bottom:4px}
  #printArea .p-titulo{font-family:var(--font-head); margin:0 0 4px}
  #printArea .p-datos-electricista{margin:0; color:#555; font-size:.85rem}
  #printArea .p-fecha{color:#555; margin-top:4px}
  #printArea .p-cliente-line{margin:14px 0 6px}
  #printArea table{border-collapse:collapse; width:100%; margin-top:12px}
  #printArea th,#printArea td{text-align:left; padding:8px 6px; border-bottom:1px solid #ddd}
  #printArea thead th{color:#555; font-weight:600; font-size:.85rem}
  #printArea td:nth-child(2),#printArea td:nth-child(3),#printArea td:nth-child(4),
  #printArea tfoot td{text-align:right}
  #printArea tfoot th{border-bottom:none; text-align:right; font-weight:700}
  #printArea tfoot td{font-weight:700; border-bottom:none}
  #printArea .p-disclaimer{margin-top:24px; font-size:.8rem; color:#777}
}

@media (prefers-reduced-motion:reduce){*{transition:none!important}}
