/* © 2026 Nikita Odintsov (Никита Одинцов). Creator and rights holder / создатель и правообладатель. All rights reserved. */
/* «Ai Private Review» (ADR 0048, R4): calm colours, the traffic light only where it carries meaning. */
#navigator-view { --nv-red: #c8553d; --nv-orange: #d9902f; --nv-green: #4f9a6b; padding: 24px clamp(16px, 3vw, 36px) 48px; max-width: 1180px; }
.nv-head { display: flex; align-items: flex-start; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.nv-head h1 { margin: 0 0 4px; font-size: 24px; }
.nv-head p { margin: 0; color: var(--muted); font-size: 14px; max-width: 640px; }
.nv-actions { margin-left: auto; display: flex; gap: 8px; flex-wrap: wrap; }
.nv-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 10px 0; }
.nv-hint { color: var(--muted); font-size: 12.5px; margin: 6px 0; }
.nv-msg { min-height: 1.2em; font-size: 13px; color: var(--muted); }
.nv-msg[data-bad="1"] { color: var(--danger); }
.nv-empty { color: var(--muted); padding: 24px 0; }
.nv-welcome, .nv-summary, .nv-registry, .nv-form, .nv-progress { border: 1px solid var(--border); border-radius: 14px; background: var(--card); padding: 18px 20px; margin-bottom: 16px; }
.nv-welcome h2 { margin-top: 0; font-size: 18px; }
.nv-welcome li { margin: 6px 0; }
.nv-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.nv-card { display: flex; flex-direction: column; gap: 6px; text-align: left; border: 1px solid var(--border); border-radius: 14px; background: var(--card); padding: 14px 16px; cursor: pointer; font: inherit; color: var(--text); }
.nv-card:hover { background: var(--hover); }
.nv-card-title { font-weight: 600; font-size: 15px; }
.nv-card-meta, .nv-card-foot { color: var(--muted); font-size: 12.5px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.nv-st { padding: 2px 8px; border-radius: 999px; background: var(--hover); color: var(--text); }
.nv-st-ready { background: color-mix(in srgb, var(--nv-green) 18%, transparent); }
.nv-st-failed, .nv-st-interrupted { background: color-mix(in srgb, var(--nv-orange) 20%, transparent); }
.nv-lights { display: inline-flex; gap: 6px; }
.nv-dot { min-width: 26px; text-align: center; padding: 2px 7px; border-radius: 999px; color: #fff; font-size: 12px; font-weight: 600; }
.nv-dot.red { background: var(--nv-red); } .nv-dot.orange { background: var(--nv-orange); } .nv-dot.green { background: var(--nv-green); }
.nv-form { display: grid; gap: 12px; max-width: 760px; }
.nv-form label { display: grid; gap: 4px; font-size: 13px; color: var(--text-soft); }
.nv-form input, .nv-form select, .nv-registry input, .nv-steps input, .nv-steps select, .nv-title select { font: inherit; font-size: 14px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface, var(--card)); color: var(--text); }
.nv-form fieldset { border: 1px solid var(--border-soft, var(--border)); border-radius: 12px; padding: 10px 12px; margin: 0; }
.nv-form legend { font-size: 13px; color: var(--text-soft); padding: 0 4px; }
.nv-folders { display: grid; gap: 6px; }
.nv-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.nv-chip { display: inline-flex !important; grid-auto-flow: column; align-items: center; gap: 6px; padding: 5px 10px; border: 1px solid var(--border); border-radius: 999px; font-size: 12.5px !important; cursor: pointer; }
.nv-title { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.nv-title h2 { margin: 0; font-size: 20px; } .nv-title span { color: var(--muted); font-size: 13px; }
.nv-progress { display: flex; gap: 14px; align-items: center; }
.nv-progress p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.nv-spinner { width: 22px; height: 22px; border-radius: 50%; border: 3px solid var(--border); border-top-color: var(--accent); animation: nv-spin 1s linear infinite; flex: none; }
@keyframes nv-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .nv-spinner { animation: none; } }
.nv-summary h3, .nv-registry h3 { margin: 0 0 8px; font-size: 16px; }
.nv-summary p { line-height: 1.55; }
.nv-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 6px 0 12px; }
.nv-tabs button { font: inherit; font-size: 13px; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--border); background: var(--card); color: var(--text); cursor: pointer; }
.nv-tabs button[aria-selected="true"] { background: var(--text); color: var(--bg); border-color: var(--text); }
.nv-risks { display: grid; gap: 12px; }
.nv-risk { border: 1px solid var(--border); border-left: 5px solid var(--nv-green); border-radius: 12px; background: var(--card); padding: 14px 16px; }
.nv-risk.nv-red { border-left-color: var(--nv-red); } .nv-risk.nv-orange { border-left-color: var(--nv-orange); }
.nv-risk header { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.nv-risk h4 { margin: 0; font-size: 15px; flex: 1; min-width: 200px; }
.nv-risk p { margin: 8px 0 0; font-size: 14px; line-height: 1.5; }
.nv-why { color: var(--text-soft); } .nv-basis { color: var(--muted); font-size: 12.5px !important; }
.nv-when { color: var(--muted); font-size: 12.5px; }
.nv-badge { font-size: 11.5px; font-weight: 600; padding: 2px 8px; border-radius: 999px; color: #fff; background: var(--nv-green); }
.nv-badge.nv-red { background: var(--nv-red); } .nv-badge.nv-orange { background: var(--nv-orange); }
.nv-risk details, .nv-inventory, .nv-summary details { margin-top: 10px; font-size: 13px; }
.nv-risk summary, .nv-inventory summary, .nv-summary summary { cursor: pointer; color: var(--text-soft); }
.nv-risk h5 { margin: 10px 0 4px; font-size: 12.5px; color: var(--muted); text-transform: none; }
.nv-steps { width: 100%; border-collapse: collapse; margin-top: 12px; font-size: 13px; }
.nv-steps th { text-align: left; font-weight: 500; color: var(--muted); padding: 6px; border-bottom: 1px solid var(--border); }
.nv-steps td { padding: 6px; border-bottom: 1px solid var(--border-soft, var(--border)); vertical-align: top; }
.nv-steps td small { display: block; color: var(--muted); font-size: 11.5px; margin-top: 2px; }
.nv-steps input, .nv-steps select { width: 100%; min-width: 110px; font-size: 13px; padding: 5px 7px; }
.nv-steps tr.nv-done td:first-child { text-decoration: line-through; color: var(--muted); }
.nv-registry form { margin-top: 8px; }
.nv-acts td:first-child { min-width: 260px; }
.nv-inventory ul { max-height: 320px; overflow: auto; }
#navigator-view code { word-break: break-all; }
@media (max-width: 720px) {
  .nv-steps thead { display: none; }
  .nv-steps tr { display: grid; gap: 4px; padding: 8px 0; border-bottom: 1px solid var(--border); }
  .nv-steps td { border: 0; padding: 2px 0; }
}
#navigator-view input[type="checkbox"] { width: auto; min-width: 0; padding: 0; margin: 0; border: 0; accent-color: var(--accent); flex: none; }
.nv-due ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; }
.nv-link { background: none; border: 0; padding: 4px 0; font: inherit; color: var(--text); text-align: left; cursor: pointer; }
.nv-link:hover { text-decoration: underline; }
.nv-due-late { color: var(--nv-red); } .nv-due-today { color: var(--nv-orange); } .nv-due-soon { color: var(--text-soft); }
.nv-optin { margin-top: 6px; }
.nv-due { margin-bottom: 16px; }
.nv-summary form.nv-row input { flex: 1 1 220px; max-width: 420px; }
.nv-login { color: var(--muted); font-size: 12px; text-transform: none; letter-spacing: 0; font-weight: 400; }
.nv-watches { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.nv-watches li { display: grid; gap: 6px; }
.nv-watch-new { margin: 10px 0; }
.nv-list { margin-bottom: 16px; }
.nv-badge.nv-recon { background: #6b7a99; }
.nv-intake-ok { border-left: 5px solid var(--nv-green); }
.nv-intake-part { border-left: 5px solid var(--nv-orange); }
.nv-intake summary { cursor: pointer; line-height: 1.5; }
.nv-journal { margin: 16px 0; font-size: 13px; }
.nv-journal-table td:last-child { word-break: break-word; }
.nv-journal-table tr.nv-lv-warning td { background: color-mix(in srgb, var(--nv-orange) 10%, transparent); }
.nv-journal-table tr.nv-lv-error td { background: color-mix(in srgb, var(--nv-red) 12%, transparent); }
/* Live reading progress (owner 15.10): count-down bar, current file and action. */
.nv-progress-main { flex: 1; min-width: 0; }
.nv-progress-main p { margin: 6px 0; }
.nv-bar { display: block; height: 8px; border-radius: 99px; background: var(--ws-soft, rgba(0,0,0,.06)); overflow: hidden; margin: 8px 0 6px; }
.nv-bar i { display: block; height: 100%; background: var(--accent); border-radius: 99px; transition: width .6s ease; }
.nv-count { display: block; font-size: 13px; }
.nv-now { display: block; font-size: 13px; color: var(--muted); overflow-wrap: anywhere; margin-top: 4px; }
.nv-progress-main .nv-hint { display: block; }
/* Legal services list: status pills stay inline (they stretched to the full width). */
.nv-watches li > .nv-st { display: inline-block; width: auto; margin: 0 6px; vertical-align: middle; }
/* ADR 0054: readiness per inspector */
.nv-ready details { border-top: 1px solid var(--border); padding: 8px 0; }
.nv-ready summary { cursor: pointer; }
.nv-ready ul { margin: 6px 0 0; padding-left: 18px; font-size: 13px; }
.nv-ready-missing b { color: #b5482f; } .nv-ready-issue b, .nv-ready-unclear b { color: #c08a3e; } .nv-ready-ok b, .nv-ready-found b { color: #5f8a5a; }
.nv-dept { border-top: 1px solid var(--border); padding: 8px 0; } .nv-dept summary { cursor: pointer; }
/* Owner 15.10: the portal stretches every input to 100 % — radios and checkboxes of the wizard keep their size. */
.nv-form input[type="radio"], .nv-form input[type="checkbox"], .nv-chip input, .nv-radio input { width: auto !important; flex: 0 0 auto; margin: 0; }
.nv-radios { display: flex; flex-direction: column; gap: 6px; margin: 4px 0 8px; }
.nv-radio { display: flex !important; align-items: flex-start; gap: 8px; font-size: 13px !important; text-transform: none !important;
  letter-spacing: normal !important; font-weight: 400 !important; color: var(--text) !important; cursor: pointer; }
.nv-radio input { margin-top: 3px; }
.nv-radio span { text-transform: none !important; letter-spacing: normal !important; font-size: 13px !important; font-weight: 400 !important; color: var(--text) !important; }
.nv-radio b { font-weight: 600; }
.nv-chip [hidden], .nv-chip[hidden] { display: none !important; }
.nv-conn { display: inline-flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.nv-file-acts { display: inline-flex; gap: 4px; margin-left: 6px; vertical-align: middle; }
.nv-file-acts .ws-btn.small { padding: 1px 8px; font-size: 12px; }
.nv-inventory h5 { margin: 10px 0 4px; }
.nv-alive { color: #3f7d4e; }
.nv-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 1000; max-width: min(640px, calc(100vw - 32px));
  padding: 10px 16px; border-radius: 10px; background: var(--text, #2b2a27); color: var(--shell, #f7f6f3); font-size: 13px; line-height: 1.4;
  box-shadow: 0 6px 24px rgba(0,0,0,.18); }
.nv-toast[data-bad="1"] { background: var(--danger, #b3412e); color: #fff; }
.nv-toast[hidden] { display: none; }
/* Owner 26.10: the whole analysis as one percentage and a finish time */
.nv-total { font-size: 15px; }
.nv-bar-total { height: 10px; }
/* Owner 28.10: partner edition — the working papers are on the screen, marked as not for the client. */
.nv-working { color: var(--accent, #b5543b); font-weight: 600; border-left: 3px solid var(--accent, #b5543b); padding-left: 8px; }
/* Audit 30.10 decision 13. */
.nv-show-banner { padding: 8px 12px; margin-bottom: 10px; border-radius: 10px; background: var(--hover); font-size: 13px; }
.nv-field { border: 1px solid var(--border); border-radius: 14px; padding: 16px; width: min(460px, calc(100vw - 32px)); background: var(--card); color: var(--text); }
.nv-field p { margin: 6px 0; font-size: 14px; }
.nv-field p.bad b { color: #b5482f; }
.nv-field p.ok b { color: #5f8a5a; }
.nv-field p.warn b { color: #c08a3e; }
