/* Калькуляторы сетки: только переменные темы netsite и её скинов (--paper, --surface, --ink, --line, --accent, --tint, --r),
   поэтому светлая/тёмная схема и шрифты — как у сайта. */
.ns-tool{margin:1.6em 0 2.2em;padding:20px;border:1px solid var(--line);border-radius:var(--r,8px);background:var(--surface);font-family:var(--text);font-size:16px;line-height:1.45;color:var(--ink)}
.ns-tool fieldset{border:0;margin:0 0 4px;padding:0;min-width:0}
.ns-tool legend{padding:0;margin:0 0 8px;font-weight:700;font-size:16px}
.ns-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px 14px;margin:0 0 14px}
.ns-wide{grid-column:span 2}
.ns-f label{display:block;margin:0 0 5px;font-size:14px;font-weight:600;color:var(--ink-2,var(--ink))}
.ns-tool input:not([type=checkbox]),.ns-tool select{box-sizing:border-box;width:100%;min-height:44px;margin:0;padding:9px 10px;font:inherit;font-size:16px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:calc(var(--r,8px)*.6)}
.ns-tool input:focus-visible,.ns-tool select:focus-visible,.ns-add:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.ns-u{display:flex;gap:6px}
.ns-u input{flex:1 1 auto;min-width:0}
.ns-tool .ns-u select{flex:0 0 auto;width:auto;max-width:55%}
.ns-checks{margin:0 0 14px}
.ns-check{display:flex;gap:10px;align-items:flex-start;margin:0 0 9px;font-size:15px;font-weight:400}
.ns-check input{flex:0 0 auto;width:20px;height:20px;margin:1px 0 0;accent-color:var(--accent)}
.ns-add{margin:0 0 14px;padding:8px 12px;font:inherit;font-size:14px;font-weight:600;color:var(--link);background:transparent;border:1px dashed var(--line);border-radius:calc(var(--r,8px)*.6);cursor:pointer}
.ns-out{padding:16px 18px;border-left:4px solid var(--line);border-radius:var(--r,8px);background:var(--tint)}
.ns-out.ns-done{border-left-color:var(--accent)}
.ns-tool .ns-out p{margin:.45em 0 0;font-size:16px;line-height:1.5}
.ns-big{font-family:var(--display);font-size:28px;font-weight:700;line-height:1.2;color:var(--ink)}
.ns-tool .ns-lvl{margin:.3em 0 0;font-weight:700;font-size:18px}
.ns-tool .ns-out .ns-small{font-size:14px;color:var(--muted)}
.ns-tool .ns-out .ns-hint{margin:0;color:var(--muted)}
.ns-tool .ns-out ul{margin:.6em 0 0;padding-left:1.2em}
.ns-tool .ns-out li{margin:.3em 0;font-size:15.5px;line-height:1.5}
.ns-tool [hidden]{display:none!important}
.ns-tools-list{display:grid;gap:14px;margin:1.2em 0 2em;padding:0;list-style:none}
.prose .ns-tools-list li{margin:0;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r,8px);background:var(--surface)}
.prose .ns-tools-list li::before{content:none}
.ns-tools-list a{font-weight:700;font-size:18px}
.ns-tools-list p{margin:.3em 0 0!important;font-size:15.5px;color:var(--muted)}
@media (max-width:640px){.ns-tool{padding:16px 14px}.ns-big{font-size:24px}}
@media (max-width:359px){.ns-row{grid-template-columns:1fr}.ns-wide{grid-column:auto}}

/* солунарная таблица (03.11.2026) */
.ns-tbl{width:100%;border-collapse:collapse;margin:.6em 0;font-size:.95em}
.ns-tbl th,.ns-tbl td{text-align:left;padding:.35em .5em;border-bottom:1px solid var(--line,rgba(0,0,0,.12));vertical-align:top}
.ns-tbl th{font-weight:600;white-space:nowrap}
@media (max-width:560px){.ns-tbl td:last-child{display:block;padding-top:0;border-bottom:0;font-size:.9em;opacity:.8}}

