:root {
  color-scheme: light dark;
  --bg: #f4f6f8;
  --surface: #ffffff;
  --surface-2: #f7f8fa;
  --text: #17202a;
  --muted: #64748b;
  --border: #d9e0e7;
  --accent: #146ef5;
  --accent-strong: #0b5dd7;
  --danger: #b42318;
  --success: #067647;
  --shadow: 0 14px 40px rgba(15, 23, 42, 0.08);
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0d1115;
    --surface: #151a1f;
    --surface-2: #1b2127;
    --text: #f0f4f8;
    --muted: #9caaba;
    --border: #2d3740;
    --accent: #4d8dff;
    --accent-strong: #6aa1ff;
    --danger: #ff8c83;
    --success: #58d49b;
    --shadow: 0 18px 46px rgba(0,0,0,.28);
  }
}
* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); }
body { margin: 0; min-height: 100%; background: var(--bg); color: var(--text); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.site-header { min-height: 74px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding: 12px max(20px, calc((100vw - 1160px)/2)); border-bottom:1px solid var(--border); background: color-mix(in srgb, var(--surface) 94%, transparent); }
.brand { display:flex; align-items:center; gap:12px; }
.brand-logo { width:32px; height:50px; object-fit:contain; flex:0 0 auto; }
.brand strong { display:block; font-size:1.05rem; }
.brand span { display:block; margin-top:2px; color:var(--muted); font-size:.78rem; }
.language-switch { display:flex; gap:7px; align-items:center; color:var(--muted); }
.language-switch button { border:0; background:none; color:var(--muted); padding:5px; font-weight:800; }
.language-switch button.active { color:var(--accent); }
.page-shell { width:min(1160px, calc(100% - 32px)); margin:0 auto; padding:42px 0 72px; }
.hero { max-width:720px; margin-bottom:28px; }
.eyebrow { margin:0 0 8px; color:var(--accent); font-weight:800; font-size:.82rem; text-transform:uppercase; letter-spacing:.08em; }
.hero h1 { margin:0; font-size:clamp(2rem, 4vw, 3.2rem); letter-spacing:-.04em; }
.hero p:last-child { margin:10px 0 0; color:var(--muted); font-size:1.05rem; }
#rental-form { display:grid; gap:18px; }
.step-card { padding:24px; border:1px solid var(--border); border-radius:18px; background:var(--surface); box-shadow:var(--shadow); }
.step-heading { display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.step-number { width:34px; height:34px; display:grid; place-items:center; flex:0 0 auto; border-radius:10px; background:color-mix(in srgb, var(--accent) 14%, transparent); color:var(--accent); font-weight:900; }
.step-heading h2 { margin:0; font-size:1.25rem; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
label { display:grid; gap:7px; color:var(--muted); font-size:.82rem; font-weight:700; }
.full-width { grid-column:1 / -1; }
input, select, textarea { width:100%; border:1px solid var(--border); border-radius:11px; background:var(--surface-2); color:var(--text); outline:none; }
input, select { min-height:46px; padding:0 13px; }
textarea { padding:12px 13px; resize:vertical; }
input:focus, select:focus, textarea:focus { border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent); }
.honeypot { position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; }
.filters { display:grid; grid-template-columns:minmax(0,1fr) 230px; gap:10px; margin-bottom:12px; }
.catalog-list { display:grid; gap:8px; max-height:500px; overflow:auto; padding-right:3px; }
.catalog-row, .selected-row { display:grid; grid-template-columns:76px minmax(0,1fr) auto; gap:14px; align-items:center; min-height:88px; padding:9px 12px; border:1px solid var(--border); border-radius:13px; background:var(--surface-2); }
.catalog-icon { width:68px; height:68px; display:grid; place-items:center; border-radius:11px; overflow:hidden; background:color-mix(in srgb, var(--surface) 85%, transparent); border:1px solid var(--border); }
.catalog-icon img { width:100%; height:100%; padding:4px; object-fit:contain; }
.catalog-fallback { font-size:1.65rem; opacity:.65; }
.catalog-copy { min-width:0; }
.catalog-name { font-weight:850; font-size:.98rem; line-height:1.25; }
.catalog-meta { margin-top:4px; color:var(--muted); font-size:.78rem; }
.add-button, .small-button, .secondary-button, .primary-button { min-height:42px; border-radius:10px; border:1px solid var(--border); padding:0 14px; font-weight:800; }
.add-button, .small-button, .secondary-button { background:var(--surface); color:var(--text); }
.add-button:hover, .small-button:hover, .secondary-button:hover { border-color:var(--accent); color:var(--accent); }
.primary-button { border-color:var(--accent); background:var(--accent); color:white; }
.primary-button:hover { background:var(--accent-strong); }
.primary-button:disabled { opacity:.55; cursor:default; }
.selected-block { margin-top:18px; }
.selected-block h3, .stands-section h3 { margin:0 0 10px; font-size:1rem; }
.selected-row { grid-template-columns:58px minmax(0,1fr) auto; min-height:72px; margin-top:7px; }
.selected-row .catalog-icon { width:52px; height:52px; }
.quantity-control { display:flex; align-items:center; gap:6px; }
.quantity-control button { width:34px; height:34px; border:1px solid var(--border); background:var(--surface); color:var(--text); border-radius:8px; font-weight:900; }
.quantity-control strong { min-width:28px; text-align:center; }
.remove-button { border:0; background:none; color:var(--danger); font-weight:800; padding:8px; }
.section-divider { height:1px; background:var(--border); margin:22px 0; }
.short-help { margin:-4px 0 12px; color:var(--muted); font-size:.83rem; }
.stand-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.stand-option { display:grid; grid-template-columns:82px minmax(0,1fr) auto; gap:13px; align-items:center; padding:12px; border:1px solid var(--border); border-radius:13px; background:var(--surface-2); }
.stand-option .catalog-icon { width:76px; height:76px; }
.selected-stands { display:grid; gap:10px; margin-top:12px; }
.stand-instance { border:1px solid var(--border); border-radius:14px; background:var(--surface-2); padding:14px; }
.stand-instance-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.stand-instance-title { display:flex; align-items:center; gap:11px; }
.stand-instance-title .catalog-icon { width:60px; height:60px; }
.stand-instance-title strong { display:block; }
.stand-instance-title span { display:block; margin-top:3px; color:var(--muted); font-size:.78rem; }
.sign-chips { display:flex; gap:7px; flex-wrap:wrap; margin:12px 0; }
.sign-chip { display:flex; align-items:center; gap:7px; padding:6px 8px; border:1px solid var(--border); border-radius:9px; background:var(--surface); }
.sign-chip img { width:38px; height:38px; object-fit:contain; }
.sign-chip span { font-size:.78rem; font-weight:800; }
.sign-chip button { border:0; background:none; color:var(--danger); font-weight:900; }
.summary-card { position:relative; }
.summary-lines { display:grid; gap:8px; }
.summary-line { display:flex; justify-content:space-between; gap:18px; padding:8px 0; border-bottom:1px solid var(--border); }
.summary-line span:last-child { white-space:nowrap; font-weight:800; }
.price-box { margin-top:16px; border:1px solid var(--border); border-radius:13px; overflow:hidden; }
.price-box > div { display:flex; justify-content:space-between; gap:18px; padding:11px 13px; background:var(--surface-2); border-bottom:1px solid var(--border); }
.price-box > div:last-child { border-bottom:0; }
.price-total { background:color-mix(in srgb, var(--accent) 12%, var(--surface)) !important; font-size:1.08rem; }
.price-note { margin:10px 0 0; color:var(--muted); font-size:.82rem; }
.summary-card .primary-button { margin-top:18px; min-width:170px; }
.empty-state { padding:18px; color:var(--muted); text-align:center; border:1px dashed var(--border); border-radius:12px; }
.message { margin-bottom:18px; padding:13px 15px; border-radius:11px; border:1px solid var(--danger); color:var(--danger); background:color-mix(in srgb, var(--danger) 9%, transparent); }
.success-panel { padding:38px 24px; text-align:center; border:1px solid var(--border); border-radius:18px; background:var(--surface); box-shadow:var(--shadow); }
.success-icon { width:64px; height:64px; display:grid; place-items:center; margin:0 auto 16px; border-radius:50%; background:color-mix(in srgb, var(--success) 15%, transparent); color:var(--success); font-size:2rem; font-weight:900; }
.success-panel h2 { margin:0; }
.success-panel p { color:var(--muted); }
.request-number { display:inline-block; margin:10px 0 18px; padding:10px 16px; border-radius:10px; background:var(--surface-2); border:1px solid var(--border); font-weight:900; font-size:1.1rem; }
.modal-backdrop { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:18px; background:rgba(0,0,0,.68); }
.modal-card { width:min(900px, 100%); max-height:min(820px, calc(100vh - 36px)); overflow:auto; padding:20px; border:1px solid var(--border); border-radius:18px; background:var(--surface); box-shadow:0 24px 70px rgba(0,0,0,.38); }
.modal-header { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; margin-bottom:14px; }
.modal-header h2 { margin:0; }
.modal-header p { margin:4px 0 0; color:var(--muted); }
.icon-button { width:38px; height:38px; border:1px solid var(--border); border-radius:10px; background:var(--surface-2); color:var(--text); font-size:1.45rem; }
.sign-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.sign-card { min-height:168px; display:grid; align-content:start; justify-items:center; padding:10px; border:1px solid var(--border); border-radius:12px; background:var(--surface-2); color:var(--text); text-align:center; }
.sign-card:hover { border-color:var(--accent); }
.sign-card img { width:90px; height:90px; object-fit:contain; margin-bottom:7px; }
.sign-card strong { font-size:.92rem; }
.sign-card span { display:block; margin-top:3px; color:var(--muted); font-size:.72rem; line-height:1.2; }
.hidden { display:none !important; }
@media (max-width: 800px) {
  .page-shell { width:min(100% - 20px, 1160px); padding-top:24px; }
  .form-grid, .filters, .stand-options { grid-template-columns:1fr; }
  .sign-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .catalog-row { grid-template-columns:68px minmax(0,1fr); }
  .catalog-row .add-button { grid-column:1 / -1; width:100%; }
  .stand-option { grid-template-columns:72px minmax(0,1fr); }
  .stand-option .add-button { grid-column:1 / -1; width:100%; }
}
@media (max-width: 480px) {
  .site-header { padding-inline:12px; }
  .brand strong { font-size:.92rem; }
  .step-card { padding:16px; border-radius:14px; }
  .sign-grid { grid-template-columns:1fr 1fr; }
  .sign-card img { width:78px; height:78px; }
  .catalog-row { padding:8px; }
  .catalog-icon { width:60px; height:60px; }
}


/* V1.2.1 public rental polish */
.field-error{margin-top:-2px;color:var(--danger);font-size:.74rem;font-weight:750;line-height:1.25}
.field-invalid{border-color:var(--danger)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 14%,transparent)!important}
.section-invalid{border-color:var(--danger)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 12%,transparent)}

