:root{
  --bg:#f8fafc;
  --card:#ffffff;
  --border:#e2e8f0;
  --text:#0f172a;
  --muted:#64748b;
  --blue:#2563eb;
  --blue2:#1d4ed8;
  --emerald-bg:#ecfdf5;
  --emerald-bd:#a7f3d0;
  --emerald-tx:#047857;
  --shadow-sm:0 1px 2px rgba(15,23,42,.08);
  --shadow-md:0 10px 20px rgba(15,23,42,.10);
  --shadow-xl:0 20px 40px rgba(15,23,42,.14);
  --r-xl:12px;
  --r-2xl:16px;
  --container:1152px;
}
*{ box-sizing:border-box; }
html,body{ height:100%; }
body{ margin:0; background:var(--bg); color:var(--text); font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif; line-height:1.45; }
a{ color:inherit; text-decoration:none; }
a:hover{ text-decoration:underline; }
.cv-container{ max-width:var(--container); margin:0 auto; padding:0 16px; }
.cv-page{ padding:18px 0 56px; }

/* Header */
.cv-header{ position:sticky; top:0; z-index:30; border-bottom:1px solid var(--border); background:rgba(248,250,252,.8); backdrop-filter: blur(10px); }
.cv-header__inner{ padding:12px 0; }
.cv-header__row{ display:flex; align-items:center; gap:12px; }
.cv-brand{ display:flex; align-items:baseline; gap:10px; }
.cv-brand__name{ font-size:24px; font-weight:900; letter-spacing:-.02em; }
.cv-pill{ display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; background:#f1f5f9; border:1px solid var(--border); font-size:12px; font-weight:800; color:#334155; }
.cv-actions{ margin-left:auto; display:flex; align-items:center; gap:8px; }
.cv-hide-mobile{ display:inline-flex; }

/* Search */
.cv-search{ position:relative; flex:1; }
.cv-search__icon{ position:absolute; left:12px; top:50%; transform:translateY(-50%); opacity:.55; }
.cv-search--desktop{ display:block; max-width:520px; }
.cv-search--mobile{ display:none; margin-top:10px; }
.cv-search--inline{ min-width:240px; max-width:520px; }

/* Inputs */
.cv-input{ width:100%; height:40px; border-radius:var(--r-xl); border:1px solid var(--border); background:#fff; padding:0 12px; box-shadow:var(--shadow-sm); }
.cv-input--search{ padding-left:36px; }
.cv-select{ width:220px; }

/* Buttons */
.cv-btn{ display:inline-flex; align-items:center; justify-content:center; height:40px; padding:0 14px; border-radius:var(--r-xl); border:1px solid var(--border); background:#fff; box-shadow:var(--shadow-sm); font-weight:800; cursor:pointer; transition:transform .15s ease, box-shadow .15s ease, background .15s ease; }
.cv-btn:hover{ transform:translateY(-1px); box-shadow:var(--shadow-md); text-decoration:none; }
.cv-btn--primary{ background:var(--blue); border-color:var(--blue); color:#fff; }
.cv-btn--primary:hover{ background:var(--blue2); border-color:var(--blue2); }
.cv-btn--secondary{ background:#fff; }
.cv-btn--block{ width:100%; }

/* Card */
.cv-card{ background:var(--card); border:1px solid var(--border); border-radius:var(--r-2xl); box-shadow:var(--shadow-sm); }
.cv-card--pad{ padding:16px; }
.cv-sep{ height:1px; background:var(--border); margin:14px 0; }
.cv-sep--big{ margin:24px 0; }

/* Info bar */
.cv-infobar{ margin-top:14px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:12px; color:#64748b; }

/* Print badge */
.cv-print{ display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border-radius:999px; border:1px solid var(--emerald-bd); background:var(--emerald-bg); color:var(--emerald-tx); font-size:11px; font-weight:900; }

/* Hero */
.cv-hero{ margin-top:18px; }
.cv-hero__card{ overflow:hidden; }
.cv-hero__bg{ background:linear-gradient(180deg,#fff 0%, #f1f5f9 100%); padding:18px; }
.cv-hero__title{ margin:0; font-size:34px; letter-spacing:-.03em; font-weight:900; }
.cv-hero__subtitle{ margin:10px 0 0; max-width:64ch; color:#475569; }
.cv-hero__actions{ margin-top:14px; display:flex; gap:10px; flex-wrap:wrap; }
.cv-hero__features{ margin-top:18px; display:grid; gap:12px; grid-template-columns:repeat(3,1fr); }
.cv-feature{ display:flex; gap:12px; padding:14px; border-radius:var(--r-2xl); }
.cv-feature__icon{ width:40px; height:40px; display:grid; place-items:center; border-radius:12px; font-size:18px; }
.cv-ic--blue{ background:#eff6ff; color:#1d4ed8; }
.cv-ic--emerald{ background:#ecfdf5; color:#047857; }
.cv-ic--violet{ background:#f5f3ff; color:#6d28d9; }
.cv-feature__title{ font-size:14px; font-weight:900; }
.cv-feature__text{ font-size:12px; color:var(--muted); margin-top:2px; }

/* Chips */
.cv-chipRow{ margin-top:16px; display:flex; flex-wrap:wrap; gap:10px; }
.cv-chip{ display:inline-flex; align-items:center; padding:8px 12px; border-radius:999px; border:1px solid var(--border); background:#eff6ff; color:#1e3a8a; font-weight:800; font-size:13px; box-shadow:var(--shadow-sm); }
.cv-chip--active{ background:var(--blue); color:#fff; border-color:#bfdbfe; }

/* Section head */
.cv-sectionHead{ margin-top:18px; display:flex; align-items:end; justify-content:space-between; gap:12px; }
.cv-sectionTitle{ font-size:20px; font-weight:900; letter-spacing:-.02em; }
.cv-sectionSub{ font-size:14px; color:var(--muted); margin-top:4px; }

/* Grid */
.cv-grid{ margin-top:14px; display:grid; gap:16px; grid-template-columns:repeat(3,1fr); }
.cv-grid--tight{ margin-top:16px; }

/* Product card */
.cv-pcard{ overflow:hidden; }
.cv-pcard__media{ position:relative; }
.cv-pcard__thumb{ display:block; margin:12px; height:176px; border-radius:var(--r-xl); background:linear-gradient(180deg,#f1f5f9,#e2e8f0); }
.cv-pcard__badgeL{ position:absolute; left:16px; top:16px; }
.cv-pcard__badgeR{ position:absolute; right:16px; top:16px; }
.cv-fav{ position:absolute; right:16px; bottom:16px; width:40px; height:40px; border-radius:12px; border:1px solid var(--border); background:rgba(255,255,255,.9); box-shadow:var(--shadow-sm); }
.cv-fav:hover{ box-shadow:var(--shadow-md); }
.cv-pcard__body{ padding:0 16px 16px; }
.cv-pcard__name{ margin-top:4px; font-size:18px; font-weight:900; letter-spacing:-.02em; }
.cv-pcard__meta{ font-size:12px; color:var(--muted); }
.cv-pcard__foot{ margin-top:12px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.cv-pcard__price{ font-size:18px; font-weight:900; }

/* Catalog */
.cv-catHead{ margin-top:18px; display:flex; align-items:end; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.cv-catTitle{ font-size:24px; font-weight:900; letter-spacing:-.02em; }
.cv-catSub{ font-size:14px; color:var(--muted); margin-top:4px; }
.cv-catLayout{ margin-top:16px; display:grid; gap:16px; grid-template-columns: 320px 1fr; }
.cv-asideTitle{ font-weight:900; margin-bottom:8px; }
.cv-asideLabel{ font-size:12px; font-weight:900; color:#334155; margin-bottom:8px; }
.cv-priceGrid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.cv-catTop__form{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; }

/* Product page */
.cv-prodHead{ margin-top:18px; display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.cv-prodTitle{ font-size:24px; font-weight:900; letter-spacing:-.02em; }
.cv-prodMeta{ margin-top:6px; display:flex; flex-wrap:wrap; gap:8px; color:#475569; align-items:center; }
.cv-star{ color:#f59e0b; font-weight:900; }
.cv-dot{ color:#cbd5e1; }
.cv-prodActions{ display:flex; gap:10px; flex-wrap:wrap; }
.cv-prodGrid{ margin-top:14px; display:grid; gap:16px; grid-template-columns: 1.2fr .8fr; }
.cv-galleryMain{ height:360px; border-radius:var(--r-2xl); background:linear-gradient(180deg,#f1f5f9,#e2e8f0); }
.cv-galleryThumbs{ margin-top:12px; display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.cv-galleryThumbs > div{ height:80px; border-radius:var(--r-xl); border:1px solid var(--border); background:#fff; box-shadow:var(--shadow-sm); }
.cv-prodRight{ display:flex; flex-direction:column; gap:16px; }
.cv-priceRow{ display:flex; align-items:start; justify-content:space-between; gap:12px; }
.cv-priceLabel{ font-size:12px; font-weight:900; color:#334155; }
.cv-priceValue{ font-size:32px; font-weight:900; letter-spacing:-.02em; }
.cv-coupon{ margin-top:10px; border:1px solid var(--border); background:#f8fafc; border-radius:var(--r-2xl); padding:12px; }
.cv-couponLabel{ font-size:12px; font-weight:900; color:#334155; }
.cv-couponRow{ margin-top:10px; display:flex; gap:10px; flex-wrap:wrap; }
.cv-couponHint{ margin-top:8px; font-size:12px; color:var(--muted); }
.cv-buyBtns{ margin-top:12px; display:grid; gap:10px; }
.cv-getTitle{ margin-top:4px; font-weight:900; }
.cv-getList{ margin:10px 0 0; padding-left:18px; color:#475569; }
.cv-authorRow{ display:flex; align-items:center; gap:12px; }
.cv-avatar{ width:40px; height:40px; border-radius:12px; background:#e2e8f0; }
.cv-authorTitle{ font-weight:900; }
.cv-authorSub{ font-size:12px; color:var(--muted); margin-top:2px; }
.cv-descTitle{ font-size:18px; font-weight:900; letter-spacing:-.02em; }
.cv-descText{ margin-top:10px; color:#475569; }

/* Footer */
.cv-footer{ margin-top:40px; border-top:1px solid var(--border); background:#fff; padding:30px 0; }
.cv-footer__grid{ display:grid; gap:28px; grid-template-columns: 1.4fr 1fr 1fr; align-items:start; }
.cv-footer__brandRow{ display:flex; gap:10px; align-items:center; }
.cv-footer__logo{ font-size:20px; font-weight:900; }
.cv-footer__text{ color:#475569; font-size:14px; margin:10px 0 0; max-width:44ch; }
.cv-footer__bullets{ margin-top:10px; display:grid; gap:6px; color:#334155; }
.cv-footer__btnRow{ margin-top:12px; display:flex; gap:8px; flex-wrap:wrap; }
.cv-footer__links{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.cv-footer__colTitle{ font-size:12px; font-weight:900; color:#334155; letter-spacing:.06em; }
.cv-footer__links a{ display:block; margin-top:8px; color:#475569; font-weight:700; font-size:14px; }
.cv-footer__links a:hover{ color:#0f172a; text-decoration:none; }
.cv-footer__newsTop{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.cv-footer__newsTitle{ font-weight:900; }
.cv-footer__newsText{ margin-top:6px; font-size:12px; color:#475569; }
.cv-footer__muted{ margin-left:6px; color:#94a3b8; }
.cv-footer__newsForm{ margin-top:12px; display:flex; gap:10px; flex-wrap:wrap; }
.cv-footer__newsMsg{ margin-top:8px; font-size:12px; color:#64748b; font-weight:700; }
.cv-footer__support{ margin-top:10px; font-size:12px; color:#475569; }
.cv-footer__ctaTitle{ margin-top:8px; font-size:12px; font-weight:900; color:#334155; }
.cv-footer__bottom{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.cv-footer__copy{ font-size:12px; color:#94a3b8; }
.cv-footer__bottomLinks{ display:flex; gap:10px; align-items:center; font-size:12px; font-weight:800; color:#475569; }
.cv-footer__bottomLinks a:hover{ color:#0f172a; text-decoration:none; }

/* Responsive */
@media (max-width: 1024px){
  .cv-hero__features{ grid-template-columns:1fr; }
  .cv-catLayout{ grid-template-columns:1fr; }
  .cv-grid{ grid-template-columns:repeat(2,1fr); }
  .cv-footer__grid{ grid-template-columns:1fr; }
  .cv-footer__links{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 740px){
  .cv-grid{ grid-template-columns:1fr; }
  .cv-search--desktop{ display:none; }
  .cv-search--mobile{ display:block; }
  .cv-hide-mobile{ display:none; }
  .cv-prodGrid{ grid-template-columns:1fr; }
}
.cv-textarea{min-height:90px; padding:10px 12px; height:auto; resize:vertical;}
.cv-textarea--lg{min-height:160px;}
.cv-formGrid{display:grid; grid-template-columns: 1fr; gap:10px; margin-top:12px;}
.cv-label{font-size:12px; font-weight:900; color:#334155;}
.cv-row{display:flex; gap:10px; flex-wrap:wrap; margin-top:12px;}
.cv-uploadRow{display:flex; gap:10px; flex-wrap:wrap; margin-top:10px;}
.cv-uploadList{margin-top:12px; display:grid; gap:8px;}
.cv-uploadItem{display:flex; justify-content:space-between; gap:10px; align-items:center; padding:10px 12px; border:1px solid var(--border); border-radius: var(--r-xl); background:#fff; box-shadow:var(--shadow-sm);}
.cv-table{margin-top:10px; border:1px solid var(--border); border-radius: var(--r-2xl); overflow:hidden; background:#fff;}
.cv-tr{display:grid; grid-template-columns: 1.4fr .6fr .6fr 1fr; gap:10px; padding:10px 12px; border-top:1px solid var(--border); align-items:center;}
.cv-tr--head{background:#f8fafc; border-top:none; font-size:12px; font-weight:900; color:#334155;}
.cv-tdTitle{min-width:0;}
.cv-strong{font-weight:900;}
.cv-muted{font-size:12px; color: var(--muted);}
.cv-right{display:flex; justify-content:flex-end;}
.cv-actionsRow{gap:8px; flex-wrap:wrap;}
.cv-btn--sm{height:34px; padding:0 10px; font-size:12px;}
.cv-pillStatus{display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; border:1px solid var(--border); font-size:11px; font-weight:900;}
.cv-pill--draft{background:#f1f5f9; color:#334155;}
.cv-pill--pending{background:#fff7ed; border-color:#fed7aa; color:#c2410c;}
.cv-pill--published{background:#ecfdf5; border-color:#a7f3d0; color:#047857;}
.cv-pill--rejected{background:#fff1f2; border-color:#fecdd3; color:#be123c;}
.cv-warn{margin-top:4px; font-size:12px; color:#b45309;}
.cv-thumbImg{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  border-radius: var(--r-xl);
}

.cv-galleryMain img{
  width:100%;
  height:360px;
  display:block;
  object-fit:cover;
  border-radius: var(--r-2xl);
}

.cv-galleryThumbs img{
  width:100%;
  height:80px;
  display:block;
  object-fit:cover;
  border-radius: var(--r-xl);
}
.cv-filtersRow{display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top:10px;}
.cv-check{display:flex; gap:8px; align-items:center; font-size:12px; font-weight:800; color:#475569;}
.cv-pager{display:flex; gap:8px; flex-wrap:wrap; margin-top:18px;}
.cv-pageLink{display:inline-flex; align-items:center; justify-content:center; height:34px; padding:0 10px; border-radius:12px; border:1px solid var(--border); background:#fff; box-shadow:var(--shadow-sm); font-weight:900; font-size:12px;}
.cv-pageLink--active{background:var(--blue); border-color:var(--blue); color:#fff; text-decoration:none;}
.cv-uploadLeft{display:flex; gap:10px; align-items:center; min-width:0;}
.cv-uploadThumb{width:56px; height:56px; border-radius:12px; object-fit:cover; border:1px solid var(--border); box-shadow:var(--shadow-sm); background:#fff;}
.cv-uploadItem{display:flex; justify-content:space-between; gap:10px; align-items:center; padding:10px 12px; border:1px solid var(--border); border-radius: var(--r-xl); background:#fff; box-shadow:var(--shadow-sm);}
@media (max-width:740px){ .cv-uploadItem{flex-direction:column; align-items:stretch;} .cv-uploadLeft{justify-content:flex-start;} }
.cv-licenseBlock{margin-top:12px;}
.cv-licenseGrid{display:grid; gap:10px; margin-top:10px;}
.cv-licenseRow{display:grid; grid-template-columns: 140px 1fr; gap:10px; align-items:center;}
.cv-licenseName{font-size:12px; font-weight:900; color:#334155;}
@media (max-width:740px){ .cv-licenseRow{grid-template-columns:1fr; } }
.cv-profileRow{display:grid; grid-template-columns: 160px 1fr; gap:16px; align-items:start;}
.cv-avatarBox{width:160px;}
.cv-avatarImg{width:160px; height:160px; border-radius:24px; object-fit:cover; border:1px solid var(--border); box-shadow:var(--shadow-sm); background:#fff;}
.cv-avatarPh{width:160px; height:160px; border-radius:24px; border:1px solid var(--border); background:linear-gradient(180deg,#f1f5f9,#e2e8f0); box-shadow:var(--shadow-sm);}
@media (max-width:740px){ .cv-profileRow{grid-template-columns:1fr;} .cv-avatarBox{width:auto;} .cv-avatarImg,.cv-avatarPh{width:120px;height:120px;border-radius:18px;} }

.uiChip--active{
  background: var(--brand-soft);
  border-color: var(--brand);
  color: var(--brand);
  font-weight: 900;
}

/* make selects look like inputs (remove native arrow and add chevron) */
select.input{
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364758b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 38px;
}

/* === Unified Controls: Canvas A (btn/input) === */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  height:40px;
  padding:0 14px;
  border-radius:14px;
  border:1px solid var(--line);
  background: var(--surface);
  color: var(--ink);
  font-weight:900;
  box-shadow: 0 1px 2px rgba(15,23,42,.08);
  cursor:pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease, filter .15s ease;
  text-decoration:none;
  -webkit-tap-highlight-color: transparent;
}
a.btn:hover{ text-decoration:none; }
.btn:hover{ transform: translateY(-1px); box-shadow: 0 10px 20px rgba(15,23,42,.10); }
.btn:active{ transform: translateY(0); box-shadow: 0 1px 2px rgba(15,23,42,.08); }
.btn:focus{ outline:none; box-shadow: 0 0 0 4px rgba(11,91,211,.22), 0 1px 2px rgba(15,23,42,.08); }

.btn--primary{
  background: var(--brand);
  border-color: var(--brand);
  color:#fff;
}
.btn--primary:hover{ filter: brightness(.95); }

.btn--soft{
  background:#fff;
  border-color: var(--line);
  color: var(--ink);
}
.btn--soft:hover{ background: rgba(241,245,249,.9); }

.btn[disabled], .btn:disabled{
  opacity:.6;
  cursor:not-allowed;
  transform:none !important;
  box-shadow: 0 1px 2px rgba(15,23,42,.06);
}

.input{
  width:100%;
  height:40px;
  border-radius:14px;
  border:1px solid var(--line);
  background:#fff;
  padding:0 12px;
  box-shadow: 0 1px 2px rgba(15,23,42,.08);
  color: var(--ink);
  font-weight:600;
}
.input:focus{
  outline:none;
  border-color: var(--brand);
  box-shadow: 0 0 0 4px rgba(11,91,211,.18), 0 1px 2px rgba(15,23,42,.08);
}

textarea.input{
  height:auto;
  min-height:96px;
  padding:10px 12px;
  resize:vertical;
}

select.input{
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  background-image:url(\"data:image/svg+xml;utf8,<svg xmlns=http://www.w3.org/2000/svg width=14 height=14 viewBox=0

/* === Unified Controls: Canvas A (btn/input) === */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  height:40px;
  padding:0 14px;
  border-radius:14px;
  border:1px solid var(--line);
  background: var(--surface);
  color: var(--ink);
  font-weight:900;
  box-shadow: 0 1px 2px rgba(15,23,42,.08);
  cursor:pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease, filter .15s ease;
  text-decoration:none;
  -webkit-tap-highlight-color: transparent;
}
a.btn:hover{ text-decoration:none; }
.btn:hover{ transform: translateY(-1px); box-shadow: 0 10px 20px rgba(15,23,42,.10); }
.btn:active{ transform: translateY(0); box-shadow: 0 1px 2px rgba(15,23,42,.08); }
.btn:focus{ outline:none; box-shadow: 0 0 0 4px rgba(11,91,211,.22), 0 1px 2px rgba(15,23,42,.08); }

.btn--primary{
  background: var(--brand);
  border-color: var(--brand);
  color:#fff;
}
.btn--primary:hover{ filter: brightness(.95); }

.btn--soft{
  background:#fff;
  border-color: var(--line);
  color: var(--ink);
}
.btn--soft:hover{ background: rgba(241,245,249,.9); }

.btn[disabled], .btn:disabled{
  opacity:.6;
  cursor:not-allowed;
  transform:none !important;
  box-shadow: 0 1px 2px rgba(15,23,42,.06);
}

.input{
  width:100%;
  height:40px;
  border-radius:14px;
  border:1px solid var(--line);
  background:#fff;
  padding:0 12px;
  box-shadow: 0 1px 2px rgba(15,23,42,.08);
  color: var(--ink);
  font-weight:600;
}
.input:focus{
  outline:none;
  border-color: var(--brand);
  box-shadow: 0 0 0 4px rgba(11,91,211,.18), 0 1px 2px rgba(15,23,42,.08);
}

textarea.input{
  height:auto;
  min-height:96px;
  padding:10px 12px;
  resize:vertical;
}

select.input{
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  background-image:url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364758b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>\");
  background-repeat:no-repeat;
  background-position:right 12px center;
  padding-right:38px;
}
/* PRINTEO_BUTTON_SYSTEM_LOCK_V1 — Canvas A */
body .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  height:40px;
  padding:0 14px;
  border-radius:12px; /* как rounded-xl */
  border:1px solid var(--line, #dbe3ea);
  background:#fff;
  color:var(--ink, #0f172a);
  font-weight:800;
  box-shadow:0 1px 2px rgba(15,23,42,.06);
  cursor:pointer;
  transition:background .15s ease, border-color .15s ease, box-shadow .15s ease;
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
}
body a.btn:hover{ text-decoration:none; }
body .btn:hover{
  background:#f8fafc;
  box-shadow:0 10px 20px rgba(15,23,42,.10);
}
body .btn:active{
  box-shadow:0 1px 2px rgba(15,23,42,.06);
}
body .btn:focus{
  outline:none;
  box-shadow:0 0 0 4px rgba(11,91,211,.18), 0 1px 2px rgba(15,23,42,.06);
}

body .btn--primary{
  background:var(--brand, #0b5bd3);
  border-color:var(--brand, #0b5bd3);
  color:#fff;
}
body .btn--primary:hover{
  background:var(--brand, #0b5bd3);
  filter:brightness(.95);
}

body .btn--soft{
  background:#fff;
  border-color:var(--line, #dbe3ea);
  color:var(--ink, #0f172a);
}
body .btn--soft:hover{
  background:#f8fafc;
}

body .btn--sm{
  height:34px;
  padding:0 10px;
  border-radius:12px;
  font-size:12px;
}

body .btn[disabled], body .btn:disabled{
  opacity:.6;
  cursor:not-allowed;
  box-shadow:0 1px 2px rgba(15,23,42,.06);
}

body .input{
  width:100%;
  height:40px;
  border-radius:12px;
  border:1px solid var(--line, #dbe3ea);
  background:#fff;
  padding:0 12px;
  box-shadow:0 1px 2px rgba(15,23,42,.06);
  color:var(--ink, #0f172a);
  font-weight:600;
}
body .input:focus{
  outline:none;
  border-color:var(--brand, #0b5bd3);
  box-shadow:0 0 0 4px rgba(11,91,211,.14), 0 1px 2px rgba(15,23,42,.06);
}

body textarea.input{
  height:auto;
  min-height:96px;
  padding:10px 12px;
  resize:vertical;
}
body select.input{
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364758b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat;
  background-position:right 12px center;
  padding-right:38px;
}


/* PRINTEO_BUTTON_SYSTEM_LOCK_V2 — CANVAS A (single source of truth) */
body .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  height:44px;
  padding:0 22px;
  border-radius:999px;
  border:1px solid var(--line, #dbe3ea);
  background:#fff;
  color:var(--ink, #0f172a);
  font-weight:900;
  box-shadow:0 1px 2px rgba(15,23,42,.06);
  cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease, background .15s ease, border-color .15s ease;
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
}
body a.btn:hover{ text-decoration:none; }
body .btn:hover{ transform:translateY(-1px); box-shadow:0 10px 20px rgba(15,23,42,.10); }
body .btn:active{ transform:translateY(0); box-shadow:0 1px 2px rgba(15,23,42,.06); }
body .btn:focus{ outline:none; box-shadow:0 0 0 4px rgba(11,91,211,.18), 0 1px 2px rgba(15,23,42,.06); }

body .btn.btn--primary{
  background:var(--brand, #0b5bd3) !important;
  border-color:var(--brand, #0b5bd3) !important;
  color:#fff !important;
}
body .btn.btn--primary:hover{ filter:brightness(.95); }

body .btn.btn--soft{
  background:#fff !important;
  border-color:var(--line, #dbe3ea) !important;
  color:var(--ink, #0f172a) !important;
}
body .btn.btn--soft:hover{ background:#f8fafc; }

body .btn--sm{
  height:38px;
  padding:0 14px;
  border-radius:999px;
  font-size:12px;
}

body .input{
  width:100%;
  height:44px;
  border-radius:999px;
  border:1px solid var(--line, #dbe3ea);
  background:#fff;
  padding:0 14px;
  box-shadow:0 1px 2px rgba(15,23,42,.06);
  color:var(--ink, #0f172a);
  font-weight:600;
}
body .input:focus{
  outline:none;
  border-color:var(--brand, #0b5bd3);
  box-shadow:0 0 0 4px rgba(11,91,211,.14), 0 1px 2px rgba(15,23,42,.06);
}
body textarea.input{
  border-radius:18px;
  height:auto;
  min-height:110px;
  padding:10px 12px;
  resize:vertical;
}
body select.input{
  border-radius:999px;
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364758b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:42px;
}

/* LOCK_V2 */
