.offer-service-form { text-align:left; padding:.5rem; }
.offer-service-intro { display:flex; align-items:center; gap:.75rem; margin-bottom:1rem; }
.offer-service-intro p { margin:0; color:#657783; }
.offer-service-grid { display:grid; grid-template-columns:minmax(240px,1fr) minmax(0,1.5fr); gap:1rem; align-items:stretch; }
.offer-service-card { padding:1.25rem; border:1px solid #dde7ee; border-radius:.65rem; background:#f8fafc; }
.offer-service-card h3 { display:flex; align-items:center; gap:.65rem; font-size:1rem; color:#1676a6; margin:0 0 1rem; }
.offer-service-card h3 span { color:#163b3c; }
.offer-service-followup { display:flex; flex-direction:column; gap:1rem; }
.offer-service-form [hidden] { display:none !important; }
.offer-service-form .form-control,.offer-service-form .form-select { background:#fff !important; }
.offer-service-form #preis { background:#e8f3fa !important; font-weight:600; }
@media(max-width:767px) { .offer-service-grid { grid-template-columns:1fr; } }

.offer-service-primary { display:flex; flex-direction:column; }
.offer-service-primary textarea { flex:1; min-height:100px; }
.offer-service-footer { display:flex; align-items:center; justify-content:space-between; gap:1rem; width:100%; }
.offer-service-modal > .modal-footer { justify-content:stretch; padding:1rem 1.25rem; }
.offer-service-footer [hidden] { display:none !important; }
@media(max-width:575px) { .offer-service-footer { align-items:stretch; flex-direction:column; } }

.offer-service-primary { gap:1rem; }
.offer-service-primary > #divServiceDescription { flex:1; display:flex; flex-direction:column; }
.offer-service-primary > #divServiceDescription textarea { flex:1; }
/* Equal-height offer blocks, including dynamically revealed steps. */
.offer-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:1fr; }
.offer-service-primary,.offer-service-followup { display:contents; }
.offer-service-grid > .offer-service-primary > .offer-service-card:first-child { order:1; }
.offer-service-grid #divGewerkDetail { order:2; }
.offer-service-grid #divServiceDescription { order:3; }
.offer-service-grid #tabIndex { order:4; }
.offer-service-card { min-height:150px; height:100%; box-sizing:border-box; }
.offer-service-primary > #divServiceDescription textarea { min-height:75px; }
@media(max-width:767px) { .offer-service-grid { grid-template-columns:1fr; grid-auto-rows:auto; } }

/* Shared appearance for all offer creation and editing forms. */
.offer-styled-form { text-align:left; padding:.5rem; }
.offer-styled-form .offer-form-block { padding:1.25rem; border:1px solid #dde7ee; border-radius:.65rem; background:#f8fafc; margin-bottom:1rem; }
.offer-styled-form .offer-block-heading { font-size:1rem; color:#1676a6; margin:0 0 1rem; font-weight:500; }
.offer-styled-form .form-control,.offer-styled-form .form-select { background:#fff !important; }
.offer-styled-form .form-group { margin-bottom:.9rem; }
.offer-styled-form .offer-form-actions { display:flex; justify-content:flex-end; gap:.75rem; padding-top:1rem; border-top:1px solid #dde7ee; }
.offer-styled-form .offer-form-actions .btn { width:auto; min-width:130px; }
.offer-styled-form .form-inline { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:1rem; align-items:end; }
.offer-styled-form input[name="bezeichnung"] { font-size:1rem !important; font-weight:400 !important; text-align:left !important; }
.offer-form > .card { background:#f8fafc; border-color:#dde7ee; }
.offer-form .card-header { background:transparent; border-bottom:0; color:#1676a6; padding-bottom:0; }
.offer-form .card-header h2 { font-size:1rem; font-weight:500; }

.offer-actions-modal > .modal-footer { padding:1rem 1.25rem; }
.offer-actions-modal > .modal-footer > .offer-form-actions { width:100%; padding:0; margin:0; border:0; justify-content:flex-end; }
.offer-actions-modal > .modal-footer > [hidden] { display:none !important; }

#offerGroupModal .modal-header { background:#3399cc; color:#fff; }
#offerGroupModal .modal-header .btn-close { filter:invert(1); }

.offer-drag-handle { display:inline-block; padding:.1rem .35rem; cursor:grab; color:#1676a6; font-size:1.15rem; user-select:none; }
.offer-drag-handle:active { cursor:grabbing; }
.offer-row-dragging { opacity:.5; outline:2px dashed #3399cc; }
[data-offer-order][data-order-busy] { pointer-events:none; opacity:.65; }

.offer-top-header { position:relative; padding-right:4.5rem; }
.offer-bin-button { position:absolute; right:1rem; top:50%; transform:translateY(-50%); color:#1676a6; padding:.55rem; border:1px solid #dde7ee; background:#fff; }
.offer-bin-button:hover { background:#e8f3fa; color:#125a80; }
.offer-bin-button [hidden] { display:none !important; }
.offer-bin-flight { position:fixed; z-index:20000; color:#1676a6; font-size:2rem; pointer-events:none; }

/* Center the bin within the two title lines, above the divider. */
.offer-top-header { padding-right:0; }
.offer-header-title-area { position:relative; padding:.5rem 4.5rem .5rem 1rem; }
.offer-header-title-area h4,.offer-header-title-area h5 { margin-bottom:.4rem; }
.offer-header-divider { margin:.25rem 1rem 1rem; }

/* Group actions match the icons used by their positions. */
.offer-group-icon { display:inline-flex; align-items:center; justify-content:center; width:1.75rem; height:1.75rem; padding:0; border:0; background:transparent; color:inherit; cursor:pointer; }
.offer-group-icon:hover { color:#1676a6; }
.offer-group-icon:focus-visible { outline:2px solid #3399cc; outline-offset:2px; }

.offer-group-icon,.offer-group-icon:hover,.offer-group-icon:focus,.offer-group-icon:active { border:0 !important; background:transparent !important; box-shadow:none !important; }

.offer-bin-button,.offer-bin-button:hover,.offer-bin-button:focus,.offer-bin-button:active { border:0 !important; background:transparent !important; box-shadow:none !important; }
.offer-bin-button.is-filled,.offer-bin-button.is-filled:hover,.offer-bin-button.is-filled:focus,.offer-bin-button.is-filled:active { color:#dc3545 !important; }

.offer-bin-flight { display:flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:14px; background:#fff; color:#dc3545; box-shadow:0 8px 28px #dc35454d,0 0 0 3px #dc354533; }
.offer-bin-arrival { position:fixed; width:42px; height:42px; border:3px solid #dc3545; border-radius:50%; z-index:20000; pointer-events:none; }