.public-stand-preview{position:relative;width:190px;height:330px;margin:14px auto 10px;display:block}
.public-stand-art{position:absolute;z-index:1;left:50%;bottom:0;width:100%;height:100%;transform:translateX(-50%);transform-origin:center bottom;object-fit:contain;object-position:center bottom;pointer-events:none;user-select:none;-webkit-user-drag:none}
.public-stand-preview.stand-yellow_steel .public-stand-art{transform:translateX(-50%) scale(.91)}
.public-sign-stack{position:absolute;z-index:3;top:18px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;width:146px}
.public-sign-stack>div{width:112px;height:72px;display:grid;place-items:center}
.public-sign-stack img{max-width:112px;max-height:72px;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none}
.public-stand-preview.stand-yellow_steel .public-sign-stack{top:22px;width:154px}
.public-stand-preview.stand-yellow_steel .public-sign-stack>div{width:136px;height:88px}
.public-stand-preview.stand-yellow_steel .public-sign-stack img{max-width:136px;max-height:88px}
.public-stand-post{position:absolute;left:50%;transform:translateX(-50%);bottom:25px;width:10px;height:282px;border-radius:3px;background:linear-gradient(90deg,#7c7f82,#d7d9db 45%,#8e9194);z-index:1}
.public-stand-preview.stand-yellow_steel .public-stand-post{width:13px;background:linear-gradient(90deg,#c9a900,#fff36a 45%,#d1b000)}
.public-stand-base{position:absolute;z-index:2;left:50%;transform:translateX(-50%);bottom:0;width:148px;height:30px;border-radius:7px 7px 3px 3px;background:linear-gradient(90deg,#2d2d2d,#050505 48%,#3a3a3a);clip-path:polygon(8% 0,92% 0,100% 100%,0 100%)}
.public-stand-preview.stand-yellow_steel .public-stand-base{height:25px;border-radius:5px;clip-path:none}

@media (max-width:720px){
  .public-stand-preview{width:170px;height:305px}
  .public-sign-stack>div{width:96px;height:62px}
  .public-sign-stack img{max-width:96px;max-height:62px}
  .public-stand-preview.stand-yellow_steel .public-sign-stack>div{width:120px;height:78px}
  .public-stand-preview.stand-yellow_steel .public-sign-stack img{max-width:120px;max-height:78px}
}


/* Rental public stand chooser: match the internal Rental Management stand
   thumbnails. Stand artwork is tall, so use a tall tile, bottom alignment and
   the same yellow-stand normalization instead of the generic square icon. */
.catalog-icon.is-stand{position:relative}
.catalog-icon.is-stand img{display:block;padding:0;object-fit:contain;object-position:center bottom;transform-origin:center bottom}
.catalog-icon.is-stand.stand-yellow_steel img{width:78%;height:78%;margin:auto;object-position:center bottom}
.stand-option .catalog-icon.is-stand{width:60px;height:76px;justify-self:center;border-radius:10px;background:rgba(255,255,255,.018)}
.stand-option .catalog-icon.is-stand.stand-aluminium_profile img{width:100%;height:100%}
.stand-option .catalog-icon.is-stand.stand-yellow_steel img{width:76%;height:76%}
.stand-instance-title .catalog-icon.is-stand img{object-position:center bottom}
@media (max-width:720px){
  .stand-option .catalog-icon.is-stand{width:56px;height:70px}
}

/* Rental final-flow polish: phone-friendly date/time pickers and stand copies. */
.date-time-picker{display:grid;grid-template-columns:minmax(0,1fr) minmax(132px,.55fr);gap:8px}
.date-time-picker input,.date-time-picker select{min-width:0}
.field-help{color:var(--muted);font-size:.74rem;font-weight:650;line-height:1.3}
.stand-instance-actions{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:10px}
.stand-copy-stepper{display:grid;grid-template-columns:auto 38px 58px 38px;align-items:center;gap:6px;color:var(--muted);font-size:.76rem;font-weight:800}
.stand-copy-stepper>span{margin-right:2px;white-space:nowrap}
.stand-copy-stepper button{width:38px;height:38px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text);font-size:1.05rem;font-weight:900}
.stand-copy-stepper button:disabled{opacity:.45;cursor:default}
.stand-copy-stepper input{min-height:38px;height:38px;padding:0 5px;text-align:center;font-weight:850}
@media (max-width:600px){
  .date-time-picker{grid-template-columns:1fr}
  .date-time-picker input,.date-time-picker select{min-height:48px;font-size:16px}
  .stand-instance-actions{align-items:stretch}
  .stand-instance-actions>.small-button{width:100%}
  .stand-copy-stepper{width:100%;grid-template-columns:minmax(0,1fr) 42px 62px 42px}
  .stand-copy-stepper button,.stand-copy-stepper input{height:44px;min-height:44px}
}


/* Public selected stand cards: mirror the compact internal New Request layout.
   Keep the complete stand/sign preview, but remove the oversized empty canvas. */
.selected-stands{
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
}
.stand-instance.compact{
  display:grid;
  grid-template-columns:86px minmax(0,1fr);
  grid-template-rows:auto auto;
  column-gap:9px;
  row-gap:7px;
  min-width:0;
  padding:10px;
}
.stand-instance.compact>.stand-instance-head{grid-column:1/-1}
.stand-instance.compact .stand-instance-title .catalog-icon{width:42px;height:42px}
.stand-instance.compact>.public-stand-preview{
  grid-column:1;
  grid-row:2;
  width:78px;
  height:118px;
  margin:0 auto;
  align-self:start;
}
.stand-instance.compact>.public-stand-preview .public-sign-stack{
  top:5px;
  width:60px;
  gap:1px;
}
.stand-instance.compact>.public-stand-preview .public-sign-stack>div{
  width:54px;
  height:34px;
}
.stand-instance.compact>.public-stand-preview .public-sign-stack img{
  max-width:54px;
  max-height:34px;
}
.stand-instance.compact>.public-stand-preview.stand-yellow_steel .public-sign-stack{
  top:7px;
  width:62px;
}
.stand-instance.compact>.public-stand-preview.stand-yellow_steel .public-sign-stack>div{
  width:58px;
  height:38px;
}
.stand-instance.compact>.public-stand-preview.stand-yellow_steel .public-sign-stack img{
  max-width:58px;
  max-height:38px;
}
.stand-instance-side{
  grid-column:2;
  grid-row:2;
  display:grid;
  gap:7px;
  min-width:0;
  align-self:start;
}
.sign-chips.compact{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin:0;
  min-width:0;
}
.sign-chip.compact{
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  gap:6px;
  align-items:center;
  min-height:36px;
  padding:3px 6px;
  border-radius:8px;
  min-width:0;
}
.sign-chip.compact img{width:28px;height:28px;margin:0;object-fit:contain}
.sign-chip.compact span{display:block;min-width:0;font-weight:400}
.sign-chip.compact strong{display:block;font-size:.78rem;line-height:1.1}
.sign-chip.compact small{display:block;margin-top:2px;color:var(--muted);font-size:.64rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sign-chip.compact button{font-size:1rem;line-height:1;padding:4px}
.stand-no-signs{display:block;padding:5px 2px}
.stand-instance.compact .stand-instance-actions{margin-top:0;gap:8px;align-items:center}
.stand-instance.compact .stand-instance-actions>.small-button{padding:7px 10px;font-size:.76rem}
.stand-instance.compact .stand-copy-stepper{grid-template-columns:auto 30px 44px 30px;gap:4px;margin-left:auto;font-size:.7rem}
.stand-instance.compact .stand-copy-stepper button,
.stand-instance.compact .stand-copy-stepper input{width:auto;height:30px;min-height:30px}
.stand-instance.compact .stand-copy-stepper button{width:30px;border-radius:7px}
.stand-instance.compact .stand-copy-stepper input{width:44px;padding:0 3px}

@media (max-width:900px){
  .selected-stands{grid-template-columns:1fr}
}
@media (max-width:520px){
  .stand-instance.compact{grid-template-columns:82px minmax(0,1fr);padding:9px}
  .stand-instance.compact>.public-stand-preview{width:74px;height:112px}
  .stand-instance.compact .stand-instance-actions{align-items:stretch}
  .stand-instance.compact .stand-instance-actions>.small-button{width:auto}
  .stand-instance.compact .stand-copy-stepper{width:auto;grid-template-columns:auto 34px 46px 34px}
  .stand-instance.compact .stand-copy-stepper button{width:34px;height:34px;min-height:34px}
  .stand-instance.compact .stand-copy-stepper input{width:46px;height:34px;min-height:34px}
}
