/* NP5 pricing add-on: restrained architectural palette, isolated to pricing surfaces. */
.np5-admin{--ink:#243b4a;--muted:#5d6f77;--paper:#f3f5f3;--surface:#fff;--line:#d5dedb;--accent:#9a6d37;--focus:#b17b3b;margin:0;min-height:100dvh;background:var(--paper);color:var(--ink);font:16px/1.55 "Aptos", "Segoe UI",sans-serif}
.np5-admin *{box-sizing:border-box}
.np5-admin header{background:#263d49;color:#f7f6f0;padding:16px max(5%,calc((100% - 1280px)/2));display:flex;gap:24px;align-items:center;border-bottom:3px solid #ae8653}
.np5-admin header b{font-size:27px;letter-spacing:.13em}
.np5-admin header span{font-size:13px;letter-spacing:.04em;color:#e0e7e4}
.np5-admin main{max-width:1380px;margin:auto;padding:30px clamp(18px,5vw,64px) 64px}
.np5-admin h1,.np5-admin h2,.np5-admin h3{font-family:Georgia,"Times New Roman",serif;font-weight:500;line-height:1.2}
.np5-admin h1{font-size:clamp(30px,4vw,42px);margin:0 0 10px}
.np5-admin h2{font-size:25px;margin:32px 0 12px}
.np5-admin p{max-width:78ch;color:var(--muted)}
.np5-admin section{padding:20px;background:var(--surface);border:1px solid var(--line);margin:20px 0}
.np5-admin label{display:block;margin:12px 0 6px;font-weight:600}
.np5-admin input:not([type=checkbox]),.np5-admin select,.np5-admin textarea{display:block;width:min(100%,480px);padding:10px 12px;border:1px solid #aebdb8;border-radius:2px;background:#fff;color:var(--ink);font:inherit}
.np5-admin input[type=checkbox]{width:18px;height:18px;accent-color:#506c66;vertical-align:middle;margin:0 8px 0 0}
.np5-admin textarea{resize:vertical}
.np5-admin button,.np5-pricing button{background:#314b56;color:#fff;border:1px solid #314b56;padding:11px 17px;border-radius:2px;cursor:pointer;margin:8px 8px 8px 0;font:inherit;font-weight:600;font-size:15px;line-height:1.25}
.np5-admin button:hover,.np5-pricing button:hover{background:#45616b}
.np5-admin button:disabled,.np5-pricing button:disabled{opacity:.55;cursor:wait}
.np5-admin button:focus-visible,.np5-admin input:focus-visible,.np5-admin select:focus-visible,.np5-admin textarea:focus-visible,.np5-pricing button:focus-visible,.np5-pricing input:focus-visible,.np5-pricing select:focus-visible,.np5-table:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.np5-row{display:flex;gap:16px;align-items:end;flex-wrap:wrap;padding:16px 0}
.np5-row label{margin:0}
.np5-table{overflow:auto;background:var(--surface);border:1px solid var(--line);max-width:100%;-webkit-overflow-scrolling:touch}
.np5-admin table{border-collapse:collapse;min-width:970px;width:100%;font-size:14px}
.np5-admin td,.np5-admin th{padding:12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.np5-admin th{background:#e8eeeb;color:#344d56;font-weight:700}
.np5-admin td input{width:104px}
.np5-admin td p,.np5-admin details{font-size:12px;line-height:1.4}
.np5-admin pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:400px;font-size:12px}
.np5-admin #status{font-weight:650;min-height:1.5em;margin:12px 0}
.np5-admin #status[data-type=error]{color:#8b352d}
.np5-admin #status[data-type=success]{color:#315f50}
.np5-admin #models{border:1px solid var(--line);padding:14px;display:flex;gap:10px 22px;flex-wrap:wrap}
.np5-admin #models legend{padding:0 8px;font-weight:700}
.np5-admin #models label{font-weight:400;margin:4px 0}
.np5-admin .explanation{background:#e7eeeb;border-left:4px solid #71897e;padding:14px 16px;color:#354c52}
.np5-admin #result{background:#e8efec;border-left:4px solid var(--accent)}
.np5-admin #result h2{margin:4px 0 10px}
.np5-admin #result p:last-child{margin-bottom:2px}
.np5-admin #source-inventory{border-top:3px solid #748a80;background:#f8faf8}
.np5-admin .np5-source-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.np5-admin .np5-source-heading h2{margin:0 0 8px}
.np5-admin .np5-source-kicker{margin:0 0 4px;color:#71877e;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.np5-admin #source-status{padding:10px 12px;background:#e9efec;border-left:3px solid #748a80;overflow-wrap:anywhere}
.np5-admin #source-status[data-type=error]{color:#8b352d;background:#f5e9e6;border-color:#a65348}
.np5-admin .np5-source-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0}
.np5-admin .np5-source-metric{min-width:0;padding:12px;background:#edf2ef;border:1px solid #d5dedb}
.np5-admin .np5-source-metric strong,.np5-admin .np5-source-metric span{display:block}
.np5-admin .np5-source-metric strong{font-size:21px;line-height:1.2;font-variant-numeric:tabular-nums}
.np5-admin .np5-source-metric span{font-size:12px;color:var(--muted)}
.np5-admin .np5-source-reconciliation{padding:12px 14px;border-left:3px solid #ae8653;background:#f3eee5}
.np5-admin .np5-source-controls{display:flex;gap:16px;align-items:end;flex-wrap:wrap;margin:16px 0}
.np5-admin .np5-source-controls label{margin:0}
.np5-admin .np5-source-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.np5-admin .np5-source-card{min-width:0;padding:14px;border:1px solid var(--line);background:#fff}
.np5-admin .np5-source-card h3{margin:0;font-family:inherit;font-size:16px;font-weight:650;line-height:1.35;overflow-wrap:anywhere}
.np5-admin .np5-source-card p{font-size:13px;margin:8px 0}
.np5-admin .np5-source-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.np5-admin .np5-source-card-head span{flex:none;color:#81592c;font-size:10px;font-weight:800;letter-spacing:.06em}
.np5-admin .np5-source-card details,.np5-admin .np5-source-gaps{font-size:13px}
.np5-admin .np5-source-card details summary,.np5-admin .np5-source-gaps summary{cursor:pointer;font-weight:650}
.np5-admin .np5-source-card ul,.np5-admin .np5-source-gaps ul{padding-left:20px;overflow-wrap:anywhere}
.np5-admin .np5-source-gaps{margin-top:16px;padding:12px;background:#edf2ef;border:1px solid var(--line)}
.np5-pricing{border:1px solid #d7dfdc;border-top:3px solid #748a80;padding:22px clamp(16px,3vw,28px);margin:22px 0;background:#f7f8f6;color:#293e48;max-width:100%}
.np5-pricing h3{font:500 24px/1.2 Georgia,"Times New Roman",serif;margin:0 0 8px}
.np5-pricing p{max-width:72ch;line-height:1.55}
.np5-pricing label{display:block;margin:12px 0;font-weight:600}
.np5-pricing input,.np5-pricing select{display:block;width:min(100%,360px);padding:9px 10px;margin-top:5px;border:1px solid #afbfba;border-radius:2px;background:#fff;color:#243b4a;font:inherit}
.np5-pricing .np5-price-status{min-height:1.5em;margin-bottom:0}
.np5-pricing .np5-project-review{margin:22px 0 0;padding:18px 0 0;border:0;border-top:1px solid #d7dfdc;background:transparent}
.np5-pricing .np5-project-review h3{font-size:21px;margin:0 0 8px}
.np5-pricing .np5-project-status{padding:10px 12px;border-left:3px solid #ae8653;background:#f0eee7}
.np5-pricing .np5-project-status[data-state=error]{color:#8b352d;border-left-color:#a65348;background:#f5e9e6}
.np5-pricing .np5-project-status[data-state=partial]{border-left-color:#748a80}
.np5-pricing .np5-project-totals p{margin:7px 0;font-variant-numeric:tabular-nums}
.np5-pricing .np5-project-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 20px;padding-left:20px}
.np5-pricing .np5-project-groups li{padding:8px 0;border-bottom:1px solid #e0e6e3;overflow-wrap:anywhere}
.np5-pricing .np5-project-groups li[data-state=needs_review]{color:#6d5a41}
.np5-pricing .np5-project-note{font-size:14px}
[hidden]{display:none!important}
@media(max-width:700px){
 .np5-admin header{padding:13px 18px;gap:14px}.np5-admin header b{font-size:23px}.np5-admin main{padding:24px 16px 48px}
 .np5-row{align-items:stretch;gap:8px}.np5-row label{width:100%}.np5-row button{flex:1 1 145px}
 .np5-admin section{padding:16px}.np5-admin #models{display:grid;grid-template-columns:1fr 1fr}
 .np5-pricing{padding:18px 15px}.np5-pricing button{width:100%;margin:10px 0 0}
  .np5-pricing .np5-project-groups{grid-template-columns:1fr}
  .np5-admin .np5-source-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .np5-admin .np5-source-list{grid-template-columns:1fr}
  .np5-admin .np5-source-heading{align-items:stretch;flex-direction:column}
  .np5-admin .np5-source-heading button{margin-right:0}
  .np5-admin .np5-source-controls label{width:100%}
}
@media(max-width:420px){.np5-admin #models{grid-template-columns:1fr}.np5-admin button{max-width:100%}}
