/* Ngwenya Practice office UI */
@font-face { font-family: 'Open Sans'; src: url(opensans-latin.woff2) format('woff2'); font-weight: 400 800; font-display: swap; }
:root {
  --navy: #0E1B42; --navy-2: #1A2C63; --navy-soft: #EEF1F7; --green: #1F6B3B; --green-l: #7BD39B;
  --paper: #F5F4F0; --white: #fff; --ink: #141823; --muted: #5B6270; --border: #E3E0D7;
  --bad: #A23B2E; --warn: #9A6A08; --ok: #1F6B3B;
  --r: 12px; --shadow: 0 1px 2px rgba(14,27,66,.05), 0 6px 18px -8px rgba(14,27,66,.18);
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body.np { font: 14.5px/1.55 'Open Sans', -apple-system, 'Segoe UI', sans-serif; color: var(--ink); background: var(--paper); -webkit-font-smoothing: antialiased; }
a { color: var(--navy-2); }
h1, h2, h3 { color: var(--navy); letter-spacing: -.02em; margin: 0 0 .6em; line-height: 1.2; }
h1 { font-size: 1.35rem; font-weight: 800; margin: 0; }
h2 { font-size: 1.05rem; font-weight: 800; }
h3 { font-size: .95rem; font-weight: 700; margin-top: 1.2em; }
p { margin: 0 0 .8em; }
code { font-size: .85em; background: var(--navy-soft); padding: 1px 6px; border-radius: 4px; }

.np-shell { display: grid; grid-template-columns: 248px 1fr; min-height: 100vh; }
.np-side { background: linear-gradient(180deg, #0B1636, var(--navy) 60%, #13245A); color: #fff; display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; overflow-y: auto; }
.np-brand { display: flex; gap: 10px; align-items: center; padding: 18px 18px 14px; text-decoration: none; color: #fff; }
.np-brand strong { display: block; font-size: .9rem; line-height: 1.2; }
.np-brand small { color: var(--green-l); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; font-size: .65rem; }
.np-brand-mark { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 11px; background: linear-gradient(135deg, #2E8B4F, var(--green)); color: #fff; font-weight: 800; font-size: .8rem; flex-shrink: 0; box-shadow: inset 0 1px 0 rgba(255,255,255,.3); }
.np-brand-mark.lg { width: 56px; height: 56px; font-size: 1rem; margin: 0 auto 14px; }
.np-side nav { padding: 6px 10px; display: grid; gap: 2px; }
.np-side nav a { display: flex; gap: 11px; align-items: center; padding: 9px 12px; border-radius: 9px; color: rgba(255,255,255,.78); text-decoration: none; font-weight: 600; font-size: .9rem; }
.np-side nav a svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.np-side nav a:hover { background: rgba(255,255,255,.08); color: #fff; }
.np-side nav a.is-active { background: rgba(123,211,155,.16); color: #fff; box-shadow: inset 3px 0 0 var(--green-l); }
.np-nav-head { margin: 14px 12px 4px; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.45); font-weight: 700; }
.np-side-foot { margin-top: auto; padding: 14px 18px; border-top: 1px solid rgba(255,255,255,.1); display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: .85rem; }
.np-side-foot small { display: block; color: rgba(255,255,255,.55); font-size: .75rem; }
.np-side-foot a { color: var(--green-l); font-weight: 700; text-decoration: none; }

.np-main { min-width: 0; }
.np-top { position: sticky; top: 0; z-index: 20; display: flex; gap: 16px; align-items: center; padding: 14px 28px; background: rgba(245,244,240,.88); backdrop-filter: blur(10px); border-bottom: 1px solid var(--border); }
.np-top h1 { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.np-search input { width: 240px; }
.np-top-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.np-menu { display: none; width: 40px; height: 40px; border: 0; background: none; position: relative; cursor: pointer; }
.np-menu span, .np-menu span::before, .np-menu span::after { content: ''; position: absolute; left: 9px; right: 9px; height: 2px; background: var(--navy); border-radius: 2px; }
.np-menu span { top: 19px; } .np-menu span::before { left: 0; right: 0; top: -6px; } .np-menu span::after { left: 0; right: 0; top: 6px; }
.np-content { padding: 24px 28px 60px; max-width: 1400px; }

.np-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--r); box-shadow: var(--shadow); padding: 20px 22px; margin-bottom: 18px; }
.np-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 8px; }
.np-narrow { max-width: 640px; }
.np-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-items: start; }
.np-grid-wide { grid-template-columns: minmax(0, 1.6fr) minmax(300px, 1fr); }
.np-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; align-items: start; }
.np-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; margin-bottom: 18px; }
.np-stat { display: block; background: var(--white); border: 1px solid var(--border); border-radius: var(--r); padding: 16px 18px; text-decoration: none; color: inherit; box-shadow: var(--shadow); transition: transform .15s ease; }
a.np-stat:hover { transform: translateY(-2px); }
.np-stat span { display: block; color: var(--muted); font-size: .8rem; font-weight: 600; }
.np-stat strong { display: block; font-size: 1.45rem; font-weight: 800; color: var(--navy); letter-spacing: -.02em; margin: 2px 0; }
.np-stat small { color: var(--muted); font-size: .78rem; }

.np-btn { display: inline-flex; align-items: center; gap: 6px; padding: 9px 16px; border-radius: 999px; border: 1px solid transparent; font: 700 .86rem 'Open Sans', sans-serif; text-decoration: none; cursor: pointer; white-space: nowrap; line-height: 1.2; }
.np-btn.primary { background: linear-gradient(180deg, var(--navy-2), var(--navy)); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.15); }
.np-btn.primary:hover { filter: brightness(1.12); }
.np-btn.ghost { background: var(--white); color: var(--navy); border-color: var(--border); }
.np-btn.ghost:hover { border-color: var(--navy); }
.np-btn.danger { background: var(--bad); color: #fff; }
.np-btn.tick { width: 28px; height: 28px; padding: 0; justify-content: center; border-radius: 50%; border-color: var(--border); background: var(--white); color: var(--green); }
.np-inline { display: inline; margin: 0; }
.np-inline-form { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.np-inline-form .np-money { width: 130px; }

.np-form label { display: flex; flex-direction: column; gap: 5px; font-weight: 700; font-size: .8rem; color: var(--navy); margin-bottom: 12px; min-width: 0; }
.np-form .np-check { flex-direction: row; align-items: center; gap: 8px; font-weight: 600; }
.np-row { display: flex; gap: 14px; flex-wrap: wrap; }
.np-row > label { flex: 1 1 160px; }
.np-row > label.grow { flex: 3 1 260px; }
input, select, textarea { font: 400 .92rem 'Open Sans', sans-serif; padding: 9px 11px; border: 1px solid var(--border); border-radius: 9px; background: #FCFBF8; color: var(--ink); width: 100%; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--green); background: #fff; box-shadow: 0 0 0 3px rgba(31,107,59,.14); }
input[type=checkbox] { width: auto; accent-color: var(--green); }
.np-money { display: flex; align-items: stretch; }
.np-money span { display: grid; place-items: center; padding: 0 10px; border: 1px solid var(--border); border-right: 0; border-radius: 9px 0 0 9px; background: var(--navy-soft); color: var(--navy); font-weight: 700; }
.np-money input { border-radius: 0 9px 9px 0; text-align: right; }
.np-actions { display: flex; gap: 10px; margin-top: 6px; }
.np-fieldset { border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px 2px; margin: 4px 0 14px; }
.np-fieldset legend { font-weight: 800; color: var(--green); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; padding: 0 6px; }
.np-compact label { margin-bottom: 8px; }
.np-filter { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 14px; }
.np-filter label { display: flex; flex-direction: column; font-size: .75rem; font-weight: 700; color: var(--muted); gap: 3px; }
.np-filter input[type=search] { max-width: 340px; }
.np-note-form { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 14px; }

.np-table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.np-table th { text-align: left; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); font-weight: 700; padding: 8px 10px; border-bottom: 1px solid var(--border); }
.np-table td { padding: 10px; border-bottom: 1px solid #EFEDE6; vertical-align: top; }
.np-table tbody tr:hover { background: #FBFAF7; }
.np-table tfoot th { color: var(--navy); font-size: .85rem; text-transform: none; letter-spacing: 0; border-bottom: 0; border-top: 1px solid var(--border); }
.np-table .np-total th { font-size: .95rem; background: var(--navy-soft); }
.np-table a { font-weight: 600; text-decoration: none; }
.r { text-align: right !important; }
.pos { color: var(--ok); } .neg, .bad { color: var(--bad) !important; }
.np-sub { display: block; color: var(--muted); font-size: .78rem; }
.np-muted { color: var(--muted); }
.np-reversed td, .np-reversed { opacity: .5; text-decoration: line-through; }
.np-reversed .np-pop, .np-reversed .np-btn { display: none; }
.np-badge { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: .72rem; font-weight: 700; background: var(--navy-soft); color: var(--navy); vertical-align: middle; }
.np-badge.ok { background: rgba(31,107,59,.12); color: var(--ok); }
.np-badge.warn { background: rgba(154,106,8,.12); color: var(--warn); }
.np-badge.bad { background: rgba(162,59,46,.12); color: var(--bad); }
.np-badge.muted { background: #EEECE6; color: var(--muted); }

.np-flash { padding: 12px 16px; border-radius: 10px; margin-bottom: 16px; font-weight: 600; border-left: 4px solid var(--ok); background: rgba(31,107,59,.08); color: var(--ok); }
.np-flash.error { border-color: var(--bad); background: #FBEDEA; color: #7A2A20; }
.np-empty { text-align: center; padding: 34px 20px; color: var(--muted); }
.np-empty h3 { margin-top: 0; }
.np-note { background: #FBF8EF; border-left: 3px solid #D8C58A; padding: 10px 12px; border-radius: 6px; }

.np-tabs { display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: 14px; }
.np-tabs a { padding: 7px 14px; border-radius: 999px; text-decoration: none; font-weight: 700; font-size: .84rem; color: var(--navy); }
.np-tabs a:hover { background: var(--navy-soft); }
.np-tabs a.is-active { background: var(--navy); color: #fff; }
.np-tabs-lg { background: var(--white); border: 1px solid var(--border); border-radius: 999px; padding: 5px; display: inline-flex; box-shadow: var(--shadow); }

.np-list { list-style: none; margin: 0; padding: 0; }
.np-list li { display: flex; gap: 12px; align-items: flex-start; padding: 9px 0; border-bottom: 1px solid #EFEDE6; }
.np-list li > span:nth-child(2) { flex: 1; }
.np-date { min-width: 120px; color: var(--muted); font-size: .8rem; font-weight: 600; }
.np-tasks { list-style: none; margin: 0; padding: 0; }
.np-tasks li { display: flex; gap: 12px; align-items: flex-start; padding: 9px 0; border-bottom: 1px solid #EFEDE6; }
.np-tasks li.done strong { text-decoration: line-through; color: var(--muted); }
.np-timeline { list-style: none; margin: 0; padding: 0; }
.np-timeline li { padding: 10px 0 10px 16px; border-left: 2px solid var(--border); position: relative; }
.np-timeline li::before { content: ''; position: absolute; left: -6px; top: 15px; width: 10px; height: 10px; border-radius: 50%; background: var(--green); }
.np-timeline p { margin: 2px 0 0; }
.np-day { margin-bottom: 10px; }
.np-day h3 { margin: 10px 0 4px; }
.np-day.today h3 { color: var(--green); }
.np-dl { display: grid; grid-template-columns: 120px 1fr; gap: 6px 12px; margin: 0; font-size: .88rem; }
.np-dl dt { color: var(--muted); font-weight: 600; }
.np-dl dd { margin: 0; }
.np-matter-head { display: flex; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.np-matter-head h2 { font-size: 1.2rem; }
.np-mini-stats { display: flex; gap: 10px; }
.np-mini-stats span { background: var(--navy-soft); border-radius: 10px; padding: 8px 14px; font-weight: 800; color: var(--navy); }
.np-mini-stats small { display: block; font-size: .7rem; color: var(--muted); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.np-details summary { cursor: pointer; font-weight: 700; color: var(--navy); }
.np-pop { display: inline-block; position: relative; }
.np-pop summary { list-style: none; }
.np-pop summary::-webkit-details-marker { display: none; }
.np-pop[open] form { position: absolute; right: 0; z-index: 30; background: #fff; border: 1px solid var(--border); border-radius: 10px; box-shadow: var(--shadow); padding: 10px; display: flex; gap: 6px; width: 320px; margin-top: 4px; }
.np-recon-sum { display: flex; gap: 16px; flex-wrap: wrap; align-items: flex-end; padding-bottom: 12px; font-size: .85rem; color: var(--muted); }
.np-recon-sum strong { display: block; color: var(--navy); font-size: 1rem; }
.np-roles li { margin-bottom: 4px; }
.np-print-head { display: none; }

body.np.np-login { display: grid; place-items: center; min-height: 100vh; background: radial-gradient(100% 100% at 0% 0%, #1A2C63, #0E1B42 55%, #070E24); }
.np-login-wrap { width: 100%; padding: 20px; }
.np-login-card { max-width: 400px; margin: 0 auto; background: #fff; border-radius: 18px; padding: 32px; box-shadow: 0 30px 80px -20px rgba(0,0,0,.6); text-align: center; }
.np-login-card h1 { font-size: 1.3rem; margin-bottom: 4px; }
#np-loginform { text-align: left; margin-top: 18px; }
#np-loginform p { margin: 0 0 12px; }
#np-loginform label { display: block; font-size: .8rem; font-weight: 700; color: var(--navy); margin-bottom: 5px; }
#np-loginform .login-remember label { display: flex; gap: 8px; align-items: center; font-weight: 600; }
#np-loginform .button-primary { width: 100%; padding: 12px; border: 0; border-radius: 999px; background: linear-gradient(180deg, var(--navy-2), var(--navy)); color: #fff; font: 700 .95rem 'Open Sans', sans-serif; cursor: pointer; }
.np-login-links { display: flex; justify-content: space-between; font-size: .82rem; margin-top: 8px; }

@media (max-width: 1100px) { .np-grid-wide, .np-grid-3 { grid-template-columns: 1fr; } .np-search input { width: 170px; } }
@media (max-width: 860px) {
  .np-shell { grid-template-columns: 1fr; }
  .np-side { position: fixed; inset: 0 auto 0 0; width: 260px; z-index: 50; transform: translateX(-100%); transition: transform .25s ease; }
  .np-side.is-open { transform: none; box-shadow: 0 0 0 100vmax rgba(7,14,36,.45); }
  .np-menu { display: block; }
  .np-top { padding: 10px 14px; flex-wrap: wrap; }
  .np-search { order: 3; width: 100%; } .np-search input { width: 100%; }
  .np-content { padding: 16px 14px 60px; }
  .np-grid-2 { grid-template-columns: 1fr; }
  .np-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .np-stat { padding: 12px 14px; } .np-stat strong { font-size: 1.15rem; }
  .np-card { padding: 16px; overflow-x: auto; }
  .np-table { min-width: 560px; }
  .np-tabs-lg { border-radius: 14px; }
}
@media print {
  .np-side, .np-top, .np-tabs, .np-filter, .np-btn, form, .np-pop { display: none !important; }
  .np-shell { display: block; } .np-content { padding: 0; }
  .np-card { box-shadow: none; border: 0; padding: 0; }
  .np-print-head { display: flex; justify-content: space-between; border-bottom: 2px solid var(--green); padding-bottom: 8px; margin-bottom: 14px; }
  body.np { background: #fff; font-size: 11pt; }
}

/* ---- v1.1: branding, auth, case diary ------------------------------------ */
.np-brand-logo { width: 44px; height: 44px; border-radius: 11px; background: #fff; padding: 3px; object-fit: contain; flex-shrink: 0; }
.np-brand small { text-transform: none; letter-spacing: 0; font-weight: 600; color: rgba(255,255,255,.6); font-size: .72rem; }
.np-login-logo { width: 96px; height: 96px; object-fit: contain; margin: 0 auto 6px; display: block; }
.np-login-sys { margin: 0 0 4px; color: var(--green); font-weight: 800; letter-spacing: .14em; text-transform: uppercase; font-size: .72rem; }
.np-auth-form { text-align: left; margin-top: 16px; }
.np-btn-block { width: 100%; justify-content: center; padding: 12px; font-size: .95rem; }
.np-login-foot { margin: 18px 0 0; font-size: .75rem; color: var(--muted); }
.np-small { font-size: .8rem; }
.np-big-date { font-size: 1.05rem; color: var(--navy); margin: 0; }
.np-big-date strong { font-size: 1.3rem; margin-left: 6px; }
.np-diary-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.np-diary-bar .np-filter { margin: 0; }
.np-ev-done, .np-ev-cancelled { opacity: .55; }
.np-alerts { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 8px; }
.np-alerts li { display: flex; gap: 10px; align-items: baseline; font-weight: 600; }
.np-alerts li > span:first-child { color: var(--green); font-weight: 800; width: 16px; }
.np-danger-zone { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--border); }
select[multiple] { min-height: 84px; }
.np-cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: 10px; overflow: hidden; }
.np-cal-h { background: var(--navy-soft); padding: 6px 8px; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.np-cal-d { background: #fff; min-height: 104px; padding: 6px; display: flex; flex-direction: column; gap: 3px; }
.np-cal-d.out { background: #FAF9F6; }
.np-cal-d.out .np-cal-n { color: #B6B9C0; }
.np-cal-d.today { box-shadow: inset 0 0 0 2px var(--green); }
.np-cal-n { font-weight: 800; font-size: .8rem; color: var(--navy); text-decoration: none; align-self: flex-start; padding: 1px 6px; border-radius: 6px; }
.np-cal-n:hover { background: var(--navy-soft); }
.np-cal-e { display: block; font-size: .72rem; line-height: 1.3; padding: 3px 6px; border-radius: 6px; background: var(--navy-soft); color: var(--navy); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.np-cal-e.court { background: rgba(162,59,46,.12); color: var(--bad); }
.np-cal-e.done, .np-cal-e.cancelled { opacity: .5; text-decoration: line-through; }
@media (max-width: 860px) {
  .np-cal { grid-template-columns: 1fr; }
  .np-cal-h, .np-cal-d.out:not(:has(.np-cal-e)) { display: none; }
  .np-cal-d { min-height: 0; flex-direction: row; flex-wrap: wrap; }
  .np-cal-d:not(:has(.np-cal-e)) { display: none; }
}

.np-flash.warn { border-color: var(--warn); background: #FBF3E2; color: #6E4B05; }
.np-side-foot a.np-me { color: #fff; font-weight: 600; text-decoration: none; }
.np-side-foot a.np-me small { display: block; color: rgba(255,255,255,.55); font-size: .75rem; font-weight: 400; }
.np-ev-postponed .np-date { text-decoration: line-through; }
.np-cal-e.postponed { opacity: .6; }
.np-copy { font-family: ui-monospace, monospace; font-size: .78rem; }
.np-steps { padding-left: 1.2em; margin: 0 0 12px; }
.np-steps li { margin-bottom: 6px; }
.np-qr svg { width: 200px; height: 200px; display: block; background: #fff; border: 1px solid var(--border); border-radius: 10px; padding: 6px; }
.np-backup-codes { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; font-family: ui-monospace, monospace; font-size: 1rem; }
.np-backup-codes li { background: var(--navy-soft); padding: 6px 10px; border-radius: 6px; text-align: center; }
.np-code-input { font-size: 1.4rem; letter-spacing: .3em; text-align: center; }
.np-drop { border: 2px dashed var(--border); border-radius: 12px; padding: 22px; text-align: center; background: #FCFBF8; cursor: pointer; }
.np-drop input[type=file] { margin-top: 10px; background: transparent; border: 0; }

/* Dashboard: case diary first */
.np-diary-home { margin-bottom: 18px; border-top: 4px solid var(--green); }
.np-diary-home h2 { font-size: 1.3rem; }
.np-diary-home h3 { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin: 0 0 6px; }
.np-diary-home .np-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.np-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; margin: 14px 0 18px; }
.np-week-d { display: block; text-align: center; padding: 10px 4px; border: 1px solid var(--border); border-radius: 10px; text-decoration: none; color: inherit; background: var(--paper); transition: transform .15s ease; }
.np-week-d:hover { transform: translateY(-2px); }
.np-week-d span { display: block; font-size: .72rem; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.np-week-d strong { display: block; font-size: 1.35rem; font-weight: 800; color: var(--navy); line-height: 1.2; }
.np-week-d small { font-size: .72rem; color: var(--muted); }
.np-week-d.is-today { background: var(--navy); border-color: var(--navy); }
.np-week-d.is-today span, .np-week-d.is-today small { color: rgba(255,255,255,.75); }
.np-week-d.is-today strong { color: #fff; }
.np-week-d.is-weekend { opacity: .65; }
.np-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--bad); vertical-align: middle; }
.np-diary-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.np-diary-cols > div:first-child { border-right: 1px solid var(--border); padding-right: 24px; }
.np-day-head { margin: 12px 0 0; font-size: .82rem; font-weight: 700; color: var(--navy); }
.np-diary-list .np-date { min-width: 52px; font-size: .9rem; color: var(--navy); }
@media (max-width: 860px) {
  .np-diary-cols { grid-template-columns: 1fr; }
  .np-diary-cols > div:first-child { border-right: 0; padding-right: 0; }
  .np-week { grid-template-columns: repeat(7, minmax(44px, 1fr)); overflow-x: auto; gap: 6px; }
  .np-week-d { padding: 8px 2px; } .np-week-d strong { font-size: 1.1rem; }
}

/* v1.5 tidy: calmer links, no wrapped money/dates, slim demo bar, page hints */
.np-content a { text-decoration: none; }
.np-content a:hover { text-decoration: underline; }
.np-content a.np-btn:hover, .np-content a.np-stat:hover, .np-content a.np-week-d:hover { text-decoration: none; }
.np-ev .np-sub a { color: var(--muted); }
.np-table td.r, .np-table th.r, .np-table td:first-child { white-space: nowrap; }
.np-hint { color: var(--muted); font-size: .88rem; margin: -4px 0 16px; max-width: 80ch; }
.np-demo-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 14px; margin-bottom: 16px; border-radius: 10px; background: #FBF3E2; color: #6E4B05; font-size: .84rem; border: 1px solid #F0DFB8; }
.np-demo-bar strong { display: inline-block; background: #9A6A08; color: #fff; border-radius: 999px; padding: 1px 9px; margin-right: 8px; font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; }
.np-demo-bar a { color: #6E4B05; font-weight: 700; white-space: nowrap; }
details.np-more { border: 1px solid var(--border); border-radius: 10px; padding: 0 12px; margin: 4px 0 12px; }
details.np-more > summary { cursor: pointer; padding: 10px 0; font-weight: 700; font-size: .86rem; color: var(--navy); }
details.np-more[open] { padding-bottom: 6px; }
.np-side-foot { gap: 6px; }
.np-side-foot .np-me small { display: block; }
.np-side-foot a:last-child { white-space: nowrap; }

/* Demo chooser */
body.np.np-login:has(.np-demo-wrap) { display: block; padding: 32px 16px; }
.np-demo-wrap { max-width: 1120px; margin: 0 auto; color: #fff; }
.np-demo-head { display: flex; gap: 18px; align-items: flex-start; margin-bottom: 22px; }
.np-demo-head img { background: #fff; border-radius: 14px; padding: 6px; flex: none; }
.np-demo-head h1 { color: #fff; font-size: 1.7rem; margin: 2px 0 6px; }
.np-demo-head p { color: rgba(255,255,255,.8); max-width: 70ch; margin: 0; }
.np-demo-head .np-login-sys { color: var(--green-l); }
.np-demo-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; }
.np-demo-card { display: flex; flex-direction: column; gap: 6px; background: #fff; color: var(--ink); border-radius: 16px; padding: 20px; text-decoration: none; box-shadow: 0 20px 50px -20px rgba(0,0,0,.6); transition: transform .15s ease; border: 3px solid transparent; }
.np-demo-card:hover { transform: translateY(-3px); }
.np-demo-card.is-current { border-color: var(--green-l); }
.np-demo-avatar { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--navy); color: #fff; font-weight: 800; }
.np-demo-card strong { font-size: 1.05rem; color: var(--navy); }
.np-demo-role { font-size: .78rem; font-weight: 700; color: var(--green); text-transform: uppercase; letter-spacing: .06em; }
.np-demo-does { font-size: .86rem; color: var(--muted); }
.np-demo-try { font-size: .78rem; font-weight: 700; margin-top: 4px; }
.np-demo-card ul { margin: 0 0 10px; padding-left: 18px; font-size: .82rem; color: var(--ink); flex: 1; }
.np-demo-foot { color: rgba(255,255,255,.7); font-size: .85rem; margin-top: 20px; }
.np-demo-foot a { color: var(--green-l); }
@media (max-width: 600px) { .np-demo-head { flex-direction: column; } .np-demo-head h1 { font-size: 1.4rem; } }
.np-week-d small b { font-weight: 700; }
@media (max-width: 860px) {
  .np-top h1 { font-size: 1.05rem; white-space: normal; }
  .np-diary-home .np-card-head { flex-direction: column; gap: 10px; }
  .np-diary-home .np-actions .np-btn { padding: 7px 12px; font-size: .8rem; }
  .np-week { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; overflow: visible; }
  .np-week-d { padding: 7px 0; border-radius: 8px; }
  .np-week-d span { font-size: .62rem; letter-spacing: 0; }
  .np-week-d strong { font-size: 1rem; }
  .np-wk-word { display: none; }
  .np-demo-bar { flex-direction: column; align-items: flex-start; gap: 4px; }
}
.np-week-d small .np-wk-word { display: inline; font-size: inherit; font-weight: 400; text-transform: none; letter-spacing: 0; color: inherit; }
@media (max-width: 860px) { .np-week-d small .np-wk-word { display: none; } }
.np-demo-grid { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }

/* v1.6: messages, notifications, accounts overview, email, app */
.np-count { display: inline-grid; place-items: center; min-width: 19px; height: 19px; padding: 0 5px; margin-left: auto; border-radius: 999px; background: #C8442F; color: #fff; font-size: .7rem; font-weight: 800; line-height: 1; }
.np-count[hidden] { display: none; }
.np-side nav a .np-count { margin-left: auto; }
.np-top-actions { display: flex; align-items: center; gap: 8px; }
.np-bell { position: relative; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--border); background: var(--white); color: var(--navy); }
.np-bell svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.np-bell .np-count { position: absolute; top: -5px; right: -5px; margin: 0; }
.np-pop-right { position: relative; }
.np-pop-right > form, .np-pop-right > div { right: 0; left: auto; }
details.np-pop > form label, details.np-pop > form .np-check { display: block; margin-bottom: 8px; font-size: .82rem; font-weight: 600; }
details.np-pop > form input, details.np-pop > form select { width: 100%; }
.np-h3 { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin: 16px 0 4px; }
.np-subtle td { color: var(--muted); }
.np-row-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.np-row-actions .np-btn { padding: 6px 12px; font-size: .78rem; }
.np-aged { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 6px 0 8px; }
.np-aged > div { background: var(--paper); border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; }
.np-aged small { display: block; font-size: .72rem; color: var(--muted); font-weight: 600; }
.np-aged strong { font-size: .98rem; color: var(--navy); }
.np-aged .bad strong { color: var(--bad); }
.np-checks { list-style: none; margin: 0; padding: 0; }
.np-checks li { padding: 8px 0 8px 28px; position: relative; border-bottom: 1px solid #EFEDE6; font-size: .9rem; }
.np-checks li::before { content: ''; position: absolute; left: 4px; top: 12px; width: 12px; height: 12px; border-radius: 50%; background: var(--ok); }
.np-checks li.todo::before { background: var(--warn); }
.np-notifs li.unread strong::before { content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #C8442F; margin-right: 6px; vertical-align: middle; }
.np-email-body { white-space: normal; line-height: 1.6; border-top: 1px solid var(--border); padding-top: 12px; }
.np-compose .np-fieldset .np-check { display: block; margin: 4px 0; font-weight: 500; }
.np-app-how p { margin: 6px 0; font-size: .88rem; }
.np-app-done { color: var(--ok); font-weight: 700; }
.np-app-nudge { display: flex; align-items: center; gap: 8px; padding: 10px 12px; margin-bottom: 14px; background: var(--navy); color: #fff; border-radius: 12px; font-size: .86rem; }
.np-app-nudge[hidden] { display: none; }
.np-app-nudge span { flex: 1; }
.np-app-nudge .np-btn { padding: 6px 12px; font-size: .78rem; }
.np-app-nudge .np-btn.ghost { color: #fff; border-color: rgba(255,255,255,.4); background: transparent; }
.np-nudge-x { background: none; border: 0; color: #fff; font-size: 1.3rem; cursor: pointer; padding: 0 4px; }

/* Chat */
.np-chat { display: grid; grid-template-columns: 300px 1fr; gap: 16px; align-items: stretch; }
.np-chat-list { padding: 8px; max-height: calc(100vh - 190px); overflow-y: auto; }
.np-chat-item { display: block; padding: 10px 12px; border-radius: 10px; text-decoration: none; color: inherit; }
.np-chat-item:hover { background: var(--paper); text-decoration: none !important; }
.np-chat-item.is-active { background: var(--navy-soft); }
.np-chat-name { display: flex; gap: 8px; align-items: center; font-weight: 700; color: var(--navy); font-size: .9rem; }
.np-chat-thread { display: flex; flex-direction: column; min-height: 520px; max-height: calc(100vh - 150px); padding: 0; overflow: hidden; }
.np-chat-head { display: flex; gap: 10px; align-items: flex-start; padding: 14px 18px; border-bottom: 1px solid var(--border); }
.np-chat-head h2 { font-size: 1.05rem; margin: 0; }
.np-chat-head p { margin: 2px 0 0; }
.np-chat-back { display: none; font-size: 1.2rem; text-decoration: none; padding: 2px 6px; }
.np-chat-msgs { flex: 1; overflow-y: auto; padding: 16px 18px; display: flex; flex-direction: column; gap: 10px; background: #FBFAF7; }
.np-msg { max-width: 78%; align-self: flex-start; }
.np-msg.mine { align-self: flex-end; text-align: right; }
.np-msg-meta { font-size: .72rem; color: var(--muted); margin-bottom: 3px; }
.np-msg-body { display: inline-block; text-align: left; padding: 9px 13px; border-radius: 14px 14px 14px 4px; background: #fff; border: 1px solid var(--border); font-size: .9rem; line-height: 1.45; overflow-wrap: anywhere; }
.np-msg.mine .np-msg-body { background: var(--navy); color: #fff; border-color: var(--navy); border-radius: 14px 14px 4px 14px; }
.np-msg.mine .np-msg-body a { color: var(--green-l); }
.np-chat-form { display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--border); background: #fff; }
.np-chat-form textarea { flex: 1; resize: none; min-height: 44px; }
.np-chat-empty { margin: auto; }
@media (max-width: 860px) {
  .np-chat { grid-template-columns: 1fr; }
  .np-chat.has-thread .np-chat-list { display: none; }
  .np-chat:not(.has-thread) .np-chat-thread { display: none; }
  .np-chat-back { display: inline-block; }
  .np-chat-thread { min-height: calc(100vh - 230px); max-height: none; }
  .np-aged { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .np-top-actions { flex-wrap: wrap; }
}
@media print {
  .np-side, .np-top, .np-demo-bar, .np-app-nudge, .np-hint, .np-btn, details.np-pop { display: none !important; }
  .np-shell { display: block; } .np-card { box-shadow: none; border: 0; }
}
.np-pop-right[open] > form { flex-direction: column; align-items: stretch; width: 300px; gap: 4px; }
.np-pop-right[open] > form p { margin: 6px 0 0; }
.np-pop[open] > form { flex-wrap: wrap; }
.np-stats .np-stat strong { white-space: nowrap; font-size: clamp(1.05rem, 1.45vw, 1.45rem); }
@media (max-width: 480px) { .np-top h1 { font-size: .98rem; } }

/* v1.7 CRM */
.np-btn-sm { padding: 5px 11px !important; font-size: .76rem !important; }
.np-count-soft { background: var(--warn); }
.np-due { font-size: .76rem; font-weight: 700; color: var(--muted); }
.np-due.bad { color: var(--bad); } .np-due.warn { color: var(--warn); }
.np-tag { display: inline-block; min-width: 64px; text-align: center; padding: 3px 8px; border-radius: 999px; font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; background: var(--navy-soft); color: var(--navy); }
.np-tag.t-collection { background: #FBEDEA; color: #7A2A20; }
.np-tag.t-lead { background: #E7F4EC; color: var(--green); }
.np-follow li { align-items: center; }
.np-filterbar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 12px; }
.np-filterbar a { padding: 6px 13px; border-radius: 999px; font-weight: 700; font-size: .82rem; color: var(--navy); border: 1px solid var(--border); background: #fff; }
.np-filterbar a.is-active { background: var(--navy); color: #fff; border-color: var(--navy); }
.np-filterbar a:hover { text-decoration: none !important; }
.np-filterbar .np-muted { margin-left: 6px; }
.np-board { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; align-items: start; }
.np-board-col { background: #EFEDE6; border-radius: var(--r); padding: 12px; min-height: 120px; }
.np-board-col h3 { font-size: .8rem; text-transform: uppercase; letter-spacing: .07em; color: var(--navy); margin: 0 0 10px; }
.np-board-col h3 span { color: var(--muted); }
.np-lead-card { display: flex; flex-direction: column; gap: 3px; background: #fff; border: 1px solid var(--border); border-radius: 10px; padding: 11px 12px; margin-bottom: 8px; color: inherit; box-shadow: var(--shadow); transition: transform .15s ease; }
.np-lead-card:hover { transform: translateY(-2px); text-decoration: none !important; }
.np-lead-card strong { color: var(--navy); }
.np-lead-foot { display: flex; justify-content: space-between; margin-top: 4px; font-size: .74rem; color: var(--muted); }
.np-row-bad td { background: #FDF5F3; }
.np-steps { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.np-crm-timeline { list-style: none; margin: 0; padding: 0; }
.np-crm-timeline li { display: flex; gap: 12px; padding: 10px 0 10px 14px; border-left: 3px solid var(--border); margin-left: 4px; }
.np-crm-timeline li.k-paid, .np-crm-timeline li.t-kept { border-left-color: var(--ok); }
.np-crm-timeline li.t-broken { border-left-color: var(--bad); }
.np-crm-timeline li.k-email { border-left-color: var(--navy-2); }
.np-crm-timeline li > span:last-child { flex: 1; }
.np-crm-text { display: block; font-size: .88rem; margin-top: 2px; }
.np-crm-owners { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--border); }
.np-promise { background: #FBF3E2; border-radius: 10px; padding: 8px 10px 0; }
@media (max-width: 860px) {
  .np-board { grid-template-columns: 1fr; }
  .np-follow li { flex-wrap: wrap; }
  .np-coll { min-width: 720px; }
}
.nw { white-space: nowrap; }

/* v1.8 time limits */
.np-limits { list-style: none; margin: 0; padding: 0; }
.np-limits li { display: flex; gap: 14px; align-items: flex-start; padding: 12px 0 12px 14px; border-bottom: 1px solid #EFEDE6; border-left: 4px solid var(--border); margin-bottom: 2px; }
.np-limits li.s-expired { border-left-color: var(--bad); background: #FDF5F3; }
.np-limits li.s-today { border-left-color: var(--bad); }
.np-limits li.s-soon { border-left-color: var(--warn); }
.np-limits li.s-running { border-left-color: var(--ok); }
.np-limits li.s-done, .np-limits li.s-cancelled { opacity: .7; }
.np-limit-main { flex: 1; min-width: 0; }
.np-limit-head { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; color: var(--navy); }
.np-limit-pill { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: .72rem; font-weight: 800; background: #E7F4EC; color: var(--green); }
.np-limit-pill.s-soon { background: #FBF3E2; color: #6E4B05; }
.np-limit-pill.s-today, .np-limit-pill.s-expired { background: var(--bad); color: #fff; }
.np-limit-pill.s-done, .np-limit-pill.s-cancelled { background: var(--navy-soft); color: var(--muted); }
.np-limit-bar { height: 6px; border-radius: 6px; background: #EFEDE6; overflow: hidden; margin: 8px 0 3px; max-width: 420px; }
.np-limit-bar span { display: block; height: 100%; background: var(--ok); border-radius: 6px; }
.np-limit-bar.s-soon span { background: var(--warn); }
.np-limit-bar.s-today span, .np-limit-bar.s-expired span { background: var(--bad); }
.np-limit-next { margin: 6px 0 0; font-weight: 700; color: var(--bad); font-size: .86rem; }
.np-limit-actions { display: flex; gap: 6px; align-items: flex-start; }
.np-limits-home { border-top: 4px solid var(--bad); margin-bottom: 18px; }
.np-rules input, .np-rules select { width: 100%; min-width: 0; padding: 6px 8px; font-size: .84rem; }
.np-rules td { padding: 6px; }
.np-holidays { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 860px) { .np-limits li { flex-direction: column; } .np-holidays { grid-template-columns: 1fr; } .np-rules { min-width: 860px; } }

/* v1.9 role dashboards */
.np-dash-subrow { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; margin: -6px 0 14px; }
.np-dash-sub { margin: 0; color: var(--muted); font-weight: 600; font-size: .9rem; }
.np-dash-switch { display: flex; flex-wrap: wrap; gap: 4px; }
.np-dash-switch a { padding: 4px 11px; border-radius: 999px; font-size: .76rem; font-weight: 700; color: var(--muted); border: 1px solid var(--border); background: #fff; }
.np-dash-switch a.is-active { background: var(--navy); color: #fff; border-color: var(--navy); }
.np-dash-switch a:hover { text-decoration: none !important; }
.np-dash-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 18px; align-items: start; margin-bottom: 18px; }
.np-dash-main { border-top: 4px solid var(--green); }
.np-attn { list-style: none; margin: 0; padding: 0; }
.np-attn li { padding: 10px 12px; margin-bottom: 6px; border-radius: 10px; border-left: 4px solid var(--warn); background: #FBF7EC; font-size: .9rem; font-weight: 600; }
.np-attn li.t-bad { border-left-color: var(--bad); background: #FDF2F0; }
.np-attn li a { color: var(--ink); display: block; }
.np-ok-line { color: var(--ok); font-weight: 700; margin: 4px 0; }
.np-funnel { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.np-funnel > div { text-align: center; padding: 12px 6px; border-radius: 10px; background: var(--navy-soft); }
.np-funnel strong { display: block; font-size: 1.4rem; color: var(--navy); }
.np-funnel span { font-size: .74rem; font-weight: 700; color: var(--muted); }
.np-funnel .f-won { background: #E7F4EC; } .np-funnel .f-lost { background: #F3F1EC; }
.np-wip { text-align: right; font-weight: 800; color: var(--navy); font-size: .86rem; white-space: nowrap; }
.np-wip small { display: block; font-weight: 600; color: var(--muted); font-size: .7rem; }
.np-dash-find { padding: 14px 18px; margin-bottom: 18px; }
.np-dash-find label { display: block; font-weight: 700; color: var(--navy); margin-bottom: 6px; }
.np-dash-find input { flex: 1; }
@media (max-width: 860px) { .np-dash-grid { grid-template-columns: 1fr; } .np-funnel { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ==========================================================================
   v2.0 clarity pass: easier to read, clearer buttons, distinct cards & tiles
   ========================================================================== */
:root { --muted: #4F5664; --border: #DDD8CC; --line: #ECE8DF; --r: 14px; --shadow: 0 1px 2px rgba(14,27,66,.06), 0 8px 22px -12px rgba(14,27,66,.22);
  --t1: #1A2C63; --t2: #1F6B3B; --t3: #A9740A; --t4: #2A6FB0; --t5: #7A3E9D; --t6: #4F5664; }
body.np { font-size: 15px; line-height: 1.6; }
.np-content { padding: 22px 28px 40px; }
.np-sub { font-size: .8rem; color: var(--muted); line-height: 1.45; margin-top: 2px; }
.np-muted { color: var(--muted); }
.np-hint { font-size: .9rem; margin: -2px 0 18px; }
.np-top h1 { font-size: 1.35rem; letter-spacing: -.01em; }

/* Buttons: one look per job */
.np-btn { min-height: 38px; padding: 8px 18px; font-size: .86rem; border-width: 1.5px; transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease; }
.np-btn.primary { background: var(--navy); border-color: var(--navy); color: #fff; box-shadow: 0 2px 6px -2px rgba(14,27,66,.45); }
.np-btn.primary:hover { background: var(--navy-2); border-color: var(--navy-2); filter: none; }
.np-btn.ghost { background: #fff; color: var(--navy); border-color: #BFB9AA; }
.np-btn.ghost:hover { background: var(--navy-soft); border-color: var(--navy); }
.np-btn.danger { background: #fff; color: var(--bad); border-color: #D9A79F; }
.np-btn.danger:hover { background: var(--bad); color: #fff; border-color: var(--bad); }
.np-btn:focus-visible, .np-btn:focus { outline: 3px solid rgba(46,139,79,.35); outline-offset: 2px; }
.np-btn[disabled] { opacity: .55; cursor: not-allowed; }
.np-btn-sm { min-height: 30px; padding: 4px 12px !important; }
.np-top-actions .np-btn { min-height: 38px; }
details.np-pop > summary.np-btn { list-style: none; }

/* Cards: clear edges and a ruled header */
.np-card { border-radius: var(--r); border-color: var(--border); padding: 20px 22px; margin-bottom: 20px; min-width: 0; }
.np-card-head { align-items: center; padding-bottom: 12px; margin-bottom: 14px; border-bottom: 1px solid var(--line); }
.np-card-head h2 { margin: 0; }
.np-card > h2:first-child { margin: 0 0 14px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.np-card h2 { font-size: 1.08rem; color: var(--navy); }
.np-card h3, .np-h3 { color: var(--navy); }
.np-grid-2 > *, .np-grid-3 > *, .np-grid-wide > *, .np-dash-grid > * { min-width: 0; }

/* Tiles: colour-coded so each one is easy to find */
.np-stats { gap: 14px; margin-bottom: 20px; }
.np-stat { position: relative; padding: 16px 18px 14px 20px; border-radius: var(--r); border: 1px solid var(--border); overflow: hidden; }
.np-stat::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--t1); }
.np-stats > .np-stat:nth-child(6n+2)::before { background: var(--t2); }
.np-stats > .np-stat:nth-child(6n+3)::before { background: var(--t3); }
.np-stats > .np-stat:nth-child(6n+4)::before { background: var(--t4); }
.np-stats > .np-stat:nth-child(6n+5)::before { background: var(--t5); }
.np-stats > .np-stat:nth-child(6n)::before { background: var(--t6); }
.np-stat.is-bad::before { background: var(--bad) !important; }
.np-stat.is-bad { background: #FFF8F6; border-color: #EAC9C2; }
.np-stat span { font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.np-stat strong { margin: 6px 0 2px; }
.np-stat small { font-size: .8rem; }
a.np-stat:hover { border-color: #BFB9AA; box-shadow: 0 10px 24px -14px rgba(14,27,66,.45); }

/* Tabs and filter pills */
.np-tabs { gap: 6px; }
.np-tabs a { padding: 8px 16px; font-size: .86rem; border: 1.5px solid transparent; }
.np-tabs a:not(.is-active):hover { background: var(--navy-soft); }
.np-tabs-lg { background: #fff; border: 1px solid var(--border); border-radius: 999px; padding: 5px; display: inline-flex; }

/* Lists and tables: more air, darker headings */
.np-list li { padding: 12px 0; border-bottom-color: var(--line); }
.np-table th { font-size: .74rem; color: #3E4553; padding: 10px; background: #FAF9F6; border-bottom: 1.5px solid var(--border); }
.np-table td { padding: 12px 10px; border-bottom-color: var(--line); }
.np-table tbody tr:hover { background: #F8F7F2; }
.np-table td:first-child { white-space: normal; }
.np-table td.np-nowrap, .np-table td:first-child:has(> :only-child:is(time)) { white-space: nowrap; }
.np-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 -4px; padding: 0 4px; }
.np-table-wrap > .np-table { min-width: 560px; }

/* Forms: bigger fields, obvious focus */
.np-form label { font-size: .82rem; color: var(--navy); }
.np-form input:not([type=checkbox]):not([type=radio]), .np-form select, .np-form textarea, .np-filter input, .np-filter select, .np-chat-form textarea { min-height: 42px; border: 1.5px solid #CFC9BA; border-radius: 10px; background: #fff; font-size: .92rem; }
.np-form input:focus, .np-form select:focus, .np-form textarea:focus, .np-filter input:focus, .np-chat-form textarea:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(46,139,79,.18); }
.np-money span { border-width: 1.5px; }

/* Badges & status pills: readable */
.np-badge { padding: 3px 10px; font-size: .74rem; }

/* Side menu: larger, clearer "you are here" */
.np-side nav a { font-size: .92rem; padding: 10px 12px; }
.np-side nav a.is-active { background: rgba(255,255,255,.14); color: #fff; box-shadow: inset 3px 0 0 var(--green-l); }
.np-nav-head { margin-top: 14px; }

/* Flash messages: stand out but stay calm */
.np-flash { border-radius: 12px; font-size: .92rem; }

/* Empty states */
.np-empty { padding: 26px 10px; text-align: center; }
.np-empty h3 { color: var(--navy); margin: 0 0 6px; }

@media (max-width: 860px) {
  .np-content { padding: 14px 12px 32px; }
  .np-card { padding: 16px; }
  .np-btn { min-height: 42px; }
  .np-stat strong { font-size: 1.15rem; }
}
.np-table td:first-child { min-width: 96px; }
@media (max-width: 860px) { .np-tabs-lg { border-radius: 14px; } }
.np-table td:first-child { min-width: 112px; }
.np-stat span { text-transform: none; letter-spacing: 0; font-size: .82rem; color: #3E4553; }
[hidden] { display: none !important; }
.np-actions { display: flex; flex-wrap: wrap; gap: 8px; }

/* v2.0.1: no partial coloured edges anywhere; colour whole cards and tiles instead */
.np-stat::before { display: none !important; content: none; }
.np-stat { border: 1px solid #D5DCEC; background: #EEF1F8; box-shadow: none; }
.np-stats > .np-stat:nth-child(6n+2) { background: #EAF4EE; border-color: #CFE5D7; }
.np-stats > .np-stat:nth-child(6n+3) { background: #FBF4E4; border-color: #EEDDB5; }
.np-stats > .np-stat:nth-child(6n+4) { background: #EAF2FA; border-color: #CFE0F1; }
.np-stats > .np-stat:nth-child(6n+5) { background: #F3ECF7; border-color: #E1D2EA; }
.np-stats > .np-stat:nth-child(6n) { background: #F2F1EE; border-color: #DEDBD3; }
.np-stats > .np-stat.is-bad { background: #FCEDEA; border-color: #EFC9C1; }
.np-stat.is-bad strong { color: var(--bad); }
a.np-stat:hover { filter: brightness(.98); box-shadow: 0 8px 20px -14px rgba(14,27,66,.5); }

.np-flash { border: 1px solid #CFE5D7; border-left: 1px solid #CFE5D7; background: #EAF4EE; }
.np-flash.error { border: 1px solid #EFC9C1; background: #FCEDEA; }
.np-flash.warn { border: 1px solid #EEDDB5; background: #FBF4E4; }
.np-note { border: 1px solid #EEDDB5; border-left: 1px solid #EEDDB5; background: #FBF7EC; border-radius: 10px; }

.np-attn li { border: 1px solid #EEDDB5; border-left: 1px solid #EEDDB5; background: #FBF4E4; }
.np-attn li.t-bad { border-color: #EFC9C1; background: #FCEDEA; }

.np-limits li { border: 1px solid var(--line); border-left: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; margin-bottom: 8px; background: #fff; }
.np-limits li.s-expired, .np-limits li.s-today { background: #FCEDEA; border-color: #EFC9C1; }
.np-limits li.s-soon { background: #FBF4E4; border-color: #EEDDB5; }
.np-limits li.s-running { background: #EAF4EE; border-color: #CFE5D7; }
.np-limits li.s-done, .np-limits li.s-cancelled { background: #F2F1EE; border-color: #DEDBD3; }

.np-diary-home, .np-dash-main { border-top: 1px solid var(--border); }
.np-limits-home { border: 1px solid #EFC9C1; background: #FFF6F4; }

.np-timeline li { border-left: 0; padding-left: 22px; }
.np-timeline li::before { left: 2px; }
.np-crm-timeline li { border-left: 0; margin-left: 0; padding-left: 22px; position: relative; }
.np-crm-timeline li::before { content: ''; position: absolute; left: 2px; top: 16px; width: 10px; height: 10px; border-radius: 50%; background: #BFB9AA; }
.np-crm-timeline li.k-paid::before, .np-crm-timeline li.t-kept::before { background: var(--ok); }
.np-crm-timeline li.t-broken::before { background: var(--bad); }
.np-crm-timeline li.k-email::before { background: var(--navy-2); }

.np-side nav a.is-active { box-shadow: none; background: rgba(255,255,255,.17); font-weight: 700; }
.np-row-bad td { background: #FCEDEA; }
.np-stats > .np-stat.is-warn { background: #FBF4E4; border-color: #EEDDB5; }
.np-stats > .np-stat.is-ok { background: #EAF4EE; border-color: #CFE5D7; }
.np-stat.is-warn strong { color: #7A5306; } .np-stat.is-ok strong { color: var(--green); }
.np-limit-pill { background: var(--green); color: #fff; }
.np-limit-pill.s-soon { background: #9A6A08; color: #fff; }
.np-limit-pill.s-done, .np-limit-pill.s-cancelled { background: #6B7280; color: #fff; }

/* v2.0.2: stronger tile tints so they stand off the page background */
.np-stats > .np-stat { background: #DCE3F3; border-color: #B7C3E2; }
.np-stats > .np-stat:nth-child(6n+2) { background: #D6ECDE; border-color: #A9D3B8; }
.np-stats > .np-stat:nth-child(6n+3) { background: #F6E7C3; border-color: #E2C682; }
.np-stats > .np-stat:nth-child(6n+4) { background: #D5E6F6; border-color: #A6C7E8; }
.np-stats > .np-stat:nth-child(6n+5) { background: #E9DCF2; border-color: #CDB3E0; }
.np-stats > .np-stat:nth-child(6n) { background: #E6E3DC; border-color: #C9C4B8; }
.np-stats > .np-stat.is-bad { background: #F8D9D3; border-color: #E5ADA2; }
.np-stats > .np-stat.is-warn { background: #F6E7C3; border-color: #E2C682; }
.np-stats > .np-stat.is-ok { background: #D6ECDE; border-color: #A9D3B8; }
.np-stat span, .np-stat small { color: #2F3542; }
