#nsn-area-calculator.nsn-area-calculator{
  width:100%;
  max-width:1100px;
  margin:1.5rem auto;
  padding:0.5rem 0.25rem;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#0f172a;
}

#nsn-area-calculator h2{
  margin:0 0 0.35rem;
  font-size:clamp(1.5rem,2vw + 0.8rem,2.1rem);
  font-weight:800;
  letter-spacing:-0.02em;
}

#nsn-area-calculator .nsn-subtitle{
  margin:0 0 1rem;
  color:#334155;
  line-height:1.35;
}

#nsn-area-calculator .nsn-grid{
  display:grid;
  grid-template-columns: 1fr 1.05fr;
  gap:1rem;
  align-items:start;
}

@media (max-width: 900px){
  #nsn-area-calculator .nsn-grid{
    grid-template-columns:1fr;
  }
}

#nsn-area-calculator .nsn-panel,
#nsn-area-calculator .nsn-canvas-wrap{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:16px;
  padding:1rem;
  box-shadow:0 8px 24px rgba(15,23,42,0.06);
}

#nsn-area-calculator .nsn-field{
  display:flex;
  flex-direction:column;
  gap:0.35rem;
  margin-bottom:0.8rem;
}

#nsn-area-calculator label{
  font-weight:700;
  font-size:0.95rem;
}

#nsn-area-calculator input{
  border:1px solid #cbd5e1;
  border-radius:12px;
  padding:0.65rem 0.8rem;
  font-size:1rem;
  outline:none;
  background:#fff;
}

#nsn-area-calculator input:focus{
  border-color:#60a5fa;
  box-shadow:0 0 0 4px rgba(96,165,250,0.18);
}

#nsn-area-calculator .nsn-row{
  display:flex;
  gap:0.75rem;
}

#nsn-area-calculator .nsn-row > *{
  flex:1 1 0;
}

#nsn-area-calculator .nsn-details{
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:0.7rem 0.8rem;
  margin:0.6rem 0 0.9rem;
}

#nsn-area-calculator .nsn-summary{
  cursor:pointer;
  font-weight:800;
}

#nsn-area-calculator .nsn-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0.4rem;
  border-radius:14px;
  padding:0.75rem 1rem;
  border:1px solid #cbd5e1;
  background:#fff;
  color:#0f172a;
  font-weight:800;
  cursor:pointer;
  user-select:none;
}

#nsn-area-calculator .nsn-btn:hover{
  background:#f8fafc;
}

#nsn-area-calculator .nsn-btn-primary{
  background:#0f172a;
  border-color:#0f172a;
  color:#fff;
  width:100%;
  margin-top:0.25rem;
}

#nsn-area-calculator .nsn-btn-primary:hover{
  filter:brightness(1.08);
}

#nsn-area-calculator .nsn-hint{
  margin-top:0.9rem;
  color:#334155;
  font-size:0.95rem;
  line-height:1.35;
}

#nsn-area-calculator .nsn-kbd{
  display:inline-block;
  padding:0.12rem 0.38rem;
  border:1px solid #e2e8f0;
  border-bottom-width:2px;
  border-radius:8px;
  background:#f8fafc;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  font-size:0.9em;
}

#nsn-area-calculator .nsn-output{
  margin-top:0.9rem;
}

#nsn-area-calculator .nsn-ok{
  border:1px solid #bbf7d0;
  background:#f0fdf4;
  border-radius:12px;
  padding:0.65rem 0.75rem;
  margin:0.45rem 0;
}

#nsn-area-calculator .nsn-bad{
  border:1px solid #fecaca;
  background:#fef2f2;
  border-radius:12px;
  padding:0.65rem 0.75rem;
  margin:0.45rem 0;
}

#nsn-area-calculator .nsn-mini{
  font-size:0.9rem;
  color:#475569;
}

#nsn-area-calculator .nsn-legend{
  display:flex;
  flex-direction:column;
  gap:0.35rem;
  margin-top:0.4rem;
}

#nsn-area-calculator .nsn-legend-item{
  display:flex;
  gap:0.5rem;
  align-items:center;
}

#nsn-area-calculator .nsn-line{
  width:30px;
  border-top:3px solid #000;
  border-radius:999px;
}

#nsn-area-calculator .nsn-points{
  max-height:220px;
  overflow:auto;
  border:1px solid #e2e8f0;
  border-radius:12px;
  padding:0.5rem 0.65rem;
  background:#fff;
}

#nsn-area-calculator .nsn-canvas-title{
  font-weight:900;
  font-size:1.15rem;
  margin-bottom:0.6rem;
}

#nsn-area-calculator canvas{
  width:100%;
  height:auto;
  border:1px solid #e2e8f0;
  border-radius:14px;
  display:block;
  background:#fff;
}

#nsn-area-calculator .nsn-zoom-controls{
  display:flex;
  gap:0.55rem;
  justify-content:center;
  align-items:center;
  margin-top:0.75rem;
  flex-wrap:wrap;
}

#nsn-area-calculator .nsn-zoom-btn{
  appearance:none;
  border:1px solid #cbd5e1;
  background:#fff;
  color:#0f172a;
  border-radius:12px;
  padding:0.55rem 0.85rem;
  font-weight:900;
  cursor:pointer;
  line-height:1;
  min-width:44px;
}

#nsn-area-calculator .nsn-zoom-btn:hover{
  background:#f8fafc;
}

#nsn-area-calculator .nsn-zoom-btn-reset{
  padding:0.55rem 1.05rem;
  font-weight:800;
}

#nsn-area-calculator .nsn-zoom-hint{
  margin-top:0.45rem;
  text-align:center;
}
