:root{font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;color:#e6ebf6;background:#0d1320;font-size:15px;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #d7a84a;outline-offset:2px}p{line-height:1.55}h1,h2,h3{letter-spacing:-.035em;margin:0}h1{font-size:1.75rem}h2{font-size:1.55rem}h3{font-size:1.05rem}.muted,.section-heading p,.form-note{color:#98a4ba}.eyebrow{font-size:.68rem;font-weight:750;letter-spacing:.15em;text-transform:uppercase;color:#caa468}.brand-mark,.logo{font-size:2.1rem;font-weight:900;letter-spacing:-.075em}.brand-mark span,.logo span{color:#d7a84a}.login-body{min-height:100vh;background:radial-gradient(ellipse at 50% 8%,#24314c 0%,#111827 43%,#080d17 100%);display:grid;place-items:center;padding:24px}.login-wrap{width:min(100%,440px);display:grid;gap:22px}.login-card{background:#151f30;border:1px solid #34425c;border-radius:18px;padding:30px;box-shadow:0 22px 70px #050a1490}.login-card h1{margin:10px 0 8px}.login-card .muted{margin:0 0 28px}.login-wrap small{color:#7d8ba3;text-align:center}form{display:grid;gap:16px}label{display:grid;gap:7px;color:#c3cfe3;font-weight:600;font-size:.85rem}input,select{background:#101a2b;border:1px solid #36445e;color:#ecf2ff;border-radius:9px;min-height:42px;width:100%;padding:9px 12px}input::placeholder{color:#697a96}.primary,.secondary,.ghost{border-radius:9px;min-height:42px;padding:9px 14px;font-weight:700}.primary{color:#171b22;background:#d7a84a;border:1px solid #e5b65c}.primary:hover{background:#edc676}.secondary{background:#202c42;color:#fff;border:1px solid #43516d}.ghost{background:transparent;color:#aebbd0;border:1px solid #344259}.ghost:hover,.secondary:hover{background:#34445f}.error{color:#ff8f96;margin:0;min-height:1rem}.shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}.sidebar{background:#0a101c;border-right:1px solid #243148;display:flex;flex-direction:column;padding:28px 18px;gap:44px}.logo{padding:0 12px}.logo small{display:block;font-weight:700;letter-spacing:.16em;color:#8190a9;font-size:.54rem;margin-top:-5px}.sidebar nav{display:grid;gap:7px}.nav{display:flex;align-items:center;text-align:left;gap:12px;padding:12px 14px;border:1px solid transparent;background:none;border-radius:10px;color:#98a8c2;font-weight:650;width:100%}.nav.active,.nav:hover{color:#f6e0b6;background:#1c283c;border-color:#3b4a64}.side-footer{color:#9faec7;font-weight:650;font-size:.8rem;padding:0 12px;line-height:1.6;margin-top:auto}.side-footer span{color:#6f7e99;font-size:.73rem}.content{min-width:0;padding:0 clamp(18px,4vw,56px)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #273247;padding:28px 0 25px}.topbar h1{margin-top:6px}.topbar-right{display:flex;align-items:center;gap:14px}.user{font-size:.85rem;color:#9dc9b3;white-space:nowrap}.section{display:none;padding:30px 0 60px}.section.active{display:block}.hero{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:34px 38px;background:linear-gradient(120deg,#263650,#18263b 64%,#141e30);border:1px solid #3a4c66;border-radius:16px;overflow:hidden}.hero h2{font-size:clamp(2rem,3.4vw,3rem);line-height:1.08;margin:13px 0}.hero p{max-width:560px;color:#b0bed1;margin:0}.hero-symbol{font-size:5rem;font-weight:900;letter-spacing:-.09em;color:#ffffff12;white-space:nowrap}.hero-symbol span{color:#d7a84a38}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:19px 0 24px}.stat{padding:21px;background:#151f30;border:1px solid #324055;border-radius:13px}.stat strong{display:block;font-size:2.1rem;margin:6px 0 2px}.stat span{color:#90a0ba;font-size:.8rem;font-weight:700}.panel{background:#151f30;border:1px solid #2d3b54;border-radius:14px;padding:23px;min-width:0}.panel h3{margin-bottom:20px}.panel-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.panel-heading h3{margin-bottom:0}.text-link{border:0;background:none;color:#deb970;font-weight:600}.panel-heading+.tablewrap{margin-top:17px}.two-col{display:grid;grid-template-columns:minmax(265px,.76fr) minmax(0,1.35fr);gap:18px}.section-heading{margin-bottom:23px}.section-heading p{margin-top:9px}.tablewrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;text-align:left;font-size:.83rem}.data-table th{font-size:.67rem;text-transform:uppercase;letter-spacing:.08em;color:#8594ae;font-weight:750;padding:12px 11px;border-bottom:1px solid #35435b;white-space:nowrap}.data-table td{padding:14px 11px;border-bottom:1px solid #28354a;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table small{display:block;color:#8796ae;margin-top:5px}.data-table .button-group{display:flex;gap:7px;flex-wrap:wrap}.mini{border:1px solid #536079;background:#223049;color:#e2eafa;border-radius:7px;padding:7px 9px;font-size:.75rem}.mini.warn{border-color:#905761;color:#ffc6cc}.mini.gold{border-color:#ae8746;color:#f8d490}.tag{display:inline-flex;border-radius:30px;border:1px solid #43506b;padding:5px 9px;color:#b0c0d7;font-size:.74rem;font-weight:700;white-space:nowrap}.tag.active{color:#8ce1ac;border-color:#246347;background:#14372a}.tag.pending{color:#f5c879;border-color:#735521;background:#403017}.tag.grace{color:#f9c37e;border-color:#965f28;background:#3a271c}.tag.revoked,.tag.expired,.tag.suspended{color:#ff9b9f;border-color:#85434a;background:#391b26}.flash{display:none;margin-top:18px;border:1px solid #537b6d;background:#152f2b;color:#b4efcf;padding:12px 15px;border-radius:9px}.flash.error{display:block;border-color:#90525c;background:#3a1e2a;color:#ffc0c6}.flash.success{display:block}.form-note{font-size:.8rem;margin:0}.audit-list{display:grid;gap:11px}.audit-item{padding-bottom:10px;border-bottom:1px solid #2b3a52;display:grid;gap:4px;font-size:.81rem}.audit-item strong{color:#e8d0a3}.audit-item span{color:#8493aa}footer{border-top:1px solid #273247;color:#7888a4;padding:20px 0;font-size:.75rem}.dialog-backdrop{position:fixed;inset:0;background:#050a14dd;display:grid;place-items:center;padding:20px;z-index:50}.dialog-backdrop[hidden]{display:none}.dialog{width:min(100%,520px);background:#182337;border:1px solid #516481;border-radius:16px;padding:28px;box-shadow:0 30px 80px #0008}.dialog h2{margin:10px 0}.dialog p{color:#b1bed1}.dialog pre{white-space:pre-wrap;overflow-wrap:anywhere;padding:16px;background:#0c1422;border:1px solid #394b66;border-radius:9px;color:#efcd89;font-size:.85rem;user-select:all}.actions{display:flex;gap:10px;flex-wrap:wrap}@media(max-width:1150px){.two-col{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:740px){.shell{grid-template-columns:1fr}.sidebar{padding:15px;gap:15px}.sidebar nav{display:flex;overflow-x:auto}.nav{white-space:nowrap;width:auto;padding:9px 11px}.side-footer{display:none}.content{padding:0 16px}.topbar{padding:19px 0}.topbar-right{gap:7px}.user{display:none}.section{padding-top:20px}.hero{padding:23px}.hero-symbol{display:none}.stats{gap:9px}.stat{padding:15px}.stat strong{font-size:1.7rem}.panel{padding:17px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

[hidden]{display:none!important}

.invoice-breakdown{background:#111a2b;border:1px solid #465878;border-radius:10px;padding:14px;display:grid;gap:9px}
.invoice-breakdown .break-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;font-size:.89rem}
.invoice-breakdown .break-row strong{text-align:right;white-space:nowrap}
.invoice-breakdown .break-total{border-top:1px solid #40516c;padding-top:12px;font-size:1.05rem;color:#f2d49e}
.invoice-breakdown .break-warning{color:#ffb2b6;font-weight:700;font-size:.83rem}
.invoice-breakdown p{margin:0;color:#9daac2}

/* V1.0.2 – one-time installation on customer hardware */
.setup-invoice-section{display:grid;gap:12px;padding:14px;border:1px solid #34445f;border-radius:10px;background:#111c2d}
.setup-check{display:flex;align-items:center;gap:10px;line-height:1.45;cursor:pointer;font-size:.85rem}
.setup-check input{width:19px;height:19px;min-height:19px;flex:none;accent-color:#d7a84a}
#invoiceSetupFields{display:grid;gap:12px}
#invoiceSetupFields[hidden]{display:none!important}

/* V1.0.3 customer/license editing controls */
.compact-check{display:flex;align-items:center;gap:8px;margin:-7px 0 12px;font-size:.79rem;color:#aebbd0}
.compact-check input{width:16px;min-height:16px;height:16px;accent-color:#d7a84a}
.edit-fields{display:grid;gap:14px;max-height:min(60vh,540px);overflow-y:auto;margin:14px 0 22px;padding-right:4px}
.edit-fields[hidden]{display:none!important}
#editDialog .dialog{max-height:92vh;overflow-y:auto}
#editForm .actions{margin-top:16px}
