:root{
  --bg:#f4f1eb;
  --bg-soft:#ece7df;
  --panel:#ffffff;
  --panel-2:#f8f5f0;
  --muted:#4f5a63;
  --text:#1f2a33;
  --text-soft:#3f4d59;
  --accent:#4f6475;
  --accent-strong:#263746;
  --accent-soft:#d7e0e6;
  --card:#ffffff;
  --line:#c5bbb0;
  --line-strong:#aa9f92;
  --ring:rgba(85,107,123,.18);
  --success:#6c8a7a;
  --shadow:0 12px 34px rgba(30,39,46,.06);
  --shadow-soft:0 8px 20px rgba(30,39,46,.04);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:
    radial-gradient(circle at top, rgba(255,255,255,.9), rgba(255,255,255,0) 30%),
    linear-gradient(180deg, #f6f3ee 0%, #f1ede6 100%);
  color:var(--text);
}
.builder-page{max-width:1320px;margin:34px auto 58px;padding:0 20px;color:var(--text)}
.builder-intro,
.form,
.card{
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(201,192,180,.85);
  box-shadow:var(--shadow);
}
.builder-intro{
  border-radius:22px;
  padding:18px 24px;
  margin-bottom:24px;
  position:relative;
  overflow:hidden;
}
.builder-intro::before{display:none}
.builder-top{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.container{max-width:none;margin:0;padding:0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
.card{
  border-radius:24px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  position:relative;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.card:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(30,39,46,.09);border-color:rgba(85,107,123,.28)}
.ribbon{position:absolute;top:16px;left:-44px;transform:rotate(-45deg);padding:7px 54px;font-size:10px;font-weight:800;color:#fff;text-transform:uppercase;letter-spacing:.08em;box-shadow:0 8px 18px rgba(32,38,43,.16);pointer-events:none;z-index:10}
.ribbon.confort{background:#708392}
.ribbon.harmonie{background:#b88b67}
.ribbon.stack{top:42px}
.thumb-wrap{
  position:relative;
  background:transparent;
  border-bottom:1px solid rgba(201,192,180,.45);
  display:flex;
  align-items:center;
  justify-content:center;
  height:252px;
  padding:10px 8px 0;
  overflow:hidden;
}
.thumb{max-height:238px;max-width:96%;width:auto;object-fit:contain;cursor:zoom-in;position:relative;z-index:1;filter:drop-shadow(0 10px 18px rgba(44,53,60,.10))}
.img-empty{height:180px;width:100%;display:flex;align-items:center;justify-content:center;color:#8b9188;font-size:13px}
.overlay{position:fixed;inset:0;background:rgba(24,29,34,.74);display:none;align-items:center;justify-content:center;z-index:9999;backdrop-filter:blur(4px)}
.overlay.open{display:flex}
.overlay img{max-width:92vw;max-height:90vh;object-fit:contain;border-radius:18px;box-shadow:0 18px 46px rgba(0,0,0,.28)}
.overlay .close{position:absolute;top:18px;right:18px;background:rgba(255,255,255,.9);color:var(--accent-strong);border:1px solid rgba(255,255,255,.85);border-radius:12px;padding:9px 12px;cursor:pointer}
.overlay .nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;display:grid;place-items:center;border-radius:999px;background:rgba(255,255,255,.9);color:var(--accent-strong);border:1px solid rgba(255,255,255,.85);cursor:pointer;box-shadow:0 10px 22px rgba(0,0,0,.12)}
.overlay .nav:hover{background:#fff}.overlay .nav:active{transform:translateY(-50%) scale(.98)}.overlay .nav.prev{left:18px}.overlay .nav.next{right:18px}.overlay .nav:disabled{opacity:.35;cursor:not-allowed}.overlay .nav svg{width:22px;height:22px}
.overlay-caption{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);background:rgba(32,38,43,.72);color:#fff;padding:9px 15px;border-radius:999px;font-size:13px;font-weight:600;backdrop-filter:blur(6px);pointer-events:none;max-width:86vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.body{padding:18px 16px 16px;display:grid;gap:10px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spacer{flex:1}
label{font-size:12px;color:var(--accent-strong);font-weight:800;letter-spacing:.02em}
select,input,button,textarea{
  background:#fcfbf8;
  color:var(--text);
  border:1.5px solid var(--line);
  border-radius:14px;
  padding:11px 13px;
  outline:none;
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
select:hover,input:hover,button:hover,textarea:hover{border-color:#8f8478}
select:focus,input:focus,button:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--ring);background:#fff}
textarea{width:100%;min-height:120px;resize:vertical}
.form{border-radius:26px;padding:22px;display:grid;gap:16px;margin-bottom:18px}
.form .row>div{flex:1;min-width:220px}
.tag{display:inline-block;padding:4px 9px;border:1px solid rgba(85,107,123,.18);border-radius:999px;font-size:11px;color:var(--accent-strong);background:rgba(85,107,123,.05);font-weight:700}
.muted{color:var(--muted);font-size:12px}.title{font-weight:800;font-size:18px;line-height:1.3;color:var(--accent-strong)}.subtitle{color:var(--text-soft);font-size:12px;line-height:1.45}.note{color:#b44d43;font-size:12px;line-height:1.4}.qty{width:110px}
.controls-top{display:flex;gap:10px;align-items:center;margin:4px 0 0;flex-wrap:wrap}
.hint,.empty,.error,.message-verification,.price-box{
  border-radius:16px;
  border:1px dashed rgba(201,192,180,.9);
  background:rgba(250,248,244,.92);
}
.hint,.empty,.error{margin:12px 0;padding:14px 16px;color:var(--text-soft);font-weight:500}
.error{color:#9b5148;border-color:rgba(180,77,67,.35);background:rgba(255,245,243,.96)}
.actions{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:18px;flex-wrap:wrap}
.message-verification{margin:0;padding:12px 14px;color:var(--text-soft);font-size:13px;line-height:1.45;text-align:left;max-width:760px}
.actions.is-disabled .message-verification{border-color:rgba(180,77,67,.35);background:rgba(255,245,243,.96);color:#9b5148}
.btn-primary{
  background:linear-gradient(180deg, #5d7382 0%, #4d6371 100%);
  border-color:#4d6371;
  color:#fff;
  font-weight:800;
  cursor:pointer;
  transition:transform .06s ease, box-shadow .16s ease, filter .16s ease;
  box-shadow:0 10px 20px rgba(77,99,113,.20);
  position:relative;
}
.btn-primary:hover{filter:brightness(1.02);box-shadow:0 12px 24px rgba(77,99,113,.24)}
.btn-primary:active{transform:translateY(1px)}
.btn-primary[disabled]{opacity:.62;cursor:not-allowed;box-shadow:none}
.btn-primary.loading{pointer-events:none}
.btn-primary.loading::after{content:"";position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;animation:spin .8s linear infinite}
@keyframes spin{to{transform:translateY(-50%) rotate(360deg)}}
.doclink{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid rgba(85,107,123,.18);border-radius:999px;font-size:12px;text-decoration:none;color:var(--accent-strong);background:rgba(85,107,123,.05);font-weight:700}
.doclink:hover{border-color:var(--accent);background:rgba(85,107,123,.09)}.doclink svg{width:14px;height:14px;flex:0 0 14px}
#gamme.callout{border-color:var(--accent)!important;box-shadow:0 0 0 4px var(--ring),0 0 0 0 rgba(85,107,123,0);animation:calloutPulse 1.6s ease-in-out infinite;border-width:2px}
@keyframes calloutPulse{0%{box-shadow:0 0 0 4px var(--ring),0 0 0 0 rgba(85,107,123,.18)}50%{box-shadow:0 0 0 4px var(--ring),0 0 0 8px rgba(85,107,123,.08)}100%{box-shadow:0 0 0 4px var(--ring),0 0 0 0 rgba(85,107,123,.18)}}
.client-login-bar{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap;margin:0}
.builder-top{
  position:relative;
  display:grid;
  grid-template-columns:minmax(180px,1fr) auto minmax(180px,1fr);
  align-items:center;
  gap:22px;
  width:100%;
  padding:20px 26px;
  border-radius:24px;
  background:linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(248,245,240,.96) 100%);
  border:1px solid rgba(201,192,180,.95);
  box-shadow:0 14px 32px rgba(30,39,46,.06);
}
.builder-top::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:24px;
