/* network.css — pagina «Rete meteo.sm» (network.html, #1196).
   Colori dai token di app.css (--bg-*, --text-*, --border, --primary), che il
   tema scuro ridefinisce. */
.nw-main { max-width: 1040px; margin: 0 auto; padding: 16px 16px 96px; box-sizing: border-box; }
.nw-head { margin: 8px 0 20px; }
.nw-head h1 { font-size: 1.7rem; line-height: 1.2; margin: 0 0 8px; color: var(--text-primary); }
.nw-lead { font-size: 1.02rem; line-height: 1.55; color: var(--text-primary); margin: 0 0 10px; max-width: 720px; }
.nw-sub { color: var(--text-secondary); font-size: .9rem; margin: 0; }
.nw-cta { display: inline-block; margin-top: 12px; padding: 10px 18px; border-radius: 10px; background: var(--primary);
  color: #fff; text-decoration: none; font-weight: 600; }
.nw-cta:hover { background: var(--primary-dark); }

.nw-card { background: var(--bg-secondary); border: 1px solid var(--border); border-radius: 12px; padding: 16px; margin: 0 0 16px; }
.nw-card h2 { font-size: 1.15rem; margin: 0 0 12px; color: var(--text-primary); }
.nw-card h3 { font-size: .98rem; margin: 16px 0 6px; color: var(--text-primary); }
.nw-card p, .nw-card li { line-height: 1.55; color: var(--text-primary); }
.nw-note { font-size: .82rem; color: var(--text-secondary); margin: 8px 0 0; line-height: 1.45; }

.nw-map { width: 100%; height: 380px; border-radius: 10px; overflow: hidden; background: var(--bg-tertiary); }
.nw-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: 12px; }
.nw-table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.nw-table th, .nw-table td { text-align: left; padding: 7px 8px; border-bottom: 1px solid var(--border); vertical-align: top; }
.nw-table th { color: var(--text-secondary); font-weight: 600; white-space: nowrap; }
.nw-table td.num, .nw-table th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.nw-table a { color: var(--primary); text-decoration: none; }
.nw-table a:hover { text-decoration: underline; }
.nw-table .nw-credit { display: block; color: var(--text-secondary); font-size: .78rem; }
.nw-table tr.old td { opacity: .55; }

.nw-services { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.nw-services li { background: var(--bg-primary); border: 1px solid var(--border); border-radius: 10px; padding: 12px; }
.nw-services b { display: block; margin-bottom: 4px; }
.nw-soon { display: inline-block; font-size: .72rem; padding: 1px 7px; border-radius: 9px; background: var(--bg-tertiary);
  color: var(--text-secondary); margin-left: 4px; vertical-align: 1px; font-weight: 500; }

.nw-form { display: grid; gap: 14px; max-width: 640px; }
.nw-field label, .nw-legend { display: block; font-weight: 600; font-size: .9rem; margin-bottom: 5px; color: var(--text-primary); }
.nw-field input[type=text], .nw-field input[type=email], .nw-field textarea {
  width: 100%; box-sizing: border-box; font: inherit; font-size: 16px; padding: 9px 11px; border-radius: 8px;
  border: 1px solid var(--border); background: var(--bg-primary); color: var(--text-primary); }
.nw-field textarea { min-height: 70px; resize: vertical; }
.nw-field input:focus, .nw-field textarea:focus { outline: 2px solid var(--primary); outline-offset: 1px; }
.nw-hint { font-size: .8rem; color: var(--text-secondary); margin: 4px 0 0; line-height: 1.4; }
.nw-brands { display: flex; flex-wrap: wrap; gap: 8px; border: 0; padding: 0; margin: 0; }
.nw-brands label { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 99px; cursor: pointer;
  border: 1px solid var(--border); background: var(--bg-primary); font-size: .88rem; color: var(--text-primary); }
.nw-brands input { margin: 0; accent-color: var(--primary); }
.nw-brands label:has(input:checked) { border-color: var(--primary); background: color-mix(in srgb, var(--primary) 12%, var(--bg-primary)); }
.nw-check { display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; line-height: 1.45; color: var(--text-primary); }
.nw-check input { margin-top: 3px; accent-color: var(--primary); flex: none; width: 18px; height: 18px; }
.nw-davis { border-left: 3px solid var(--primary); padding: 8px 12px; background: var(--bg-primary); border-radius: 0 8px 8px 0; font-size: .9rem; }
.nw-davis ol { margin: 6px 0 0; padding-left: 20px; }
.nw-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.nw-submit { justify-self: start; font: inherit; font-weight: 600; padding: 10px 22px; border-radius: 10px; border: 0;
  background: var(--primary); color: #fff; cursor: pointer; }
.nw-submit:hover { background: var(--primary-dark); }
.nw-submit:disabled { opacity: .6; cursor: wait; }
.nw-msg { padding: 10px 14px; border-radius: 8px; font-size: .92rem; line-height: 1.45; }
.nw-msg.ok { background: rgba(46,160,67,.14); color: var(--text-primary); border: 1px solid rgba(46,160,67,.45); }
.nw-msg.err { background: rgba(200,60,60,.12); color: var(--text-primary); border: 1px solid rgba(200,60,60,.45); }
.nw-msg[hidden] { display: none; }

.nw-terms ol { padding-left: 20px; margin: 0; }
.nw-terms li { margin-bottom: 6px; }
.nw-faq details { border-bottom: 1px solid var(--border); padding: 10px 0; }
.nw-faq summary { cursor: pointer; font-weight: 600; color: var(--text-primary); }
.nw-faq details p { margin: 8px 0 0; }

.nw-popup { font-family: var(--font-family, inherit); font-size: .85rem; line-height: 1.4; color: #222; }
.nw-popup b { display: block; margin-bottom: 2px; }
.nw-popup a { color: #1a73e8; }

@media (max-width: 600px) {
  .nw-head h1 { font-size: 1.4rem; }
  .nw-map { height: 300px; }
  .nw-table .nw-hide-sm { display: none; }
}
