:root{
  --bg:#f2f2f2;
  --card:#fff;
  --cut:#e53935;
  --crease:#43a047;
  --text:#111;
  --accent:#1976d2;
}
*{box-sizing:border-box}
body{ font-family: Arial, sans-serif; background:var(--bg); margin:0; padding:14px; color:var(--text); }
h2{ margin:0 0 10px; text-align:center; }

.wrap{ max-width:1200px; margin:0 auto; display:grid; gap:12px; }
.grid{ display:grid; grid-template-columns:1fr; gap:12px; }
@media (min-width: 980px){ .grid{ grid-template-columns: 460px 1fr; align-items:start; } }

.topActions{
  display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between;
  background:#fff; border-radius:12px; padding:10px 12px;
}
.userInfo{ font-size:13px; color:#444; }
.userActions{ display:flex; gap:8px; align-items:center; }
.linkBtn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:8px 12px; border-radius:999px; border:1px solid #ddd;
  background:#f7f7f7; color:#111; text-decoration:none; font-weight:700;
}
.tableWrap{ overflow:auto; margin-top:10px; }
.adminTable{ width:100%; border-collapse:collapse; font-size:13px; }
.adminTable th, .adminTable td{ border:1px solid #e0e0e0; padding:8px; text-align:left; }
.adminTable th{ background:#f5f5f5; font-weight:800; }
.adminPadraoGrid{
  display:grid; grid-template-columns:70px 1fr 1fr; gap:8px 10px; align-items:center;
}
.adminPadraoHeader{ font-weight:800; font-size:12px; color:#555; }
.adminPadraoLabel{ font-weight:700; font-size:13px; }
.adminButtons{ margin-top:6px; }

.card{ background:var(--card); border-radius:12px; padding:12px; }
label{ font-weight:700; font-size:13px; display:block; margin-top:8px; }
input, select, textarea{
  width:100%; padding:10px; margin-top:6px; font-size:16px;
  border:1px solid #ddd; border-radius:10px;
}
textarea{ min-height:92px; resize:vertical; }
.row2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.hint{ font-size:12px; color:#555; margin-top:8px; line-height:1.25; }
.title{ font-weight:800; margin-top:10px; }
.strong{ font-weight:800; }
.svgBox{ background:#fafafa; border-radius:12px; padding:10px; overflow:auto; }
svg{ width:100%; height:auto; display:block; }

.kpis{ display:grid; grid-template-columns:1fr; gap:8px; margin-top:10px; }
@media (min-width: 980px){ .kpis{ grid-template-columns:1fr 1fr; gap:8px 14px; } }
.kpi{ background:#e8f5e9; border-radius:12px; padding:10px; }
.kpi b{ display:block; font-size:13px; }
.kpi span{ font-size:18px; font-weight:800; }

.btnRow{ display:grid; grid-template-columns: 1fr 1fr; gap:10px; margin-top:10px; }
button{
  width:100%; padding:10px; border:none; border-radius:10px;
  background:#424242; color:#fff; font-size:15px; cursor:pointer;
}
button.secondary{ background:#616161; }
button.primary{ background:var(--accent); }

.toggleBox{
  display:flex; gap:10px; align-items:center; margin-top:10px;
  padding:10px; background:#f7f7f7; border:1px solid #eee; border-radius:10px;
}
.toggleBox input{ width:auto; margin:0; transform: scale(1.15); }

.modeBar{
  display:flex; gap:8px; flex-wrap:wrap; justify-content:center;
  margin:10px 0 0;
}
.modeBar button{
  width:auto; padding:10px 12px; border-radius:999px;
  background:#eee; color:#111; border:1px solid #ddd;
}
.modeBar button.active{
  background:var(--accent); color:#fff; border-color:var(--accent);
}

.badge{
  display:inline-block; padding:4px 8px; border-radius:999px;
  background:#e3f2fd; color:#0d47a1; font-weight:700; font-size:12px;
}

.hidden{ display:none !important; }

/* svg */
.cut{ stroke:var(--cut); stroke-width:2.2; fill:none; stroke-linejoin:round; stroke-linecap:round; }
.crease{ stroke:var(--crease); stroke-width:2.0; fill:none; stroke-linejoin:round; stroke-linecap:round; }
.dimLine{ stroke:#111; stroke-width:1.3; fill:none; }
.dimExt{ stroke:#111; stroke-width:1.1; fill:none; }
.dimText{ fill:#111; font-size:14px; font-weight:700; }
.small{ fill:#444; font-size:12px; }
.panelText{ fill:#111; font-size:14px; font-weight:700; opacity:0.95; }
.hatchStroke{ stroke:#c0392b; stroke-width:1.4; opacity:0.55; }
.compLine{ stroke:#1e88e5; stroke-width:1.2; opacity:0.45; stroke-dasharray:6 6; }
.arrowLineLen{ stroke:#1e88e5; stroke-width:1.6; fill:none; }
.arrowHeadLen{ fill:#1e88e5; }
.arrowTextLen{ fill:#1e88e5; font-size:13px; font-weight:700; }
.arrowLineWid{ stroke:#8e24aa; stroke-width:1.6; fill:none; }
.arrowHeadWid{ fill:#8e24aa; }
.arrowTextWid{ fill:#8e24aa; font-size:13px; font-weight:700; }
.arrowLineHei{ stroke:#2e7d32; stroke-width:1.6; fill:none; }
.arrowHeadHei{ fill:#2e7d32; }
.arrowTextHei{ fill:#2e7d32; font-size:13px; font-weight:700; }

.footerNote{ text-align:center; font-size:12px; color:#666; margin-top:8px; }
a{ color:var(--accent); }