/* трекеры «States I've visited» и «National parks checklist» (04.11.2026, trackers.js) */
.ns-trk{--trk-w:#E8A33D;--trk-e:color-mix(in srgb,var(--ink) 13%,var(--surface));margin:1.6em 0 2.2em;padding:20px;border:1px solid var(--line);border-radius:var(--r,8px);background:var(--surface);font-family:var(--text);font-size:16px;line-height:1.45;color:var(--ink)}
.ns-trk-top{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between;margin:0 0 14px}
.ns-seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--paper)}
.ns-seg button{display:inline-flex;gap:7px;align-items:center;min-height:38px;padding:6px 14px;font:inherit;font-size:15px;font-weight:600;color:var(--muted);background:transparent;border:0;border-radius:999px;cursor:pointer}
.ns-seg button[aria-pressed=true]{color:var(--ink);background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.ns-dot{display:inline-block;width:12px;height:12px;border-radius:3px}
.ns-dv{background:var(--accent)}.ns-dw{background:var(--trk-w)}
.prose .ns-trk p.ns-trk-count,.ns-trk-count{margin:0;font-size:16px}
.ns-prog{height:10px;margin:0 0 16px;border-radius:999px;background:var(--trk-e);overflow:hidden}
.ns-prog span{display:block;height:100%;width:0;background:var(--accent);transition:width .25s}
.prose .ns-trk p.ns-trk-shared{margin:0 0 12px;padding:10px 14px;border-radius:var(--r,8px);background:var(--tint);font-size:15px}
.ns-map svg{display:block;width:100%;height:auto}
.ns-map path,.ns-map circle{fill:var(--trk-e);stroke:var(--surface);stroke-width:1;cursor:pointer;transition:fill .15s}
.ns-map path.ns-sep{fill:none;stroke:var(--line);stroke-width:2;cursor:default;pointer-events:none}
.ns-map circle{stroke-width:1.5}
.ns-map .is-v{fill:var(--accent)}.ns-map .is-w{fill:var(--trk-w)}
@media (hover:hover){.ns-map path:not(.ns-sep):hover,.ns-map circle:hover{fill:color-mix(in srgb,var(--accent) 45%,var(--trk-e))}.ns-trk.mode-w .ns-map path:not(.ns-sep):hover,.ns-trk.mode-w .ns-map circle:hover{fill:color-mix(in srgb,var(--trk-w) 55%,var(--trk-e))}.ns-map .is-v:hover{fill:var(--accent)!important}}
.prose .ns-trk p.ns-note{margin:6px 0 0;font-size:13px;color:var(--muted)}
.ns-trk.is-shared [data-i]{cursor:default;pointer-events:none}
.ns-trk-list{margin:14px 0 0}
.ns-trk-list summary{cursor:pointer;font-weight:600;font-size:15px;color:var(--link)}
.ns-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin:10px 0 0}
.ns-chip{display:flex;gap:8px;align-items:center;min-height:40px;padding:6px 10px;font:inherit;font-size:14.5px;text-align:left;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:calc(var(--r,8px)*.6);cursor:pointer}
.ns-chip.is-v{color:var(--accent-ink,#fff);background:var(--accent);border-color:var(--accent)}
.ns-chip.is-w{background:color-mix(in srgb,var(--trk-w) 30%,var(--paper));border-color:var(--trk-w)}
.ns-chip:focus-visible,.ns-seg button:focus-visible,.ns-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ns-pk-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 12px}
.ns-pk-tools label{display:flex;gap:8px;align-items:center;font-size:14px;font-weight:600}
.ns-trk select,.ns-trk input[type=search]{min-height:40px;padding:6px 10px;font:inherit;font-size:15px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:calc(var(--r,8px)*.6)}
.ns-trk input[type=search]{flex:1 1 180px;min-width:0}
.prose ul.ns-pk{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:6px 10px;margin:0;padding:0;list-style:none}
.prose .ns-pk li{display:flex;gap:6px;align-items:stretch;margin:0;padding:0}
.prose .ns-pk li::before{content:none}
.prose .ns-pk li.ns-pk-h{grid-column:1/-1;margin:10px 0 0;font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ns-pk-b{flex:1 1 auto;min-width:0}
.ns-box{position:relative;flex:0 0 auto;width:18px;height:18px;border:2px solid var(--line);border-radius:4px;background:var(--surface)}
.ns-pk-b.is-v .ns-box{border-color:var(--accent-ink,#fff);background:var(--accent-ink,#fff)}
.ns-pk-b.is-v .ns-box::after{content:"";position:absolute;inset:0;background:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3 3 7-7' fill='none' stroke='%23000' stroke-width='2.4'/%3E%3C/svg%3E") center/14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5l3 3 7-7' fill='none' stroke='%23000' stroke-width='2.4'/%3E%3C/svg%3E") center/14px no-repeat}
.ns-pk-b.is-w .ns-box{border-color:var(--trk-w);background:var(--trk-w)}
.ns-pk-n{flex:1 1 auto;font-weight:600}
.ns-pk-s{flex:0 0 auto;font-size:12.5px;color:var(--muted)}
.ns-pk-b.is-v .ns-pk-s{color:inherit;opacity:.8}
.prose .ns-pk a.ns-pk-g{display:flex;align-items:center;padding:0 8px;font-size:13px;font-weight:600;white-space:nowrap}
.ns-trk-act{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0}
.ns-btn{min-height:42px;padding:8px 16px;font:inherit;font-size:15px;font-weight:600;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:999px;cursor:pointer}
.ns-btn.ns-img{color:var(--accent-ink,#fff);background:var(--accent);border-color:var(--accent)}
.ns-btn:disabled{opacity:.6;cursor:progress}
.ns-trk.is-shared .ns-clear,.ns-trk.is-shared .ns-seg{display:none}
.ns-own{margin:0 0 0 6px;padding:5px 14px;font:inherit;font-size:14px;font-weight:600;color:var(--accent-ink,#fff);background:var(--accent);border:0;border-radius:999px;cursor:pointer}
.prose .ns-trk p.ns-trk-msg{min-height:1.4em;margin:8px 0 0;font-size:14px;color:var(--muted)}
.prose .ns-trk p.ns-small{margin:4px 0 0;font-size:13px;color:var(--muted)}
@media (max-width:640px){.ns-trk{padding:16px 12px}.ns-chips{grid-template-columns:repeat(2,minmax(0,1fr))}.prose ul.ns-pk{grid-template-columns:1fr}}
@media print{
  html.ns-printing .site-header,html.ns-printing .site-footer,html.ns-printing .crumbs,html.ns-printing .ns-seg,html.ns-printing .ns-pk-tools,
  html.ns-printing .ns-trk-act,html.ns-printing .ns-trk-msg,html.ns-printing .ns-small,html.ns-printing .ns-pk-g,html.ns-printing .ns-prog,
  html.ns-printing .prose>:not(.ns-trk):not(:has(.ns-trk)){display:none!important}
  html.ns-printing .ns-trk{border:0;padding:0;background:#fff;color:#000}
  html.ns-printing .prose ul.ns-pk{display:block;columns:2;column-gap:28px}
  html.ns-printing .ns-pk li{break-inside:avoid;margin:0 0 4px}
  html.ns-printing .ns-pk-b{min-height:0;padding:3px 0;border:0;background:none!important;color:#000!important}
  html.ns-printing .ns-box{border:1.5px solid #000!important;background:#fff!important}
  html.ns-printing .ns-pk-b.is-v .ns-box::after{background:#000!important}
}
