.np-coords { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1rem; }
.np-coords fieldset { border: 1px solid var(--line); border-radius: 12px; padding: .6rem .8rem; margin: 0; min-width: 0; }
.np-coords legend { font-weight: 600; padding: 0 .3rem; }
.np-xyz { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; }
.np-xyz .field { margin: 0; min-width: 0; }
.np-xyz input { width: 100%; min-width: 0; }
@media (max-width: 560px) { .np-coords { grid-template-columns: 1fr; } }
.np-hint { font-size: .85rem; color: var(--muted); min-height: 1.1em; margin: .2rem 0 0; }
#np-sum { font-weight: 600; margin: .8rem 0 .2rem; }
#np-warn { color: var(--rose-700); }
#np-warn:empty { display: none; }
.np-h3 { font-size: 1rem; margin: 1.4rem 0 .5rem; }
.np-ok b { color: #2f6b4f; }
.np-bad b { color: var(--rose-700); }
.np-row { display: flex; gap: .6rem 1rem; flex-wrap: wrap; align-items: flex-end; }
.np-row .field { flex: 1 1 7rem; margin: 0; }
.np-check { display: flex; gap: .4rem; align-items: center; }
#np-grid { display: grid; gap: 2px; margin: .6rem 0; }
#np-grid i { aspect-ratio: 1; border-radius: 2px; }
#np-grid i.o { background: #2d2440; }
#np-grid i.p { background: #b9a3d6; }
#np-grid i.e { background: transparent; outline: 1px dashed var(--line); outline-offset: -1px; }
