/* =====================================================================
   PrintStock v1.5 — branding & design options
   ===================================================================== */
/* nav group wrappers keep older layouts unchanged */
.sb-sec,.sb-items{display:contents}

/* ---------- primary / accent text colours (readable on any brand colour) ---------- */
.btn-primary,.sb-link.active,.as-msg.me,.pager-links a.active,.as-fab{color:var(--on-primary,#fff)!important}
.hero,.hero h2,.hero p{color:var(--on-primary,#fff)}
.btn-accent{background:var(--accent);color:var(--accent-on,#fff)}

/* ---------- logos ---------- */
.brand-logo.logo-reversed,.sb-light .brand-logo,.brand-logo.logo-mark{background:none;padding:0}
.brand-logo.logo-chip{background:#fff;padding:3px}
.brand-logo.logo-mark{max-width:40px;max-height:40px;border-radius:8px}
.art-logo.logo-reversed{background:none;padding:0;max-height:52px;max-width:220px}
.login-logo{display:none;margin-bottom:6px}.login-logo img{max-height:52px;max-width:220px;object-fit:contain}
.ql-logo{max-height:18px;max-width:90px;object-fit:contain;margin-bottom:2px}
.print-logo{display:none}
.slip-foot{margin-top:22px;padding-top:10px;border-top:1px solid var(--border);font-size:11.5px;color:var(--muted);text-align:center}
@media print{.brand-doc .print-logo{display:block}.brand-doc .screen-logo:not(:only-child){display:none}.report-print-head .print-logo{display:block}.report-print-head .screen-logo:not(:only-child){display:none}}

/* ---------- font size & icon weight ---------- */
.fs-sm{font-size:13px}.fs-lg{font-size:15.5px}
.fs-lg .table{font-size:14.5px}.fs-lg input,.fs-lg select,.fs-lg textarea{font-size:15.5px}.fs-lg .btn{font-size:14.5px}
.fs-sm .table{font-size:12.5px}
.ico-thin .ico{stroke-width:1.3}.ico-bold .ico{stroke-width:2.4}
.ico-thin symbol,.ico-bold symbol{stroke-width:inherit}

/* ---------- buttons ---------- */
.btn-pill .btn,.btn-pill .icon-btn,.btn-pill input,.btn-pill select{border-radius:999px}
.btn-pill textarea{border-radius:14px}
.btn-square .btn,.btn-square .icon-btn,.btn-square .seg-opt span,.btn-square input,.btn-square select{border-radius:3px}
.btn-outline .btn-primary{background:transparent;color:var(--primary)!important;border:1.5px solid var(--primary);box-shadow:none}
.btn-outline .btn-primary:hover{background:var(--primary);color:var(--on-primary,#fff)!important}
.btn-outline .hero .btn-light{background:transparent;color:var(--on-primary,#fff);border:1.5px solid currentColor}

/* ---------- header styles ---------- */
.hdr-solid .topbar{background:var(--card);backdrop-filter:none;-webkit-backdrop-filter:none}
.hdr-transparent .topbar{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom-color:transparent}
.hdr-gradient .topbar{background:var(--grad);border-bottom:0;color:var(--on-primary,#fff)}
.hdr-gradient .tb-title p{color:color-mix(in srgb,var(--on-primary,#fff) 80%,transparent)}
.hdr-gradient .topbar .icon-btn,.hdr-gradient .user-chip{background:color-mix(in srgb,var(--on-primary,#fff) 14%,transparent);border-color:color-mix(in srgb,var(--on-primary,#fff) 25%,transparent);color:var(--on-primary,#fff)}
.hdr-gradient .uc-text small{color:inherit;opacity:.8}

/* ---------- dashboard banner ---------- */
.hero-hidden .hero{display:none}
.hero-plain .card.hero{background:var(--card);color:var(--text)}
.hero-plain .hero h2,.hero-plain .hero p{color:var(--text)}.hero-plain .hero p{color:var(--muted)}
.hero-plain .hero::before,.hero-plain .hero::after{display:none}
.hero-plain .hero .btn-light{background:var(--grad);color:var(--on-primary,#fff)}
.hero-plain .hero .btn-glass{background:var(--card);color:var(--text);border-color:var(--border)}
.hero-image .card.hero{background:linear-gradient(110deg,color-mix(in srgb,var(--sb-bg) 92%,transparent) 30%,color-mix(in srgb,var(--sb-bg) 35%,transparent)),var(--brand-photo,var(--grad)) center/cover}
.hero-image .hero,.hero-image .hero h2,.hero-image .hero p{color:#fff}

/* ---------- card styles ---------- */
.card-glow .card:not(.hero){box-shadow:0 0 0 1px color-mix(in srgb,var(--primary) 28%,transparent),0 10px 30px -14px color-mix(in srgb,var(--primary) 55%,transparent);border:0}
.card-gradient .card:not(.hero){border:2px solid transparent;background:linear-gradient(var(--card),var(--card)) padding-box,linear-gradient(135deg,var(--primary),var(--accent)) border-box;box-shadow:var(--shadow)}
.card-paper .card:not(.hero){box-shadow:0 1px 0 color-mix(in srgb,var(--text) 6%,transparent),0 2px 0 -1px var(--card),0 3px 0 -1px color-mix(in srgb,var(--text) 10%,transparent);border:1px solid color-mix(in srgb,var(--text) 9%,transparent);
  background-image:repeating-linear-gradient(0deg,transparent 0 27px,color-mix(in srgb,var(--text) 2.5%,transparent) 27px 28px)}
.card-paper .table{background:transparent}
.tp[data-card=glow] .tp-card{box-shadow:0 0 0 1px color-mix(in srgb,var(--tp-p) 30%,transparent),0 6px 18px -8px var(--tp-p)}
.tp[data-card=gradient] .tp-card{border:2px solid transparent;background:linear-gradient(var(--tp-card),var(--tp-card)) padding-box,linear-gradient(135deg,var(--tp-p),var(--tp-p2)) border-box}
.theme-thumb.tcard-glow .tt-cards i,.theme-thumb.tcard-glow .tt-block{box-shadow:0 0 0 1px var(--t-p),0 4px 10px -4px var(--t-p)}
.theme-thumb.tcard-gradient .tt-cards i,.theme-thumb.tcard-gradient .tt-block{border:2px solid var(--t-p)}
.theme-thumb.layout-boxed{padding:0 14px}.theme-thumb.layout-rail .tt-side{width:9%}.theme-thumb.layout-mega{flex-direction:column}.theme-thumb.layout-mega .tt-side{width:100%;height:20px}

/* ---------- layout: icon rail (expands on hover) ---------- */
.layout-rail{--sb-w:78px}
.layout-rail .sidebar{width:78px;transition:width .2s ease,margin .2s ease,box-shadow .2s;overflow:hidden}
.layout-rail .sb-brand-text,.layout-rail .sb-link span,.layout-rail .sb-foot,.layout-rail .sb-group{display:none}
.layout-rail .sb-brand{justify-content:center;padding:18px 0}.layout-rail .sb-link{justify-content:center;padding:11px}
.layout-rail .sb-nav{padding:6px 10px;overflow-x:hidden}
@media (min-width:993px){
  .layout-rail .sidebar:hover,.layout-rail .sidebar:focus-within{width:264px;margin-right:-186px;box-shadow:var(--shadow-lg)}
  .layout-rail .sidebar:hover .sb-brand-text,.layout-rail .sidebar:focus-within .sb-brand-text,.layout-rail .sidebar:hover .sb-link span,.layout-rail .sidebar:focus-within .sb-link span,.layout-rail .sidebar:hover .sb-group,.layout-rail .sidebar:focus-within .sb-group{display:block}
  .layout-rail .sidebar:hover .sb-link,.layout-rail .sidebar:focus-within .sb-link{justify-content:flex-start;padding:9px 12px}
  .layout-rail .sidebar:hover .sb-brand,.layout-rail .sidebar:focus-within .sb-brand{justify-content:flex-start;padding:18px 20px 14px}
}

/* ---------- layout: boxed ---------- */
.layout-boxed{background:color-mix(in srgb,var(--text) 6%,var(--bg))}
.layout-boxed .app{max-width:1440px;margin:0 auto;background:var(--bg);box-shadow:0 0 60px -20px rgba(15,23,42,.35);min-height:100vh}

/* ---------- layout: mega menu (top bar with group dropdowns) ---------- */
.layout-mega .app{flex-direction:column}
.layout-mega .sidebar{position:sticky;top:0;width:100%;height:auto;flex-direction:row;align-items:center;border-right:0;border-bottom:1px solid color-mix(in srgb,var(--sb-text) 12%,transparent);z-index:45;overflow:visible}
.layout-mega .sb-brand{padding:10px 20px}.layout-mega .sb-foot{display:none}
.layout-mega .sb-nav{display:flex;align-items:center;gap:2px;padding:6px 12px;flex:1;overflow:visible;flex-wrap:wrap}
.layout-mega .sb-sec{display:block;position:relative}
.layout-mega .sb-sec-home .sb-items{display:flex}
.layout-mega .sb-group{display:flex;align-items:center;gap:6px;padding:8px 12px;margin:0;opacity:.9;font-size:13px;font-weight:600;text-transform:none;letter-spacing:0;border-radius:calc(var(--radius)*.7);cursor:pointer;white-space:nowrap}
.layout-mega .sb-group::after{content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.7}
.layout-mega .sb-sec:hover .sb-group,.layout-mega .sb-sec:focus-within .sb-group{background:color-mix(in srgb,var(--sb-text) 12%,transparent)}
.layout-mega .sb-sec:not(.sb-sec-home) .sb-items{display:none;position:absolute;left:0;top:100%;min-width:250px;padding:8px;border-radius:var(--radius);background:linear-gradient(180deg,var(--sb-bg),var(--sb-bg-2));box-shadow:var(--shadow-lg);z-index:60}
.layout-mega .sb-sec:hover .sb-items,.layout-mega .sb-sec:focus-within .sb-items{display:block}
.layout-mega .sb-link{white-space:nowrap;padding:8px 12px;font-size:13px}
.layout-mega .topbar{top:var(--topnav-h,58px)}
@media (max-width:992px){
  .layout-mega .sidebar,.layout-rail .sidebar{position:fixed;left:0;top:0;height:100vh;width:280px;transform:translateX(-105%);transition:transform .25s ease;flex-direction:column;align-items:stretch;margin:0;overflow-y:auto}
  .sidebar-open.layout-mega .sidebar,.sidebar-open.layout-rail .sidebar{transform:none;box-shadow:var(--shadow-lg)}
  .layout-mega .app{flex-direction:row}.layout-mega .topbar{top:0}
  .layout-mega .sb-nav{display:block}.layout-mega .sb-sec,.layout-mega .sb-items,.layout-mega .sb-sec:not(.sb-sec-home) .sb-items{display:block;position:static;box-shadow:none;background:none;padding:0;min-width:0}
  .layout-mega .sb-group{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;opacity:.5;padding:16px 10px 6px;cursor:default}.layout-mega .sb-group::after{display:none}
  .layout-rail .sb-brand-text,.layout-rail .sb-link span,.layout-rail .sb-group{display:block}.layout-rail .sb-link span{display:inline}
  .layout-rail .sb-link{justify-content:flex-start;padding:9px 12px}
}

/* ---------- sign-in designs ---------- */
.login-center .login-split,.login-minimal .login-split{grid-template-columns:1fr}
.login-center .login-art,.login-minimal .login-art{display:none}
.login-center .login-logo,.login-minimal .login-logo,.login-image .login-logo{display:block}
.login-center{background:radial-gradient(1000px 600px at 15% 10%,color-mix(in srgb,var(--primary) 35%,transparent),transparent),radial-gradient(900px 600px at 90% 90%,color-mix(in srgb,var(--accent) 25%,transparent),transparent),linear-gradient(145deg,var(--sb-bg),var(--sb-bg-2))}
.login-center .login-card{background:var(--card);padding:34px;border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}

.login-minimal{background:var(--card)}.login-minimal .login-card{max-width:360px}
.login-image .login-split{grid-template-columns:1fr;background:linear-gradient(120deg,color-mix(in srgb,var(--sb-bg) 70%,transparent),color-mix(in srgb,var(--sb-bg) 20%,transparent)),var(--brand-photo) center/cover fixed}
.login-image .login-art{display:none}
.login-image .login-panel{justify-content:flex-end;padding:40px 6vw}
.login-image .login-card{background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:34px;border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}
@media (max-width:992px){.login-split .login-logo{display:block}.login-image .login-panel{justify-content:center}}

/* ---------- Branding page ---------- */
.mono{font-family:Consolas,monospace}
.mb{margin-bottom:10px}
.logo-set{display:flex;flex-direction:column;gap:10px}
.logo-slot{display:grid;grid-template-columns:200px minmax(0,1fr) auto;gap:16px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:var(--radius)}
.logo-prev2{height:76px;display:grid;place-items:center;border-radius:10px;background:repeating-conic-gradient(#f1f5f9 0 25%,#fff 0 50%) 0 0/16px 16px;border:1px solid var(--border);overflow:hidden;padding:8px}
.logo-prev2.on-dark{background:var(--sb-bg)}
.logo-prev2 img{max-width:100%;max-height:60px;object-fit:contain}
.logo-meta{display:flex;flex-direction:column;gap:4px;min-width:0}.logo-meta small{display:flex;align-items:center;gap:6px}
.logo-meta input[type=file]{margin-top:4px}
.swatch-pick{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border:1px solid var(--border);border-radius:999px;cursor:pointer;background:var(--card)}
.swatch-pick:hover,.swatch-pick:focus-visible{border-color:var(--primary);outline:none}
.sw-dot{display:inline-block;width:22px;height:22px;border-radius:50%;border:1px solid rgba(0,0,0,.15);flex:none}
.swatch-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.swatch-row span{display:flex;flex-direction:column;align-items:center;gap:2px}.swatch-row small{font-size:10px;color:var(--muted)}
.card-inset{border:1px dashed var(--border);border-radius:var(--radius);padding:12px 14px;margin:6px 0 4px;font-size:13px}
.contrast-live:empty{display:none}
.contrast-live .cl-row{display:flex;justify-content:space-between;gap:10px;padding:3px 0}
.brand-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.bp-box{display:flex;flex-direction:column;gap:6px}.bp-box>small{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700}
.bp-wide{grid-column:1/-1}
.bp-side{display:flex;align-items:center;gap:12px;padding:16px;border-radius:var(--radius);background:linear-gradient(180deg,var(--sb-bg),var(--sb-bg-2));color:var(--sb-text);font-weight:700}
.bp-login{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;border-radius:var(--radius);border:1px solid var(--border);background:var(--card)}
.bp-login img{max-height:44px;max-width:200px;object-fit:contain}
.bp-slip{padding:16px 18px;max-width:none;border:1px solid var(--border);border-radius:var(--radius)}
.bp-email{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:#fff}
.bp-email-logo{padding:12px 14px}.bp-email-logo img{max-height:40px;max-width:200px}
.bp-email-bar{background:var(--primary);color:var(--on-primary,#fff);padding:10px 14px;font-weight:600;font-size:13px}
.bp-tab{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px 10px 0 0;background:var(--card);border:1px solid var(--border);border-bottom:0;font-size:12.5px;max-width:260px}
@media (max-width:700px){.logo-slot{grid-template-columns:1fr}}
@media print{.layout-boxed .app{box-shadow:none;max-width:none}}
