/* Netview Technologies Solar CRM — Blue / Green / Black theme
   Inspired by the quotation cover: clean white space, Netview blue, solar green,
   and strong black/dark-blue navigation. */
:root{
  --nv-blue:#0868B8;
  --nv-blue-dark:#3F489B;
  --nv-green:#34A943;
  --nv-green-dark:#238234;
  --nv-black:#111827;
  --nv-text:#111827;
  --nv-muted:#667085;
  --nv-border:#D9E2EA;
  --nv-soft-blue:#EFF7FD;
  --nv-soft-green:#ECF8EF;
  --nv-bg:#F7FAFC;
  --nv-white:#FFFFFF;
  --nv-danger:#C62828;
}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,sans-serif;background:var(--nv-bg);color:var(--nv-text)}
.layout{min-height:100vh;display:flex}
aside{position:fixed;inset:0 auto 0 0;width:220px;background:var(--nv-black);color:#fff;padding:24px 14px;border-right:4px solid var(--nv-green)}
.brand{font-size:22px;font-weight:800;padding:0 8px 25px;display:flex;flex-direction:column;align-items:flex-start;border-bottom:1px solid #273244;margin-bottom:12px}
.brand small{display:block;font-size:12px;font-weight:400;margin-top:7px;color:#A9D7FF;opacity:1}
nav a{display:block;color:#EAF4FB;text-decoration:none;padding:11px 10px;border-radius:7px;margin:3px 0;border-left:3px solid transparent;transition:.15s}
nav a:hover{background:#1C2A3B;border-left-color:var(--nv-green);color:#fff}
nav a:focus{outline:2px solid var(--nv-blue);outline-offset:1px}
.disabled{opacity:.5}.disabled small{float:right}
.user{position:absolute;bottom:18px;left:20px;font-size:12px;border-top:1px solid #2B3547;padding-top:12px;width:180px}.user span{opacity:.7}.user a{color:#A9D7FF;display:block;margin-top:8px}.user a:hover{color:#fff}
main{margin-left:220px;width:calc(100% - 220px);padding:28px}
header{display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid var(--nv-green);padding-bottom:16px;margin-bottom:24px;background:#fff;border-radius:10px;padding:14px 16px;box-shadow:0 2px 8px #0000000A}
header span{font-size:13px;color:var(--nv-muted)}
h1{font-size:32px;margin:8px 0 22px;color:var(--nv-black)}
h2,h3{color:var(--nv-black)}
.cards{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.card,section{background:#fff;border:1px solid var(--nv-border);border-radius:12px;padding:20px;box-shadow:0 2px 7px #0000000A;margin-bottom:18px}
.card{border-top:4px solid var(--nv-blue)}
.card:nth-child(2n){border-top-color:var(--nv-green)}
.card b{display:block;font-size:25px;margin-bottom:7px;color:var(--nv-black)}.card span{color:var(--nv-muted)}
.grid{display:grid;grid-template-columns:1fr 1.7fr;gap:18px;align-items:start}
.formgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
form{display:grid;gap:8px}
label{font-size:13px;font-weight:600;margin-top:5px;color:#273244}
input,select,textarea{width:100%;padding:10px;border:1px solid #C8D5E0;border-radius:7px;font:inherit;background:#fff;color:var(--nv-text)}
input:focus,select:focus,textarea:focus{outline:2px solid #A9D7FF;border-color:var(--nv-blue)}
input[type=checkbox]{width:auto}textarea{min-height:70px}
button,.btn{background:var(--nv-blue);color:#fff;border:0;border-radius:7px;padding:10px 14px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block;transition:.15s}
button:hover,.btn:hover{background:var(--nv-blue-dark)}
button:focus,.btn:focus{outline:2px solid #7CC4F5;outline-offset:1px}
.secondary{background:#EEF2F7;color:#24324A}.secondary:hover{background:#DCE7F0;color:var(--nv-black)}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.itemrow,.qrow{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 2fr auto;gap:7px;margin-bottom:7px}.qrow{grid-template-columns:2fr 2fr 1fr .8fr 1fr 1fr 1fr auto}
.sortControls{display:flex;gap:4px;align-items:center}.sortbtn{padding:7px 9px;min-width:32px;background:var(--nv-blue-dark)}.sortbtn:hover{background:var(--nv-blue)}
.totals,.quoteTotals{text-align:right;margin:15px 0}.totals b{margin-left:20px}
.summary{display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;margin-bottom:15px}
.flash{padding:11px 14px;border-radius:7px;margin-bottom:15px}.success{background:var(--nv-soft-green);color:#17633B;border-left:4px solid var(--nv-green)}.error{background:#FDECEC;color:#8A2020;border-left:4px solid var(--nv-danger)}
.muted{color:var(--nv-muted);font-size:13px}.hidden{display:none}
table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:10px;border-bottom:1px solid #E7EDF2;white-space:nowrap}th{background:var(--nv-soft-blue);color:#193B59;border-bottom:2px solid #B9DDF5}
tbody tr:hover{background:#FAFCFE}
a{color:#075EAB}a:hover{color:var(--nv-green-dark)}
.logo-preview{padding:15px;border:1px solid var(--nv-border);border-radius:10px;display:inline-block;background:#fff}.logo-preview img{max-width:300px;max-height:120px;display:block}
.bank-adjust{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:15px;border:1px solid #C8DFF0;border-radius:10px;background:var(--nv-soft-blue);margin:10px 0 18px}.bank-adjust label{margin:0}.bank-adjust input{max-width:180px}
.brand .crm-logo{height:auto;max-height:90px;object-fit:contain;object-position:left center}.header-brand{display:flex;align-items:center}.crm-header-logo{height:auto;max-height:70px;object-fit:contain}
/* Login uses the same quotation-inspired palette. */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#F7FAFC 0%,#EFF7FD 55%,#ECF8EF 100%)}
.loginbox{width:min(420px,92vw);background:#fff;border:1px solid var(--nv-border);border-top:6px solid var(--nv-green);border-radius:14px;padding:30px;box-shadow:0 12px 35px #00000012}
.loginbox h1{color:var(--nv-blue);margin:0 0 4px;font-size:34px}.loginbox p{margin:0 0 22px;color:var(--nv-green);font-weight:700}.loginbox small{display:block;margin-top:15px;color:var(--nv-muted)}
@media(max-width:1100px){.cards{grid-template-columns:repeat(3,1fr)}.formgrid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){aside{width:190px}main{margin-left:190px;width:calc(100% - 190px)}.grid{grid-template-columns:1fr}.summary{grid-template-columns:1fr}.itemrow,.qrow{grid-template-columns:1fr 1fr}.formgrid{grid-template-columns:1fr}}
@media(max-width:600px){.layout{display:block}aside{position:static;width:100%;height:auto}.user{position:static;margin-top:12px}main{margin:0;width:100%;padding:14px}.cards{grid-template-columns:1fr 1fr}nav{display:flex;flex-wrap:wrap}nav a{padding:8px}}
