/* Nobold Client Portal — systems catalogue, system pages and order list. */
.np-cat,.np-sysd,.np-cart{color:var(--np-text);font-size:15px;line-height:1.55;max-width:1240px;margin:0 auto 40px}
.np-cat *,.np-sysd *,.np-cart *{box-sizing:border-box}
.np-ico{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.np-btn--sm{padding:8px 13px;font-size:13px;border-radius:9px}
.np-btn--lg{padding:14px 22px;font-size:15px}
.np-btn .np-ico{width:16px;height:16px}

/* ---------- Catalogue hero & filters ---------- */
.np-cat__hero{position:relative;overflow:hidden;background:radial-gradient(900px 400px at 85% -10%,rgba(99,102,241,.45),transparent 60%),radial-gradient(700px 300px at 0% 120%,rgba(34,211,238,.25),transparent 60%),#05070d;color:#fff;border-radius:24px;padding:54px 48px;margin-bottom:22px}
.np-cat__hero:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(90deg,transparent,#000 60%);pointer-events:none}
.np-cat__hero>*{position:relative;z-index:1}
.np-cat__eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#a5b4fc;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);padding:6px 13px;border-radius:99px}
.np-cat__hero h1{color:#fff;font-size:clamp(28px,4vw,46px);margin:16px 0 12px;max-width:760px;line-height:1.1;letter-spacing:-.02em}
.np-cat__hero p{color:rgba(255,255,255,.72);max-width:720px;margin:0 0 26px;font-size:16.5px}
.np-cat__search{display:flex;align-items:center;gap:10px;background:#fff;border-radius:14px;padding:6px 6px 6px 16px;max-width:640px;box-shadow:0 20px 50px -20px rgba(0,0,0,.6)}
.np-cat__search .np-ico{color:#94a3b8}
.np-cat__search input{flex:1;border:0;outline:0;font:inherit;font-size:16px;padding:10px 4px;background:transparent;color:#0a0a0a;min-width:0}
.np-cat__filters{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 12px;scrollbar-width:thin}
.np-filter{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;padding:9px 14px;border-radius:99px;border:1px solid var(--np-line);background:#fff;color:var(--np-ink)!important;text-decoration:none!important;font-weight:600;font-size:13.5px;transition:all .15s}
.np-filter i{width:9px;height:9px;border-radius:50%;background:var(--c,#6366f1)}
.np-filter em{font-style:normal;font-size:11.5px;color:var(--np-muted);background:var(--np-bg);border-radius:99px;padding:1px 7px}
.np-filter:hover{border-color:var(--np-ink)}
.np-filter.is-active{background:var(--np-ink);color:#fff!important;border-color:var(--np-ink)}
.np-filter.is-active em{background:rgba(255,255,255,.16);color:#fff}
.np-filter .np-ico{width:15px;height:15px}
.np-cat__status{margin:4px 2px 14px;color:var(--np-muted);font-size:14px;min-height:1px}

/* ---------- Cards ---------- */
.np-cat__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
.np-cat__grid--3{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.np-cat__grid--3{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.np-cat__grid--3{grid-template-columns:1fr}}
.np-sys{display:flex;flex-direction:column;background:#fff;border:1px solid var(--np-line);border-radius:18px;overflow:hidden;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,border-color .25s}
.np-sys:hover{transform:translateY(-4px);box-shadow:0 26px 50px -28px rgba(5,7,13,.45);border-color:color-mix(in srgb,var(--c) 45%,var(--np-line))}
.np-sys[hidden]{display:none}
.np-sys__shot{position:relative;display:block;aspect-ratio:1200/760;background:#eef2f7;overflow:hidden;border-bottom:1px solid var(--np-line)}
.np-sys__shot img{width:100%;height:100%;object-fit:cover;object-position:top left;display:block;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.np-sys:hover .np-sys__shot img{transform:scale(1.04)}
.np-sys__live{position:absolute;top:10px;left:10px;display:inline-flex;align-items:center;gap:6px;background:rgba(5,7,13,.82);color:#fff;font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:99px}
.np-sys__live i,.np-demo__dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.7);animation:np-live 1.8s infinite}
@keyframes np-live{70%{box-shadow:0 0 0 7px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
.np-sys__view{position:absolute;right:10px;bottom:10px;background:#fff;color:var(--np-ink);font-size:12px;font-weight:600;padding:6px 11px;border-radius:99px;opacity:0;transform:translateY(6px);transition:all .2s;box-shadow:0 6px 18px -6px rgba(0,0,0,.3)}
.np-sys:hover .np-sys__view{opacity:1;transform:none}
.np-sys__body{padding:18px 18px 10px;flex:1}
.np-sys__head{display:flex;gap:12px;align-items:flex-start;margin-bottom:8px}
.np-sys__icon{flex:0 0 38px;height:38px;border-radius:11px;display:grid;place-items:center;background:color-mix(in srgb,var(--c,#6366f1) 13%,#fff);color:var(--c,#6366f1)}
.np-sys__icon .np-ico{width:20px;height:20px}
.np-sys__icon--lg{flex-basis:54px;width:54px;height:54px;border-radius:15px}
.np-sys__icon--lg .np-ico{width:27px;height:27px}
.np-sys h3{font-size:16.5px;line-height:1.3;margin:2px 0 0;letter-spacing:-.01em}
.np-sys h3 a{color:var(--np-ink);text-decoration:none}
.np-sys h3 a:hover{text-decoration:underline}
.np-sys__body p{margin:0 0 12px;color:var(--np-muted);font-size:14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.np-chips{display:flex;flex-wrap:wrap;gap:6px}
.np-chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:99px;color:color-mix(in srgb,var(--c,#64748b) 80%,#000);background:color-mix(in srgb,var(--c,#64748b) 11%,#fff)}
.np-chip--more{--c:#64748b}
.np-sys__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px 18px}
.np-price{font-weight:700;color:var(--np-ink);font-size:15px}
.np-price small{font-weight:500;color:var(--np-muted);font-size:12px}
.np-price--quote{font-weight:600;color:var(--np-muted);font-size:13px}
.np-addform{margin:0}
.np-addform__plus{display:inline-flex}
.np-btn.is-added{background:#ecfdf5;color:#065f46!important;border-color:#a7f3d0}
.np-btn.is-added .np-addform__plus{display:none}
.np-btn.is-busy{opacity:.6;pointer-events:none}

.np-cat__empty{text-align:center;padding:60px 20px;background:#fff;border:1px dashed var(--np-line);border-radius:18px}
.np-cat__empty .np-ico{width:40px;height:40px;color:var(--np-muted)}
.np-cat__empty h3{margin:10px 0 6px;color:var(--np-ink)}
.np-cat__empty p{color:var(--np-muted);margin:0 0 18px}
.np-cat__custom{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-top:40px;padding:34px 36px;border-radius:20px;background:#fff;border:1px solid var(--np-line)}
.np-cat__custom h2{margin:0 0 6px;font-size:22px;color:var(--np-ink)}
.np-cat__custom p{margin:0;color:var(--np-muted);max-width:620px}

/* ---------- Floating order bar & toast ---------- */
.np-orderbar{position:fixed;left:50%;bottom:20px;transform:translate(-50%,140%);z-index:90;transition:transform .35s cubic-bezier(.2,.8,.2,1);width:min(680px,calc(100% - 24px))}
.np-orderbar.is-on{transform:translate(-50%,0)}
.np-orderbar__in{display:flex;align-items:center;gap:12px;background:#05070d;color:#fff;border-radius:16px;padding:10px 10px 10px 18px;box-shadow:0 24px 50px -16px rgba(0,0,0,.55)}
.np-orderbar__in>span{flex:1;font-size:14.5px}
.np-orderbar__in .np-ico{color:#22d3ee}
.np-orderbar .np-btn{background:#fff;color:#05070d!important;border-color:#fff}
@media (max-width:560px){.np-orderbar__in{flex-wrap:wrap}.np-orderbar .np-btn{width:100%}}
.np-toast{position:fixed;top:90px;right:20px;z-index:120;background:#05070d;color:#fff;padding:12px 16px;border-radius:12px;font-size:14px;box-shadow:0 16px 40px -14px rgba(0,0,0,.5);opacity:0;transform:translateY(-10px);pointer-events:none;transition:all .25s;max-width:340px}
.np-toast.is-on{opacity:1;transform:none}
.np-toast a{color:#22d3ee;font-weight:600;margin-left:6px}

/* ---------- Single system ---------- */
.np-crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:13.5px;color:var(--np-muted);margin:0 0 18px}
.np-crumbs a{color:var(--np-muted);text-decoration:none}
.np-crumbs a:hover{color:var(--np-ink)}
.np-crumbs [aria-current]{color:var(--np-ink);font-weight:600}
.np-sysd__top{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:30px;align-items:start}
@media (max-width:980px){.np-sysd__top{grid-template-columns:1fr}}
.np-gallery__main{display:block;width:100%;padding:0;border:1px solid var(--np-line);border-radius:18px;overflow:hidden;background:#eef2f7;cursor:zoom-in;position:relative;box-shadow:0 30px 60px -36px rgba(5,7,13,.45)}
.np-gallery__main img{display:block;width:100%;height:auto;aspect-ratio:1200/760;object-fit:cover;object-position:top}
.np-gallery__zoom{position:absolute;right:12px;bottom:12px;display:inline-flex;gap:6px;align-items:center;background:rgba(5,7,13,.78);color:#fff;font-size:12px;font-weight:600;padding:6px 11px;border-radius:99px;opacity:0;transition:opacity .2s}
.np-gallery__main:hover .np-gallery__zoom,.np-gallery__main:focus-visible .np-gallery__zoom{opacity:1}
.np-gallery__zoom .np-ico{width:14px;height:14px}
.np-gallery__thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-top:12px}
.np-gallery__thumb{padding:0;border:2px solid transparent;border-radius:11px;overflow:hidden;cursor:pointer;background:#eef2f7;transition:border-color .15s,opacity .15s;opacity:.75}
.np-gallery__thumb img{display:block;width:100%;height:auto;aspect-ratio:1200/760;object-fit:cover;object-position:top left}
.np-gallery__thumb:hover{opacity:1}
.np-gallery__thumb.is-active{border-color:var(--c);opacity:1}
.np-gallery__note{font-size:12.5px;color:var(--np-muted);margin:10px 2px 0}

.np-sysd__buy{background:#fff;border:1px solid var(--np-line);border-radius:20px;padding:26px;position:sticky;top:100px}
@media (max-width:980px){.np-sysd__buy{position:static}}
.np-sysd__title{display:flex;gap:14px;align-items:center;margin:14px 0 10px}
.np-sysd__title h1,.np-sysd__title h2{margin:0;font-size:clamp(22px,2.6vw,30px);line-height:1.15;color:var(--np-ink);letter-spacing:-.02em}
.np-sysd__tagline{color:var(--np-text);font-size:16px;margin:0 0 16px}
.np-sysd__meta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding:14px 0;border-top:1px solid var(--np-line);border-bottom:1px solid var(--np-line);margin-bottom:18px}
.np-sysd__meta .np-price{font-size:20px}
.np-sysd__delivery{display:inline-flex;align-items:center;gap:6px;color:var(--np-muted);font-size:14px}
.np-sysd__actions{display:grid;gap:10px}
.np-sysd__actions .np-btn,.np-sysd__actions .np-addform{width:100%}
.np-sysd__actions .np-addform .np-btn{width:100%}
.np-demo{display:grid;gap:10px;margin:18px 0}
.np-demo__live,.np-demo__book{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;text-decoration:none!important;transition:transform .15s,box-shadow .2s}
.np-demo__live{background:linear-gradient(120deg,#0e7490,#4338ca);color:#fff!important}
.np-demo__live:hover{transform:translateY(-2px);box-shadow:0 16px 30px -16px rgba(67,56,202,.8)}
.np-demo__live>span:nth-child(2){flex:1}
.np-demo__live strong,.np-demo__book strong{display:block;font-size:14.5px}
.np-demo__live small{color:rgba(255,255,255,.75);font-size:12.5px}
.np-demo__book{border:1px dashed var(--np-line);color:var(--np-ink)!important;background:var(--np-bg)}
.np-demo__book:hover{border-color:var(--np-ink)}
.np-demo__book .np-ico{width:22px;height:22px;color:var(--c)}
.np-demo__book small{color:var(--np-muted);font-size:12.5px}
.np-demo__creds{margin:0;display:grid;gap:6px;background:var(--np-bg);border-radius:12px;padding:10px 14px}
.np-demo__creds div{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px}
.np-demo__creds dt{color:var(--np-muted)}
.np-demo__creds dd{margin:0;display:flex;align-items:center;gap:8px}
.np-demo__creds code{background:#fff;border:1px solid var(--np-line);border-radius:6px;padding:2px 7px;font-size:12.5px}
.np-demo__creds button{border:0;background:none;color:var(--c);font-weight:600;cursor:pointer;font-size:12px;font-family:inherit}
.np-sysd__trust{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14px}
.np-sysd__trust li{position:relative;padding-left:26px}
.np-sysd__trust li:before{content:"";position:absolute;left:0;top:3px;width:17px;height:17px;border-radius:50%;background:color-mix(in srgb,var(--c) 15%,#fff) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/11px no-repeat}

.np-sysd__section{margin-top:56px}
.np-sysd__section h2{font-size:clamp(22px,2.4vw,28px);margin:0 0 20px;color:var(--np-ink);letter-spacing:-.01em}
.np-sysd__section .np-row--between h2{margin:0}
.np-sysd__section .np-row--between{margin-bottom:20px}
.np-sysd__section .np-row--between a{color:var(--np-ink);font-weight:600;text-decoration:none}
.np-modules{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:900px){.np-modules{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.np-modules{grid-template-columns:1fr}}
.np-module{background:#fff;border:1px solid var(--np-line);border-radius:16px;padding:20px;position:relative;overflow:hidden}
.np-module:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c)}
.np-module span{font-size:12px;font-weight:700;color:var(--c);letter-spacing:.08em}
.np-module h3{margin:6px 0 6px;font-size:16.5px;color:var(--np-ink)}
.np-module p{margin:0;color:var(--np-muted);font-size:14px}
.np-sysd__overview .np-prose{background:#fff;border:1px solid var(--np-line);border-radius:16px;padding:24px 28px;max-width:860px}
.np-steps ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:s}
@media (max-width:900px){.np-steps ol{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.np-steps ol{grid-template-columns:1fr}}
.np-steps li{counter-increment:s;background:#05070d;color:rgba(255,255,255,.7);border-radius:16px;padding:22px;font-size:14px}
.np-steps li:before{content:counter(s);display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,#22d3ee,#6366f1);color:#fff;font-weight:700;margin-bottom:12px}
.np-steps strong{display:block;color:#fff;font-size:15.5px;margin-bottom:4px}

/* Lightbox */
.np-lightbox{position:fixed;inset:0;z-index:200;background:rgba(5,7,13,.92);display:flex;align-items:center;justify-content:center;padding:40px 70px}
.np-lightbox[hidden]{display:none}
.np-lightbox img{max-width:100%;max-height:100%;border-radius:12px;box-shadow:0 30px 80px rgba(0,0,0,.6);background:#eef2f7}
.np-lightbox button{position:absolute;border:0;background:rgba(255,255,255,.1);color:#fff;width:46px;height:46px;border-radius:50%;font-size:28px;line-height:1;cursor:pointer}
.np-lightbox button:hover{background:rgba(255,255,255,.2)}
.np-lightbox__close{top:16px;right:16px}
.np-lightbox__prev{left:14px;top:50%;transform:translateY(-50%)}
.np-lightbox__next{right:14px;top:50%;transform:translateY(-50%)}
@media (max-width:640px){.np-lightbox{padding:60px 10px}.np-lightbox__prev,.np-lightbox__next{top:auto;bottom:14px;transform:none}}

/* ---------- Order list ---------- */
.np-cart{max-width:1180px}
.np-cart__grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:24px;align-items:start}
@media (max-width:900px){.np-cart__grid{grid-template-columns:1fr}}
.np-cart__items{display:flex;flex-direction:column;gap:14px}
.np-line{display:grid;grid-template-columns:180px 1fr;gap:18px;padding:16px;margin:0}
@media (max-width:560px){.np-line{grid-template-columns:1fr}}
.np-line__img{display:block;border-radius:11px;overflow:hidden;border:1px solid var(--np-line);background:#eef2f7;align-self:start}
.np-line__img img{display:block;width:100%;height:auto;aspect-ratio:1200/760;object-fit:cover;object-position:top left}
.np-line h3{margin:0;font-size:17px}
.np-line h3 a{color:var(--np-ink);text-decoration:none}
.np-line p{margin:4px 0 10px}
.np-line__notes{margin-top:12px;font-size:14px}
.np-line__notes summary{cursor:pointer;color:var(--c);font-weight:600}
.np-line__notes textarea{margin-top:8px}
.np-cart__checkout{position:sticky;top:100px;margin:0;display:flex;flex-direction:column;gap:14px}
.np-cart__checkout h3{margin:0 0 4px}
.np-cart__checkout h3{font-size:19px}
@media (max-width:900px){.np-cart__checkout{position:static}}
.np-cart__total{display:flex;justify-content:space-between;align-items:baseline;gap:10px;background:var(--np-bg);border-radius:12px;padding:12px 14px;font-size:13px;color:var(--np-muted)}
.np-cart__total strong{color:var(--np-ink);font-size:20px}
.np-cart__empty{text-align:center;padding:56px 24px;max-width:620px;margin:30px auto}
.np-cart__empty .np-sys__icon{margin:0 auto 14px;--c:#6366f1}
.np-cart__empty h2{margin:0 0 8px;color:var(--np-ink)}
.np-cart__empty p{color:var(--np-muted)}

@media (max-width:640px){.np-cat__hero{padding:36px 22px;border-radius:18px}.np-cat__search .np-btn{padding:10px 14px}.np-cat__custom{padding:24px}}
@media (prefers-reduced-motion:reduce){.np-sys,.np-sys__shot img,.np-orderbar,.np-toast{transition:none}.np-sys__live i,.np-demo__dot{animation:none}}
