.arf-app{max-width:1100px;margin:20px auto;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.arf-card{background:#fff;border:1px solid #d9dee5;border-radius:0;padding:22px;margin:0 0 18px;box-shadow:0 2px 10px rgba(0,0,0,.04)}.arf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.arf-card label{display:flex;flex-direction:column;gap:6px;font-weight:600;margin-bottom:12px}.arf-card input,.arf-card select,.arf-card textarea{font:inherit;border:1px solid #b7c0ca;border-radius:0;padding:10px;background:#fff}.arf-card button{font:inherit;padding:10px 14px;border-radius:0;border:1px solid #9aa6b2;cursor:pointer}.arf-card .arf-primary{background:#111827;color:#fff;border-color:#111827}.arf-result{margin-top:14px;padding:10px 0}.arf-result--error{color:#b91c1c;font-weight:600}.arf-list>div{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:12px 0;border-bottom:1px solid #e6e9ed}.arf-list small{grid-column:1/-1}.arf-scan-actions{display:flex;gap:10px;margin-bottom:14px}.arf-ops video{width:100%;max-height:420px;background:#111;border-radius:0;margin-top:14px}.arf-ops canvas{width:100%;height:260px;border:1px solid #b7c0ca;border-radius:0;touch-action:none;background:#fff}.arf-ops textarea{width:100%;margin-top:12px}.arf-error{border-color:#b91c1c}@media(max-width:700px){.arf-grid{grid-template-columns:1fr}.arf-card{border-radius:0;padding:16px}}

.arf-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

.arf-product-line{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0 0 16px}.arf-product-line>div:first-child{display:flex;flex-direction:column;gap:3px}.arf-product-line small{opacity:.7}.arf-stock-badge{display:inline-flex;align-items:center;gap:7px;border-radius:0;padding:6px 10px;font-size:.9rem;font-weight:650;background:#f3f4f6;border:1px solid #d1d5db;white-space:nowrap}.arf-stock-badge.is-available:before,.arf-stock-badge.is-unavailable:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:currentColor}.arf-stock-badge.is-available{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.arf-stock-badge.is-unavailable{color:#991b1b;background:#fef2f2;border-color:#fecaca}.arf-availability-inline{margin:-2px 0 16px;padding:10px 12px;border-radius:0;background:#f8fafc;border:1px solid #e2e8f0;font-size:.95rem}.arf-availability-inline.is-available{border-color:#bbf7d0}.arf-availability-inline.is-unavailable{border-color:#fecaca}.arf-customer-fields{margin-top:6px}@media(max-width:700px){.arf-product-line{flex-direction:column}.arf-stock-badge{white-space:normal}}
.arf-ops-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.arf-ops-heading h2{margin-top:0}.arf-ops-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.arf-ops-booking{display:flex!important;flex-direction:column;align-items:flex-start;text-align:left;background:#fff!important;border:1px solid #d9dee5!important}.arf-ops-booking span,.arf-ops-booking small{margin-top:3px}.arf-status-pill{display:inline-flex;border:1px solid #d1d5db;border-radius:0;padding:5px 9px;font-size:.85rem;background:#f8fafc}.arf-ops-assets{display:grid;gap:8px;margin:14px 0}.arf-ops-item{display:flex;flex-direction:column;border:1px solid #e5e7eb;border-radius:0;padding:10px}.arf-ops-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.arf-process-card{border-top:1px solid #e5e7eb;margin-top:16px;padding-top:16px}.arf-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px}.arf-check-grid fieldset,.arf-return-asset{border:1px solid #d9dee5;border-radius:0;padding:12px;margin:0 0 12px}.arf-check-grid label{font-weight:500;flex-direction:row;align-items:center}.arf-media-box{display:grid;grid-template-columns:minmax(140px,220px) minmax(220px,1fr) minmax(180px,1fr) auto;gap:8px;align-items:center;border:1px dashed #cbd5e1;border-radius:0;padding:12px;margin:14px 0}.arf-media-box h4{grid-column:1/-1;margin:0}.arf-media-box input,.arf-media-box select{width:100%}@media(max-width:800px){.arf-media-box{grid-template-columns:1fr}.arf-ops-heading{flex-direction:column}}
.arf-booking-rules{margin:12px 0;padding:10px 12px;border:1px solid rgba(0,0,0,.12);border-radius:0;background:rgba(0,0,0,.025)}
.arf-booking-rules p{margin:.3em 0}

/* RentalFlow customer portal */
.arf-portal-header{display:flex;align-items:center;justify-content:space-between;gap:20px}.arf-portal-header h2{margin:0 0 4px}.arf-portal-header p{margin:0;opacity:.72}.arf-portal-kpis{display:flex;gap:10px;flex-wrap:wrap}.arf-portal-kpis span{display:flex;flex-direction:column;min-width:118px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:0;background:#f8fafc}.arf-portal-kpis strong{font-size:1.3rem}.arf-portal-section>h3{margin-top:0}.arf-portal-booking,.arf-portal-damage{border:1px solid #e2e8f0;border-radius:0;margin:0 0 10px;background:#fff}.arf-portal-booking>summary,.arf-portal-damage>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;cursor:pointer}.arf-portal-booking>summary span:first-child{display:flex;flex-direction:column}.arf-portal-booking>summary small{font-weight:400;opacity:.7;margin-top:3px}.arf-portal-booking-body,.arf-portal-damage>p,.arf-portal-damage>.arf-portal-media{padding:0 14px 14px}.arf-portal-items{margin:8px 0 14px;padding-left:20px}.arf-portal-items li{margin:5px 0}.arf-portal-items small{display:block;opacity:.7}.arf-portal-media{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.arf-portal-media a{display:flex;flex-direction:column;gap:4px;color:inherit;text-decoration:none}.arf-portal-media img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:0;border:1px solid #e2e8f0}.arf-message-list{display:grid;gap:8px;margin-bottom:16px}.arf-message{border:1px solid #e2e8f0;border-radius:0;padding:10px 12px;background:#f8fafc}.arf-message header{font-weight:650}.arf-message header small{font-weight:400;opacity:.65;margin-left:5px}.arf-message p{margin:7px 0 0}.arf-message-outbound{background:#f9fafb}.arf-message-inbound{background:#eff6ff}.arf-portal-message-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.arf-portal-message-form label:nth-child(3),.arf-portal-message-form button,.arf-portal-message-form [data-message-result]{grid-column:1/-1}.arf-status-pill.is-completed,.arf-status-pill.is-available,.arf-status-pill.arf-status-completed,.arf-status-pill.arf-status-available{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.arf-status-pill.is-cancelled,.arf-status-pill.is-damage_case,.arf-status-pill.arf-status-cancelled,.arf-status-pill.arf-status-damage_case{background:#fef2f2;border-color:#fecaca;color:#991b1b}
/* REQ-UI-STATUS-LABELS-SYSTEMWIDE-001 / decision 57: "Überfällig" always uses the warning state (existing warning palette of .arf-ops-state.is-progress), not the danger palette. */
.arf-status-pill.is-overdue,.arf-status-pill.arf-status-overdue{color:#7a5600;background:#fff4d6;border-color:#e8d49a}@media(max-width:700px){.arf-portal-header{align-items:flex-start;flex-direction:column}.arf-portal-kpis{width:100%}.arf-portal-kpis span{flex:1;min-width:90px}.arf-portal-message-form{grid-template-columns:1fr}.arf-portal-message-form>*{grid-column:1!important}}
.arf-booking-options{border:1px solid #e2e8f0;border-radius:0;padding:12px 14px;margin:14px 0}.arf-booking-options legend{font-weight:700;padding:0 5px}.arf-option-line{display:grid!important;grid-template-columns:1fr auto;gap:12px;align-items:start!important;border-bottom:1px solid #eef2f7;padding:8px 0;margin:0!important}.arf-option-line>span:first-child{display:grid;grid-template-columns:auto 1fr;gap:0 7px}.arf-option-line small{grid-column:2;display:block;font-weight:400;opacity:.72}.arf-option-rule{display:block;margin:3px 0 8px 27px;opacity:.72}.arf-booking-related{background:#f8fafc;border:1px solid #e2e8f0;border-radius:0;padding:12px 14px;margin:14px 0}.arf-booking-related h4{margin:5px 0}.arf-booking-related ul{margin:5px 0 10px 18px}.arf-booking-related small{opacity:.7}@media(max-width:600px){.arf-option-line{grid-template-columns:1fr}}

/* REV008: compact two-step booking on AssetCore detail pages */
.arf-asset-booking--compact.arf-app{max-width:760px;margin:12px 0}
.arf-compact-booking-card{padding:14px 16px!important;border-radius:0!important;box-shadow:none!important;margin:0!important}
.arf-compact-booking-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.arf-compact-booking-head h3{font-size:1.05rem;line-height:1.25;margin:0 0 2px}
.arf-compact-booking-head small{display:block;font-size:.82rem;font-weight:400;opacity:.68}
.arf-compact-availability{margin:8px 0 0;font-size:.86rem;line-height:1.35;min-height:1.35em}
.arf-compact-availability.is-available{color:#166534}.arf-compact-availability.is-unavailable{color:#991b1b}
.arf-compact-first-actions{display:flex;justify-content:flex-end;margin-top:9px}
.arf-compact-continue{padding:7px 11px!important;font-size:.88rem!important}
.arf-compact-continue:disabled{opacity:.45;cursor:not-allowed}
.arf-booking-details{border-top:1px solid #e5e7eb;margin-top:13px;padding-top:13px}
.arf-booking-step-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.arf-booking-step-head>div{display:flex;flex-direction:column;gap:2px}.arf-booking-step-head small{opacity:.7;font-weight:400}
.arf-link-button{background:transparent!important;border:0!important;padding:3px 0!important;text-decoration:underline;font-size:.82rem!important;color:inherit}
.arf-booking-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:9px!important}
.arf-booking-detail-grid label{font-size:.84rem;margin-bottom:7px!important}.arf-booking-detail-grid input{padding:8px!important}
.arf-exact-availability{margin:2px 0 10px!important;padding:7px 9px!important;font-size:.84rem!important}
.arf-compact-options,.arf-compact-rules{border:1px solid #e2e8f0;border-radius:0;margin:9px 0;background:#fafafa}
.arf-compact-options>summary,.arf-compact-rules>summary{cursor:pointer;padding:8px 10px;font-size:.88rem;font-weight:650}
.arf-compact-options .arf-booking-options{border:0;margin:0;padding:0 10px 8px}.arf-compact-rules .arf-booking-rules{border:0;margin:0;padding:0 10px 8px;background:transparent}
.arf-asset-booking--compact .arf-customer-fields{gap:9px!important;margin-top:10px}.arf-asset-booking--compact .arf-customer-fields label{font-size:.84rem;margin-bottom:7px!important}
.arf-asset-booking--compact .arf-customer-fields input,.arf-asset-booking--compact textarea{padding:8px!important}
.arf-label-optional{font-weight:400;opacity:.65}
.arf-asset-booking--compact .arf-result{font-size:.88rem;margin-top:8px;padding:6px 0}
@media(max-width:700px){.arf-asset-booking--compact.arf-app{max-width:none;margin:10px 0}.arf-booking-detail-grid{grid-template-columns:1fr 1fr!important}.arf-booking-detail-grid label:last-child{grid-column:1/-1}.arf-compact-booking-head{align-items:flex-start}}
@media(max-width:460px){.arf-booking-detail-grid{grid-template-columns:1fr!important}.arf-booking-detail-grid label:last-child{grid-column:auto}.arf-compact-first-actions .arf-primary{width:100%}}

/* REV009: controlled RentalFlow date-range picker; no native browser date-field UI */
.arf-asset-booking--compact,.arf-asset-booking--compact *{box-sizing:border-box}
.arf-range-picker{position:relative;width:100%;max-width:100%;z-index:20}
.arf-range-trigger{appearance:none!important;-webkit-appearance:none!important;width:100%!important;min-height:48px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;text-align:left!important;padding:8px 12px!important;background:#fff!important;color:inherit!important;border:1px solid #b7c0ca!important;border-radius:0!important;box-shadow:none!important;line-height:1.2!important}
.arf-range-trigger:hover{border-color:#7b8794!important;background:#fff!important}
.arf-range-trigger:focus-visible{outline:2px solid currentColor!important;outline-offset:2px!important}
.arf-range-trigger-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.arf-range-label{font-size:.72rem;font-weight:650;letter-spacing:.01em;opacity:.66}
.arf-range-value{display:block;max-width:100%;font-size:.92rem;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arf-range-trigger:not(.has-value) .arf-range-value{font-weight:550;opacity:.72}
.arf-range-icon{flex:0 0 auto;width:28px;height:28px;display:grid;place-items:center;border-radius:0;background:#f3f4f6;font-size:17px;line-height:1}
.arf-range-popover{position:absolute;left:0;top:calc(100% + 7px);width:min(620px,calc(100vw - 32px));max-width:100%;padding:12px;background:#fff;border:1px solid #d9dee5;border-radius:0;box-shadow:0 14px 38px rgba(15,23,42,.16);z-index:9999;overflow:hidden}
.arf-range-popover[hidden]{display:none!important}
.arf-range-toolbar{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:8px;margin-bottom:8px}
.arf-range-nav{appearance:none!important;-webkit-appearance:none!important;width:34px!important;height:34px!important;min-width:34px!important;padding:0!important;border:1px solid #d5dae0!important;border-radius:0!important;background:#fff!important;color:#1f2937!important;font-size:22px!important;line-height:1!important;display:grid!important;place-items:center!important}
.arf-range-nav:disabled{opacity:.35;cursor:not-allowed!important}
.arf-range-month-labels{display:grid;grid-template-columns:1fr 1fr;gap:20px;text-align:center;font-size:.87rem}
.arf-range-calendars{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.arf-range-calendar{min-width:0}
.arf-range-weekdays,.arf-range-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.arf-range-weekdays{margin-bottom:3px}
.arf-range-weekdays span{display:grid;place-items:center;height:23px;font-size:.68rem;font-weight:700;opacity:.52}
.arf-range-day,.arf-range-day-spacer{aspect-ratio:1/1;min-width:0}
.arf-range-day{appearance:none!important;-webkit-appearance:none!important;display:grid!important;place-items:center!important;width:100%!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;color:#1f2937!important;font-size:.79rem!important;font-weight:500!important;line-height:1!important;box-shadow:none!important}
.arf-range-day:hover:not(:disabled){background:#eef2f7!important}
.arf-range-day.is-in-range{border-radius:0!important;background:#eef2f7!important}
.arf-range-day.is-start,.arf-range-day.is-end{background:#111827!important;color:#fff!important;border-radius:0!important;font-weight:700!important}
.arf-range-day:disabled,.arf-range-day.is-disabled{opacity:.25!important;cursor:not-allowed!important}
.arf-range-day:focus-visible{outline:2px solid #111827!important;outline-offset:1px!important;position:relative;z-index:2}
.arf-range-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid #eef1f4}
.arf-range-hint{font-size:.78rem;line-height:1.25;opacity:.72;min-width:0}
.arf-range-footer-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.arf-range-apply{padding:6px 10px!important;font-size:.8rem!important}
.arf-range-apply:disabled{opacity:.4;cursor:not-allowed!important}
@media(max-width:620px){
  .arf-range-popover{width:min(330px,calc(100vw - 28px));padding:10px}
  .arf-range-calendars{grid-template-columns:1fr;gap:0}
  .arf-range-calendar--secondary,.arf-range-month-labels strong:last-child{display:none}
  .arf-range-month-labels{grid-template-columns:1fr}
  .arf-range-footer{align-items:flex-start;flex-direction:column}
  .arf-range-footer-actions{width:100%;justify-content:flex-end}
}
@media(max-width:380px){
  .arf-range-popover{left:-4px;width:calc(100vw - 22px)}
  .arf-range-trigger{min-height:46px!important;padding:7px 10px!important}
  .arf-range-value{font-size:.86rem}
}
.arf-range-icon svg{display:block;width:16px;height:16px}

/* REV010: multi-asset cart and request checkout */
.arf-cart-link{display:inline-flex;align-items:center;gap:6px;text-decoration:none}.arf-cart-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:0;background:var(--ars-accent-strong,#b84e08);color:#fff;font-size:.75rem;font-weight:750;line-height:1}
.arf-cart-page.arf-app,.arf-checkout.arf-app{max-width:1040px}.arf-cart-shell{padding:20px!important}.arf-cart-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px}.arf-cart-head h2,.arf-checkout h2{margin:.15em 0 .2em}.arf-cart-head p{margin:0;opacity:.72}.arf-eyebrow{display:block;color:var(--ars-accent-strong,#b84e08);font-size:.72rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.arf-muted{opacity:.7}.arf-secondary-link{display:inline-flex;align-items:center;gap:5px;color:var(--ars-ink,#14181b);text-decoration:none;font-weight:650}.arf-secondary-link svg{width:1em;height:1em;flex:none}.arf-secondary-link:hover{text-decoration:underline}.arf-button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none!important;padding:10px 14px;border-radius:0;background:var(--ars-accent-strong,#b84e08);color:#fff!important;font-weight:700}.arf-button-link:hover{background:var(--ars-accent-strong-hover,#9a4307)}
.arf-cart-period{max-width:620px;margin:0 0 18px}.arf-cart-period .arf-result{min-height:0;margin:6px 0 0;padding:0;font-size:.85rem}.arf-cart-period-summary{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:10px 12px;margin:0 0 10px;background:#f7f8f9;border:1px solid #e1e2e4;border-radius:0}.arf-cart-period-summary strong{font-size:.98rem;color:var(--ars-ink,#14181b)}.arf-cart-period-summary small{opacity:.67}.arf-cart-items{display:grid;gap:8px}.arf-cart-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid #e7eaec}.arf-cart-item>div:first-child{display:grid;gap:2px;min-width:0}.arf-cart-item>div:first-child strong{font-size:.96rem}.arf-cart-item>div:first-child small{opacity:.62;overflow-wrap:anywhere}.arf-cart-item-controls{display:flex;align-items:center;gap:12px}.arf-cart-item-controls label{display:flex!important;flex-direction:row!important;align-items:center!important;gap:7px!important;margin:0!important;font-size:.82rem}.arf-cart-item-controls input[type=number]{width:72px;min-width:0;padding:7px!important}.arf-cart-item-qty{font-weight:700;white-space:nowrap}.arf-link-danger{appearance:none;background:transparent!important;border:0!important;color:#a12727!important;text-decoration:underline;padding:4px!important;font-size:.8rem!important}.arf-cart-required,.arf-cart-recommendations,.arf-cart-safety{margin:14px 0 0;padding:12px 14px;border-radius:0}.arf-cart-required{background:#fff8e5;border:1px solid #ead49b;color:#684b00}.arf-cart-required ul{margin:7px 0 0 18px}.arf-cart-recommendations{background:#f6f7f9;border:1px solid #e1e2e4}.arf-cart-safety{background:#f6f7f9;border:1px solid #e1e2e4}.arf-cart-safety ul{margin:7px 0 0 18px}.arf-cart-rec-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:9px}.arf-cart-rec{display:grid!important;grid-template-columns:1fr!important;gap:2px!important;text-align:left!important;padding:10px 11px!important;background:#fff!important;border:1px solid #d4d5d7!important;border-radius:0!important;color:inherit!important}.arf-cart-rec:hover{border-color:var(--ars-green,#d9600a)!important}.arf-cart-rec-body>span{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#8a5a00}.arf-cart-rec-body>strong{font-size:.9rem}.arf-cart-rec-body>small{font-size:.75rem;opacity:.68}.arf-cart-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding-top:14px;border-top:1px solid #e7eaec}.arf-cart-actions[hidden]{display:none!important}.arf-cart-add-row{display:grid;grid-template-columns:minmax(90px,120px) minmax(170px,1fr);gap:10px;align-items:end;margin-top:10px}.arf-cart-add-row label{margin:0!important;font-size:.82rem}.arf-cart-add-row input{min-height:42px}.arf-cart-add-row .arf-primary{min-height:42px;background:var(--ars-accent-strong,#b84e08);color:#fff;border-color:var(--ars-accent-strong,#b84e08);font-weight:700}.arf-cart-add-row .arf-primary:disabled{opacity:.45}.arf-cart-add-row .arf-primary:not(:disabled):hover{background:var(--ars-accent-strong-hover,#9a4307)}
.arf-checkout-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.85fr);gap:18px;align-items:start}.arf-checkout-form,.arf-checkout-summary{margin:0!important}.arf-checkout-summary{position:sticky;top:24px}.arf-fieldset{border:1px solid #e0e4e7;border-radius:0;padding:12px 14px;margin:14px 0}.arf-fieldset legend{padding:0 5px;font-weight:750}.arf-choice-row{display:flex;gap:18px;flex-wrap:wrap}.arf-choice-row label{display:flex!important;flex-direction:row!important;align-items:center!important;gap:6px!important;margin:0!important;font-weight:550}.arf-address-grid{grid-template-columns:2fr .7fr!important}.arf-checkout-notice{padding:11px 12px;margin:12px 0;background:#f4f5f6;border-left:4px solid #d9600a;font-size:.84rem;line-height:1.4}.arf-checkout-form>button[type=submit]{width:100%;min-height:44px;background:var(--ars-accent-strong,#b84e08);color:#fff;border-color:var(--ars-accent-strong,#b84e08);font-weight:750}.arf-checkout-form>button[type=submit]:hover{background:var(--ars-accent-strong-hover,#9a4307)}.arf-checkout-summary .arf-cart-item{grid-template-columns:1fr auto}.arf-checkout-summary .arf-cart-required{font-size:.83rem}
@media(max-width:800px){.arf-checkout-layout{grid-template-columns:1fr}.arf-checkout-summary{position:static;order:-1}.arf-cart-rec-list{grid-template-columns:1fr}}
@media(max-width:600px){.arf-cart-shell{padding:15px!important}.arf-cart-head,.arf-cart-actions{align-items:stretch;flex-direction:column}.arf-cart-item{grid-template-columns:1fr;gap:8px}.arf-cart-item-controls{justify-content:space-between}.arf-cart-period-summary{align-items:flex-start;flex-direction:column;gap:2px}.arf-cart-add-row{grid-template-columns:90px 1fr}.arf-address-grid{grid-template-columns:1fr!important}}
@media(max-width:390px){.arf-cart-add-row{grid-template-columns:1fr}.arf-cart-add-row .arf-primary{width:100%}}
.arf-cart-page .arf-empty-state{padding:26px 18px;text-align:center;background:#f7f8f8;border:1px dashed #d5dadd;border-radius:0}.arf-cart-page .arf-empty-state strong{display:block;color:var(--ars-ink,#14181b)}.arf-cart-page .arf-empty-state p{margin:5px 0 0;opacity:.68}
.arf-privacy-note{margin:10px 0 14px;font-size:.78rem;line-height:1.45;opacity:.76}.arf-privacy-note a{color:var(--ars-ink,#14181b);text-decoration:underline}
.arf-privacy-notice-box{display:flex;align-items:flex-start;gap:10px;background:#fff8e5!important;border-left:4px solid #ead49b!important}.arf-privacy-notice-box .arf-checkout-notice-icon{flex:0 0 auto;width:20px;height:20px;color:#8a5a00;margin-top:1px}.arf-privacy-notice-box .arf-checkout-notice-icon svg{width:100%;height:100%}.arf-privacy-notice-box .arf-privacy-note{margin:0;opacity:.9}

/* REV011: Betriebshof / Operations – augite Rental Design, touch-first */
.arf-ops{--arf-ops-green:#d9600a;--arf-ops-green-2:#b84e08;--arf-ops-ink:#14181b;--arf-ops-text:#3e4144;--arf-ops-muted:#6b6f73;--arf-ops-paper:#fbfbfa;--arf-ops-soft:#f4f5f6;--arf-ops-line:#dcdcde;--arf-ops-warn:#8a5a00;--arf-ops-danger:#b32d2e;max-width:1180px;margin:22px auto 48px;color:var(--arf-ops-ink);font-family:Inter,"Helvetica Neue",Arial,sans-serif}
.arf-ops *{box-sizing:border-box}.arf-ops [hidden]{display:none!important}.arf-ops svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
/* REQ-DESIGN-PORTAL-LAYOUT/REQ-DESIGN-WPADMIN-LAYOUT ("Piktogramme verwenden vorhandenen
 * Symbolsatz"): default inline size for an .arf-ui-icon that has no more specific contextual
 * sizing rule (see the 38px/34px/26px/22px overrides elsewhere in this file for the larger,
 * already-styled spots) - since .arf-ops svg above is width/height:100% of its parent, an
 * .arf-ui-icon with no explicit size would otherwise collapse/render unpredictably. 1em scales
 * with the surrounding text, matching how these new inline pictograms (replacing raw ✓/⚠/×
 * glyphs) sit next to their label text. */
.arf-ui-icon{display:inline-grid;place-items:center;width:1em;height:1em;vertical-align:-0.15em}
.arf-ops-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin:0 0 18px;padding:26px 28px;border-radius:0;background:var(--ars-accent-strong,#b84e08);color:#fff}.arf-ops-hero h1{margin:3px 0 7px;font-size:clamp(1.8rem,4vw,2.65rem);line-height:1.02;color:#fff}.arf-ops-hero p{max-width:760px;margin:0;color:#f9f0eb;font-size:.96rem}.arf-ops-eyebrow,.arf-ops-kicker{display:block;font-size:.7rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.arf-ops-eyebrow,.arf-ops-kicker{color:var(--ars-accent-strong,#b84e08)}
.arf-ops-card{background:#fff;border:1px solid var(--arf-ops-line);border-radius:0;padding:20px 22px;margin:0 0 16px;box-shadow:0 2px 10px rgba(30,33,36,.035)}.arf-ops-section-head,.arf-ops-detail-head,.arf-process-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.arf-ops-section-head h2,.arf-ops-detail-head h2{margin:2px 0 0;font-size:1.45rem;line-height:1.15}.arf-ops-section-head p,.arf-ops-detail-head p,.arf-process-head p{margin:5px 0 0;color:var(--arf-ops-muted);font-size:.88rem}
.arf-ops button{font:inherit}.arf-ops-primary,.arf-ops-secondary,.arf-ops-icon-button{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;min-height:44px;padding:9px 14px!important;border-radius:0!important;font-weight:700!important;line-height:1.15!important;cursor:pointer}.arf-ops-primary{background:var(--ars-accent-strong,#b84e08)!important;border:1px solid var(--ars-accent-strong,#b84e08)!important;color:#fff!important}.arf-ops-primary:hover{background:var(--ars-accent-strong-hover,#9a4307)!important;border-color:var(--ars-accent-strong-hover,#9a4307)!important}.arf-ops-secondary{background:#fff!important;border:1px solid #c5c7c9!important;color:var(--arf-ops-ink)!important}.arf-ops-secondary:hover{border-color:var(--arf-ops-green)!important;color:var(--ars-accent-strong,#b84e08)!important}.arf-ops-icon-button{background:rgba(255,255,255,.1)!important;border:1px solid rgba(255,255,255,.3)!important;color:#fff!important}.arf-ops-icon-button:hover{background:rgba(255,255,255,.18)!important}
/* LIVE-TASK-2026-09-12-013 V2 (system-wide, not page-wide): .arf-ops-primary/-secondary/-icon-button
 * had no :focus-visible rule of their own anywhere, so keyboard focus on any button built from
 * these shared classes (across every /intern/ page and the RentalFlow admin shell) was invisible -
 * one class-level rule covers every current and future use instead of patching individual buttons. */
.arf-ops-primary:focus-visible,.arf-ops-secondary:focus-visible,.arf-ops-icon-button:focus-visible{outline:2px solid #d9600a!important;outline-offset:2px!important}
.arf-ops-icon-button:focus-visible{outline-color:#fff!important}
/* REQ-RENTALINVOICE-ACTION-LABEL-CLARITY-001: compact, pictogram-only modifier for the
 * existing .arf-ops-secondary/.arf-ops-primary button components (not a new button system -
 * same background/border/color, just square and icon-only), used by RentalInvoice's
 * /intern/rentalinvoice/ action row instead of the large text buttons a direct sponsor review
 * flagged as visually oversized for a per-row action list. */
.arf-ops-secondary.arf-ops-icon-only,.arf-ops-primary.arf-ops-icon-only{width:38px!important;min-width:38px!important;padding:0!important;gap:0!important}
.arf-ops-icon-only>svg{width:18px;height:18px;flex:none}
/* Reconciliation note (2026-09-13, merge of claude/p1-req-089-system-page-ia onto the live
 * branch): the live tip had independently authored an unconditional, always-on ":focus" floor
 * rule here (doubled .arf-ops-primary/-secondary/-icon-button/input/select/textarea/button
 * classes) for the exact same LIVE-TASK-2026-09-13-013 finding that this branch's own
 * ".arf-app.arf-ops :is(details[open],[role=dialog],...)" fallback further below already fixes
 * (same buttons: scanner dialog Uebernehmen/QR-Barcode/NFC lesen, disposition Speichern, ZUGFeRD/
 * XRechnung erzeugen - all inside an open dialog/<details>). Removed as a real duplicate rather
 * than kept alongside: this branch's fallback is scoped to open dialogs/disclosures only
 * (deliberately "keine Klick-Ringe" outside them, per the comment on that rule), while the live
 * tip's unconditional version would have reintroduced always-on click rings everywhere,
 * regressing that explicit design intent - and it made tests/test_req_layout_rule_violations_001_cascade.py's
 * mutation check (which proves the dialog-scoped fallback is what actually supplies the outline)
 * unable to distinguish "fixed" from "reverted" for these buttons, since the redundant rule kept
 * supplying an outline regardless. No coverage was lost: the same buttons are proven fixed by that
 * dialog-scoped rule instead (see its own mutation-tested proof below). */
.arf-ui-icon{width:19px;height:19px;display:inline-grid;place-items:center;flex:0 0 19px}
.arf-ops-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:9px;margin-top:14px}.arf-ops-booking{display:grid!important;grid-template-columns:38px minmax(0,1fr) auto 14px!important;align-items:center!important;gap:10px!important;width:100%;min-height:76px;padding:12px 13px!important;text-align:left!important;background:var(--arf-ops-paper)!important;border:1px solid var(--arf-ops-line)!important;border-radius:0!important;color:var(--arf-ops-ink)!important}.arf-ops-booking:hover{background:var(--arf-ops-soft)!important;border-color:#babcbe!important}.arf-ops-booking-icon,.arf-ops-summary-icon,.arf-work-asset-icon,.arf-media-icon{display:grid;place-items:center;width:38px;height:38px;padding:8px;border-radius:0;background:#eff0f1;color:var(--arf-ops-green);flex:0 0 38px}.arf-ops-booking-copy{display:grid;gap:1px;min-width:0}.arf-ops-booking-copy strong{font-size:.92rem}.arf-ops-booking-copy span{font-size:.84rem;color:var(--arf-ops-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arf-ops-booking-copy small{font-size:.72rem;color:var(--arf-ops-muted)}.arf-ops-chevron{font-size:1.5rem;color:#8a8d91}.arf-ops-state{display:inline-flex;align-items:center;border-radius:0;padding:5px 8px;font-size:.68rem;font-weight:800;white-space:nowrap;background:#eeeff1;color:#5b5e62}.arf-ops-state.is-ok{background:#e8f4ec;color:#215f39}.arf-ops-state.is-alert{background:#fff1eb;color:#8c421a}
/* Wave 23: decision 98 - overdue pill in /intern/ lists = the one amber warning token of the status badges (admin.css .arf-admin-status[data-status="overdue"]); decision 79 - overdue with open blockers = error tone (admin.css danger badge). */
.arf-ops-state.is-warning{color:#7a5600;background:#fff4d6;border-color:#e8d49a}.arf-ops-state.is-danger{color:#b32d2e;background:#fcf0f1;border-color:#efc5c7}
.arf-ops-loading{padding:18px 0;color:var(--arf-ops-muted)}.arf-ops-empty{display:flex;align-items:center;gap:12px;margin-top:12px;padding:18px;border:1px dashed #cccdd0;border-radius:0;background:var(--arf-ops-paper)}.arf-ops-empty>.arf-ui-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;min-width:34px;min-height:34px;color:var(--arf-ops-green);overflow:hidden}.arf-ops-empty>.arf-ui-icon svg{display:block;width:22px!important;height:22px!important;max-width:22px!important;max-height:22px!important}.arf-ops-empty div{display:grid}.arf-ops-empty span{font-size:.82rem;color:var(--arf-ops-muted)}

/* REQ-INTERN-CONSOLIDATION M1: /intern/rentalcore/ ports several wp-admin RentalCore list-
 * page components (Kachel-Grid, Tabelle, Faktenliste) to the front end. wp-admin's own
 * .arf-metric-grid/.arf-admin-table/.arf-facts (admin.css) and WordPress core's own
 * widefat/striped table styling are not loaded on the front end at all, so these are real,
 * separate front-end declarations under the SAME class names and the same visual structure
 * (flat, border-radius:0, matching admin.css exactly) - not a differently-styled lookalike,
 * only using this stylesheet's own --arf-ops-* token names instead of wp-admin's --arf-* and
 * --augite-admin-* ones, which resolve to the identical canonical color values.
 * REQ-INTERN-LAYOUT-CALIBRATION LAY-003 (2026-09-13, found by the cascade-resolver sweep in
 * tests/test_req_layout_rule_violations_001_cascade.py): this comment used to spell the wp-admin
 * token family as "--arf-*" immediately followed by "/" - i.e. a literal comment terminator in
 * the middle of the comment. Browsers ended the comment there, parsed the remaining prose as the
 * selector of the next rule, and dropped the whole .arf-ops-filter-bar{display:flex;...} rule as
 * invalid, so the /intern/ filter bars never received their declared flex layout (computed styles
 * did not match the approved cascade). Reworded; the rule below is unchanged. */
/* REQ-BACKEND-FILTER-BAR-COLLAPSIBLE-ONE-ROW-001 (wave 12, decision 46): every /intern/ filter bar is rendered by the
 * shared ARF_Backend_UI component (collapsible behind a filter pictogram, one row on desktop); its row LAYOUT lives in
 * assets/css/backend-ui.css only. The former .arf-ops-filter-bar layout rules here (display/flex-wrap/gap/margin, the
 * search flex basis) and the REV321 one-row repair below them (LIVE-TASK-2026-09-14-109/-113: visible label inline-flex,
 * selects width:auto, button/link flex:0 0 auto - measured 47/47/49px) were folded into that component, so no second,
 * competing rule set remains. Only the visual control styling stays here (corners squared per the pill rule). */
.arf-ops-filter-bar input[type=search],.arf-ops-filter-bar select{min-height:40px;padding:8px 10px;border:1px solid var(--arf-ops-line);border-radius:0;font:inherit;background:#fff;color:var(--arf-ops-ink)}
.arf-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:12px 0 4px;max-width:none}
.arf-metric-card{display:block;background:#fff;border:1px solid var(--arf-ops-line);border-top:4px solid var(--arf-ops-green);border-radius:0;padding:15px;text-decoration:none;color:var(--arf-ops-ink)}
.arf-metric-card:hover[href]{border-color:var(--arf-ops-green-2)}
.arf-metric-card strong{display:block;font-size:27px;line-height:1.1}
.arf-metric-card span{display:block;font-weight:650;margin-top:5px}
.arf-metric-card small{display:block;color:var(--arf-ops-muted);margin-top:4px}
.arf-metric-card--warn{border-top-color:var(--arf-ops-warn)}
.arf-metric-card--ok{border-top-color:var(--arf-ops-green)}
/* Auftraggeber-Entscheidung 36 (KPI budget 3/5) on /intern/: surplus metrics in a non-tile "Weitere Kennzahlen" definition list, groups below 3 metrics as a compact list. */
.arf-metric-more{margin:12px 0 4px;border:1px solid var(--arf-ops-line);background:#fff}.arf-metric-more>summary{cursor:pointer;padding:9px 14px;font-weight:650;color:var(--ars-accent-strong,#b84e08)}.arf-metric-more[open]>summary{border-bottom:1px solid var(--arf-ops-line)}.arf-metric-more>.arf-metric-list{margin:0;padding:4px 14px}.arf-metric-list{margin:12px 0 4px;display:grid;gap:0}.arf-metric-list__item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--arf-ops-line)}.arf-metric-list__item:last-child{border-bottom:0}.arf-metric-list dt{margin:0;font-weight:600;min-width:0;color:var(--arf-ops-ink)}.arf-metric-list dd{margin:0;text-align:right}.arf-metric-list dd strong{font-size:1rem;color:var(--arf-ops-ink)}.arf-metric-list dd small{display:block;color:var(--arf-ops-muted)}.arf-metric-list--compact{border:1px solid var(--arf-ops-line);background:#fff;padding:2px 14px}.arf-metric-list__item--warn dd strong{color:var(--arf-ops-warn)}
@media(max-width:480px){.arf-metric-grid{grid-template-columns:1fr}}
/* Live finding LIVE-TASK-2026-09-14-129/-131 (2026-09-15): absolutely positioned descendants (.screen-reader-text in table
   headers) escaped a static overflow:auto wrapper - their containing block was the page, so /intern/rentalinvoice/ was 1218 px
   wide at 400 px although the table itself scrolled inside its wrapper. Every table/filter scroll wrapper is position:relative. */
.arf-admin-table-scroll{position:relative;overflow:auto;background:#fff;border:1px solid var(--arf-ops-line);border-radius:0;margin:8px 0 14px;max-width:none}
.arf-admin-table{width:100%;border-collapse:collapse;min-width:640px}
.arf-admin-table th,.arf-admin-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--arf-ops-line);vertical-align:middle}
.arf-admin-table th{background:var(--arf-ops-soft);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--arf-ops-text)}
.arf-admin-table tbody tr:nth-child(odd){background:#fbfcfb}
/* Live finding LIVE-TASK-2026-09-13-047 (2026-09-15): the two RentalFlow tables 'Geräte in Rücknahmeprüfung' and the
   operations list (.arf-ops-table, markup "widefat striped" shared with wp-admin) had no front-end styling - on /intern/rentalflow/
   the header cells did not line up with the columns and the booking buttons (.button-link) rendered as grey browser
   default buttons. Same flat table look as .arf-admin-table; the booking reference is a text link-button. */
body:not(.wp-admin) .arf-app table.arf-ops-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--arf-ops-line)}
body:not(.wp-admin) .arf-app table.arf-ops-table th,body:not(.wp-admin) .arf-app table.arf-ops-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--arf-ops-line);vertical-align:middle}
body:not(.wp-admin) .arf-app table.arf-ops-table th{background:var(--arf-ops-soft);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--arf-ops-text)}
body:not(.wp-admin) .arf-app table.arf-ops-table tbody tr:nth-child(odd){background:#fbfcfb}
body:not(.wp-admin) .arf-app table.arf-ops-table .button-link{appearance:none;display:inline;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:#b84e08;font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
body:not(.wp-admin) .arf-app table.arf-ops-table .button-link:hover{color:#9a4307}
body:not(.wp-admin) .arf-app table.arf-ops-table .button-link:focus-visible{outline:2px solid rgba(217,96,10,.4);outline-offset:2px}
.arf-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.arf-facts div{background:var(--arf-ops-soft);border-radius:0;padding:12px}
.arf-facts dt{color:var(--arf-ops-muted);font-size:12px;margin:0}
.arf-facts dd{margin:3px 0 0;font-weight:650}
.arf-admin-gate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;margin-top:10px}
.arf-admin-gate-item{display:grid;grid-template-columns:28px 1fr;gap:8px;padding:10px;border:1px solid var(--arf-ops-line);background:#fff}
.arf-admin-gate-item>span{display:grid;place-items:center;width:28px;height:28px;border-radius:0;background:#e8f3eb;color:#24613e;font-weight:800}.arf-admin-gate-item>span svg{width:16px;height:16px}
.arf-admin-gate-item.is-missing{border-color:#e3c0a7;background:#fffaf5}
.arf-admin-gate-item.is-missing>span{background:#fff0e4;color:#944b18}
.arf-admin-gate-item div{display:grid;gap:3px}
.arf-admin-gate-item small{color:var(--arf-ops-muted);line-height:1.35}
@media(max-width:700px){.arf-facts{grid-template-columns:1fr}}
/* REQ-093 (Paket H): distinguishes "genuinely nothing to do" from "work exists, not yet
 * confirmed in RentalCore" so an empty operational queue is never mistaken for a data bug. */
.arf-ops-empty-hint{margin:6px 0 0;font-size:.8rem;font-weight:700;color:var(--arf-ops-warn)}
.arf-ops-empty-hint a{color:inherit;text-decoration:underline}
.arf-ops-detail-head{padding-bottom:14px;border-bottom:1px solid #e6e7e9}.arf-ops-assets-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px;margin:14px 0}.arf-ops-summary-item{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #e6e7e9;border-radius:0;background:#fbfcfb}.arf-ops-summary-item>div{display:grid;gap:2px}.arf-ops-summary-item strong{font-size:.85rem}.arf-ops-summary-item small{font-size:.73rem;color:var(--arf-ops-muted)}.arf-ops-summary-item small.is-alert{color:var(--arf-ops-danger)}.arf-ops-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0}
/* REQ-INTERN-BOOKING-DETAIL-VISUAL-CLARITY-001: the "Kunde nicht erschienen" exception action is
 * deliberately pulled out of .arf-ops-actions' primary-action row (Kommissionierung starten,
 * Übergabe/Rücknahme fortsetzen, …) into its own, visually separated block - a top divider plus
 * a short context sentence, so the button never sits directly adjacent to the pickup-
 * authorization/handover-release group above with no explanation of what "not shown up" refers to. */
.arf-process-card{margin:17px -2px -2px;padding:18px 2px 2px;border-top:1px solid var(--arf-ops-line)}.arf-process-head{margin-bottom:13px}.arf-process-head h3{margin:2px 0 0;font-size:1.35rem}.arf-ops-step{display:inline-flex;align-items:center;min-height:30px;padding:5px 9px;border-radius:0;background:#f2f3f5;color:var(--ars-accent-strong,#b84e08);font-size:.73rem;font-weight:800}.arf-work-asset{margin:0 0 12px;border:1px solid var(--arf-ops-line);border-radius:0;background:#fff;overflow:hidden}.arf-work-asset-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;background:#f8f9fa;border-bottom:1px solid #e6e7e8}.arf-work-asset-id{display:flex;align-items:center;gap:10px;min-width:0}.arf-work-asset-id>div{display:grid;min-width:0}.arf-work-asset-id strong{font-size:1rem}.arf-work-asset-id span{font-size:.75rem;color:var(--arf-ops-muted);overflow-wrap:anywhere}.arf-verify-state{font-size:.78rem;color:#21603b;font-weight:800}.arf-verify.is-verified{border-color:#9ac2a8!important;background:#eef7f1!important;color:#215f39!important}
.arf-general-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:13px 14px}.arf-general-checks label{display:flex!important;flex-direction:row!important;align-items:center!important;gap:9px!important;min-height:44px;margin:0!important;padding:9px 10px;border:1px solid #e6e7e9;border-radius:0;background:#fff;font-weight:600!important;font-size:.82rem}.arf-general-checks input{width:21px!important;height:21px!important;margin:0!important;accent-color:var(--arf-ops-green)}
.arf-return-core{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px}.arf-return-core label,.arf-media-meta label,.arf-ops-token-row label{display:flex!important;flex-direction:column!important;gap:5px!important;margin:0!important;font-size:.78rem;font-weight:700!important;color:var(--arf-ops-text)}.arf-return-core label>span,.arf-media-meta label>span,.arf-ops-token-row label>span{display:flex;gap:5px;align-items:baseline}.arf-return-core small,.arf-media-meta small{font-weight:500;color:var(--arf-ops-muted)}.arf-field-wide{grid-column:1/-1}.arf-return-core input,.arf-return-core select,.arf-return-core textarea,.arf-media-meta input,.arf-media-meta select,.arf-ops-token-row input{width:100%!important;min-height:43px;padding:9px 10px!important;border:1px solid #c5c7c9!important;border-radius:0!important;background:#fff!important;color:var(--arf-ops-ink)!important;font:inherit!important}.arf-return-core textarea{min-height:64px;resize:vertical}.arf-meter-fields{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.arf-damage-field{padding:10px;border-left:4px solid var(--arf-ops-warn);border-radius:0;background:#fff7f1}
.arf-master-template{margin:0;border-top:1px solid #e6e7e9;background:#fcfdfc}.arf-master-head{display:flex;align-items:center;gap:10px;padding:12px 14px 8px}.arf-master-source{display:inline-flex;padding:4px 7px;border-radius:0;background:var(--ars-accent-strong,#b84e08);color:#fff;font-size:.64rem;font-weight:800;letter-spacing:.05em}.arf-master-head h4{margin:0;font-size:.87rem}.arf-master-head p{margin:1px 0 0;color:var(--arf-ops-muted);font-size:.72rem}.arf-master-section{margin:8px 14px 4px;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:#5b5e62}.arf-master-item{display:grid!important;grid-template-columns:36px minmax(0,1fr) 26px;align-items:center;gap:10px;min-height:58px;margin:0 14px!important;padding:9px 0;border-bottom:1px solid #eaebed;font-weight:500!important}.arf-master-item:last-child{border-bottom:0}.arf-master-icon{display:grid;place-items:center;width:34px;height:34px;padding:7px;border-radius:0;background:#f2f3f5;color:var(--arf-ops-green)}.arf-master-copy{display:grid;gap:2px;min-width:0}.arf-master-copy strong{font-size:.82rem;line-height:1.3}.arf-master-copy em{color:var(--arf-ops-warn);font-style:normal}.arf-master-copy small{font-size:.72rem;line-height:1.35;color:var(--arf-ops-muted);font-weight:400}.arf-master-check{width:23px!important;height:23px!important;margin:0!important;padding:0!important;accent-color:var(--arf-ops-green)}.arf-master-item.is-blocking{grid-template-columns:36px minmax(0,1fr);margin:4px 14px 8px!important;padding:10px;border:1px solid #ead7ca;border-radius:0;background:#fff9f5}.arf-master-item.is-blocking .arf-master-icon{background:#fff0e7;color:var(--arf-ops-warn)}.arf-master-item.is-blocking select{width:100%!important;min-height:41px;margin-top:6px;padding:8px 9px!important;border:1px solid #cfb6a5!important;border-radius:0!important;background:#fff!important;font:inherit!important;font-size:.78rem!important}
.arf-media-box{display:block;margin:15px 0 0;padding:14px;border:1px solid #d3d5d7;border-radius:0;background:#f9fafb}.arf-media-head{display:flex;align-items:center;gap:10px}.arf-media-head>div{min-width:0;flex:1}.arf-media-head h4{margin:0;font-size:1rem}.arf-media-head p{margin:2px 0 0;font-size:.76rem;color:var(--arf-ops-muted)}.arf-photo-count{padding:4px 7px;border-radius:0;background:#eff0f1;color:var(--ars-accent-strong-hover,#9a4307);font-size:.67rem;font-weight:800;white-space:nowrap}.arf-media-meta{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(220px,1.4fr) minmax(140px,.8fr);gap:8px;margin:12px 0}.arf-camera-stage{position:relative;min-height:220px;max-width:640px;border-radius:0;overflow:hidden;background:#14181b}.arf-camera-stage video{display:block;width:100%;height:auto;aspect-ratio:4/3;max-height:480px;min-height:220px;object-fit:cover;margin:0!important;border-radius:0!important;background:#111}.arf-camera-placeholder{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:7px;padding:22px;text-align:center;color:#e3e4e6;background:#14181b}.arf-camera-placeholder svg{width:42px;height:42px;color:#a1a4a7}.arf-camera-placeholder strong{font-size:.9rem}.arf-camera-placeholder span{max-width:560px;font-size:.74rem;color:#b6b8ba}.arf-camera-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}.arf-camera-actions [data-doc-camera-controls]{display:flex;gap:8px}.arf-capture{min-width:170px}.arf-media-result{font-size:.75rem;color:var(--arf-ops-muted)}.arf-photo-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:7px;margin-top:10px}.arf-photo-thumb{position:relative;margin:0;border:1px solid #d8dbde;border-radius:0;overflow:hidden;background:#fff}.arf-photo-thumb img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.arf-photo-thumb figcaption{padding:5px 6px;font-size:.66rem;color:#5b5e62;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arf-process-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:14px;padding:13px 14px;border-radius:0;background:#f2f3f5}.arf-process-footer>div{display:grid;gap:2px}.arf-process-footer strong{font-size:.84rem}.arf-process-footer span{font-size:.72rem;color:#5b5e62}.arf-process-result{min-height:1.2em;margin-top:8px;font-size:.8rem;font-weight:650;color:var(--ars-accent-strong,#b84e08)}
.arf-scan-actions{display:flex;gap:8px;margin:12px 0}.arf-ops-token-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;max-width:760px}.arf-ops-scan-video{display:block;width:100%;max-width:760px;max-height:430px;object-fit:cover;margin-top:10px;border-radius:0;background:#14181b}.arf-ops-result{max-width:760px;margin-top:8px;padding:0}.arf-resolve-card{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #dee0e2;border-radius:0;background:#f8f9fa}.arf-resolve-card>span{display:grid;width:32px;height:32px;padding:6px;border-radius:0;background:#eff0f1;color:var(--ars-accent-strong-hover,#9a4307)}.arf-resolve-card>div{display:grid;gap:2px}.arf-resolve-card small{color:var(--arf-ops-muted)}.arf-resolve-card b{font-size:.73rem}.arf-resolve-card .is-ok{color:#21603b}.arf-resolve-card .is-alert{color:var(--arf-ops-danger)}
.arf-ops-signature{background:#fbfbfa}.arf-signature-pad{position:relative;margin-top:12px}.arf-ops .arf-signature-pad canvas{display:block;width:100%;height:230px;border:1px solid #c5c7c9;border-radius:0;background:#fff;touch-action:none}.arf-signature-line{position:absolute;left:7%;right:7%;bottom:38px;border-bottom:1px solid #c8cacc;pointer-events:none}.arf-ops-inline-actions{display:flex;gap:8px;margin-top:8px}
.arf-error{padding:9px 11px;border:1px solid #efcaca;border-radius:0;background:#fff4f4;color:#8f2727}.arf-paper-fallback-note{margin-top:8px}.arf-ops button:focus-visible,.arf-ops input:focus-visible,.arf-ops select:focus-visible,.arf-ops textarea:focus-visible{outline:3px solid rgba(217,96,10,.2)!important;outline-offset:1px!important}
/* REQ-DISPOSITION-INSTANCE-TRANSPORT-BLOCK-LAYOUT-001: .arf-inline-field/.arf-status-change-form/
 * .arf-field-wide are the standing /intern/ card-form convention (129 uses of .arf-inline-field
 * alone in class-arf-shortcodes.php, across Buchungsdetail, Kundendetail, Disposition and more)
 * but were only ever styled in admin.css - which /intern/ pages never enqueue (they load only
 * this file, arf-public/public.css; admin.css is enqueued exclusively by ARF_Admin's own
 * wp-admin screens). So on /intern/ every one of these forms rendered as bare, unstyled stacked
 * <label> elements with zero gap/grouping - this, not a one-off missing margin, is why "Instanz
 * planen" sat flush under "Notiz" with no perceptible spacing, and why Transportaufträge/
 * Sperrzeiten read as an unstructured wall of fields. Mirrored here (not copy-pasted verbatim -
 * uses this file's own --arf-ops-* tokens and .arf-ops-card sizing) so the fix benefits every
 * /intern/ form using the convention, not only Disposition. */
.arf-app.arf-ops .arf-status-change-form{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px 16px;padding:2px 0 4px;margin:0}
.arf-app.arf-ops .arf-inline-field{display:flex!important;flex-direction:column!important;gap:5px!important;margin:0!important;min-width:190px;flex:1 1 190px;font-size:.8rem;font-weight:700!important;color:var(--arf-ops-text)}
.arf-app.arf-ops .arf-inline-field>span{font-weight:700}
.arf-app.arf-ops .arf-inline-field small,.arf-app.arf-ops .arf-inline-field .description{display:block;margin-top:2px;font-weight:500;color:var(--arf-ops-muted)}
.arf-app.arf-ops .arf-inline-field input,.arf-app.arf-ops .arf-inline-field select,.arf-app.arf-ops .arf-inline-field textarea{width:100%!important;min-height:43px;padding:9px 10px!important;border:1px solid #c5c7c9!important;border-radius:0!important;background:#fff!important;color:var(--arf-ops-ink)!important;font:inherit!important}
.arf-app.arf-ops .arf-inline-field textarea{min-height:64px;resize:vertical}
.arf-app.arf-ops .arf-status-change-form>.arf-field-wide,.arf-app.arf-ops .arf-status-change-form>div.arf-field-wide{flex:1 1 100%;width:100%}
.arf-app.arf-ops .arf-status-change-form>.arf-ops-inline-actions{flex:1 1 100%;width:100%;margin-top:4px}
/* Either/or grouping for "Ziel: konkretes Asset ODER Mietartikel" (Zusätzliche Sperrzeiten) -
 * without this the two <select> elements read as two unrelated dropdowns side by side. */
.arf-app.arf-ops .arf-disposition-target-field{min-width:280px}
.arf-app.arf-ops .arf-disposition-target-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border:1px solid #d8dadc;border-radius:0;background:#f8f9fa}
.arf-app.arf-ops .arf-disposition-target-group select{width:auto!important;flex:1 1 160px;min-width:0}
.arf-app.arf-ops .arf-disposition-target-or{font-weight:700;color:var(--arf-ops-muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
@media(max-width:620px){.arf-app.arf-ops .arf-status-change-form{flex-direction:column;align-items:stretch}.arf-app.arf-ops .arf-inline-field{min-width:0;flex-basis:auto}.arf-app.arf-ops .arf-disposition-target-group{flex-direction:column;align-items:stretch}.arf-app.arf-ops .arf-disposition-target-group select{width:100%!important}}
@media(max-width:800px){.arf-ops{margin:12px auto 34px}.arf-ops-hero{align-items:flex-start;flex-direction:column;padding:20px}.arf-ops-card{padding:16px}.arf-ops-list{grid-template-columns:1fr}.arf-media-meta{grid-template-columns:1fr 1fr}.arf-media-meta label:nth-child(2){grid-column:1/-1}.arf-process-footer{align-items:stretch;flex-direction:column}.arf-process-footer .arf-ops-primary{width:100%}}
@media(max-width:620px){.arf-ops-hero{border-radius:0}.arf-ops-card{border-radius:0;padding:13px}.arf-work-asset-head{align-items:flex-start;flex-direction:column}.arf-verify{width:100%}.arf-general-checks,.arf-return-core,.arf-meter-fields,.arf-media-meta{grid-template-columns:1fr}.arf-field-wide,.arf-media-meta label:nth-child(2){grid-column:auto}.arf-master-item{margin-left:9px!important;margin-right:9px!important}.arf-master-item.is-blocking{margin-left:9px!important;margin-right:9px!important}.arf-media-head{align-items:flex-start;flex-wrap:wrap}.arf-photo-count{margin-left:48px}.arf-camera-actions,[data-doc-camera-controls]{width:100%}.arf-camera-actions .arf-ops-primary,.arf-camera-actions .arf-ops-secondary{flex:1}.arf-ops-token-row{grid-template-columns:1fr}.arf-ops-token-row .arf-ops-primary{width:100%}.arf-ops-booking{grid-template-columns:34px minmax(0,1fr) 12px!important}.arf-ops-booking .arf-ops-state{grid-column:2;justify-self:start}.arf-ops-chevron{grid-column:3;grid-row:1/3}.arf-ops-signature .arf-signature-pad canvas{height:190px}}
.arf-ops .arf-return-core textarea{margin:0}

.arf-inline-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:12px}
.arf-withdrawal-shell{max-width:920px;margin:0 auto;display:grid;gap:16px}
.arf-withdrawal-form{display:grid;gap:16px}
.arf-withdrawal-preview{background:#fafbfc;border:1px solid #d7dbe0}

.arf-ops-access-shell{margin-top:18px}
.arf-ops-access{padding:28px;max-width:1040px;margin:0 auto 18px}
.arf-ops-access-head{display:grid;grid-template-columns:72px minmax(0,1fr);gap:18px;align-items:flex-start;margin-bottom:18px}
.arf-ops-access-icon,.arf-ops-access-mini{display:inline-flex;align-items:center;justify-content:center;color:var(--ars-accent-strong,#b84e08);flex:none}
.arf-ops-access-icon{width:72px;height:72px;border-radius:0;background:#f2f3f4;border:1px solid #e1e2e4}
.arf-ops-access-icon svg{width:34px;height:34px}
.arf-ops-access-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.arf-ops-access-item{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;padding:16px;border:1px solid var(--arf-ops-line);border-radius:0;background:#fbfbfa}
.arf-ops-access-item strong{display:block;margin-bottom:4px;color:var(--ars-ink,#14181b)}
.arf-ops-access-item p{margin:0;color:var(--arf-ops-muted);font-size:.93rem}
.arf-ops-access-mini{width:40px;height:40px;border-radius:0;background:#f1f3f4;border:1px solid #e2e3e5}
.arf-ops-access-mini svg{width:18px;height:18px}
.arf-ops-access-actions{margin-top:18px;flex-wrap:wrap}
.arf-ops-access-link{display:inline-flex;align-items:center;gap:10px;text-decoration:none}
@media(max-width:800px){.arf-ops-access-grid{grid-template-columns:1fr}.arf-ops-access-head{grid-template-columns:58px minmax(0,1fr)}.arf-ops-access-icon{width:58px;height:58px;border-radius:0}.arf-ops-access-icon svg{width:28px;height:28px}}

/* REV015: native, compact date selection and one-line asset booking */
.arf-compact-booking-card{padding:14px 16px!important}
.arf-booking-inline{display:grid;grid-template-columns:auto minmax(250px,1fr) 78px auto;gap:10px;align-items:end}
.arf-booking-inline-title{display:flex;align-items:center;min-height:46px;white-space:nowrap;color:var(--ars-ink,#14181b)}
.arf-native-range{display:grid;grid-template-columns:minmax(118px,1fr) auto minmax(118px,1fr);gap:7px;align-items:end;min-width:0}
.arf-native-date{margin:0!important;gap:3px!important;font-size:.72rem!important;font-weight:700!important;color:#5b5e62}
.arf-native-date input{width:100%;min-height:44px;padding:7px 9px!important;border-radius:0!important;background:#fff!important}
.arf-native-range-arrow{display:grid;place-items:center;min-height:44px;color:#707377;font-weight:800}
.arf-inline-qty{margin:0!important;gap:3px!important;font-size:.72rem!important;color:#5b5e62}
.arf-inline-qty input{width:100%;min-height:44px!important;padding:7px!important;text-align:center}
.arf-inline-add{min-height:44px!important;padding:8px 14px!important;white-space:nowrap;background:var(--ars-accent-strong,#b84e08)!important;color:#fff!important;border-color:var(--ars-accent-strong,#b84e08)!important;font-weight:750!important}
.arf-booking-inline-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:7px;font-size:.78rem;color:#66696d}
.arf-booking-inline-meta .arf-compact-availability{margin:0;min-width:0}
.arf-booking-inline-meta .arf-stock-badge{flex:none}
/* Legacy calendar code may exist in cached markup from earlier revisions; never let it open over REV015. */
.arf-range-trigger,.arf-range-popover{display:none!important}
@media(max-width:820px){
 .arf-booking-inline{grid-template-columns:1fr 76px auto}
 .arf-booking-inline-title{grid-column:1/-1;min-height:0;margin-bottom:-2px}
 .arf-native-range{grid-column:1}
}
@media(max-width:620px){
 .arf-booking-inline{grid-template-columns:1fr 72px}
 .arf-native-range{grid-column:1/-1}
 .arf-inline-add{grid-column:1/-1;width:100%}
 .arf-booking-inline-meta{align-items:flex-start;flex-direction:column}
}

/* REV015 – compact native booking controls and tablet-first operations choices */
.arf-compact-booking-card{padding:14px 16px!important;max-width:none!important}
.arf-compact-booking-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}
.arf-compact-booking-head h3{margin:0!important;font-size:1rem!important}.arf-compact-booking-head small{font-size:.74rem;color:#6d7074}
.arf-native-range{display:grid;grid-template-columns:minmax(145px,1fr) 24px minmax(145px,1fr);align-items:end;gap:6px;min-width:0}
.arf-native-date{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px!important;margin:0!important;font-size:.72rem!important;font-weight:750!important;color:#5b5e62}.arf-native-date input{width:100%!important;min-width:0!important;min-height:42px!important;padding:7px 9px!important;border:1px solid #c5c7c9!important;border-radius:0!important;background:#fff!important;font:inherit!important;color:#14181b!important}.arf-native-range-sep{align-self:center;text-align:center;color:#6b6f73;font-weight:800}
.arf-asset-booking--compact .arf-card{box-shadow:none!important}.arf-asset-booking--compact .arf-cart-add-row{display:grid;grid-template-columns:100px minmax(160px,220px);gap:8px;margin-top:9px}.arf-asset-booking--compact .arf-compact-availability{margin-top:7px;font-size:.75rem}
.arf-touch-choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:7px;margin-top:8px}.arf-touch-choice label{display:block!important;margin:0!important}.arf-touch-choice input{position:absolute!important;opacity:0!important;pointer-events:none}.arf-touch-choice label>span{display:flex;align-items:center;justify-content:center;gap:7px;min-height:var(--augite-ctl-md,36px);padding:4px 12px;border:1px solid #c5c7c9;border-radius:0;background:#fff;color:#2f3236;font-size:.79rem;font-weight:750;cursor:pointer;text-align:center}.arf-touch-choice input:checked+span{border-color:var(--arf-ops-green);background:#f0f1f2;color:var(--ars-accent-strong-hover,#9a4307);box-shadow:inset 0 0 0 1px var(--arf-ops-green)}.arf-touch-choice--danger label:last-child input:checked+span{border-color:#a45b26;background:#fff2e9;color:#8b451d;box-shadow:inset 0 0 0 1px #a45b26}.arf-return-outcomes{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));margin-top:6px}.arf-return-outcomes label>span{min-height:52px;flex-direction:column;line-height:1.15}.arf-return-outcomes b{font-size:1rem}.arf-field-label{display:block;font-size:.78rem;font-weight:700;color:var(--arf-ops-text)}
.arf-master-item.is-blocking{grid-template-columns:36px minmax(0,1fr)}.arf-master-item.is-blocking .arf-master-copy{width:100%}
.arf-ops-primary,.arf-ops-secondary,.arf-ops-icon-button{min-height:48px!important}.arf-general-checks label{min-height:48px!important}.arf-master-check{width:25px!important;height:25px!important}
@media(min-width:760px){.arf-asset-booking--compact .arf-compact-booking-card{display:grid!important;grid-template-columns:minmax(230px,.8fr) minmax(330px,1.25fr) auto;align-items:end;gap:12px}.arf-asset-booking--compact .arf-compact-booking-head{margin:0}.arf-asset-booking--compact .arf-cart-add-row{margin:0;grid-template-columns:82px minmax(150px,190px)}.arf-asset-booking--compact .arf-compact-availability,.arf-asset-booking--compact .arf-result{grid-column:1/-1;margin:0}.arf-asset-booking--compact .arf-native-range{align-self:end}}
@media(max-width:620px){.arf-native-range{grid-template-columns:1fr}.arf-native-range-sep{display:none}.arf-native-date{grid-template-columns:52px 1fr}.arf-touch-choice,.arf-return-outcomes{grid-template-columns:1fr 1fr}.arf-touch-choice label>span{min-height:52px}.arf-asset-booking--compact .arf-cart-add-row{grid-template-columns:90px 1fr}}

/* REV015 shared access / permission notice */
.arf-access-shell{max-width:1180px;margin:22px auto 48px}
.arf-access-card{padding:26px 28px!important}
.arf-access-head{display:grid;grid-template-columns:68px minmax(0,1fr);gap:18px;align-items:start}
.arf-access-head h1,.arf-access-head h2{margin:3px 0 8px;font-size:clamp(1.7rem,3vw,2.25rem);color:#14181b}.arf-access-head p{margin:0;color:#5b5e62;max-width:78ch}
.arf-access-icon,.arf-access-mini{display:grid;place-items:center;color:var(--ars-accent-strong,#b84e08);background:#f2f3f4;border:1px solid #e1e2e4}
.arf-access-icon{width:68px;height:68px;border-radius:0}.arf-access-icon svg{width:32px;height:32px}
.arf-access-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}
.arf-access-grid article{display:grid;grid-template-columns:38px 1fr;gap:11px;padding:15px;border:1px solid #dadde0;border-radius:0;background:#fbfbfa}
.arf-access-grid article strong{display:block;margin-bottom:3px;color:#14181b}.arf-access-grid article p{margin:0;color:#6b6f73;font-size:.9rem;line-height:1.4}
.arf-access-mini{width:38px;height:38px;border-radius:0}.arf-access-mini svg{width:18px;height:18px}
.arf-access-actions{margin-top:18px}.arf-access-link{display:inline-flex!important;align-items:center!important;justify-content:center;gap:8px;min-height:46px;padding:9px 14px;border-radius:0;text-decoration:none!important;font-weight:750}
.arf-access-link.arf-primary{background:var(--ars-accent-strong,#b84e08);color:#fff!important;border:1px solid #b84e08}.arf-access-link.arf-primary svg{width:18px;height:18px}
.arf-access-link.arf-secondary-link{border:1px solid #c0c2c4;background:#fff;color:var(--ars-accent-strong,#b84e08)!important}
@media(max-width:760px){.arf-access-grid{grid-template-columns:1fr}.arf-access-card{padding:20px!important}}
@media(max-width:520px){.arf-access-head{grid-template-columns:52px 1fr}.arf-access-icon{width:52px;height:52px;border-radius:0}.arf-access-actions{display:grid}.arf-access-link{width:100%}}

/* REV015 – tablet photo metadata controls */
.arf-media-meta{grid-template-columns:minmax(220px,1fr) minmax(240px,1.25fr) minmax(220px,1fr)!important;align-items:start!important}
.arf-media-choice{min-width:0}.arf-media-choice>.arf-field-label{margin-bottom:5px}
.arf-touch-choice--chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:0}.arf-touch-choice--chips label>span{min-height:var(--augite-ctl-md,36px);padding:4px 10px;white-space:nowrap}
.arf-touch-choice--binary{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}.arf-touch-choice--binary label>span{min-height:var(--augite-ctl-md,36px)}
/* REQ-MID-RENTAL-ASSET-SWAP-001: Geraetekacheln des Tauschdialogs. Derselbe Radio-Kachel-Baustein wie ueberall
   (.arf-touch-choice), nur linksbuendig und zweizeilig, weil hier Geraetenummer UND Seriennummer lesbar sein muessen;
   der Dialog haengt an document.body, also ausserhalb von .arf-app.arf-ops - deshalb die Touch-Hoehe hier explizit. */
.arf-touch-choice--swap{grid-template-columns:repeat(auto-fit,minmax(196px,1fr));max-height:280px;overflow-y:auto;padding:1px 1px 7px;border-bottom:1px solid #dadde0}
.arf-touch-choice--swap label>span{flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:var(--augite-ctl-touch,48px);padding:7px 12px;text-align:left;font-size:.82rem}
.arf-touch-choice--swap label>span small{font-weight:400;font-size:.76rem;line-height:1.35;color:#50575e}

@media(max-width:900px){.arf-media-meta{grid-template-columns:1fr!important}.arf-media-choice{width:100%}.arf-touch-choice--chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}

/* REV015 final booking-layout contract: one compact row on desktop/tablet. */
.arf-asset-booking--compact.arf-app{max-width:none!important;width:100%;margin:8px 0!important}
.arf-asset-booking--compact .arf-compact-booking-card{display:block!important;width:100%!important;margin:0!important;padding:12px 14px!important}
.arf-asset-booking--compact .arf-booking-inline{display:grid!important;grid-template-columns:auto minmax(330px,1fr) 76px auto!important;gap:9px!important;align-items:end!important}
.arf-asset-booking--compact .arf-native-range{display:grid!important;grid-template-columns:minmax(135px,1fr) 20px minmax(135px,1fr)!important;gap:5px!important}
.arf-asset-booking--compact .arf-native-date{grid-template-columns:auto minmax(0,1fr)!important}
.arf-asset-booking--compact .arf-native-date input,.arf-asset-booking--compact .arf-inline-qty input,.arf-asset-booking--compact .arf-inline-add{min-height:44px!important;height:44px!important}
.arf-asset-booking--compact .arf-booking-inline-meta{margin-top:5px!important;min-height:18px}
@media(max-width:900px){.arf-asset-booking--compact .arf-booking-inline{grid-template-columns:minmax(0,1fr) 76px auto!important}.arf-asset-booking--compact .arf-booking-inline-title{grid-column:1/-1}}
@media(max-width:620px){.arf-asset-booking--compact .arf-booking-inline{grid-template-columns:1fr 72px!important}.arf-asset-booking--compact .arf-native-range{grid-column:1/-1!important;grid-template-columns:1fr!important}.arf-asset-booking--compact .arf-native-range-sep{display:none!important}.arf-asset-booking--compact .arf-inline-add{grid-column:1/-1!important;width:100%!important}}

/* REV017 – Betriebshof shell spacing and compact top scan row */
.arf-app.arf-ops{max-width:1240px!important;width:calc(100% - 40px)!important;margin:24px auto 40px!important}
.arf-app.arf-ops .arf-ops-hero,.arf-app.arf-ops .arf-ops-card{box-sizing:border-box;width:100%}
.arf-app.arf-ops .arf-ops-hero{padding:24px 26px!important;border-radius:0!important}
.arf-app.arf-ops .arf-ops-card{padding:18px 20px!important}

.arf-ops-scanbar{display:grid;grid-template-columns:auto auto minmax(280px,1fr) auto;gap:10px;align-items:end;min-width:0}
.arf-ops-scanbar .arf-ops-secondary,.arf-ops-scanbar .arf-ops-primary{margin:0!important;white-space:nowrap}
.arf-ops-token-inline{display:flex!important;flex-direction:column!important;gap:4px!important;min-width:0;margin:0!important;font-size:.76rem!important;font-weight:700!important;color:var(--arf-ops-text)}
.arf-ops-token-inline>span{display:block;line-height:1.15}
.arf-ops-token-inline input{width:100%!important;min-width:0!important;min-height:48px!important;padding:10px 12px!important;border:1px solid #c5c7c9!important;border-radius:0!important;background:#fff!important}

/* REQ-INTERN-BOOKING-DETAIL-VISUAL-CLARITY-001: pickup-authorization is a 3-item row (scan
 * button, token input, "Prüfen") rather than the asset scanbar's 4 (QR/NFC/token/"Übernehmen"),
 * so it gets its own column count on the shared .arf-ops-scanbar grid/button/input look above
 * instead of forcing a mismatched child count onto the 4-column rule. */
.arf-ops-scanbar--pickup-auth{grid-template-columns:auto minmax(240px,1fr) auto}
.arf-ops-pickup-auth-consume{margin-top:12px}
@media(max-width:620px){.arf-ops-scanbar--pickup-auth{grid-template-columns:1fr}.arf-ops-scanbar--pickup-auth .arf-ops-token-inline{grid-column:1}.arf-ops-scanbar--pickup-auth .arf-ops-secondary,.arf-ops-scanbar--pickup-auth .arf-ops-primary{width:100%}.arf-ops-pickup-auth-consume{width:100%}}
@media(max-width:1100px){
 .arf-app.arf-ops{width:calc(100% - 28px)!important}

 .arf-ops-scanbar{grid-template-columns:auto auto minmax(220px,1fr) auto}
}
@media(max-width:760px){
 .arf-app.arf-ops{width:calc(100% - 20px)!important;margin:16px auto 30px!important}
 .arf-app.arf-ops .arf-ops-hero{padding:20px 18px!important}
 .arf-app.arf-ops .arf-ops-card{padding:16px!important}
 .arf-ops-scanbar{grid-template-columns:1fr 1fr;gap:8px}
 .arf-ops-token-inline{grid-column:1/-1}
}
@media(max-width:560px){
 .arf-ops-scanbar{grid-template-columns:1fr}
 .arf-ops-scanbar .arf-ops-secondary,.arf-ops-scanbar .arf-ops-primary{width:100%}
}

/* REV018 – integrate RentalFlow pages with the website shell; full-width only in WP admin. */
.arf-app{font-family:inherit;box-sizing:border-box}
.arf-app.arf-ops{max-width:1180px!important;width:calc(100% - 40px)!important;margin:24px auto 44px!important;color:#14181b}
.arf-app.arf-ops .arf-ops-hero{border-radius:0!important;box-shadow:none!important}
.arf-app.arf-ops .arf-ops-card{border-radius:0!important;box-shadow:none!important;border-color:#dedfe1!important}
.wp-admin .arf-app.arf-ops{max-width:none!important;width:100%!important;margin:12px 0 28px!important}
/* Nutzerauftrag (2026-09-12): ".arf-ops-scanner" traegt auch die Klasse ".arf-ops-card" (Basis-
 * Kartenstil) - diese generische "Karten sind 100% breit"-Regel (0,4,0 Spezifitaet) schlug damit
 * IMMER die Modal-Chrome-Regel weiter unten in dieser Datei, egal wie hoch deren Spezifitaet
 * gesetzt wurde, und war der reale Grund, warum das Asset-Modal trotz mehrfacher Korrekturen
 * "seitenbreit" blieb. Fix: ":not(.augite-modal)" statt eines weiteren Spezifitaets-
 * Wettruestens - die einzig robuste Lösung, da diese Karten-Regel sonst niemals verlieren kann. */
.wp-admin .arf-app.arf-ops .arf-ops-hero,.wp-admin .arf-app.arf-ops .arf-ops-card:not(.augite-modal){width:100%!important}
.arf-ops-assignment-callout{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:start;margin:14px 0;padding:13px 14px;border:1px solid #caccce;border-left:4px solid var(--arf-ops-green);border-radius:0;background:#f6f7f8;color:var(--ars-ink,#14181b)}
.arf-ops-assignment-callout .arf-ui-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:0;background:#ebedee;color:var(--arf-ops-green)}
.arf-ops-assignment-callout strong{display:block;margin:0 0 3px}.arf-ops-assignment-callout span{display:block;color:#5f6367;font-size:.88rem;line-height:1.4}
.arf-resolve-card.is-assignment{border-color:#b9bbbd;background:#f4f5f6}
@media(max-width:760px){.arf-app.arf-ops{width:calc(100% - 20px)!important;margin:14px auto 30px!important}.wp-admin .arf-app.arf-ops{width:100%!important;margin:8px 0 24px!important}}

/* REV018 – definitive compact asset booking bar; neutralize legacy grid collisions. */
.arf-asset-booking--compact .arf-booking-inline{display:grid!important;grid-template-columns:minmax(105px,auto) minmax(320px,1fr) 72px auto!important;gap:10px!important;align-items:end!important;width:100%!important}
.arf-asset-booking--compact .arf-booking-inline-title{display:flex!important;align-items:center!important;min-height:44px!important;margin:0!important;padding:0!important;white-space:nowrap!important}
.arf-asset-booking--compact .arf-native-range{display:grid!important;grid-template-columns:minmax(135px,1fr) 18px minmax(135px,1fr)!important;gap:6px!important;align-items:end!important;width:100%!important;min-width:0!important}
.arf-asset-booking--compact .arf-native-date{display:grid!important;grid-template-columns:1fr!important;gap:4px!important;margin:0!important;min-width:0!important}
.arf-asset-booking--compact .arf-native-date>span,.arf-asset-booking--compact .arf-inline-qty>span{display:block!important;font-size:.72rem!important;line-height:1.1!important;color:#5b5e62!important;font-weight:700!important}
.arf-asset-booking--compact .arf-native-date input{display:block!important;width:100%!important;min-width:0!important;max-width:none!important;height:44px!important;min-height:44px!important;padding:7px 9px!important;box-sizing:border-box!important}
.arf-asset-booking--compact .arf-native-range-sep{display:flex!important;align-items:center!important;justify-content:center!important;height:44px!important;align-self:end!important}
.arf-asset-booking--compact .arf-inline-qty{display:grid!important;grid-template-columns:1fr!important;gap:4px!important;margin:0!important;min-width:0!important}
.arf-asset-booking--compact .arf-inline-qty input{width:72px!important;height:44px!important;margin:0!important}
.arf-asset-booking--compact .arf-inline-add{height:44px!important;min-height:44px!important;margin:0!important;align-self:end!important}
@media(max-width:900px){.arf-asset-booking--compact .arf-booking-inline{grid-template-columns:1fr 72px auto!important}.arf-asset-booking--compact .arf-booking-inline-title{grid-column:1/-1!important;min-height:28px!important}.arf-asset-booking--compact .arf-native-range{grid-column:1!important}}
@media(max-width:620px){.arf-asset-booking--compact .arf-booking-inline{grid-template-columns:1fr 72px!important}.arf-asset-booking--compact .arf-native-range{grid-column:1/-1!important;grid-template-columns:1fr!important}.arf-asset-booking--compact .arf-native-range-sep{display:none!important}.arf-asset-booking--compact .arf-inline-add{grid-column:1/-1!important;width:100%!important}}

/* REV018 – public RentalFlow modules follow the same centered website content width. */
.arf-access-shell,.arf-withdrawal.arf-app,.arf-portal.arf-app,.arf-cart-page.arf-app,.arf-checkout.arf-app{max-width:1180px!important;width:calc(100% - 40px)!important;margin:24px auto 48px!important}
.arf-access-shell .arf-card,.arf-withdrawal .arf-card,.arf-portal .arf-card,.arf-cart-page .arf-card,.arf-checkout .arf-card{box-shadow:none!important;border-color:#dedfe1!important}
@media(max-width:760px){.arf-access-shell,.arf-withdrawal.arf-app,.arf-portal.arf-app,.arf-cart-page.arf-app,.arf-checkout.arf-app{width:calc(100% - 20px)!important;margin:14px auto 30px!important}}

/* REV019 – definitive storefront booking bar. Keep the asset-detail control compact and independent of theme label/grid rules. */
.arf-asset-booking--compact.arf-app{width:100%!important;max-width:none!important;margin:8px 0!important}
.arf-asset-booking--compact .arf-compact-booking-card{display:block!important;width:100%!important;min-width:0!important;min-height:0!important;margin:0!important;padding:12px 14px!important;box-sizing:border-box!important;border-radius:0!important;overflow:visible!important}
.arf-asset-booking--compact .arf-booking-inline--compact{display:grid!important;grid-template-columns:minmax(115px,1fr) minmax(115px,1fr) 68px max-content!important;gap:10px!important;align-items:end!important;width:100%!important;min-width:0!important;margin:0!important;padding:0!important}
.arf-asset-booking--compact .arf-booking-inline--compact>.arf-native-date,.arf-asset-booking--compact .arf-booking-inline--compact>.arf-inline-qty{display:grid!important;grid-template-columns:1fr!important;grid-auto-flow:row!important;align-items:stretch!important;gap:4px!important;width:100%!important;min-width:0!important;max-width:none!important;margin:0!important;padding:0!important;box-sizing:border-box!important}
.arf-asset-booking--compact .arf-booking-inline--compact label>span{display:block!important;width:auto!important;height:auto!important;margin:0!important;padding:0!important;font-size:.72rem!important;font-weight:750!important;line-height:1.15!important;color:#5b5e62!important;white-space:nowrap!important}
.arf-asset-booking--compact .arf-booking-inline--compact input[type="date"],.arf-asset-booking--compact .arf-booking-inline--compact input[type="number"]{display:block!important;position:static!important;float:none!important;width:100%!important;min-width:0!important;max-width:none!important;height:44px!important;min-height:44px!important;margin:0!important;padding:7px 9px!important;box-sizing:border-box!important;border:1px solid #c5c7c9!important;border-radius:0!important;background:#fff!important;color:#14181b!important;font:inherit!important;line-height:1.2!important}
.arf-asset-booking--compact .arf-booking-inline--compact .arf-inline-qty input[type="number"]{text-align:center!important;padding-inline:5px!important}
.arf-asset-booking--compact .arf-booking-inline--compact .arf-inline-add{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:auto!important;min-width:145px!important;max-width:none!important;height:44px!important;min-height:44px!important;margin:0!important;padding:8px 14px!important;align-self:end!important;white-space:nowrap!important;box-sizing:border-box!important}
.arf-asset-booking--compact .arf-booking-inline-meta{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;min-height:18px!important;margin:7px 0 0!important;padding:0!important;font-size:.76rem!important;line-height:1.35!important}
.arf-asset-booking--compact .arf-compact-availability{margin:0!important;min-height:0!important}
.arf-asset-booking--compact .arf-result:empty{display:none!important}
.arf-cart-added{display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap}.arf-cart-added strong{color:#21603b;display:inline-flex;align-items:center;gap:6px}.arf-cart-added a{font-weight:750}.arf-cart-added .arf-portal-icon{width:18px;height:18px;flex:none}
@media(max-width:700px){
 .arf-asset-booking--compact .arf-booking-inline--compact{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 68px!important}
 .arf-asset-booking--compact .arf-booking-inline--compact .arf-inline-add{grid-column:1/-1!important;width:100%!important;min-width:0!important}
}
@media(max-width:480px){
 .arf-asset-booking--compact .arf-booking-inline--compact{grid-template-columns:1fr 1fr!important}
 .arf-asset-booking--compact .arf-booking-inline--compact .arf-inline-qty{grid-column:1!important}
 .arf-asset-booking--compact .arf-booking-inline--compact .arf-inline-add{grid-column:2!important;width:100%!important}
 .arf-asset-booking--compact .arf-booking-inline-meta{align-items:flex-start!important;flex-direction:column!important}
}

/* REV020 – robust storefront booking controls using flexbox and neutral wrappers. */
.arf-asset-booking--compact .arf-booking-inline--compact{
 display:flex!important;align-items:flex-end!important;gap:10px!important;width:100%!important;min-width:0!important;flex-wrap:nowrap!important;
}
.arf-asset-booking--compact .arf-booking-field{display:flex!important;flex-direction:column!important;gap:4px!important;min-width:0!important;margin:0!important;padding:0!important;box-sizing:border-box!important}
.arf-asset-booking--compact .arf-booking-field--date{flex:1 1 0!important;width:0!important;min-width:0!important}
.arf-asset-booking--compact .arf-booking-field--qty{flex:0 0 72px!important;width:72px!important}
.arf-asset-booking--compact .arf-booking-field-label{display:block!important;margin:0!important;padding:0!important;font-size:.72rem!important;font-weight:750!important;line-height:1.15!important;color:#5b5e62!important}
.arf-asset-booking--compact .arf-booking-field input{display:block!important;position:static!important;float:none!important;width:100%!important;min-width:0!important;max-width:none!important;height:44px!important;min-height:44px!important;margin:0!important;padding:7px 9px!important;box-sizing:border-box!important;border:1px solid #c5c7c9!important;border-radius:0!important;background:#fff!important;color:#14181b!important;font:inherit!important;line-height:1.2!important}
.arf-asset-booking--compact .arf-booking-field--qty input{text-align:center!important;padding-inline:5px!important}
.arf-asset-booking--compact .arf-inline-add{flex:0 0 auto!important;width:auto!important;min-width:145px!important;height:44px!important;min-height:44px!important;margin:0!important;align-self:flex-end!important}
@media(max-width:660px){
 .arf-asset-booking--compact .arf-booking-inline--compact{flex-wrap:wrap!important}
 .arf-asset-booking--compact .arf-booking-field--date{flex:1 1 calc(50% - 5px)!important;width:auto!important;min-width:130px!important}
 .arf-asset-booking--compact .arf-booking-field--qty{flex:0 0 76px!important}
 .arf-asset-booking--compact .arf-inline-add{flex:1 1 180px!important;min-width:160px!important}
}
@media(max-width:440px){
 .arf-asset-booking--compact .arf-booking-field--date{flex:1 1 100%!important;width:100%!important}
 .arf-asset-booking--compact .arf-booking-field--qty{flex:0 0 76px!important}
 .arf-asset-booking--compact .arf-inline-add{flex:1 1 calc(100% - 86px)!important;min-width:0!important}
}

/* REV020 – plugin-owned cart entry point, present on every public page regardless of fill level. */
.arf-floating-cart{position:fixed;right:18px;bottom:76px;z-index:99980;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 12px;border:1px solid #b84e08;border-radius:0;background:var(--ars-accent-strong,#b84e08);color:#fff!important;text-decoration:none!important;font-family:inherit;font-weight:750;box-shadow:0 5px 18px rgba(20,24,27,.18)}
.arf-floating-cart:hover,.arf-floating-cart:focus{background:var(--ars-accent-strong-hover,#9a4307);color:#fff!important}.arf-floating-cart__icon{font-size:1rem;line-height:1}.arf-floating-cart__count{display:grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:0;background:#fff;color:var(--ars-accent-strong,#b84e08);font-size:.78rem;font-weight:850}
@media(max-width:600px){.arf-floating-cart{right:10px;bottom:72px;padding:9px 10px}.arf-floating-cart__label{display:none}}

/* REV020 – cart page must remain visibly structured even before JS finishes. */
.arf-cart-page .arf-cart-shell{min-height:230px!important}.arf-cart-page [data-arf-cart-body]{min-height:78px}.arf-cart-page [data-arf-cart-body]:empty:before{content:'Warenkorb wird geladen …';display:block;padding:20px;text-align:center;color:#6b6f73}

/* REV021 – storefront theme contract. Public RentalFlow UI follows the active augite Rental template. */
body:not(.wp-admin) .arf-app{
 --arf-theme-green:var(--ars-green,#d9600a);
 --arf-theme-ink:var(--ars-ink,#14181b);
 --arf-theme-text:var(--ars-text,#3e4144);
 --arf-theme-muted:var(--ars-muted,#6b6f73);
 --arf-theme-line:var(--ars-line,#dadde0);
 --arf-theme-soft:var(--ars-soft,#f4f5f6);
 color:var(--arf-theme-ink);font-family:inherit;
}
body:not(.wp-admin) .arf-theme-page{width:min(1180px,calc(100% - 48px))!important;max-width:1180px!important;margin:42px auto 56px!important}
body:not(.wp-admin) .arf-theme-surface,
body:not(.wp-admin) .arf-asset-booking--compact .arf-theme-widget,
body:not(.wp-admin) .arf-app:not(.arf-ops) .arf-card{
 background:#fff!important;border:1px solid var(--arf-theme-line)!important;border-radius:0!important;box-shadow:none!important;
}
body:not(.wp-admin) .arf-theme-surface{padding:24px 26px}
body:not(.wp-admin) .arf-theme-page h1{margin:4px 0 12px!important;color:var(--arf-theme-ink)!important;font-size:clamp(2rem,3.6vw,3rem)!important;line-height:1.04!important;letter-spacing:-.032em!important}
body:not(.wp-admin) .arf-theme-page h2{color:var(--arf-theme-ink)!important;letter-spacing:-.02em}
body:not(.wp-admin) .arf-theme-page h3{color:var(--arf-theme-ink)!important}
body:not(.wp-admin) .arf-eyebrow,body:not(.wp-admin) .arf-eyebrow.ars-kicker{display:block;margin:0 0 8px!important;color:var(--ars-accent-strong,#b84e08)!important;font-size:.76rem!important;font-weight:850!important;letter-spacing:.16em!important;text-transform:uppercase!important}
body:not(.wp-admin) .arf-muted{color:var(--arf-theme-muted)!important;opacity:1!important}

/* Reuse the theme button vocabulary, with an internal fallback if another theme is active. */
body:not(.wp-admin) .arf-app .ars-btn,body:not(.wp-admin) .arf-floating-cart.ars-btn{
 display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid var(--arf-theme-green,#d9600a)!important;border-radius:0!important;background:#fff;color:var(--ars-ink,#14181b)!important;font:inherit;font-weight:750;text-decoration:none!important;box-shadow:none!important;cursor:pointer
}
body:not(.wp-admin) .arf-app .ars-btn--solid,body:not(.wp-admin) .arf-floating-cart.ars-btn--solid{background:var(--ars-accent-strong,#b84e08)!important;color:#fff!important}
body:not(.wp-admin) .arf-app .ars-btn--ghost{background:#fff!important;color:var(--ars-accent-strong,#b84e08)!important}
body:not(.wp-admin) .arf-app .ars-btn:hover,body:not(.wp-admin) .arf-floating-cart.ars-btn:hover{filter:brightness(.98)}
body:not(.wp-admin) .arf-app button:not(.arf-link-danger):not(.arf-link-button),body:not(.wp-admin) .arf-app .arf-button-link{border-radius:0!important;box-shadow:none!important}

/* Theme-shaped fields: rectangular, restrained, and aligned with the catalog filters. */
body:not(.wp-admin) .arf-app input:not([type="radio"]):not([type="checkbox"]),
body:not(.wp-admin) .arf-app select,
body:not(.wp-admin) .arf-app textarea{
 border:1px solid #b2b4b7!important;border-radius:0!important;background:#fff!important;color:var(--arf-theme-text)!important;box-shadow:none!important;font:inherit!important
}
body:not(.wp-admin) .arf-app input:focus,body:not(.wp-admin) .arf-app select:focus,body:not(.wp-admin) .arf-app textarea:focus{outline:2px solid rgba(217,96,10,.18)!important;outline-offset:1px;border-color:var(--arf-theme-green)!important}

/* Asset detail booking control: same visual language as the surrounding asset detail page. */
body:not(.wp-admin) .arf-asset-booking--compact.arf-app{margin:8px 0!important;width:100%!important;max-width:none!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-theme-widget{padding:16px 14px!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-field-label{color:var(--arf-theme-muted)!important;font-size:.69rem!important;font-weight:850!important;letter-spacing:.04em!important;text-transform:uppercase!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-field input{height:44px!important;min-height:44px!important;padding:8px 10px!important;border-color:#b2b4b7!important;border-radius:0!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-inline-add{height:44px!important;min-height:44px!important;border-radius:0!important;background:var(--ars-accent-strong,#b84e08)!important;border-color:var(--ars-accent-strong,#b84e08)!important;color:#fff!important;font-weight:750!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-inline-meta{margin-top:8px!important;color:var(--arf-theme-muted)!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-compact-availability.is-available{color:#21603b!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-cart-added a{color:var(--ars-accent-strong,#b84e08)!important;text-decoration:underline;text-underline-offset:2px}

/* Cart: editorial shell, not a rounded application card. */
body:not(.wp-admin) .arf-cart-page .arf-cart-shell{padding:28px 0 0!important;border:0!important;background:transparent!important;min-height:230px!important}
body:not(.wp-admin) .arf-cart-page .arf-cart-head{margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid var(--arf-theme-line)}
body:not(.wp-admin) .arf-cart-page .arf-cart-head h1{margin-bottom:8px!important}
body:not(.wp-admin) .arf-cart-page .arf-cart-head p{max-width:70ch;color:var(--arf-theme-muted);opacity:1}
body:not(.wp-admin) .arf-cart-page .arf-cart-period{max-width:620px;margin:0 0 24px;padding:16px 18px;border:1px solid var(--arf-theme-line);background:#fff}
body:not(.wp-admin) .arf-cart-page .arf-native-range{grid-template-columns:1fr 1fr!important;gap:10px!important}
body:not(.wp-admin) .arf-cart-page .arf-native-range-sep{display:none!important}
body:not(.wp-admin) .arf-cart-page .arf-native-date{grid-template-columns:1fr!important;gap:5px!important}
body:not(.wp-admin) .arf-cart-page .arf-native-date>span{color:var(--arf-theme-muted)!important;font-size:.69rem!important;font-weight:850!important;letter-spacing:.04em!important;text-transform:uppercase!important}
body:not(.wp-admin) .arf-cart-page .arf-native-date input{height:42px!important;min-height:42px!important;border-radius:0!important}
body:not(.wp-admin) .arf-cart-period-summary{border-radius:0!important;background:var(--arf-theme-soft)!important;border-color:var(--arf-theme-line)!important}
body:not(.wp-admin) .arf-cart-items{border-top:1px solid var(--arf-theme-line)}
body:not(.wp-admin) .arf-cart-item{padding:15px 2px!important;border-bottom:1px solid var(--arf-theme-line)!important}
body:not(.wp-admin) .arf-cart-item-controls input[type=number]{border-radius:0!important}
body:not(.wp-admin) .arf-cart-required,body:not(.wp-admin) .arf-cart-recommendations,body:not(.wp-admin) .arf-cart-safety,body:not(.wp-admin) .arf-cart-rec,body:not(.wp-admin) .arf-cart-page .arf-empty-state{border-radius:0!important;box-shadow:none!important}
body:not(.wp-admin) .arf-cart-recommendations,body:not(.wp-admin) .arf-cart-safety{background:var(--arf-theme-soft)!important;border-color:var(--arf-theme-line)!important}
body:not(.wp-admin) .arf-cart-rec{border-color:var(--arf-theme-line)!important}
body:not(.wp-admin) .arf-cart-page .arf-empty-state{padding:30px 26px!important;text-align:left!important;background:#fff!important;border:1px solid var(--arf-theme-line)!important}
body:not(.wp-admin) .arf-cart-actions{margin-top:24px;padding-top:18px;border-top:1px solid var(--arf-theme-line)}
body:not(.wp-admin) .arf-cart-required>strong,body:not(.wp-admin) .arf-cart-safety>strong,body:not(.wp-admin) .arf-cart-recommendations>strong{display:flex;align-items:center;gap:8px}
body:not(.wp-admin) .arf-cart-required .arf-portal-icon{color:#8a5a00}
body:not(.wp-admin) .arf-cart-safety .arf-portal-icon,body:not(.wp-admin) .arf-cart-recommendations>strong .arf-portal-icon{color:var(--arf-theme-green)}
body:not(.wp-admin) .arf-cart-safety-note{display:flex;align-items:flex-start;gap:8px}
body:not(.wp-admin) .arf-cart-safety-note .arf-portal-icon{color:var(--arf-theme-green);margin-top:1px}
body:not(.wp-admin) .arf-cart-page .arf-empty-state{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
body:not(.wp-admin) .arf-cart-page .arf-empty-state .arf-portal-icon{width:32px;height:32px;color:var(--arf-theme-green)}
body:not(.wp-admin) .arf-cart-rec{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:10px}
body:not(.wp-admin) .arf-cart-rec .arf-portal-icon{color:var(--arf-theme-green);margin-top:2px}
body:not(.wp-admin) .arf-cart-rec-body{display:grid;gap:2px;text-align:left}

/* Checkout / withdrawal / customer portal adopt the same flat content sections. */
body:not(.wp-admin) .arf-checkout-layout{gap:24px!important}
body:not(.wp-admin) .arf-checkout-form,body:not(.wp-admin) .arf-checkout-summary,body:not(.wp-admin) .arf-withdrawal-shell{border-radius:0!important;box-shadow:none!important}
body:not(.wp-admin) .arf-checkout-form{padding:26px!important}
body:not(.wp-admin) .arf-checkout-summary{padding:22px!important;top:92px!important}
body:not(.wp-admin) .arf-fieldset{border-radius:0!important;border-color:var(--arf-theme-line)!important}
body:not(.wp-admin) .arf-checkout-notice{background:var(--arf-theme-soft)!important;border-left-color:var(--arf-theme-green)!important}
body:not(.wp-admin) .arf-withdrawal-shell{padding:28px 30px!important}
body:not(.wp-admin) .arf-withdrawal-preview{border-radius:0!important;background:var(--arf-theme-soft)!important}
body:not(.wp-admin) .arf-access-card{padding:28px 30px!important;border-radius:0!important;box-shadow:none!important}
body:not(.wp-admin) .arf-access-grid article,body:not(.wp-admin) .arf-portal-section,body:not(.wp-admin) .arf-portal-header,body:not(.wp-admin) .arf-portal-booking,body:not(.wp-admin) .arf-portal-damage,body:not(.wp-admin) .arf-message{border-radius:0!important;box-shadow:none!important}
body:not(.wp-admin) .arf-access-icon,body:not(.wp-admin) .arf-access-mini{border-radius:0!important}
body:not(.wp-admin) .arf-portal-kpis span{border-radius:0!important;background:var(--arf-theme-soft)!important}

/* Floating cart behaves like the existing fixed withdrawal CTA: square, flat and unobtrusive. */
body:not(.wp-admin) .arf-floating-cart{right:18px!important;bottom:78px!important;min-height:42px!important;padding:8px 12px!important;border-radius:0!important;background:var(--ars-accent-strong,#b84e08)!important;border:1px solid var(--ars-accent-strong,#b84e08)!important;color:#fff!important;box-shadow:none!important;font-size:.9rem!important}
body:not(.wp-admin) .arf-floating-cart__icon{display:inline-grid;width:18px;height:18px;place-items:center}
body:not(.wp-admin) .arf-floating-cart__icon svg,body:not(.wp-admin) .arf-cart-link__icon svg{display:block;width:18px;height:18px}
body:not(.wp-admin) .arf-floating-cart__count{min-width:22px;height:22px;border-radius:0;background:#fff;color:var(--ars-accent-strong,#b84e08)}

/* Internal public operations page: retain workflow color semantics but use the site's square card geometry. */
body:not(.wp-admin) .arf-app.arf-ops{width:min(1180px,calc(100% - 48px))!important;max-width:1180px!important;margin:32px auto 52px!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-hero,body:not(.wp-admin) .arf-app.arf-ops .arf-ops-card{border-radius:0!important;box-shadow:none!important}

@media(max-width:760px){
 body:not(.wp-admin) .arf-theme-page,body:not(.wp-admin) .arf-app.arf-ops{width:calc(100% - 28px)!important;margin:24px auto 38px!important}
 body:not(.wp-admin) .arf-theme-surface,body:not(.wp-admin) .arf-checkout-form,body:not(.wp-admin) .arf-checkout-summary,body:not(.wp-admin) .arf-withdrawal-shell,body:not(.wp-admin) .arf-access-card{padding:20px!important}
 body:not(.wp-admin) .arf-cart-page .arf-cart-shell{padding-top:18px!important}
 body:not(.wp-admin) .arf-cart-page .arf-cart-period{padding:14px!important}
}
/* REV021 – final button normalization also covers JS-generated controls. */
body:not(.wp-admin) .arf-app .arf-primary{background:var(--ars-accent-strong,#b84e08)!important;color:#fff!important;border:1px solid var(--ars-accent-strong,#b84e08)!important;border-radius:0!important;box-shadow:none!important;font:inherit!important;font-weight:750!important}
body:not(.wp-admin) .arf-app .arf-secondary{background:#fff!important;color:var(--ars-accent-strong,#b84e08)!important;border:1px solid var(--ars-green,#d9600a)!important;border-radius:0!important;box-shadow:none!important;font:inherit!important;font-weight:750!important}
body:not(.wp-admin) .arf-app .arf-primary:disabled{opacity:.45!important;cursor:not-allowed!important}

/* REV022 – authoritative storefront theme integration.
 * Public RentalFlow output deliberately adopts the active augite Rental template
 * vocabulary (ars-doc-page / ars-shell / ars-section / ars-form / ars-btn).
 * Fallback values keep the plugin usable with another theme, while no public
 * functional page renders an independent "app" visual language anymore.
 */
body:not(.wp-admin) .arf-app{
  --arf-theme-green:var(--ars-green,#d9600a);
  --arf-theme-ink:var(--ars-ink,#14181b);
  --arf-theme-text:var(--ars-text,#3e4144);
  --arf-theme-muted:var(--ars-muted,#6b6f73);
  --arf-theme-line:var(--ars-line,#dadde0);
  --arf-theme-soft:var(--ars-soft,#f4f5f6);
  --arf-theme-paper:var(--ars-paper,#fbfbfa);
  width:auto;max-width:none;margin:0;padding:0;background:transparent;color:var(--arf-theme-ink);font-family:inherit;font-size:inherit;line-height:inherit;
}
body:not(.wp-admin) .arf-theme-page{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;background:transparent!important}
body:not(.wp-admin) .arf-theme-page>.arf-theme-container{
  width:min(1180px,calc(100% - 48px))!important;max-width:1180px!important;margin:0 auto!important;padding:48px 0!important;box-sizing:border-box;
}
body:not(.wp-admin) .arf-theme-page h1{max-width:28ch;margin:0 0 14px!important;color:var(--arf-theme-ink)!important;font-size:clamp(2.05rem,3.7vw,3.2rem)!important;line-height:1.04!important;letter-spacing:-.032em!important}
body:not(.wp-admin) .arf-theme-page h2{color:var(--arf-theme-ink)!important;letter-spacing:-.02em}
body:not(.wp-admin) .arf-theme-page h3{color:var(--arf-theme-ink)!important}
body:not(.wp-admin) .arf-theme-page p{color:inherit}
body:not(.wp-admin) .arf-theme-page .ars-lead{max-width:820px;margin:0 0 22px;color:#505357;font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.5}
body:not(.wp-admin) .arf-eyebrow,body:not(.wp-admin) .arf-eyebrow.ars-kicker{display:block;margin:0 0 10px!important;color:var(--ars-accent-strong,#b84e08)!important;font-size:.76rem!important;font-weight:850!important;letter-spacing:.16em!important;text-transform:uppercase!important}
body:not(.wp-admin) .arf-muted{color:var(--arf-theme-muted)!important;opacity:1!important}

/* Exact template button contract – including controls generated later by JS. */
body:not(.wp-admin) .arf-app .ars-btn,
body:not(.wp-admin) .arf-app .arf-primary,
body:not(.wp-admin) .arf-app .arf-secondary,
body:not(.wp-admin) .arf-floating-cart.ars-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid var(--ars-accent-strong,#b84e08)!important;border-radius:0!important;background:var(--ars-accent-strong,#b84e08)!important;color:#fff!important;font:inherit!important;font-weight:800!important;line-height:1.2;text-decoration:none!important;box-shadow:none!important;cursor:pointer;
}
body:not(.wp-admin) .arf-app .ars-btn--solid,
body:not(.wp-admin) .arf-app .arf-primary,
body:not(.wp-admin) .arf-floating-cart.ars-btn--solid{background:var(--ars-accent-strong,#b84e08)!important;border-color:var(--ars-accent-strong,#b84e08)!important;color:#fff!important}
body:not(.wp-admin) .arf-app .ars-btn--ghost,
body:not(.wp-admin) .arf-app .arf-secondary{background:#fff!important;color:var(--ars-accent-strong,#b84e08)!important}
body:not(.wp-admin) .arf-app .ars-btn:hover,
body:not(.wp-admin) .arf-app .arf-primary:hover,
body:not(.wp-admin) .arf-app .arf-secondary:hover,
body:not(.wp-admin) .arf-floating-cart.ars-btn:hover{filter:brightness(.98)}
body:not(.wp-admin) .arf-app .ars-btn:focus-visible,
body:not(.wp-admin) .arf-app .arf-primary:focus-visible,
body:not(.wp-admin) .arf-app .arf-secondary:focus-visible{outline:2px solid rgba(217,96,10,.28);outline-offset:2px}
body:not(.wp-admin) .arf-app .arf-primary:disabled,body:not(.wp-admin) .arf-app .ars-btn:disabled{opacity:.45!important;cursor:not-allowed!important}

/* Exact template form contract. */
body:not(.wp-admin) .arf-app .ars-form{display:grid;gap:16px;width:100%}
body:not(.wp-admin) .arf-app label{font-family:inherit}
body:not(.wp-admin) .arf-app input:not([type="radio"]):not([type="checkbox"]),
body:not(.wp-admin) .arf-app select,
body:not(.wp-admin) .arf-app textarea{
  box-sizing:border-box;width:100%;min-width:0;border:1px solid #bec0c3!important;border-radius:0!important;background:#fff!important;color:var(--arf-theme-text)!important;box-shadow:none!important;font:inherit!important;
}
body:not(.wp-admin) .arf-app input:not([type="radio"]):not([type="checkbox"]),body:not(.wp-admin) .arf-app select{min-height:46px;padding:10px 12px!important}
body:not(.wp-admin) .arf-app textarea{padding:12px 13px!important;resize:vertical}
body:not(.wp-admin) .arf-app input:focus,body:not(.wp-admin) .arf-app select:focus,body:not(.wp-admin) .arf-app textarea:focus{outline:2px solid rgba(217,96,10,.18)!important;outline-offset:1px;border-color:var(--arf-theme-green)!important}
body:not(.wp-admin) .arf-choice-row{gap:14px}
body:not(.wp-admin) .arf-choice-row label{font-weight:600}
body:not(.wp-admin) .arf-fieldset{padding:16px 18px!important;border:1px solid var(--arf-theme-line)!important;border-radius:0!important;background:#fff!important}
body:not(.wp-admin) .arf-fieldset legend{padding:0 6px;color:var(--arf-theme-ink);font-weight:800}

/* Asset-detail booking module: embedded control, not a foreign application card. */
body:not(.wp-admin) .arf-asset-booking--compact.arf-app{width:100%!important;max-width:none!important;margin:10px 0 0!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-compact-booking-card,
body:not(.wp-admin) .arf-asset-booking--compact .arf-theme-widget{
  width:100%!important;margin:0!important;padding:16px 0 0!important;border:0!important;border-top:1px solid var(--arf-theme-line)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
}
body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-inline--compact{
  display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 74px max-content!important;gap:10px!important;align-items:end!important;width:100%!important;min-width:0!important;flex:none!important;
}
body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-field{display:block!important;min-width:0!important;width:auto!important;max-width:none!important;flex:none!important;margin:0!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-field-label{display:block!important;margin:0 0 5px!important;color:var(--arf-theme-muted)!important;font-size:.68rem!important;font-weight:850!important;letter-spacing:.07em!important;line-height:1.2!important;text-transform:uppercase!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-field input{width:100%!important;min-width:0!important;max-width:none!important;height:44px!important;min-height:44px!important;padding:8px 10px!important;border:1px solid #b2b4b7!important;border-radius:0!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-inline-add{align-self:end!important;width:auto!important;min-width:0!important;height:44px!important;min-height:44px!important;margin:0!important;padding:9px 14px!important;white-space:nowrap!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-inline-meta{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin:8px 0 0!important;min-height:20px;color:var(--arf-theme-muted)!important;font-size:.78rem!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-compact-availability{margin:0!important;min-height:0!important;font-size:inherit!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-result{margin-top:6px!important;padding:0!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-cart-added{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
body:not(.wp-admin) .arf-asset-booking--compact .arf-cart-added a{color:var(--ars-accent-strong,#b84e08)!important;text-decoration:underline;text-underline-offset:2px}

/* Cart page = ordinary theme document/form page. */
body:not(.wp-admin) .arf-cart-page .arf-cart-shell{min-height:230px!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
body:not(.wp-admin) .arf-cart-page .arf-cart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:0 0 30px;padding:0;border:0}
body:not(.wp-admin) .arf-cart-page .arf-cart-head>div{min-width:0}
body:not(.wp-admin) .arf-cart-page .arf-cart-head p{max-width:820px;margin:0;color:#505357;font-size:1.05rem;line-height:1.5}
body:not(.wp-admin) .arf-cart-page .arf-cart-period{display:block;max-width:620px;margin:0 0 30px!important;padding:0!important;border:0!important;background:transparent!important}
body:not(.wp-admin) .arf-cart-page .arf-native-range{display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px!important}
body:not(.wp-admin) .arf-cart-page .arf-native-range-sep{display:none!important}
body:not(.wp-admin) .arf-cart-page .arf-native-date{display:block!important;margin:0!important}
body:not(.wp-admin) .arf-cart-page .arf-native-date>span{display:block;margin:0 0 5px;color:var(--arf-theme-muted)!important;font-size:.68rem!important;font-weight:850!important;letter-spacing:.07em!important;text-transform:uppercase!important}
body:not(.wp-admin) .arf-cart-page .arf-native-date input{height:46px!important;min-height:46px!important}
body:not(.wp-admin) .arf-cart-period-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px;padding:12px 14px!important;border:0!important;border-left:4px solid var(--arf-theme-green)!important;border-radius:0!important;background:var(--arf-theme-soft)!important}
body:not(.wp-admin) .arf-cart-period-summary small{color:var(--arf-theme-muted)}
body:not(.wp-admin) .arf-cart-items{border-top:1px solid var(--arf-theme-line)}
body:not(.wp-admin) .arf-cart-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px 0!important;border:0!important;border-bottom:1px solid var(--arf-theme-line)!important;background:transparent!important}
body:not(.wp-admin) .arf-cart-item>div:first-child strong{display:block;font-size:1rem;color:var(--arf-theme-ink)}
body:not(.wp-admin) .arf-cart-item>div:first-child small{display:block;margin-top:3px;color:var(--arf-theme-muted)}
body:not(.wp-admin) .arf-cart-item-controls{display:flex;align-items:end;gap:12px}
body:not(.wp-admin) .arf-cart-item-controls label{margin:0!important;font-size:.78rem}
body:not(.wp-admin) .arf-cart-item-controls input[type=number]{width:78px!important;height:42px!important;min-height:42px!important}
body:not(.wp-admin) .arf-link-danger{padding:7px 0!important;border:0!important;background:transparent!important;color:#9a2f25!important;text-decoration:underline!important;text-underline-offset:2px}
body:not(.wp-admin) .arf-cart-required,body:not(.wp-admin) .arf-cart-recommendations,body:not(.wp-admin) .arf-cart-safety{margin-top:20px;padding:15px 16px!important;border:0!important;border-left:4px solid var(--arf-theme-green)!important;border-radius:0!important;background:var(--arf-theme-soft)!important;box-shadow:none!important}
body:not(.wp-admin) .arf-cart-rec{border:1px solid var(--arf-theme-line)!important;border-radius:0!important;background:#fff!important;box-shadow:none!important}
body:not(.wp-admin) .arf-cart-page .arf-empty-state{margin-top:8px;padding:26px 0!important;border:0!important;border-top:1px solid var(--arf-theme-line)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;text-align:left!important}
body:not(.wp-admin) .arf-cart-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:26px!important;padding-top:18px!important;border-top:1px solid var(--arf-theme-line)!important}

/* Checkout = same ars-form language, summary as a restrained supporting panel. */
body:not(.wp-admin) .arf-checkout-layout{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(280px,340px)!important;gap:48px!important;align-items:start}
body:not(.wp-admin) .arf-checkout-form{margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
body:not(.wp-admin) .arf-checkout-form>.arf-muted{margin:0 0 18px!important}
body:not(.wp-admin) .arf-checkout-customer{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
body:not(.wp-admin) .arf-checkout-notice{margin:2px 0 0;padding:13px 14px;border:0!important;border-left:5px solid var(--arf-theme-green)!important;border-radius:0!important;background:#f3f4f5!important;color:var(--arf-theme-text)}
body:not(.wp-admin) .arf-privacy-notice-box{display:flex!important;align-items:flex-start!important;gap:10px;border-left-color:#ead49b!important;background:#fff8e5!important}
body:not(.wp-admin) .arf-privacy-notice-box .arf-checkout-notice-icon{flex:0 0 auto;width:20px;height:20px;color:#8a5a00;margin-top:1px}
body:not(.wp-admin) .arf-privacy-notice-box .arf-checkout-notice-icon svg{width:100%;height:100%}
body:not(.wp-admin) .arf-privacy-note{max-width:78ch;color:var(--arf-theme-muted);font-size:.88rem}
body:not(.wp-admin) .arf-checkout-summary{position:sticky!important;top:92px!important;margin:0!important;padding:22px!important;border:1px solid var(--arf-theme-line)!important;border-left:4px solid var(--arf-theme-green)!important;border-radius:0!important;background:#fff!important;box-shadow:none!important}
body:not(.wp-admin) .arf-checkout-summary h3{margin:0 0 14px!important;font-size:1.1rem!important}

/* Withdrawal = standard document page with a standard theme form. */
body:not(.wp-admin) .arf-withdrawal-shell{max-width:940px;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
body:not(.wp-admin) .arf-withdrawal-shell>p{max-width:820px;color:#505357;font-size:1.05rem;line-height:1.5}
body:not(.wp-admin) .arf-withdrawal-form{margin-top:24px}
body:not(.wp-admin) .arf-withdrawal-preview{padding:16px!important;border:0!important;border-left:4px solid var(--arf-theme-green)!important;border-radius:0!important;background:var(--arf-theme-soft)!important;box-shadow:none!important}

/* Customer portal and permission notices: same editorial sections/cards as the theme. */
body:not(.wp-admin) .arf-access-shell{max-width:none!important;margin:0!important}
body:not(.wp-admin) .arf-access-card{margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
body:not(.wp-admin) .arf-access-head{grid-template-columns:58px minmax(0,1fr);gap:18px;align-items:start}
body:not(.wp-admin) .arf-access-icon{width:58px;height:58px;border:1px solid var(--arf-theme-line)!important;border-radius:0!important;background:var(--arf-theme-soft)!important;color:var(--arf-theme-green)!important}
body:not(.wp-admin) .arf-access-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}
body:not(.wp-admin) .arf-access-grid article{padding:18px 20px!important;border:1px solid var(--arf-theme-line)!important;border-radius:0!important;background:#fff!important;box-shadow:none!important}
body:not(.wp-admin) .arf-access-mini{border-radius:0!important}
body:not(.wp-admin) .arf-access-actions{margin-top:22px!important}
body:not(.wp-admin) .arf-portal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;margin:0 0 30px!important;padding:0 0 24px!important;border:0!important;border-bottom:1px solid var(--arf-theme-line)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
body:not(.wp-admin) .arf-portal-header h1{margin-bottom:8px!important}
body:not(.wp-admin) .arf-portal-header .ars-lead{margin:0!important;font-size:1rem!important}
body:not(.wp-admin) .arf-portal-kpis{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
body:not(.wp-admin) .arf-portal-kpis span{min-width:118px;padding:10px 12px;border:1px solid var(--arf-theme-line)!important;border-radius:0!important;background:var(--arf-theme-soft)!important}
body:not(.wp-admin) .arf-portal-section{margin:0!important;padding:24px 0!important;border:0!important;border-top:1px solid var(--arf-theme-line)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
body:not(.wp-admin) .arf-portal-section .ars-doc-section__heading{margin-bottom:12px}
body:not(.wp-admin) .arf-portal-section .ars-doc-section__heading h2{margin:0!important;font-size:1.16rem!important;line-height:1.25!important;letter-spacing:0!important}
body:not(.wp-admin) .arf-portal-booking,body:not(.wp-admin) .arf-portal-damage{border:1px solid var(--arf-theme-line)!important;border-radius:0!important;background:#fff!important;box-shadow:none!important}
body:not(.wp-admin) .arf-message{border:1px solid var(--arf-theme-line)!important;border-radius:0!important;box-shadow:none!important}
body:not(.wp-admin) .arf-portal-message-form{margin-top:20px}

/* Floating cart = native theme CTA geometry, no separate plugin chrome. */
body:not(.wp-admin) .arf-floating-cart{right:18px!important;bottom:78px!important;z-index:81!important;min-height:44px!important;padding:10px 14px!important;border:1px solid var(--ars-accent-strong,#b84e08)!important;border-radius:0!important;background:var(--ars-accent-strong,#b84e08)!important;color:#fff!important;box-shadow:none!important;font-family:inherit!important;font-weight:800!important}
body:not(.wp-admin) .arf-floating-cart__icon{display:inline-grid;width:18px;height:18px;place-items:center}
body:not(.wp-admin) .arf-floating-cart__icon svg,body:not(.wp-admin) .arf-cart-link__icon svg{display:block;width:18px;height:18px}
body:not(.wp-admin) .arf-floating-cart__count{min-width:22px;height:22px;border-radius:0;background:#fff;color:var(--ars-accent-strong,#b84e08)}

/* Public operations keeps workflow semantics but uses the template shell and geometry. */
body:not(.wp-admin) .arf-app.arf-ops.arf-theme-page{width:100%!important;max-width:none!important;margin:0!important}
body:not(.wp-admin) .arf-app.arf-ops>.arf-theme-container{width:min(1180px,calc(100% - 48px))!important;max-width:1180px!important;margin:0 auto!important;padding:38px 0 52px!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-hero{border-radius:0!important;box-shadow:none!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-card{border-radius:0!important;box-shadow:none!important}

/* The same operations shortcode is rendered inside wp-admin: there the plugin must
 * use all available admin workspace width and never inherit storefront shell margins. */
body.wp-admin .arf-app.arf-ops.arf-theme-page{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}
body.wp-admin .arf-app.arf-ops>.arf-theme-container{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}

@media(max-width:900px){
  body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-inline--compact{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 72px!important}
  body:not(.wp-admin) .arf-asset-booking--compact .arf-inline-add{grid-column:1/-1!important;width:100%!important}
  body:not(.wp-admin) .arf-checkout-layout{grid-template-columns:1fr!important;gap:30px!important}
  body:not(.wp-admin) .arf-checkout-summary{position:static!important}
  body:not(.wp-admin) .arf-access-grid{grid-template-columns:1fr!important}
}
@media(max-width:760px){
  body:not(.wp-admin) .arf-theme-page>.arf-theme-container,body:not(.wp-admin) .arf-app.arf-ops>.arf-theme-container{width:calc(100% - 28px)!important;padding:32px 0 40px!important}
  body:not(.wp-admin) .arf-cart-page .arf-cart-head,body:not(.wp-admin) .arf-portal-header{flex-direction:column;align-items:flex-start}
  body:not(.wp-admin) .arf-cart-actions{align-items:stretch;flex-direction:column}
  body:not(.wp-admin) .arf-cart-actions .ars-btn{width:100%}
  body:not(.wp-admin) .arf-checkout-customer{grid-template-columns:1fr!important}
}
@media(max-width:560px){
  body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-inline--compact{grid-template-columns:1fr 1fr!important}
  body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-field--qty{grid-column:1!important}
  body:not(.wp-admin) .arf-asset-booking--compact .arf-inline-add{grid-column:2!important;width:100%!important}
  body:not(.wp-admin) .arf-cart-page .arf-native-range{grid-template-columns:1fr!important}
  body:not(.wp-admin) .arf-cart-item{grid-template-columns:1fr!important}
  body:not(.wp-admin) .arf-cart-item-controls{justify-content:space-between}
  body:not(.wp-admin) .arf-portal-kpis{width:100%;justify-content:flex-start}
}

/* REV022 – public operations buttons also use the storefront button geometry. */
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-primary,
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-secondary,
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-icon-button,
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-access-link{
  min-height:44px!important;padding:10px 16px!important;border-radius:0!important;box-shadow:none!important;font:inherit!important;font-weight:750!important;
}
/* REQ-RENTALINVOICE-ACTION-LABEL-CLARITY-001 (2026-09-14, LIVE-TASK-2026-09-14-110 measured live):
 * the icon-only modifier further up declares width/padding:0 with !important, but the REV022 rule
 * directly above is more specific (body:not(.wp-admin) .arf-app.arf-ops .arf-ops-secondary) and
 * therefore won on /intern/ - measured on /intern/rentalinvoice/: 38x44 px, padding 10px 16px, and
 * 38x94 px in rows whose action cell is taller, i.e. exactly not the requested small SQUARE button.
 * Same defect class this file already documents elsewhere: a low-specificity modifier losing to a
 * broad component rule. Fixed at the same specificity level instead of raising !important noise.
 * 44px is deliberate (not the 38px of the base modifier): it is the touch-target floor the
 * component rules above already use, so the button is square AND still tappable. align-self keeps
 * it from being stretched to the height of a tall table cell. */
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-primary.arf-ops-icon-only,
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-secondary.arf-ops-icon-only{
  width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;
  max-height:44px!important;padding:0!important;gap:0!important;flex:0 0 auto!important;align-self:center!important;
}
/* wave 12: selector restored - 38eb230 had pasted the icon-only block above into the middle of this selector
 * ("body:not(.wp-admin) .arf-" ... "app.arf-ops .arf-ops-primary,"), so the primary button accent rule matched nothing. */
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-primary,
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-icon-button{background:var(--ars-accent-strong,#b84e08)!important;border-color:var(--ars-accent-strong,#b84e08)!important;color:#fff!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-secondary,
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-access-link:not(.arf-ops-primary){background:#fff!important;border:1px solid var(--ars-green,#d9600a)!important;color:var(--ars-accent-strong,#b84e08)!important}

/* REV022 – public workflow subcomponents follow the same square template geometry. */
body:not(.wp-admin) .arf-app.arf-ops .arf-work-asset,
body:not(.wp-admin) .arf-app.arf-ops .arf-master-item,
body:not(.wp-admin) .arf-app.arf-ops .arf-return-asset,
body:not(.wp-admin) .arf-app.arf-ops .arf-media-box,
body:not(.wp-admin) .arf-app.arf-ops .arf-camera-stage,
body:not(.wp-admin) .arf-app.arf-ops .arf-resolve-card,
body:not(.wp-admin) .arf-app.arf-ops .arf-process-footer,
body:not(.wp-admin) .arf-app.arf-ops .arf-photo-thumb,
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-access-item,
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-access-icon,
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-access-mini,
body:not(.wp-admin) .arf-app.arf-ops .arf-touch-choice label>span,
body:not(.wp-admin) .arf-app.arf-ops .arf-signature-pad canvas,
body:not(.wp-admin) .arf-portal-media img{border-radius:0!important;box-shadow:none!important}

/* REV023 – final storefront form contract: checkout/account and embedded booking use the active ars template. */
body:not(.wp-admin) .arf-checkout-page-head{margin:0 0 34px!important;max-width:900px}
body:not(.wp-admin) .arf-checkout-page-head h1{margin:0 0 14px!important}
body:not(.wp-admin) .arf-checkout-page-head .ars-lead{margin:0!important;max-width:78ch!important;color:#505357!important}
body:not(.wp-admin) .arf-checkout-layout{grid-template-columns:minmax(0,1fr) minmax(290px,330px)!important;gap:42px!important}
body:not(.wp-admin) .arf-checkout-form{display:block!important;max-width:none!important;width:100%!important}
body:not(.wp-admin) .arf-checkout-section{margin:0 0 30px!important;padding:0 0 28px!important;border:0!important;border-bottom:1px solid var(--arf-theme-line)!important;background:transparent!important}
body:not(.wp-admin) .arf-checkout-section-head{display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;align-items:start;margin:0 0 18px}
body:not(.wp-admin) .arf-checkout-section-head--compact{margin-bottom:14px}
body:not(.wp-admin) .arf-checkout-section-head h2{margin:0 0 4px!important;font-size:1.22rem!important;line-height:1.2!important;letter-spacing:-.015em!important;color:var(--arf-theme-ink)!important}
body:not(.wp-admin) .arf-checkout-section-head p{margin:0!important;color:var(--arf-theme-muted)!important;font-size:.92rem!important;line-height:1.45!important}
body:not(.wp-admin) .arf-checkout-section-icon,body:not(.wp-admin) .arf-checkout-summary-icon{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--arf-theme-line);background:var(--arf-theme-soft);color:var(--arf-theme-green)}
body:not(.wp-admin) .arf-checkout-section-icon svg,body:not(.wp-admin) .arf-checkout-summary-icon svg{width:24px;height:24px}
body:not(.wp-admin) .arf-checkout-account{padding:18px 20px 20px!important;border:1px solid var(--arf-theme-line)!important;border-left:4px solid var(--arf-theme-green)!important;background:#fff!important}
body:not(.wp-admin) .arf-checkout-account .arf-checkout-section-head{margin-bottom:16px}
body:not(.wp-admin) .arf-account-actions{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}
body:not(.wp-admin) .arf-icon-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:9px!important}
body:not(.wp-admin) .arf-icon-btn>svg{flex:none;width:19px;height:19px}
body:not(.wp-admin) .arf-account-create-toggle{display:block!important;position:relative;margin:0!important;cursor:pointer;font-weight:400!important}
body:not(.wp-admin) .arf-account-create-toggle>input{position:absolute!important;opacity:0!important;pointer-events:none!important}
body:not(.wp-admin) .arf-account-create-toggle>span{display:grid;grid-template-columns:22px minmax(0,1fr);column-gap:9px;row-gap:1px;align-items:center;min-height:44px;padding:8px 12px;border:1px solid var(--arf-theme-green);background:#fff;color:var(--ars-accent-strong,#b84e08)}
body:not(.wp-admin) .arf-account-create-toggle>span>svg{grid-row:1/3;width:20px;height:20px}
body:not(.wp-admin) .arf-account-create-toggle b{font-weight:750}
body:not(.wp-admin) .arf-account-create-toggle small{color:var(--arf-theme-muted);font-size:.76rem;line-height:1.25}
body:not(.wp-admin) .arf-account-create-toggle>input:checked+span{background:var(--arf-theme-soft);box-shadow:inset 0 0 0 1px var(--arf-theme-green)}
body:not(.wp-admin) .arf-account-create-toggle>input:focus-visible+span{outline:2px solid rgba(217,96,10,.24);outline-offset:2px}
body:not(.wp-admin) .arf-account-register{margin-top:16px;padding-top:16px;border-top:1px solid var(--arf-theme-line)}
body:not(.wp-admin) .arf-account-register>.ars-muted{margin:8px 0 0!important;font-size:.82rem!important}
body:not(.wp-admin) .arf-account-state{display:inline-grid;grid-template-columns:36px minmax(0,1fr);gap:10px;align-items:center;padding:9px 12px;background:var(--arf-theme-soft);color:var(--arf-theme-text)}
body:not(.wp-admin) .arf-account-state__icon{display:grid;place-items:center;width:36px;height:36px;color:var(--arf-theme-green)}
body:not(.wp-admin) .arf-account-state__icon svg{width:22px;height:22px}
body:not(.wp-admin) .arf-account-state strong,body:not(.wp-admin) .arf-account-state small{display:block}
body:not(.wp-admin) .arf-account-state small{color:var(--arf-theme-muted);font-size:.78rem}
body:not(.wp-admin) .arf-customer-type-fieldset{margin:0 0 18px!important;padding:0!important;border:0!important;background:transparent!important}
body:not(.wp-admin) .arf-customer-type-fieldset legend{margin:0 0 8px;padding:0!important;font-size:.82rem!important}
body:not(.wp-admin) .arf-choice-row--tiles{display:flex!important;gap:8px!important;flex-wrap:wrap}
body:not(.wp-admin) .arf-choice-row--tiles label{display:block!important;position:relative;margin:0!important}
body:not(.wp-admin) .arf-choice-row--tiles input{position:absolute!important;opacity:0!important;pointer-events:none!important}
body:not(.wp-admin) .arf-choice-row--tiles label>span{display:flex;align-items:center;justify-content:center;min-height:42px;padding:8px 14px;border:1px solid #bec0c3;background:#fff;color:var(--arf-theme-text);font-weight:700;cursor:pointer}
body:not(.wp-admin) .arf-choice-row--tiles input:checked+span{border-color:var(--arf-theme-green);background:var(--arf-theme-soft);color:var(--ars-accent-strong,#b84e08);box-shadow:inset 0 0 0 1px var(--arf-theme-green)}
body:not(.wp-admin) .arf-choice-row--tiles input:focus-visible+span{outline:2px solid rgba(217,96,10,.24);outline-offset:2px}
body:not(.wp-admin) .arf-checkout-customer{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
body:not(.wp-admin) .arf-checkout-customer label,body:not(.wp-admin) .arf-checkout-note-section>label{margin:0!important}
body:not(.wp-admin) .arf-checkout-note-section textarea{min-height:128px!important}
body:not(.wp-admin) .arf-checkout-notice{margin:0 0 16px!important}
body:not(.wp-admin) .arf-privacy-note{margin:0 0 20px!important;line-height:1.5}
body:not(.wp-admin) .arf-checkout-legal-line{margin:0 0 12px;text-align:left}
body:not(.wp-admin) .arf-checkout-legal-line .arf-link-button{font-size:.95rem!important;font-weight:700;color:var(--ars-accent-strong,#b84e08)!important;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
body:not(.wp-admin) .arf-checkout-legal-line .arf-link-button:hover{color:var(--ars-ink,#14181b)!important}
body:not(.wp-admin) .arf-cart-price-line--rule{margin-top:-2px}
body:not(.wp-admin) .arf-cart-price-line--rule .arf-cart-item-price-rule{color:var(--arf-theme-muted);font-size:.78rem}
body:not(.wp-admin) .arf-checkout-submit-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:4px}
body:not(.wp-admin) .arf-checkout-submit-row .ars-btn{flex:none}
body:not(.wp-admin) .arf-submit-hint{max-width:420px;color:var(--arf-theme-muted);font-size:.82rem;line-height:1.4}
body:not(.wp-admin) .arf-checkout-form>.arf-result{margin-top:14px!important;padding:0!important}
body:not(.wp-admin) .arf-result-action{margin-top:12px}
body:not(.wp-admin) .arf-warning{display:inline-block;margin-top:8px;color:#8a4a19}
body:not(.wp-admin) .arf-checkout-summary{padding:20px!important;border-left:1px solid var(--arf-theme-line)!important;top:96px!important}
body:not(.wp-admin) .arf-checkout-summary-head{display:flex;align-items:center;gap:11px;margin:0 0 16px;padding:0 0 14px;border-bottom:1px solid var(--arf-theme-line)}
body:not(.wp-admin) .arf-checkout-summary-head h2{margin:0!important;font-size:1.08rem!important;letter-spacing:0!important}
body:not(.wp-admin) .arf-checkout-summary-icon{width:38px;height:38px;border:0;background:var(--arf-theme-soft)}
body:not(.wp-admin) .arf-checkout-summary-icon svg{width:20px;height:20px}
body:not(.wp-admin) .arf-checkout-edit-cart{width:100%;margin-top:16px}

/* Embedded asset booking: one deterministic baseline. The action has its own label spacer,
 * so native date controls, quantity and CTA always share the same input baseline. */
body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-inline--compact{display:grid!important;grid-template-columns:minmax(145px,1fr) minmax(145px,1fr) 72px max-content!important;gap:10px!important;align-items:start!important;width:100%!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-field,body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-action-field{display:grid!important;grid-template-rows:16px 46px!important;gap:5px!important;align-items:stretch!important;min-width:0!important;margin:0!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-field-label{display:flex!important;align-items:center!important;height:16px!important;margin:0!important;line-height:16px!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-field-label--action{visibility:hidden!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-field input{height:46px!important;min-height:46px!important;margin:0!important;padding:9px 10px!important}
body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-action-field .arf-inline-add{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:100%!important;height:46px!important;min-height:46px!important;margin:0!important;padding:9px 15px!important;line-height:1.2!important;align-self:stretch!important}

@media(max-width:900px){
 body:not(.wp-admin) .arf-checkout-layout{grid-template-columns:1fr!important;gap:34px!important}
 body:not(.wp-admin) .arf-checkout-summary{position:static!important;max-width:none!important}
}
@media(max-width:680px){
 body:not(.wp-admin) .arf-checkout-page-head{margin-bottom:26px!important}
 body:not(.wp-admin) .arf-checkout-customer{grid-template-columns:1fr!important}
 body:not(.wp-admin) .arf-checkout-section-head{grid-template-columns:42px minmax(0,1fr)}
 body:not(.wp-admin) .arf-checkout-section-icon{width:42px;height:42px}
 body:not(.wp-admin) .arf-account-actions{display:grid;grid-template-columns:1fr}
 body:not(.wp-admin) .arf-account-actions .ars-btn{width:100%}
 body:not(.wp-admin) .arf-checkout-submit-row{align-items:stretch;flex-direction:column}
 body:not(.wp-admin) .arf-checkout-submit-row .ars-btn{width:100%}
 body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-inline--compact{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
 body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-field--qty{grid-column:1!important}
 body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-action-field{grid-column:2!important}
}
@media(max-width:430px){
 body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-inline--compact{grid-template-columns:1fr!important}
 body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-field--qty,body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-action-field{grid-column:1!important}
 body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-field-label--action{display:none!important}
 body:not(.wp-admin) .arf-asset-booking--compact .arf-booking-action-field{grid-template-rows:46px!important;gap:0!important}
}
body:not(.wp-admin) .arf-checkout-customer .arf-company-field{grid-column:1/-1!important}
@media(max-width:680px){body:not(.wp-admin) .arf-checkout-customer .arf-company-field{grid-column:1!important}}

/* REV024 – offer lifecycle in customer portal */
.arf-offer-box{margin:16px 0;padding:16px 18px;border-left:4px solid #d9600a;background:#f5f6f7}
.arf-offer-box>p{margin:0 0 12px}
.arf-offer-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.arf-offer-change{display:grid;gap:10px;margin-top:12px;max-width:720px}
.arf-offer-change textarea{width:100%;min-height:92px;box-sizing:border-box}
.arf-offer-change .ars-btn{justify-self:start}
@media(max-width:640px){.arf-offer-actions{display:grid}.arf-offer-actions .ars-btn{width:100%}}

/* REV025 – resilient yard workflow */
.arf-process-meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.arf-autosave-state{font-size:.72rem;font-weight:700;color:#616468;white-space:nowrap}
.arf-autosave-state.is-error{color:#9b2c2c}
.arf-verify.is-verified{border-color:#7fb694!important;background:#edf7f0!important;color:#155b36!important}
.arf-verify-state{font-size:.78rem;font-weight:800;color:#17613a;margin-left:6px}
@media(max-width:620px){.arf-process-meta{align-items:flex-start}.arf-process-head{align-items:flex-start}}

/* REV026 – explicit handover release gate */
.arf-release-gate{margin:14px 0;padding:14px;border:1px solid #dadde0;background:#f9fafb}
.arf-release-gate.is-blocked{border-left:4px solid #a45b26;background:#fff9f4}.arf-release-gate.is-ready{border-left:4px solid #2f6b49;background:#f4faf6}
.arf-release-gate-head{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}.arf-release-gate-head>span{flex:none}.arf-release-gate-head div{display:grid;gap:2px}.arf-release-gate-head span{color:var(--arf-ops-muted);font-size:.86rem}
.arf-release-gate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}.arf-release-gate-item{display:grid;grid-template-columns:28px 1fr;gap:8px;padding:9px;border:1px solid #e2e4e5;background:#fff}.arf-release-gate-item.is-missing{border-color:#e7c7ae;background:#fffaf6}.arf-release-gate-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:0;background:#eaf4ed;color:#245a3d;font-weight:800}.arf-release-gate-mark svg{width:16px;height:16px}.arf-release-gate-item.is-missing .arf-release-gate-mark{background:#fff0e4;color:#944b18}.arf-release-gate-item div{display:grid;gap:2px}.arf-release-gate-item small{color:var(--arf-ops-muted);line-height:1.35}
/* REQ-INTERN-BOOKING-DETAIL-VISUAL-CLARITY-001: augite-ux-platform's shared "Prozessführung"
 * guidance section (operations.js uxProcessHtml() / class-augite-ux-process.php
 * render_booking_guidance()) is never enqueued/scoped on THIS front-end page (augite-ux.css
 * only ever loads via wp-admin's admin_enqueue_scripts, and its rules are all scoped under a
 * ".augite-ux-platform" body class that admin_body_class() never adds outside wp-admin) - so the
 * <section class="augite-process-guidance"> rendered here had literally zero CSS applied: no
 * border/background/kicker/icon styling at all, confirmed via `grep -n augite-process-guidance
 * assets/css/public.css` returning nothing before this fix. Root cause is the missing enqueue/
 * scope, not a missing selector - fixed here by giving the shared class names their own front-end
 * rule set, reusing the exact same boxed-panel + icon-circle language as the neighbouring
 * "Mitarbeiterübergabe"/Übergabefreigabe panel on this same page (.arf-release-gate/
 * .arf-release-gate-head/.arf-release-gate-mark, above) instead of a new, third visual pattern. */
.augite-process-guidance{margin:14px 0;padding:14px;border:1px solid #dadde0;background:#f9fafb}
/* REQ-OPS-DETAIL-EVENT-REDUNDANCY-001 (wave 16): is-warning (no blockers, open warnings) shares the
 * existing warning palette of is-blocked; is-info (exception-type status such as Teilrücknahme with no
 * blocker and no warning) is neutral - existing ops tokens only, no new colour literal. The error
 * palette (is-exception) is reserved for an exception status that really has blockers. */
.augite-process-guidance.is-blocked,.augite-process-guidance.is-warning{border-left:4px solid #a45b26;background:#fff9f4}
.augite-process-guidance.is-ready{border-left:4px solid #2f6b49;background:#f4faf6}
.augite-process-guidance.is-exception{border-left:4px solid var(--arf-ops-danger,#b42318);background:#fff4f2}
.augite-process-guidance.is-info{background:var(--arf-ops-soft)}
.augite-process-guidance__head{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px}
.augite-process-guidance__head .arf-ui-icon{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:0;background:#f1f2f3;color:var(--ars-green,#d9600a)}
.augite-process-guidance.is-blocked .augite-process-guidance__head .arf-ui-icon,.augite-process-guidance.is-warning .augite-process-guidance__head .arf-ui-icon,.augite-process-guidance.is-exception .augite-process-guidance__head .arf-ui-icon{background:#fff0e4;color:#944b18}
.augite-process-guidance.is-info .augite-process-guidance__head .arf-ui-icon{background:var(--arf-ops-paper);color:var(--arf-ops-muted)}
.augite-process-guidance__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.augite-process-guidance__head h3{margin:2px 0 0;font-size:1.05rem}
.augite-process-guidance .augite-kicker{display:block;font-size:.68rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--arf-ops-muted)}
.augite-process-guidance p{margin:6px 0 0;color:var(--arf-ops-muted);font-size:.86rem}
.augite-process-guidance .augite-prerequisites{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.augite-process-guidance .augite-prerequisites li{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;background:#fff;border:1px solid #e7dccb}
.augite-process-guidance .augite-prerequisites li>span{font-weight:800;color:#a45b26}
.augite-process-guidance .augite-prerequisites strong,.augite-process-guidance .augite-prerequisites small{display:block}
.augite-process-guidance .augite-prerequisites small{margin-top:2px;color:var(--arf-ops-muted)}
.augite-process-guidance .augite-primary-action{margin-top:12px;display:inline-flex}
/* Same root cause as above: the shared component's "Weiter"/blocker-resolution links use plain
 * WordPress-admin ".button"/".button-primary" classes, which (like the rest of the panel) carry
 * zero styling on this front-end page - WP core's admin button CSS is never enqueued here either.
 * Reuse this page's own button look instead of loading a separate stylesheet for two link roles. */
.augite-process-guidance .button{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;min-height:38px;padding:7px 12px!important;border-radius:0!important;font-weight:700!important;text-decoration:none!important;line-height:1.15!important;background:#fff!important;border:1px solid #c5c7c9!important;color:var(--arf-ops-ink,#1d2327)!important}
.augite-process-guidance .button:hover{border-color:var(--arf-ops-green,#d9600a)!important;color:var(--ars-accent-strong,#b84e08)!important}
.augite-process-guidance .button.button-primary{background:var(--ars-accent-strong,#b84e08)!important;border-color:var(--ars-accent-strong,#b84e08)!important;color:#fff!important;min-height:44px;padding:9px 16px!important}
.augite-process-guidance .button.button-primary:hover{background:var(--ars-accent-strong-hover,#9a4307)!important;border-color:var(--ars-accent-strong-hover,#9a4307)!important;color:#fff!important}
@media(max-width:620px){.augite-process-guidance .augite-prerequisites li{grid-template-columns:20px minmax(0,1fr)}.augite-process-guidance .augite-prerequisites li .button{grid-column:2;width:100%}.augite-process-guidance .augite-primary-action{width:100%;justify-content:center}}

/* REV028 – Kundenportal Self-Service */
.arf-service-request-list{margin:16px 0;padding:14px 0;border-top:1px solid rgba(217,96,10,.15);border-bottom:1px solid rgba(217,96,10,.15)}
.arf-service-request-list>strong{display:block;margin-bottom:8px}.arf-service-request-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:8px 0}.arf-service-request-row small{grid-column:1/-1;color:#6b6f73}
.arf-service-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.arf-service-form{margin:12px 0 18px;padding:16px;border:1px solid rgba(217,96,10,.18);background:rgba(217,96,10,.025)}
.arf-service-form label{display:grid;gap:5px;margin:0 0 12px}.arf-service-form input,.arf-service-form textarea{width:100%;box-sizing:border-box}.arf-service-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media(max-width:760px){.arf-service-form-grid{grid-template-columns:1fr}.arf-service-actions .ars-btn{width:100%}}

/* REV029 – floating cart visibility hardening.
 * The floating CTA is injected at body level, outside .arf-app. Therefore it must
 * use the theme variable directly instead of the .arf-app-scoped --arf-theme-green.
 * Geometry intentionally mirrors the fixed "Vertrag widerrufen" CTA. */
body:not(.wp-admin) a.arf-floating-cart.ars-btn,
body:not(.wp-admin) a.arf-floating-cart.ars-btn--solid{
  border:1px solid var(--ars-accent-strong,#b84e08)!important;
  background:var(--ars-accent-strong,#b84e08)!important;
  color:#fff!important;
  border-radius:0!important;
  box-shadow:none!important;
}
body:not(.wp-admin) a.arf-floating-cart.ars-btn:hover,
body:not(.wp-admin) a.arf-floating-cart.ars-btn:focus-visible{
  background:var(--ars-accent-strong-hover,#9a4307)!important;
  border-color:var(--ars-accent-strong-hover,#9a4307)!important;
  color:#fff!important;
  filter:brightness(.94);
}
body:not(.wp-admin) .arf-floating-cart__count{
  background:#fff!important;
  color:var(--ars-accent-strong,#b84e08)!important;
}

/* REV030 – customer portal information architecture and modal details */
body:not(.wp-admin) .arf-portal-tabs{display:flex;gap:0;overflow-x:auto;margin:0 0 24px;border-bottom:1px solid var(--arf-theme-line);scrollbar-width:thin}
body:not(.wp-admin) .arf-portal-tab{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;min-height:46px;padding:9px 14px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--arf-theme-muted);font:inherit;font-size:.88rem;font-weight:760;cursor:pointer}
body:not(.wp-admin) .arf-portal-tab:hover,body:not(.wp-admin) .arf-portal-tab:focus-visible{color:var(--ars-accent-strong,#b84e08);background:var(--arf-theme-soft)}
body:not(.wp-admin) .arf-portal-tab.is-active{color:var(--ars-ink,#14181b);border-bottom-color:var(--arf-theme-green)}
body:not(.wp-admin) .arf-portal-icon{width:18px;height:18px;flex:none;vertical-align:-3px}
body:not(.wp-admin) .arf-portal-panel[hidden]{display:none!important}
body:not(.wp-admin) .arf-portal-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0 0 8px;background:var(--arf-theme-line);border:1px solid var(--arf-theme-line)}
body:not(.wp-admin) .arf-portal-overview-grid article{display:flex;align-items:center;gap:12px;padding:16px;background:#fff}
body:not(.wp-admin) .arf-portal-overview-grid article strong{display:block;margin-bottom:2px}
body:not(.wp-admin) .arf-portal-overview-grid article p{margin:0;color:var(--arf-theme-muted);font-size:.86rem}
body:not(.wp-admin) .arf-portal-pictogram{display:grid;place-items:center;width:38px;height:38px;flex:none;background:var(--arf-theme-soft);color:var(--arf-theme-green)}
body:not(.wp-admin) .arf-portal-section-heading{display:flex;align-items:center;gap:9px}
body:not(.wp-admin) .arf-portal-section-heading>.arf-portal-icon{color:var(--arf-theme-green)}
body:not(.wp-admin) .arf-portal-table-wrap{width:100%;overflow:auto;border:1px solid var(--arf-theme-line);background:#fff}
body:not(.wp-admin) .arf-portal-table{width:100%;min-width:680px;border-collapse:collapse;font-size:.87rem}
body:not(.wp-admin) .arf-portal-table th{padding:9px 12px;border-bottom:1px solid var(--arf-theme-line);background:var(--arf-theme-soft);color:var(--arf-theme-muted);font-size:.76rem;font-weight:800;text-align:left;text-transform:uppercase;letter-spacing:.035em;white-space:nowrap}
body:not(.wp-admin) .arf-portal-table td{padding:11px 12px;border-bottom:1px solid var(--arf-theme-line);vertical-align:middle}
body:not(.wp-admin) .arf-portal-table tbody tr:last-child td{border-bottom:0}
body:not(.wp-admin) .arf-portal-table tbody tr:hover{background:#fbfcfb}
body:not(.wp-admin) .arf-portal-table small{color:var(--arf-theme-muted)}
body:not(.wp-admin) .arf-portal-row-action{min-height:34px!important;padding:6px 9px!important;font-size:.78rem!important;gap:5px!important;white-space:nowrap!important}
body:not(.wp-admin) .arf-portal-row-action .arf-portal-icon{width:14px;height:14px}
body:not(.wp-admin) .arf-portal-empty{margin:0;padding:12px 0;color:var(--arf-theme-muted)}
body:not(.wp-admin) .arf-portal-toolbar{display:flex;justify-content:flex-end;margin:0 0 12px}
body:not(.wp-admin) .arf-portal-toolbar .ars-btn{gap:8px}
body:not(.wp-admin) .arf-portal-kpis span{display:grid!important;grid-template-columns:auto 1fr!important;align-items:baseline!important;column-gap:7px!important;min-width:0!important;padding:9px 11px!important}
body:not(.wp-admin) .arf-portal-kpis span strong{font-size:1.05rem!important}
body:not(.wp-admin) .arf-portal-kpis span small{font-size:.78rem;color:var(--arf-theme-muted)}

body:not(.wp-admin) .arf-portal-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0 0 22px;background:var(--arf-theme-line);border:1px solid var(--arf-theme-line)}
body:not(.wp-admin) .arf-portal-detail-grid>div{display:grid;gap:3px;padding:12px;background:#fff}
body:not(.wp-admin) .arf-portal-detail-grid span{color:var(--arf-theme-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.035em}

body:not(.wp-admin) .arf-portal-note{margin:14px 0;padding:12px;border-left:3px solid var(--arf-theme-green);background:var(--arf-theme-soft)}
body:not(.wp-admin) .arf-pickup-auth-qr-note{text-align:center}
body:not(.wp-admin) .arf-pickup-auth-qr{margin:12px auto;max-width:220px}
body:not(.wp-admin) .arf-pickup-auth-qr svg{display:block;width:100%;height:auto;background:#fff;padding:8px;border:1px solid var(--arf-theme-border,#e1e2e4)}
body:not(.wp-admin) .arf-pickup-auth-code{margin:8px 0;font-size:1.05rem}
body:not(.wp-admin) .arf-modal-form{display:grid;gap:14px;margin:0!important;padding:0!important;border:0!important;background:transparent!important}
body:not(.wp-admin) .arf-modal-form label{display:grid;gap:6px;margin:0!important}
body:not(.wp-admin) .arf-modal-form .ars-btn{justify-self:start}
body:not(.wp-admin) .arf-portal-message-meta{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
body:not(.wp-admin) .arf-portal-message-meta span{padding:5px 8px;background:var(--arf-theme-soft);color:var(--arf-theme-muted);font-size:.78rem}
body:not(.wp-admin) .arf-portal-message-body{line-height:1.6;white-space:normal}
body:not(.wp-admin) .arf-service-actions .ars-btn{gap:7px}

/* REV030 – floating cart must visually match the fixed withdrawal CTA, not exceed it. */
body:not(.wp-admin) a.arf-floating-cart.ars-btn,body:not(.wp-admin) a.arf-floating-cart.ars-btn--solid{min-height:0!important;height:auto!important;padding:10px 12px!important;font-size:.82rem!important;line-height:1.2!important;gap:6px!important}
body:not(.wp-admin) .arf-floating-cart__icon,body:not(.wp-admin) .arf-floating-cart__icon svg{width:15px!important;height:15px!important}
body:not(.wp-admin) .arf-floating-cart__count{min-width:18px!important;width:auto!important;height:18px!important;padding:0 4px!important;font-size:.66rem!important;line-height:18px!important}

@media(max-width:760px){
 body:not(.wp-admin) .arf-portal-overview-grid{grid-template-columns:1fr}
 body:not(.wp-admin) .arf-portal-detail-grid{grid-template-columns:1fr}

 body:not(.wp-admin) .arf-portal-toolbar{justify-content:stretch}
 body:not(.wp-admin) .arf-portal-toolbar .ars-btn{width:100%}
}

/* REV031 – customer portal visual contract, navigation state and modal-document UX. */
body:not(.wp-admin) .arf-app.arf-portal>.arf-theme-container{width:min(1040px,calc(100% - 48px))!important;max-width:1040px!important;padding-top:34px!important;padding-bottom:46px!important}
body:not(.wp-admin) .arf-portal-header{margin:0 0 22px!important;padding:0!important;border-bottom:0!important}
body:not(.wp-admin) .arf-portal-header h1{max-width:24ch!important}
body:not(.wp-admin) .arf-portal-kpis{gap:8px!important}
body:not(.wp-admin) .arf-portal-kpis span{min-width:142px!important;padding:10px 12px!important;border:1px solid var(--arf-theme-line)!important;border-left:4px solid var(--arf-theme-green)!important;background:#fff!important}
body:not(.wp-admin) .arf-portal-tabs{gap:7px!important;overflow-x:auto;margin:0 0 24px!important;padding:0 0 14px!important;border-bottom:1px solid var(--arf-theme-line)!important}
body:not(.wp-admin) .arf-portal-tab{min-height:40px!important;padding:7px 11px!important;border:1px solid var(--arf-theme-line)!important;background:#fff!important;color:var(--arf-theme-text)!important;font-size:.82rem!important;font-weight:800!important}
body:not(.wp-admin) .arf-portal-tab:hover,body:not(.wp-admin) .arf-portal-tab:focus-visible{border-color:var(--arf-theme-green)!important;background:var(--arf-theme-soft)!important;color:var(--ars-accent-strong,#b84e08)!important}
body:not(.wp-admin) .arf-portal-tab.is-active{border-color:var(--arf-theme-green)!important;background:var(--arf-theme-green)!important;color:#fff!important}
body:not(.wp-admin) .arf-portal-tab .arf-portal-icon{width:16px;height:16px}
body:not(.wp-admin) .arf-portal-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important;margin:0 0 12px!important;border:0!important;background:transparent!important}
body:not(.wp-admin) .arf-portal-overview-grid button{display:grid;grid-template-columns:42px minmax(0,1fr) 18px;gap:12px;align-items:center;min-width:0;min-height:92px;padding:16px 15px;border:1px solid var(--arf-theme-line);border-left:4px solid var(--arf-theme-green);background:#fff;color:var(--arf-theme-ink);font:inherit;text-align:left;cursor:pointer}
body:not(.wp-admin) .arf-portal-overview-grid button:hover,body:not(.wp-admin) .arf-portal-overview-grid button:focus-visible{border-color:var(--arf-theme-green);background:var(--arf-theme-soft);outline:0}
body:not(.wp-admin) .arf-portal-overview-grid button>span:nth-child(2){min-width:0}
body:not(.wp-admin) .arf-portal-overview-grid button strong{display:block;margin:0 0 3px;font-size:.95rem}
body:not(.wp-admin) .arf-portal-overview-grid button small{display:block;color:var(--arf-theme-muted);font-size:.78rem;font-weight:500}
body:not(.wp-admin) .arf-portal-overview-grid button>.arf-portal-icon{width:16px;height:16px;color:var(--arf-theme-green)}
body:not(.wp-admin) .arf-portal-pictogram{width:42px!important;height:42px!important;background:transparent!important;color:var(--arf-theme-green)!important}
body:not(.wp-admin) .arf-portal-pictogram .arf-portal-icon{width:34px;height:34px}
body:not(.wp-admin) .arf-portal-section{padding:22px 0!important;border-top:0!important}
body:not(.wp-admin) .arf-portal-section+.arf-portal-section{border-top:1px solid var(--arf-theme-line)!important}
body:not(.wp-admin) .arf-portal-section-heading{margin-bottom:12px!important}
body:not(.wp-admin) .arf-portal-section-heading>.arf-portal-icon{width:25px;height:25px}
body:not(.wp-admin) .arf-portal-table-wrap{border-color:var(--arf-theme-line)!important}
body:not(.wp-admin) .arf-portal-table th{padding:10px 12px!important;background:#f7f8f9!important;color:#65686c!important;font-size:.7rem!important;letter-spacing:.065em!important}
body:not(.wp-admin) .arf-portal-table td{padding:12px!important}
body:not(.wp-admin) .arf-portal-table tbody tr:hover{background:#f9fafb!important}
body:not(.wp-admin) .arf-portal-table a:not(.ars-btn){font-weight:700;text-underline-offset:3px}
body:not(.wp-admin) .arf-portal .arf-status-pill{border-radius:0!important;padding:4px 7px!important;background:#f4f5f6!important;color:#585c60!important;font-size:.75rem!important;font-weight:750!important}
body:not(.wp-admin) .arf-portal .arf-status-pill.arf-status-ready,body:not(.wp-admin) .arf-portal .arf-status-pill.arf-status-confirmed,body:not(.wp-admin) .arf-portal .arf-status-pill.arf-status-completed{border-color:#bfd4c5!important;background:#eef6f0!important;color:var(--ars-accent-strong,#b84e08)!important}
body:not(.wp-admin) .arf-portal-flash{display:flex;align-items:center;gap:10px;margin:-4px 0 16px;padding:12px 14px;border-left:4px solid var(--arf-theme-green);background:#eef6f0;color:#254633;font-size:.9rem}
body:not(.wp-admin) .arf-portal-flash>.arf-portal-icon{width:19px;height:19px;flex:none;color:var(--arf-theme-green)}
body:not(.wp-admin) .arf-portal-flash--error{border-left-color:#b3261e;background:#fdecea;color:#611a15}
body:not(.wp-admin) .arf-portal-flash--error>.arf-portal-icon{color:#b3261e}
body:not(.wp-admin) .arf-portal-flash{flex-wrap:wrap}
body:not(.wp-admin) .arf-portal-flash>span{flex:1 1 auto}
body:not(.wp-admin) .arf-portal-flash>.ars-btn{flex:none}

body:not(.wp-admin) .arf-portal-document-actions{display:flex;justify-content:flex-end;margin:-6px 0 12px}
body:not(.wp-admin) .arf-portal-document-frame{display:block;width:100%;height:min(62vh,720px);border:1px solid var(--arf-theme-line);background:#fff}
@media(max-width:900px){body:not(.wp-admin) .arf-portal-overview-grid{grid-template-columns:1fr!important}}
@media(max-width:760px){
 body:not(.wp-admin) .arf-app.arf-portal>.arf-theme-container{width:calc(100% - 28px)!important;padding-top:32px!important;padding-bottom:40px!important}
 body:not(.wp-admin) .arf-portal-kpis{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
 body:not(.wp-admin) .arf-portal-kpis span{min-width:0!important}
 body:not(.wp-admin) .arf-portal-tabs{margin-left:-2px!important;margin-right:-2px!important}
 body:not(.wp-admin) .arf-portal-tab{min-height:42px!important}
 body:not(.wp-admin) .arf-portal-document-frame{height:58vh}
}

/* REV033 – portal follows the active augite Rental website geometry more closely.
 * Tabs remain a true tab interface, but use the same quiet navigation/shortcut
 * language, spacing, accents and 1180px shell as the storefront template. */
body:not(.wp-admin) .arf-app.arf-portal>.arf-theme-container{
  width:min(1180px,calc(100% - 48px))!important;max-width:1180px!important;padding-top:34px!important;padding-bottom:46px!important;
}
body:not(.wp-admin) .arf-portal-header{padding-bottom:24px!important;border-bottom:1px solid var(--arf-theme-line)!important}
body:not(.wp-admin) .arf-portal-kpis span{
  border:0!important;border-left:4px solid var(--arf-theme-green)!important;background:#f8f9fa!important;
}
body:not(.wp-admin) .arf-portal-tabs{
  gap:18px!important;margin:0 0 26px!important;padding:0!important;border-bottom:1px solid var(--arf-theme-line)!important;
}
body:not(.wp-admin) .arf-portal-tab{
  min-height:48px!important;padding:10px 2px 9px!important;border:0!important;border-bottom:3px solid transparent!important;background:transparent!important;color:#3e4144!important;font-size:.9rem!important;font-weight:750!important;
}
body:not(.wp-admin) .arf-portal-tab:hover,body:not(.wp-admin) .arf-portal-tab:focus-visible{
  border-bottom-color:#aeb1b4!important;background:transparent!important;color:var(--ars-accent-strong,#b84e08)!important;text-decoration:none;
}
body:not(.wp-admin) .arf-portal-tab.is-active{
  border-bottom-color:var(--arf-theme-green)!important;background:transparent!important;color:var(--ars-ink,#14181b)!important;
}
body:not(.wp-admin) .arf-portal-overview-grid button{
  border:0!important;border-left:4px solid var(--arf-theme-green)!important;background:#f8f9fa!important;
}
body:not(.wp-admin) .arf-portal-overview-grid button:hover,body:not(.wp-admin) .arf-portal-overview-grid button:focus-visible{background:var(--arf-theme-soft)!important}
body:not(.wp-admin) .arf-portal-section{padding:26px 0!important}
body:not(.wp-admin) .arf-portal-section+.arf-portal-section{border-top:1px solid var(--arf-theme-line)!important}
body:not(.wp-admin) .arf-portal-table-wrap{border-left:4px solid var(--arf-theme-green)!important}
body:not(.wp-admin) .arf-portal-toolbar{justify-content:flex-start!important;margin-bottom:16px!important}
body:not(.wp-admin) .arf-message-direction{display:inline-flex;align-items:center;min-height:24px;padding:2px 7px;background:var(--arf-theme-soft);font-size:.75rem;font-weight:750;white-space:nowrap}
body:not(.wp-admin) .arf-message-direction--out{color:var(--ars-accent-strong,#b84e08)}
body:not(.wp-admin) .arf-message-direction--in{color:#3e4144}
body:not(.wp-admin) .arf-message-reply-actions{margin-top:20px;padding-top:16px;border-top:1px solid var(--arf-theme-line)}
body:not(.wp-admin) .arf-modal-form[aria-busy="true"]{opacity:.78}
@media(max-width:760px){
 body:not(.wp-admin) .arf-app.arf-portal>.arf-theme-container{width:min(100% - 28px,1180px)!important}
 body:not(.wp-admin) .arf-portal-tabs{gap:14px!important}
 body:not(.wp-admin) .arf-portal-tab{min-height:46px!important;padding-inline:1px!important}
}

/* REV034 – customer portal overview/list density, full-width tables and list controls.
 * The selected top-level tab is the section label. List panels therefore do not
 * repeat a document-style left-hand heading; their tables use the whole shell. */
body:not(.wp-admin) .arf-portal-header{display:block!important;margin-bottom:18px!important;padding-bottom:20px!important}
body:not(.wp-admin) .arf-portal-panel--list{width:100%;padding:0!important}
body:not(.wp-admin) .arf-portal-panel--list>.arf-portal-list{width:100%;margin:0}
body:not(.wp-admin) .arf-portal-overview-head{max-width:760px;margin:0 0 18px}
body:not(.wp-admin) .arf-portal-overview-head h2{margin:0 0 6px!important;font-size:1.28rem!important;letter-spacing:0!important}
body:not(.wp-admin) .arf-portal-overview-head p{margin:0;color:var(--arf-theme-muted);font-size:.9rem}
body:not(.wp-admin) .arf-portal-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;width:100%}
body:not(.wp-admin) .arf-portal-kpi-grid button{display:grid;grid-template-columns:42px minmax(0,1fr) 18px;align-items:center;gap:12px;min-height:92px;padding:16px 15px;border:0;border-left:4px solid var(--arf-theme-green);background:#f8f9fa;color:var(--arf-theme-ink);font:inherit;text-align:left;cursor:pointer}
body:not(.wp-admin) .arf-portal-kpi-grid button:hover,body:not(.wp-admin) .arf-portal-kpi-grid button:focus-visible{background:var(--arf-theme-soft);outline:1px solid #c2c4c7;outline-offset:-1px}
body:not(.wp-admin) .arf-portal-kpi-grid button>span:nth-child(2){min-width:0}
body:not(.wp-admin) .arf-portal-kpi-grid button strong{display:block;margin:0 0 2px;font-size:1.34rem;line-height:1.1;color:var(--ars-accent-strong,#b84e08)}
body:not(.wp-admin) .arf-portal-kpi-grid button small{display:block;color:var(--arf-theme-muted);font-size:.8rem;font-weight:650}
body:not(.wp-admin) .arf-portal-kpi-grid button>.arf-portal-icon{width:16px;height:16px;color:var(--arf-theme-green)}
/* Decision 36 (wave 7): portal Kurzuebersicht surplus metrics ("Weitere Kennzahlen") and the compact list for fewer than 3 metrics -
 * the shared .arf-metric-list/.arf-metric-more rules read --arf-ops-* tokens that only exist inside .arf-ops, so the portal maps them to its theme tokens. */
body:not(.wp-admin) .arf-portal{--arf-ops-line:var(--arf-theme-line,#dadde0);--arf-ops-ink:var(--arf-theme-ink,#14181b);--arf-ops-muted:var(--arf-theme-muted,#6b6f73);--arf-ops-green-2:var(--arf-theme-green,#d9600a)}
body:not(.wp-admin) .arf-portal .arf-metric-more{margin:14px 0 0}
body:not(.wp-admin) .arf-portal .arf-metric-list--compact{margin:0}
body:not(.wp-admin) .arf-portal .arf-metric-list__jump{display:inline;min-height:0;padding:0;border:0;background:none;color:var(--arf-theme-ink);font:inherit;font-weight:600;text-align:left;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
body:not(.wp-admin) .arf-portal .arf-metric-list__jump:hover,body:not(.wp-admin) .arf-portal .arf-metric-list__jump:focus-visible{color:var(--ars-accent-strong,#b84e08);outline:2px solid var(--arf-theme-green);outline-offset:2px}
body:not(.wp-admin) .arf-portal .arf-metric-list dd strong{color:var(--ars-accent-strong,#b84e08)}
body:not(.wp-admin) .arf-portal-subsection{width:100%;margin:0;padding:0}
body:not(.wp-admin) .arf-portal-subsection+.arf-portal-subsection{margin-top:30px;padding-top:24px;border-top:1px solid var(--arf-theme-line)}
body:not(.wp-admin) .arf-portal-subsection>h2{margin:0 0 12px!important;font-size:1rem!important;line-height:1.25!important;letter-spacing:0!important}
body:not(.wp-admin) .arf-portal-table-tools{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap;width:100%;margin:0 0 10px;padding:10px 12px;background:#f8f9fa;border-bottom:1px solid var(--arf-theme-line)}
body:not(.wp-admin) .arf-portal-table-search,body:not(.wp-admin) .arf-portal-table-filter,body:not(.wp-admin) .arf-portal-table-reset-slot,body:not(.wp-admin) .arf-portal-table-count-slot{box-sizing:border-box;display:grid;grid-template-rows:16px 42px;gap:5px;align-items:stretch;margin:0!important;min-height:63px}
body:not(.wp-admin) .arf-portal-table-search,body:not(.wp-admin) .arf-portal-table-filter{color:var(--arf-theme-muted);font-size:.69rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase}
body:not(.wp-admin) .arf-portal-table-search>span,body:not(.wp-admin) .arf-portal-table-filter>span,body:not(.wp-admin) .arf-portal-table-spacer{box-sizing:border-box;display:flex;align-items:flex-end;height:16px;min-height:16px;margin:0!important;padding:0!important;line-height:16px}
body:not(.wp-admin) .arf-portal-table-spacer{visibility:hidden;font-size:.69rem}
body:not(.wp-admin) .arf-portal-table-search{flex:1 1 320px;min-width:240px}
body:not(.wp-admin) .arf-portal-table-filter{flex:0 1 220px;min-width:170px}
body:not(.wp-admin) .arf-portal-table-reset-slot{flex:0 0 auto}
body:not(.wp-admin) .arf-portal-table-count-slot{flex:0 0 auto;margin-left:auto!important}
body:not(.wp-admin) .arf-portal-table-search input,body:not(.wp-admin) .arf-portal-table-filter select{box-sizing:border-box!important;display:block!important;width:100%!important;height:42px!important;min-height:42px!important;max-height:42px!important;margin:0!important;padding:0 10px!important;border:1px solid var(--arf-theme-line)!important;border-radius:0!important;background:#fff!important;color:var(--arf-theme-ink)!important;font-family:inherit!important;font-size:.82rem!important;font-weight:500!important;line-height:40px!important;letter-spacing:0!important;text-transform:none!important;box-shadow:none!important;vertical-align:top!important}
body:not(.wp-admin) .arf-portal-table-filter select{padding-right:32px!important;line-height:normal!important}
body:not(.wp-admin) .arf-portal-table-search input:focus,body:not(.wp-admin) .arf-portal-table-filter select:focus{border-color:var(--arf-theme-green)!important;outline:1px solid var(--arf-theme-green);outline-offset:-1px}
body:not(.wp-admin) .arf-portal-table-reset{box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;width:auto!important;height:42px!important;min-height:42px!important;max-height:42px!important;margin:0!important;padding:0 13px!important;border:1px solid var(--arf-theme-green)!important;border-radius:0!important;background:#fff!important;color:var(--ars-accent-strong,#b84e08)!important;font-family:inherit!important;font-size:.78rem!important;font-weight:750!important;line-height:1!important;white-space:nowrap!important;box-shadow:none!important;cursor:pointer}
body:not(.wp-admin) .arf-portal-table-reset:hover,body:not(.wp-admin) .arf-portal-table-reset:focus-visible{background:var(--arf-theme-soft)!important}
body:not(.wp-admin) .arf-portal-table-reset:disabled{opacity:.38;cursor:default;background:#fff!important}
body:not(.wp-admin) .arf-portal-table-count{box-sizing:border-box;display:flex;align-items:center;justify-content:flex-end;height:42px;min-height:42px;margin:0!important;padding:0!important;color:var(--arf-theme-muted);font-size:.76rem;font-weight:700;line-height:1.2;white-space:nowrap}
body:not(.wp-admin) .arf-portal-list>.arf-portal-table-wrap{width:100%;margin:0;border-left:0!important}
body:not(.wp-admin) .arf-portal-panel--list .arf-portal-table-wrap{border-left:0!important}
body:not(.wp-admin) .arf-portal-panel--list .arf-portal-table{width:100%;min-width:760px}
body:not(.wp-admin) .arf-portal-table-sort{display:flex;align-items:center;justify-content:flex-start;gap:5px;width:100%;min-height:24px;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-align:left;text-transform:inherit;cursor:pointer}
body:not(.wp-admin) .arf-portal-table-sort:hover,body:not(.wp-admin) .arf-portal-table-sort:focus-visible{color:var(--ars-accent-strong,#b84e08);outline:0;text-decoration:underline;text-underline-offset:3px}
body:not(.wp-admin) .arf-portal-sort-indicator{display:inline-block;min-width:11px;color:var(--arf-theme-green);font-size:.8rem;line-height:1}
body:not(.wp-admin) .arf-portal-table th[aria-sort]{background:#f2f3f4!important;color:var(--ars-accent-strong,#b84e08)!important}
body:not(.wp-admin) .arf-portal-table tbody tr[hidden]{display:none!important}
body:not(.wp-admin) .arf-portal-bookings-table tbody tr.is-history td{background:#f3f4f5;color:#5b5e62}
body:not(.wp-admin) .arf-portal-bookings-table tbody tr.is-history td:first-child{box-shadow:inset 4px 0 0 #acaeb1}
body:not(.wp-admin) .arf-portal-bookings-table tbody tr.is-history:hover td{background:#eaebed!important}
body:not(.wp-admin) .arf-portal-bookings-table tbody tr:not(.is-history) td:first-child{box-shadow:inset 4px 0 0 var(--arf-theme-green)}
body:not(.wp-admin) .arf-portal-toolbar+.arf-portal-list{margin-top:0}
body:not(.wp-admin) .arf-portal-toolbar{margin-bottom:10px!important}
body:not(.wp-admin) .arf-portal-toolbar--after{display:flex;justify-content:flex-end;width:100%;margin:14px 0 0!important}
body:not(.wp-admin) .arf-portal-toolbar--after.arf-muted{display:block;text-align:right;color:var(--arf-theme-muted)}
@media(max-width:900px){body:not(.wp-admin) .arf-portal-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 body:not(.wp-admin) .arf-portal-kpi-grid{grid-template-columns:1fr}
 body:not(.wp-admin) .arf-portal-table-tools{align-items:stretch;padding:10px}
 body:not(.wp-admin) .arf-portal-table-search,body:not(.wp-admin) .arf-portal-table-filter,body:not(.wp-admin) .arf-portal-table-reset-slot,body:not(.wp-admin) .arf-portal-table-count-slot{flex:1 1 100%;min-width:100%;margin-left:0!important}
 body:not(.wp-admin) .arf-portal-table-reset{width:100%!important}
 body:not(.wp-admin) .arf-portal-table-count{justify-content:flex-start}
}

/* REV037 – Teilübergaben / Teilrücknahmen */
.arf-ops-state.is-progress{color:#725400;background:#fff7d6;border-color:#e3cf87}.arf-batch-select{margin:14px 0;padding:14px;border:1px solid #dadde0;border-left:4px solid var(--arf-ops-green);background:#fcfdfe;display:grid;gap:12px}.arf-batch-select>div:first-child{display:grid;gap:3px}.arf-batch-select>div:first-child>strong{font-size:.95rem}.arf-batch-select>div:first-child>span{color:var(--arf-ops-muted);font-size:.82rem}.arf-batch-assets{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.arf-batch-assets label{display:flex!important;align-items:center!important;gap:9px!important;margin:0!important;padding:9px 10px;border:1px solid #dadde0;background:#fff;cursor:pointer}.arf-batch-assets input{width:18px!important;height:18px!important;min-height:0!important;flex:0 0 auto}.arf-batch-assets label>span{display:grid}.arf-batch-assets small{color:var(--arf-ops-muted);font-weight:500}.arf-summary-asset{display:flex!important;justify-content:space-between;gap:12px;align-items:center}.arf-summary-asset em{font-style:normal;font-size:.7rem;color:var(--arf-ops-muted);white-space:nowrap}

/* REV039 – account identity, profile and privacy self-service in the customer portal. */
body:not(.wp-admin) .arf-portal-header{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:28px}
body:not(.wp-admin) .arf-portal-account-title{min-width:0}
body:not(.wp-admin) .arf-portal-account{position:relative;align-self:center;z-index:12}
body:not(.wp-admin) .arf-portal-account-toggle{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:10px;min-width:220px;min-height:52px;padding:8px 12px;border:1px solid var(--arf-theme-line);border-left:4px solid var(--arf-theme-green);border-radius:0;background:#fff;color:var(--arf-theme-ink);font:inherit;text-align:left;cursor:pointer}
body:not(.wp-admin) .arf-portal-account-toggle:hover,body:not(.wp-admin) .arf-portal-account-toggle:focus-visible,body:not(.wp-admin) .arf-portal-account-toggle[aria-expanded="true"]{background:var(--arf-theme-soft);border-color:#babcbe;outline:0}
body:not(.wp-admin) .arf-portal-account-toggle>.arf-portal-icon{width:23px;height:23px;color:var(--arf-theme-green)}
body:not(.wp-admin) .arf-portal-account-toggle>span{display:grid;gap:2px;min-width:0}
body:not(.wp-admin) .arf-portal-account-toggle strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;line-height:1.2}
body:not(.wp-admin) .arf-portal-account-toggle small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--arf-theme-muted);font-size:.72rem;font-weight:650;line-height:1.2}
body:not(.wp-admin) .arf-portal-account-menu{position:absolute;top:calc(100% + 7px);right:0;width:min(330px,calc(100vw - 32px));padding:7px;border:1px solid var(--arf-theme-line);border-top:3px solid var(--arf-theme-green);background:#fff;box-shadow:0 18px 42px rgba(20,24,27,.16)}
body:not(.wp-admin) .arf-portal-account-menu[hidden]{display:none!important}
body:not(.wp-admin) .arf-portal-account-identity{display:grid;gap:2px;margin:0 0 6px;padding:11px 12px 12px;border-bottom:1px solid var(--arf-theme-line);background:#f8f9fa}
body:not(.wp-admin) .arf-portal-account-identity strong{font-size:.91rem}
body:not(.wp-admin) .arf-portal-account-identity span{overflow-wrap:anywhere;color:#4a4d51;font-size:.78rem}
body:not(.wp-admin) .arf-portal-account-identity small{margin-top:3px;color:var(--arf-theme-muted);font-size:.72rem;font-weight:650}
body:not(.wp-admin) .arf-portal-account-menu button,body:not(.wp-admin) .arf-portal-account-menu a{box-sizing:border-box;display:grid;grid-template-columns:21px minmax(0,1fr);align-items:center;gap:9px;width:100%;min-height:40px;margin:0;padding:8px 10px;border:0;border-radius:0;background:transparent;color:var(--arf-theme-ink);font:inherit;font-size:.82rem;font-weight:700;line-height:1.25;text-align:left;text-decoration:none;cursor:pointer}
body:not(.wp-admin) .arf-portal-account-menu button:hover,body:not(.wp-admin) .arf-portal-account-menu button:focus-visible,body:not(.wp-admin) .arf-portal-account-menu a:hover,body:not(.wp-admin) .arf-portal-account-menu a:focus-visible{background:var(--arf-theme-soft);color:var(--ars-accent-strong,#b84e08);outline:0;text-decoration:none}
body:not(.wp-admin) .arf-portal-account-menu .arf-portal-icon{width:18px;height:18px;color:var(--arf-theme-green)}
body:not(.wp-admin) .arf-portal-profile-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 18px}
body:not(.wp-admin) .arf-portal-profile-summary>div{display:grid;gap:4px;padding:11px 12px;border-left:4px solid var(--arf-theme-green);background:#f8f9fa}
body:not(.wp-admin) .arf-portal-profile-summary span{color:var(--arf-theme-muted);font-size:.7rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase}
body:not(.wp-admin) .arf-portal-profile-summary strong{font-size:.88rem;overflow-wrap:anywhere}
body:not(.wp-admin) .arf-profile-password-confirm small{display:block;color:var(--arf-theme-muted);font-weight:500;text-transform:none;letter-spacing:0}
body:not(.wp-admin) .arf-privacy-selfservice{display:grid;gap:18px}
body:not(.wp-admin) .arf-privacy-selfservice>h3{margin:8px 0 -6px!important}
body:not(.wp-admin) .arf-privacy-export{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border-left:4px solid var(--arf-theme-green);background:#f8f9fa}
body:not(.wp-admin) .arf-privacy-export .arf-privacy-action-icon{display:grid;place-items:center;color:var(--arf-theme-green)}
body:not(.wp-admin) .arf-privacy-export .arf-privacy-action-icon .arf-portal-icon{width:26px;height:26px}
body:not(.wp-admin) .arf-privacy-export strong{display:block;margin-bottom:3px;font-size:.9rem}
body:not(.wp-admin) .arf-privacy-export p{margin:0;color:var(--arf-theme-muted);font-size:.78rem;line-height:1.45}
body:not(.wp-admin) .arf-privacy-export .arf-result{grid-column:2/-1;color:var(--arf-theme-muted);font-size:.78rem}
@media(max-width:760px){
 body:not(.wp-admin) .arf-portal-header{grid-template-columns:1fr;align-items:stretch;gap:15px}
 body:not(.wp-admin) .arf-portal-account{width:100%}
 body:not(.wp-admin) .arf-portal-account-toggle{width:100%;min-width:0}
 body:not(.wp-admin) .arf-portal-account-menu{left:0;right:auto;width:100%}
 body:not(.wp-admin) .arf-portal-profile-summary{grid-template-columns:1fr}
 body:not(.wp-admin) .arf-privacy-export{grid-template-columns:34px minmax(0,1fr)}
 body:not(.wp-admin) .arf-privacy-export>.ars-btn{grid-column:1/-1;width:100%}
 body:not(.wp-admin) .arf-privacy-export .arf-result{grid-column:1/-1}
}

/* REV040 – secure company-user invitations and invitation acceptance. */
body:not(.wp-admin) .arf-portal-users-subsection{display:grid;gap:10px;margin:0 0 22px}
body:not(.wp-admin) .arf-portal-users-subsection>h3{margin:0!important;font-size:1rem!important;color:var(--arf-theme-ink)!important}
body:not(.wp-admin) .arf-row-actions{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-start}
body:not(.wp-admin) .arf-invitation-card{max-width:900px}
body:not(.wp-admin) .arf-invitation-body{display:grid;gap:18px;margin-top:8px}
body:not(.wp-admin) .arf-invitation-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
body:not(.wp-admin) .arf-invitation-summary>div{display:grid;gap:4px;padding:12px 13px;border-left:4px solid var(--arf-theme-green);background:#f8f9fa}
body:not(.wp-admin) .arf-invitation-summary span{color:var(--arf-theme-muted);font-size:.7rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase}
body:not(.wp-admin) .arf-invitation-summary strong{font-size:.86rem;overflow-wrap:anywhere}
body:not(.wp-admin) .arf-invitation-state{padding:15px 16px;border-left:4px solid var(--arf-theme-green);background:#f8f9fa}
body:not(.wp-admin) .arf-invitation-state--warning{border-left-color:#a86a18;background:#fff9ef}
body:not(.wp-admin) .arf-invitation-state--error{border-left-color:#9f3f3f;background:#fff5f5}
body:not(.wp-admin) .arf-invitation-state>strong{display:block;margin-bottom:5px;font-size:.94rem}
body:not(.wp-admin) .arf-invitation-state>p{margin:0 0 12px;color:var(--arf-theme-muted);line-height:1.55}
body:not(.wp-admin) .arf-invitation-accept{display:grid;gap:14px}
body:not(.wp-admin) .arf-invitation-accept>.ars-btn{justify-self:start}
@media(max-width:860px){body:not(.wp-admin) .arf-invitation-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){body:not(.wp-admin) .arf-invitation-summary{grid-template-columns:1fr}body:not(.wp-admin) .arf-invitation-accept>.ars-btn{width:100%}.arf-row-actions{flex-direction:column}.arf-row-actions>.ars-btn{width:100%}}

/* REV045: compact finance actions inside full-width portal tables */
body:not(.wp-admin) .arf-portal-finance-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
body:not(.wp-admin) .arf-portal-finance-actions .arf-portal-row-action{margin:0!important}

/* REV047 – Betriebshof layout/host hardening.
 * The internal operations page must not inherit customer-only floating CTAs and
 * its green hero must win against the generic storefront heading contract.
 */
body.arf-operations-page .arf-floating-cart,
body.arf-operations-page a[href*="/vertrag-widerrufen/"]{display:none!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-hero{align-items:center!important;min-height:160px!important;padding:26px 24px!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-hero h1{max-width:none!important;margin:4px 0 10px!important;color:#fff!important;font-size:clamp(2rem,3.4vw,2.85rem)!important;line-height:1.03!important;letter-spacing:-.03em!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-hero .arf-ops-eyebrow{color:#f2f2f3!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-hero p{margin:0!important;color:#f9f0ea!important;line-height:1.48!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-hero .arf-ops-icon-button{flex:none!important;min-height:44px!important;background:transparent!important;border:1px solid rgba(255,255,255,.52)!important;color:#fff!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-hero .arf-ops-icon-button:hover{background:rgba(255,255,255,.12)!important;border-color:#fff!important}

body:not(.wp-admin) .arf-app.arf-ops .arf-ops-card:not(.augite-modal){padding:20px 18px!important;margin-bottom:16px!important}

body:not(.wp-admin) .arf-app.arf-ops .arf-ops-section-head h2{margin:3px 0 6px!important;font-size:clamp(1.55rem,2.4vw,2.05rem)!important;line-height:1.08!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-section-head p{margin:0!important;line-height:1.45!important}

body:not(.wp-admin) .arf-app.arf-ops .arf-ops-token-inline{display:grid!important;grid-template-rows:16px 46px!important;gap:5px!important;align-items:stretch!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-token-inline>span{display:flex!important;align-items:center!important;height:16px!important;line-height:16px!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-token-inline input{height:46px!important;min-height:46px!important;margin:0!important;padding:9px 11px!important}

body:not(.wp-admin) .arf-app.arf-ops .arf-ops-list{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:9px!important;margin-top:14px!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-booking{grid-template-columns:38px minmax(0,1fr) max-content 14px!important;min-height:82px!important;padding:12px!important;border-radius:0!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-booking-copy{align-self:center!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-booking-copy strong,
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-booking-copy span,
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-booking-copy small{margin:0!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-state{justify-self:end!important;max-width:min(14rem,100%);white-space:normal;overflow-wrap:anywhere} /* wave 33 (REQ-SCAN-DIALOG-LAYOUT-SAFARI-001 / decision 165 screenshot): status labels wrap, never truncated (was max-width:124px + ellipsis: "Klärung erforderlich · …") */

@media(max-width:1040px){

 body:not(.wp-admin) .arf-app.arf-ops .arf-ops-list{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:720px){
 body:not(.wp-admin) .arf-app.arf-ops .arf-ops-hero{align-items:flex-start!important;flex-direction:column!important;min-height:0!important;padding:22px 18px!important}
 body:not(.wp-admin) .arf-app.arf-ops .arf-ops-hero .arf-ops-icon-button{width:100%!important}

 body:not(.wp-admin) .arf-app.arf-ops .arf-ops-token-inline{grid-column:1/-1!important}

 body:not(.wp-admin) .arf-app.arf-ops .arf-ops-list{grid-template-columns:1fr!important}
}
@media(max-width:460px){

 body:not(.wp-admin) .arf-app.arf-ops .arf-ops-token-inline{grid-column:1!important}

 body:not(.wp-admin) .arf-app.arf-ops .arf-ops-booking{grid-template-columns:38px minmax(0,1fr) 14px!important}
 body:not(.wp-admin) .arf-app.arf-ops .arf-ops-state{grid-column:2!important;grid-row:2!important;justify-self:start!important;margin-top:5px!important}
 body:not(.wp-admin) .arf-app.arf-ops .arf-ops-chevron{grid-column:3!important;grid-row:1/3!important}
}

/* REV048 – Betriebshof: final template-grid contract.
 * Keep the operations workflow inside the same document shell width used by
 * the active augite Rental Theme. This rule's higher selector specificity
 * (.arf-app.arf-ops.arf-theme-page vs. the general .arf-app.arf-ops rule
 * above) means it always wins regardless of source order -- so when the
 * theme's own shell width changes, THIS number must be updated to match.
 *
 * REQ-088 (REV144): the theme (site.css, .ars-doc-page>.ars-shell) has since
 * moved from 1040px (REV88, when this rule was written) to 1180px, but this
 * rule was never updated to track it -- so /intern/rentalflow silently drifted
 * to a narrower shell than every other public page on the site, reported by
 * the client and confirmed live: the general 1180px rule above was present
 * and correct the whole time, this more-specific rule was just overriding it
 * with a stale value. Corrected to 1180px to match the theme's current width.
 */
body:not(.wp-admin) .arf-app.arf-ops.arf-theme-page>.arf-theme-container{
  width:min(1180px,calc(100% - 48px))!important;
  max-width:1180px!important;
  margin:0 auto!important;
  padding:34px 0 46px!important;
}
/* REQ-INTERN-LAYOUT-CALIBRATION (2026-09-12): /intern/rentalflow/ is the one /intern/ surface
 * that genuinely has to work one-handed on a tablet (see design/website/website_layoutvorschrift-
 * REV001 line 79/156: tablet gets touch-arbeitszeilen, only desktop gets a comparison table) -
 * its 1180px cap above stays untouched. The other /intern/ modules (RentalCore Business
 * Management, RentalInvoice, RentalPayments - all built on augite-rentalcore.php/-invoice.php/
 * -payments.php's shared /intern/ shell, REQ-INTERN-CONSOLIDATION M1-M3) are desktop-only list/
 * detail screens using .arf-admin-table, the same dense wp-admin-equivalent row padding
 * (10px 12px) as body.wp-admin .arf-app.arf-ops above - but were inheriting /intern/rentalflow's
 * tablet-safe 1180px width regardless, needlessly cramping table columns that don't need to fit
 * a tablet viewport at all (e.g. the Kunden-Liste is already at the design spec's own "SOLL max 7
 * Desktop-Spalten" budget - see line 102 of the same source - inside only 1180px). Every one of
 * these module pages carries data-arf-intern-module (rentalflow's own page never does - see
 * class-arf-shortcodes.php line ~712), which this rule uses to widen ONLY them to 1320px - the
 * same desktop content width this codebase already established for the wp-admin-embedded variant
 * of this exact UI (body.wp-admin .arf-app.arf-ops below), and the value the layout spec's own
 * K07 conflict resolution names as "aktuell wirksame Root-Breite" (line 36). Higher selector
 * specificity than the 1180px rule above (adds [data-arf-intern-module] and the child
 * combinator) guarantees this wins regardless of source order - see the REV048/REQ-088 comment
 * above for why that discipline matters here. */
body:not(.wp-admin) .arf-app.arf-ops.arf-theme-page[data-arf-intern-module]{
  width:min(1320px,calc(100% - 48px))!important;
  max-width:1320px!important;
  margin:0 auto!important;
}
body:not(.wp-admin) .arf-app.arf-ops.arf-theme-page[data-arf-intern-module]>.arf-theme-container{
  width:min(1320px,calc(100% - 48px))!important;
  max-width:1320px!important;
  margin:0 auto!important;
  padding:34px 0 46px!important;
}
body:not(.wp-admin) .arf-app.arf-ops,
body:not(.wp-admin) .arf-app.arf-ops *,
body:not(.wp-admin) .arf-app.arf-ops *::before,
body:not(.wp-admin) .arf-app.arf-ops *::after{box-sizing:border-box}
/* Nutzerauftrag (2026-09-12): dieselbe ".arf-ops-card ist immer 100% breit"-Falle wie die
 * wp-admin-Fassung oben (Spezifitaet 0,4,1 - schlaegt jede gleich- oder niedriger-spezifische
 * Modal-Regel unabhaengig von deren eigener Spezifitaet) - der reale Grund, warum das
 * Asset-Modal auf /intern/rentalflow/ trotz mehrfacher vorheriger Korrekturen "seitenbreit"
 * blieb, waehrend Kundesuche/Direktvermietung (ohne .arf-ops-card-Klasse) korrekt reagierten. */
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-hero,
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-card:not(.augite-modal){width:100%!important;max-width:100%!important;min-width:0!important}

/* Live finding (2026-09-14, Auftraggeber-Screenshot): the Asset-Identifikation modal still
 * horizontal-scrolled and clipped "Übernehmen" despite the earlier width-arithmetic fix, because
 * this rule - like the ".arf-ops-card ist immer 100% breit"-Falle documented above (specificity
 * 0,4,1, beats any lower-specificity modal-scoped rule regardless of source order) - was never
 * excluded from the picker modal. It forced minmax(210px,1fr) (later re-declared as 250px/220px/
 * 200px by sibling rules below and above) on the scanbar's input column INSIDE the modal too,
 * overriding the modal's own, lower-specificity (0,3,0) ".arf-ops-scanner.is-picker-modal
 * .arf-ops-scanbar{grid-template-columns:auto auto minmax(0,1fr) auto}" rule further down this
 * file - exactly the overflow the screenshot showed. Fixed the same way as the .arf-ops-card
 * case: ":not(.augite-modal)" on the .arf-ops-scanner ancestor, applied to every unscoped
 * .arf-ops-scanbar selector in this file (base rule + both duplicate blocks + every media query),
 * so the modal's own scanbar rule governs uncontested. */

body:not(.wp-admin) .arf-app.arf-ops .arf-ops-token-inline,
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-token-inline input{min-width:0!important;max-width:100%!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-list{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  width:100%!important;
}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-booking{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-booking-copy,
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-summary-item>div{min-width:0!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-assets-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-detail,
body:not(.wp-admin) .arf-app.arf-ops [data-arf-process]{min-width:0!important;max-width:100%!important;overflow-wrap:anywhere}
@media(max-width:1040px){

  body:not(.wp-admin) .arf-app.arf-ops .arf-ops-list{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:720px){
  body:not(.wp-admin) .arf-app.arf-ops.arf-theme-page>.arf-theme-container{width:calc(100% - 28px)!important;padding:32px 0 40px!important}

  body:not(.wp-admin) .arf-app.arf-ops .arf-ops-token-inline{grid-column:1/-1!important}

  body:not(.wp-admin) .arf-app.arf-ops .arf-ops-list,
  body:not(.wp-admin) .arf-app.arf-ops .arf-ops-assets-summary{grid-template-columns:1fr!important}
}
@media(max-width:460px){

  body:not(.wp-admin) .arf-app.arf-ops .arf-ops-token-inline{grid-column:1!important}

}

/* REV049 — return acceptance / internal turnaround separation */
.arf-return-findings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;border-top:1px solid #e6e7e9;background:#f9fafb}.arf-return-findings-head{grid-column:1/-1;display:grid;gap:3px;padding-bottom:3px}.arf-return-findings-head strong{font-size:.9rem}.arf-return-findings-head span{font-size:.74rem;color:var(--arf-ops-muted);line-height:1.4}.arf-return-finding{min-width:0}.arf-return-finding .arf-field-label{display:block;margin-bottom:5px}.arf-return-finding .arf-field-label em{color:var(--arf-ops-warn);font-style:normal}.arf-touch-choice--finding{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}.arf-touch-choice--finding label>span{min-height:50px;line-height:1.2}.arf-touch-choice--finding b,.arf-touch-choice--condition b{font-size:.95rem}.arf-choice-icon{display:inline-grid;place-items:center}.arf-choice-icon svg,.arf-choice-icon .arf-ui-icon{width:1.1em;height:1.1em}.arf-touch-choice--condition{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:7px}.arf-touch-choice--condition label>span{min-height:44px}.arf-master-item.is-return-condition{grid-template-columns:36px minmax(0,1fr);margin:4px 14px 8px!important;padding:10px;border:1px solid #dee0e2;border-radius:0;background:#fbfbfa}.arf-derived-disposition{display:grid;gap:3px;padding:12px 14px;border:1px solid #dadde0;border-left:4px solid var(--arf-ops-green);border-radius:0;background:#f7f8f9}.arf-derived-disposition .arf-derived-kicker{font-size:.67rem!important;font-weight:800!important;letter-spacing:.07em;text-transform:uppercase;color:var(--arf-ops-muted)}.arf-derived-disposition strong{font-size:.92rem}.arf-derived-disposition small{font-size:.72rem;line-height:1.4;color:var(--arf-ops-muted)}.arf-derived-disposition.is-cleaning,.arf-derived-disposition.is-maintenance{border-left-color:#9a6a17;background:#fffaf0}.arf-derived-disposition.is-quarantine,.arf-derived-disposition.is-repair,.arf-derived-disposition.is-damage{border-left-color:var(--arf-ops-warn);background:#fff7f1}.arf-derived-disposition.is-pending{border-left:1px solid #dadde0;padding-left:17px;background:#fafbfa}.arf-turnaround-guidance{margin:12px 14px 14px;border:1px solid #dadde0;border-radius:0;background:#f9fafb}.arf-turnaround-guidance summary{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;padding:11px 12px;cursor:pointer;list-style:none}.arf-turnaround-guidance summary::-webkit-details-marker{display:none}.arf-turnaround-guidance summary>span{display:grid;place-items:center;width:32px;height:32px;border-radius:0;background:#eff0f1;color:var(--ars-accent-strong-hover,#9a4307)}.arf-turnaround-guidance summary div{display:grid;gap:1px}.arf-turnaround-guidance summary strong{font-size:.82rem}.arf-turnaround-guidance summary small{font-size:.7rem;color:var(--arf-ops-muted)}.arf-turnaround-body{padding:0 13px 13px;border-top:1px solid #e6e7e9}.arf-turnaround-body p{font-size:.73rem;line-height:1.45;color:var(--arf-ops-muted)}.arf-turnaround-body ol{display:grid;gap:7px;margin:8px 0 0;padding-left:22px}.arf-turnaround-body li{padding-left:2px;font-size:.75rem;line-height:1.4}.arf-turnaround-body li strong{display:block}.arf-turnaround-body li span{display:block;color:var(--arf-ops-muted)}
@media(max-width:700px){.arf-return-findings{grid-template-columns:1fr}.arf-return-findings-head{grid-column:auto}.arf-touch-choice--condition{grid-template-columns:1fr}.arf-turnaround-guidance{margin-left:9px;margin-right:9px}}
.arf-pre-return{margin:18px 0;padding:16px;border:1px solid #dadde0;border-left:4px solid var(--arf-ops-green);border-radius:0;background:#f8f9fa}.arf-pre-return h3{margin:0 0 5px}.arf-pre-return>p{margin:0 0 12px;color:#6b6f73;font-size:.82rem}.arf-pre-return-group{padding:10px 0;border-top:1px solid #e6e8e9}.arf-pre-return-group:first-of-type{border-top:0}.arf-pre-return-group>strong{font-size:.84rem}.arf-pre-return-group ul{margin:6px 0 0;padding-left:20px}.arf-pre-return-group li{margin:4px 0;font-size:.8rem;line-height:1.4}.arf-pre-return-group b{font-weight:750}

/* REV053 — Transport Phase 2 / operative yard queue */
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-transport .arf-ops-section-head{margin-bottom:12px}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-card{display:grid;gap:10px;min-width:0;padding:14px;border:1px solid #dadde0;border-radius:0;background:#fbfcfb;box-shadow:0 1px 0 rgba(20,24,27,.03)}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-card.has-conflict{border-color:#d8aa79;background:#fffaf4}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-main{display:grid;grid-template-columns:40px minmax(0,1fr);gap:11px;align-items:start}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:0;background:#eff0f1;color:var(--arf-ops-green)}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-copy{display:grid;gap:3px;min-width:0}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-title{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-title strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-copy>span{font-size:.8rem;font-weight:700;color:#35383c}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-copy>small{font-size:.72rem;line-height:1.4;color:var(--arf-ops-muted);overflow-wrap:anywhere}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-address{padding-top:2px;color:#5b5f63!important}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-warning{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:start;padding:9px 10px;border:1px solid #efd2b6;border-radius:0;background:#fff6ec;color:#6c421d}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-warning.is-note{border-color:#e1e2e4;background:#f8f9fa;color:#4b4e52}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-warning .arf-ui-icon{width:26px;height:26px}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-warning div{display:grid;gap:2px;min-width:0}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-warning strong{font-size:.74rem}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-warning span{font-size:.69rem;line-height:1.4;overflow-wrap:anywhere}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding-top:2px}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-actions .arf-ops-primary,
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-actions .arf-ops-secondary{min-height:42px;margin:0}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-result{min-height:0;font-size:.72rem;color:var(--arf-ops-muted)}
@media(max-width:820px){body:not(.wp-admin) .arf-app.arf-ops .arf-transport-list{grid-template-columns:1fr}}
@media(max-width:520px){body:not(.wp-admin) .arf-app.arf-ops .arf-transport-actions{display:grid;grid-template-columns:1fr}body:not(.wp-admin) .arf-app.arf-ops .arf-transport-actions .arf-ops-primary,body:not(.wp-admin) .arf-app.arf-ops .arf-transport-actions .arf-ops-secondary{width:100%}}

/* REV057 — dead REV054 header-injection CSS removed after REV055; portal profile summary remains local. */
body:not(.wp-admin) .arf-portal-profile-summary{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}

/* REV059 — single global account control restored in the confirmed augite header */
body:not(.wp-admin) .ars-header .arf-global-account{position:relative!important;display:flex!important;align-items:center!important;min-width:0!important;margin:0!important}
body:not(.wp-admin) .ars-header .arf-global-account svg{display:block;width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body:not(.wp-admin) .ars-header .arf-global-account__toggle,
body:not(.wp-admin) .ars-header .arf-global-account__login{display:grid!important;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;min-height:42px;padding:6px 9px!important;border:1px solid #dee0e2!important;border-radius:0!important;background:#f9fafb!important;color:#2f3235!important;font:inherit!important;text-align:left!important;text-decoration:none!important;box-shadow:none!important;cursor:pointer}
body:not(.wp-admin) .ars-header .arf-global-account__login{grid-template-columns:20px minmax(0,1fr)}
body:not(.wp-admin) .ars-header .arf-global-account__toggle:hover,
body:not(.wp-admin) .ars-header .arf-global-account__toggle:focus-visible,
body:not(.wp-admin) .ars-header .arf-global-account__login:hover,
body:not(.wp-admin) .ars-header .arf-global-account__login:focus-visible{border-color:var(--ars-green,var(--arf-theme-green,#d9600a))!important;background:#f2f3f5!important;text-decoration:none!important}
/* LIVE-TASK-2026-09-12-011 BEFUND-4 (WCAG 2.4.7 Focus Visible): the rule above suppressed the
 * outline entirely and relied only on the hover/focus border-color shift, which measured as
 * outline-style:none plus box-shadow:none on real keyboard focus - no visible indicator at all.
 * Restored with the same soft-green focus-visible ring already used elsewhere in this file
 * (e.g. .arf-app .ars-btn above) instead of suppressing it.
 * Reconciliation note (2026-09-13, merge of claude/stoic-newton-ny2n5b and
 * claude/software-package-analysis-impl-8c5uno): both branches independently fixed this exact
 * defect (this branch's own version used outline:3px solid #1a5fb4). Kept this side's fix because
 * it is the one that was actually real-browser re-verified live (LIVE-TASK-2026-09-13-010,
 * "alle vier Fixes real bestaetigt"); the other side's equivalent fix was discarded as redundant,
 * not lost functionality. */
body:not(.wp-admin) .ars-header .arf-global-account__toggle:focus-visible,
body:not(.wp-admin) .ars-header .arf-global-account__login:focus-visible{outline:2px solid rgba(217,96,10,.4)!important;outline-offset:2px}
body:not(.wp-admin) .ars-header .arf-global-account__text,
body:not(.wp-admin) .ars-header .arf-global-account__login>span{display:grid;gap:0;min-width:0;line-height:1.15}
body:not(.wp-admin) .ars-header .arf-global-account__text strong,
body:not(.wp-admin) .ars-header .arf-global-account__login strong{display:block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.79rem;font-weight:800}
body:not(.wp-admin) .ars-header .arf-global-account__text small,
body:not(.wp-admin) .ars-header .arf-global-account__login small{display:block;max-width:160px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6e7276;font-size:.61rem;font-weight:700;letter-spacing:.015em}
body:not(.wp-admin) .ars-header .arf-global-account__chevron{display:inline-grid;place-items:center;transition:transform .15s ease}
body:not(.wp-admin) .ars-header .arf-global-account__chevron svg{width:.85rem;height:.85rem}
body:not(.wp-admin) .ars-header .arf-global-account.is-open .arf-global-account__chevron{transform:rotate(180deg)}
/* Wave 34b (client decision 262, REQ-UI-ACCOUNT-SWITCHES-COMPACT-001): 400px (was 310px) so the utility row globe DE | EN - Hilfe EIN | AUS -
   Toene EIN | AUS fits into one line; narrower viewports keep calc(100vw - 28px) and the row wraps cleanly. */
body:not(.wp-admin) .ars-header .arf-global-account__menu{position:absolute;top:calc(100% + 10px);right:0;z-index:90;width:min(400px,calc(100vw - 28px));padding:0;border:1px solid #dadde0;border-top:4px solid var(--ars-green,var(--arf-theme-green,#d9600a));background:#fff;box-shadow:0 16px 40px rgba(20,24,27,.16)}
body:not(.wp-admin) .ars-header .arf-global-account__menu[hidden]{display:none!important}
body:not(.wp-admin) .ars-header .arf-global-account__identity{display:grid;gap:3px;padding:13px 14px;border-bottom:1px solid #e8e9ea;background:#f9fafb;min-width:0}
body:not(.wp-admin) .ars-header .arf-global-account__identity strong{font-size:.9rem;overflow-wrap:anywhere}
body:not(.wp-admin) .ars-header .arf-global-account__identity span{color:#5b5f63;font-size:.72rem;overflow-wrap:anywhere}
body:not(.wp-admin) .ars-header .arf-global-account__identity small{color:var(--ars-muted,#6b6f73);font-size:.66rem;line-height:1.35;overflow-wrap:anywhere}
/* REQ-089 Nachtrag (2026-09-14, direkter Nutzerauftrag): DE/EN-Umschalter sitzt fest im
   Profil-/Kontomenue statt an einer schwebenden oder im Footer untergehenden Position. */
/* REQ-UI-CONSISTENCY-PILL-HELPER-FILTER-001 Nachtrag (2026-09-14): moved from directly under the
   identity block (top, most prominent position) to a quiet utility row at the very bottom of the
   menu, after every real menu item - border-top (was border-bottom) now separates it from the
   items above instead of the identity block, and the background stays the same subdued tone. */
body:not(.wp-admin) .ars-header .arf-global-account__lang{padding:8px 14px;border-top:1px solid #e8e9ea;background:#f9fafb}
body:not(.wp-admin) .ars-header .arf-global-account__lang .arf-lang-switch{margin:0}
/* Wave 34 (client decision 176, REQ-UI-ACCOUNT-SWITCHES-COMPACT-001): language | help | scan sound share ONE utility row
   (.arf-global-account__prefs) - the row carries the separator line and the subdued background; the inner blocks are
   neutralised in help.css (switch box = DE/EN link box). */
body:not(.wp-admin) .ars-header .arf-global-account__prefs{padding:8px 14px;border-top:1px solid #e8e9ea;background:#f9fafb}
body:not(.wp-admin) .ars-header .arf-global-account__prefs .arf-lang-switch{gap:5px}
body:not(.wp-admin) .ars-header .arf-global-account__item{display:grid!important;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:9px;width:100%;min-height:42px;padding:9px 13px!important;color:#2f3235!important;font-size:.78rem!important;font-weight:750!important;text-decoration:none!important;white-space:normal!important}
body:not(.wp-admin) .ars-header .arf-global-account__item:hover,
body:not(.wp-admin) .ars-header .arf-global-account__item:focus-visible{background:#f2f3f5!important;text-decoration:none!important}
/* Same BEFUND-4 defect class as .arf-global-account__toggle above (outline suppressed with no
 * replacement indicator) - system-wide check (CLAUDE.md) found this one other occurrence.
 * Reconciliation note (2026-09-13): kept this side per the same rationale as the toggle/login
 * rule above (live-verified fix wins over the redundant equivalent). */
body:not(.wp-admin) .ars-header .arf-global-account__item:focus-visible{outline:2px solid rgba(217,96,10,.4)!important;outline-offset:-2px}
body:not(.wp-admin) .ars-header .arf-global-account__item--separator{border-top:1px solid #e8e9ea}
body:not(.wp-admin) .arf-portal-profile-summary{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}
@media(max-width:1120px){
  body:not(.wp-admin) .ars-header .arf-global-account__text small{display:none}
  body:not(.wp-admin) .ars-header .arf-global-account__text strong{max-width:110px}
}
/* Live finding LIVE-TASK-2026-09-15-156 R12 (2026-09-15): between 768 and 960 px the one-row header had no width left for
   the account control - min-width:0 shrank it to 0-20 px while its pictograms stayed in place, so the chevron poked out
   of the viewport (scrollWidth 850 at 834 px, 836 at 800 px, 804 at 768 px). In that band the control keeps its size and
   shows pictogram + chevron only; name and role stay in the accessible name (visually hidden, not display:none). */
@media(min-width:768px){
  body:not(.wp-admin) .ars-header .arf-global-account{flex:0 0 auto!important}
}
@media(min-width:768px) and (max-width:960px){
  body:not(.wp-admin) .ars-header .arf-global-account__toggle{grid-template-columns:20px auto!important}
  body:not(.wp-admin) .ars-header .arf-global-account__login{grid-template-columns:20px!important}
  body:not(.wp-admin) .ars-header .arf-global-account__text,
  body:not(.wp-admin) .ars-header .arf-global-account__login>span{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
}
/* Entscheidungen 27/28 (REV307): the overlay rules follow the < 768 px narrow threshold and are one column (see the E28 block). */
@media(max-width:767px){
  body:not(.wp-admin) .ars-header .wp-block-navigation__responsive-container.is-menu-open .arf-global-account{display:block!important;width:100%!important;margin-top:8px!important}
  body:not(.wp-admin) .ars-header .wp-block-navigation__responsive-container.is-menu-open .arf-global-account__toggle,
  body:not(.wp-admin) .ars-header .wp-block-navigation__responsive-container.is-menu-open .arf-global-account__login{width:100%!important;grid-template-columns:minmax(0,1fr)!important;justify-items:start;row-gap:4px;padding:10px 0!important;border-width:1px 0!important;background:#fff!important}
  body:not(.wp-admin) .ars-header .wp-block-navigation__responsive-container.is-menu-open .arf-global-account__login{grid-template-columns:minmax(0,1fr)!important}
  body:not(.wp-admin) .ars-header .wp-block-navigation__responsive-container.is-menu-open .arf-global-account__text strong,
  body:not(.wp-admin) .ars-header .wp-block-navigation__responsive-container.is-menu-open .arf-global-account__text small,
  body:not(.wp-admin) .ars-header .wp-block-navigation__responsive-container.is-menu-open .arf-global-account__login strong,
  body:not(.wp-admin) .ars-header .wp-block-navigation__responsive-container.is-menu-open .arf-global-account__login small{display:block;max-width:none}
  body:not(.wp-admin) .ars-header .wp-block-navigation__responsive-container.is-menu-open .arf-global-account__menu{position:static;width:100%;margin-top:5px;border-width:1px 0 0;box-shadow:none}
}
/* REQ-INTERN-MOBILE-NAV-001 (Auftraggeber-P1 2026-09-21): UX-RWD-001 "Responsive ist Neupriorisierung".
   Fuer die vier Fachrollen ist das Kontomenue die einzige interne Navigation (ARF_Account::current_context(),
   Zweig is_internal_user()) - im Telefon-Overlay stand es bisher HINTER den sechs oeffentlichen
   Websitelinks (Mietgeraete, So funktioniert's, Geschaeftskunden, Kontakt, FAQ, Meine Buchung).
   Gemessen an einem temporaeren arf_workshop-Konto bei 400 px: das Kontoelement war das siebte und
   letzte Listenelement. Fuer ein internes Konto ist die Reihenfolge damit die des Schaufensters, nicht
   die der Arbeit. Nur `--staff` wird vorgezogen: Kunden- und WordPress-Konten sowie Gaeste behalten die
   bisherige Reihenfolge unveraendert (kein zweites Menue, keine Navigationsduplikate - UX-NAV-003).
   Der Trennstrich wandert mit nach unten, damit die Gruppierung "intern | oeffentlich" erhalten bleibt. */
@media(max-width:767px){
  body:not(.wp-admin) .ars-header .wp-block-navigation__responsive-container.is-menu-open .arf-global-account--staff{order:-1;margin-top:0!important;margin-bottom:10px!important;padding-bottom:6px;border-bottom:1px solid #e8e9ea}
  body:not(.wp-admin) .ars-header .wp-block-navigation__responsive-container.is-menu-open .arf-global-account--staff .arf-global-account__toggle{min-height:48px}
  /* Die Menuezeilen sind im Overlay die eigentlichen Navigationsziele: 48 px Zielhoehe (UX-RWD-002)
     statt der 42 px aus der Desktop-Dropdownregel oben; live mit hasTouch=true bei 59,3 px gemessen,
     der Mindestwert sichert sie auch bei einzeiligen Labels und kleinerer Schrift ab. */
  body:not(.wp-admin) .ars-header .wp-block-navigation__responsive-container.is-menu-open .arf-global-account__item{min-height:48px!important}
}

/* Wave 13 (REQ-THEME-GUEST-LANG-SWITCHER-SITE-EN-001, client decision 47): compact guest DE/EN switcher as its own header
   navigation item directly before "Anmelden" (ARF_Account::header_markup(), guest branch). Same square look and monochrome
   globe pictogram as the account-menu row (REQ-UI-CONSISTENCY-PILL-HELPER-FILTER-001: border-radius 0, no pill, no flag);
   the theme's generic `.ars-header nav` / `.ars-header nav a` rules (20px gaps, .93rem bold links, underline on hover)
   are neutralised for this one nav. Between 768 and 1120 px the pictogram is dropped so the one-row header keeps its width
   budget; below 768 px the item lives in the full-width menu overlay (decision 37) with 44 px touch targets. */
body:not(.wp-admin) .ars-header .arf-global-lang{display:flex!important;align-items:center!important;min-width:0!important;margin:0!important}
body:not(.wp-admin) .ars-header .arf-global-lang .arf-lang-switch{display:flex;align-items:center;gap:5px;margin:0;flex-wrap:nowrap;justify-content:flex-start;font-size:.74rem;color:#5b5f63}
body:not(.wp-admin) .ars-header .arf-global-lang .arf-lang-switch__icon{width:16px;height:16px;color:#5b5f63}
body:not(.wp-admin) .ars-header .arf-global-lang .arf-lang-switch__icon svg{width:16px;height:16px;flex:0 0 16px;fill:none;stroke:currentColor}
body:not(.wp-admin) .ars-header .arf-global-lang .arf-lang-switch__options{display:flex;gap:2px}
body:not(.wp-admin) .ars-header .arf-global-lang .arf-lang-switch__link{display:inline-flex;align-items:center;justify-content:center;min-width:30px;min-height:30px;padding:0 5px;border:1px solid transparent;border-radius:0;background:transparent;color:#5b5f63;font-size:.74rem;font-weight:700;letter-spacing:.04em;line-height:1;text-decoration:none;white-space:nowrap}
body:not(.wp-admin) .ars-header .arf-global-lang .arf-lang-switch__link:hover{color:#2f3235;border-color:#dee0e2;text-decoration:none}
body:not(.wp-admin) .ars-header .arf-global-lang .arf-lang-switch__link:focus-visible{outline:2px solid rgba(217,96,10,.5);outline-offset:1px}
body:not(.wp-admin) .ars-header .arf-global-lang .arf-lang-switch__link.is-current{color:#2f3235;border-color:#cdcfd1;background:#f0f1f2}
@media(max-width:1120px) and (min-width:768px){
  body:not(.wp-admin) .ars-header .arf-global-lang .arf-lang-switch__icon{display:none}
  body:not(.wp-admin) .ars-header .arf-global-lang .arf-lang-switch__link{min-width:28px;padding:0 4px}
}
@media(max-width:767px){
  body:not(.wp-admin) .ars-header .wp-block-navigation__responsive-container.is-menu-open .arf-global-lang{display:block!important;width:100%!important;margin-top:8px!important}
  body:not(.wp-admin) .ars-header .wp-block-navigation__responsive-container.is-menu-open .arf-global-lang .arf-lang-switch{gap:8px}
  body:not(.wp-admin) .ars-header .wp-block-navigation__responsive-container.is-menu-open .arf-global-lang .arf-lang-switch__link{min-width:44px;min-height:44px;padding:0 10px;font-size:.8rem}
}

/* REV066 — WordPress admin rendering contract for RentalFlow shortcode.
   The operations UI is reused in wp-admin; never let generic SVG width:100% escape its icon box. */
body.wp-admin .arf-app.arf-ops{max-width:1320px;margin:0}
body.wp-admin .arf-app.arf-ops>.ars-shell,body.wp-admin .arf-app.arf-ops .arf-theme-container{width:100%!important;max-width:1320px!important;margin:0!important;padding:0!important}
body.wp-admin .arf-app.arf-ops .arf-ui-icon{display:grid;place-items:center;flex:none;overflow:hidden}
body.wp-admin .arf-app.arf-ops .arf-ui-icon svg{display:block;width:22px!important;height:22px!important;max-width:22px!important;max-height:22px!important}
body.wp-admin .arf-app.arf-ops .arf-ops-empty{min-height:72px}
body.wp-admin .arf-app.arf-ops .arf-ops-empty>.arf-ui-icon{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important}
body.wp-admin .arf-app.arf-ops .arf-transport-icon{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;overflow:hidden}
body.wp-admin .arf-app.arf-ops .arf-transport-icon svg{width:22px!important;height:22px!important;max-width:22px!important;max-height:22px!important}

/* REV068: ranked near-term availability alternatives */
.arf-availability-alternatives{margin-top:12px;padding:14px 16px;border:1px solid var(--ars-line,#dadde0);border-radius:0;background:#f9fafb;display:flex;flex-wrap:wrap;gap:9px}.arf-availability-alternatives>strong,.arf-availability-alternatives>p{flex:0 0 100%;margin:0}.arf-availability-alternatives>p{color:#64676b;font-size:.92rem}.arf-availability-alternatives .ars-btn{min-height:44px}

/* REV082 – RentalFlow compact backend + unified asset picker */
.wp-admin .arf-app.arf-ops .arf-ops-hero{display:none!important}
/* REQ-UI-CONSISTENCY-PILL-HELPER-FILTER-001: real <button type="button"> (class-arf-shortcodes.php),
   not a badge - the pill exemption (999px/50%) is reserved for non-clickable status chips only, so
   this square close control drops the circular radius like every other interactive element. */

.arf-ops-token-inline{position:relative}
.arf-asset-suggestions{position:absolute;z-index:100;top:100%;left:0;right:0;margin-top:4px;max-height:320px;overflow:auto;border:1px solid #c4c6c9;border-radius:0;background:#fff;box-shadow:0 12px 34px rgba(20,24,27,.18);padding:5px}
.arf-asset-suggestion{display:flex;width:100%;min-height:52px;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 11px;border:0;border-radius:0;background:#fff;color:#24262a;text-align:left;cursor:pointer}
.arf-asset-suggestion:hover,.arf-asset-suggestion:focus{background:#f2f3f5;outline:2px solid #d9600a;outline-offset:-2px}
.arf-asset-suggestion strong{font-size:.92rem}
.arf-asset-suggestion span,.arf-asset-suggestion-empty{font-size:.78rem;color:#66696d}
.arf-asset-suggestion-empty{padding:11px}

/* Nutzerauftrag (2026-09-12): "Asset/NFC-Modal ist korrekt vom Layout, darf nur nicht
 * bildschirmbreit sein... Kundesuche-Modal muss an das andere Design angepasst werden...
 * Direktvermietung kann auch in ein Modal ueberfuehrt werden... Breite auf maximal 800px."
 * Folgeauftrag: "Die Modals sind noch nicht optimal. Die muessen auf 75% der Seitenbreite
 * initial gesetzt werden. Im speziellen das Asset-Modal ist immer noch seitenbreit, das vom
 * Walkinauftrag zu schmal." Realer Fund: augite-ux-platform/assets/augite-ux.css enthaelt eine
 * GETEILTE Regel ".augite-ux-platform .is-picker-modal" (2 Klassen, Spezifitaet 0,2,0) - exakt
 * dieselbe Spezifitaet wie die vorherige Fassung dieser Regel hier (ebenfalls 2 Klassen), womit
 * der tatsaechliche Gewinner allein von der Ladereihenfolge der beiden Stylesheets abhing - das
 * exakt gleiche Kaskaden-Wettrennen-Muster wie bereits bei REQ-DESIGN-WPADMIN-LAYOUT dokumentiert,
 * hier aber unentdeckt, weil die vorherige Konsolidierung nur innerhalb dieser Datei gesucht hat.
 * Fix: alle drei Selektoren um den immer vorhandenen ".arf-app.arf-ops"-Vorfahren erweitert
 * (Spezifitaet auf 0,3,0 bzw. 1,2,0 angehoben), damit diese Regel unabhaengig von der
 * Ladereihenfolge IMMER gewinnt - die konkurrierende ux-platform-Regel wurde dort entfernt
 * (siehe augite-ux-platform/assets/augite-ux.css), statt eine zweite Breiten-Wahrheit zu
 * behalten. Breite jetzt 75% der Viewport-Breite (statt einer festen 800px-Obergrenze), mit
 * einer Kappung fuer sehr breite Bildschirme, damit das Modal dort nicht unnoetig breit wird. */

/* REQ-091 (Paket H): replaced by a real DOM backdrop element (data-arf-picker-backdrop) so a
 * click on the darkened area can actually be told apart from a click on the card - a ::before
 * pseudo-element is not part of the DOM and can never receive its own click listener. */

/* REQ-INTERN-BOOKING-DETAIL-VISUAL-CLARITY-001: real width arithmetic (not a guess) for the
 * default (>820px viewport) 4-column ".arf-ops-scanbar" row above - modal width is
 * min(75vw,1100px) per the rule at "Breite jetzt 75% der Viewport-Breite" above, padding 18px
 * 20px (40px horizontal) + 1px border each side (2px) = content width ≈ 0.75*viewport-42px.
 * The three fixed ("auto") columns (QR/Barcode, NFC lesen, Übernehmen - each
 * ".arf-ops-secondary"/".arf-ops-primary" with icon+nowrap text+padding) sum to roughly
 * 390-420px plus 3×8px column gaps (≈24px) ≈ 415-445px that can never shrink (white-space:nowrap
 * on this rule, line ~311). At the 820px viewport breakpoint's upper edge (just before the
 * media query below takes over), modal width = 0.75*820 = 615px, content ≈ 573px - only
 * ~130-155px of margin over the ~415-445px the three fixed columns need, i.e. barely enough for
 * the "minmax(0,1fr)" token input column to stay usably wide rather than being squeezed toward
 * 0 (a technically non-overflowing but effectively unusable/clipped-looking input at real font
 * metrics, matching the reported "abgeschnittener Übernehmen-Button" symptom at viewport widths
 * around 900-1050px - a real desktop browser window that is not maximized, not just >=1280px
 * full-screen). Lowering the collapse point from 820px to 1010px gives the scanbar (not the whole
 * modal - it keeps its 75vw sizing) the same safe stacked 2-column fallback well before that thin
 * margin is reached; content width at 1010px viewport is already comfortably above what the fixed
 * columns need (≈715px vs ≈445px), so nothing changes for genuinely wide desktop viewports.
 * See docs/projektsteuerung/live-tasks/ for the real-browser confirmation this still needs. */

@media(max-width:820px){

  .arf-asset-suggestions{max-height:220px}
}

/* REV086: action-first RentalFlow quick actions */
.arf-ops-quick{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:0 0 14px}.arf-ops-quick-action{min-height:68px;border:1px solid var(--ars-line,#dadde0);border-radius:0;background:#fff;color:inherit;text-decoration:none;padding:10px 12px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer}.arf-ops-quick-action:hover,.arf-ops-quick-action:focus-visible,.arf-ops-quick-action.is-active{border-color:var(--ars-green,#d9600a);box-shadow:0 0 0 2px rgba(217,96,10,.08)}.arf-ops-quick-action.is-primary{background:var(--ars-accent-strong,#b84e08);color:#fff;border-color:var(--ars-accent-strong,#b84e08)}.arf-ops-quick-action>span:last-child{display:flex;flex-direction:column;gap:2px}.arf-ops-quick-action strong{font-size:.92rem}.arf-ops-quick-action small{font-size:.75rem;opacity:.74}.arf-ops-quick-action svg{width:22px;height:22px;flex:0 0 22px}@media(max-width:1100px){.arf-ops-quick{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:680px){.arf-ops-quick{grid-template-columns:repeat(2,minmax(0,1fr))}.arf-ops-quick-action{min-height:62px}}

/* REV087: mandatory picking / pre-dispatch condition evidence */
.arf-preparation-checks{margin:16px 0;padding:16px;border:1px solid var(--ars-line,#dadde0);border-radius:0;background:#fbfcfb}.arf-preparation-asset{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin:12px 0 0;padding:14px;border:1px solid #e3e4e6;border-radius:0}.arf-preparation-asset legend{padding:0 6px}.arf-preparation-asset label{display:flex;align-items:flex-start;gap:8px;font-weight:600}.arf-preparation-asset textarea{grid-column:1/-1;width:100%}.arf-preparation-asset .arf-ops-secondary{justify-self:start}.arf-preparation-result{align-self:center;font-size:.86rem}@media(max-width:760px){.arf-preparation-asset{grid-template-columns:1fr}.arf-preparation-asset textarea{grid-column:auto}}

/* REV088: pickup timing / no-show handling */
.arf-pickup-deviation{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;margin:10px 0 14px;padding:10px 12px;border-radius:0;background:#f5f6f8;border-left:4px solid #8a8d90}.arf-pickup-deviation.is-alert{background:#fff4f2;border-left-color:#b42318}.arf-pickup-deviation.is-progress{background:#fff8e7;border-left-color:#b7791f}.arf-pickup-deviation.is-ok{background:#edf8f1;border-left-color:#26734d}.arf-ops-danger{border-color:#b42318!important;color:#92251d!important}.arf-pickup-deviation-note{flex-basis:100%;color:var(--arf-ops-muted);font-size:.78rem}

/* REV095 location/accessory contract */
.arf-cart-location{display:grid;gap:6px;max-width:520px;margin:12px 0 16px}.arf-cart-location span{font-weight:700}.arf-cart-location select{min-height:44px}.arf-link-inline{border:0;background:transparent;text-decoration:underline;cursor:pointer;font:inherit;color:inherit;font-weight:700;padding:2px 4px}

.arf-terminal-actions{margin:18px 0;padding:16px;border:1px solid #dedfe1;border-radius:0;background:#fff}.arf-terminal-action-list{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.arf-terminal-pay{min-height:52px;font-size:16px}.arf-terminal-action-list .arf-process-result{margin:0}

/* REV107 – enforce compact picker + batch selection coverage in admin and external RentalFlow */

/* REQ-052 (superseded 2026-09-12): this rule used to re-declare its own width/radius for the
 * scanner modal at (0,3,0)/(1,2,0) specificity specifically because it beat the plugin-local
 * "compact picker" rule elsewhere in this file - a second, independent instance of exactly the
 * cascade-defeat pattern documented for REQ-DESIGN-WPADMIN-LAYOUT. Both competing declarations
 * are gone now; the single consolidated modal-chrome rule earlier in this file is the only
 * place scanner/search/walk-in modal width and shape are declared. */
.arf-batch-picker{margin-inline-start:10px;min-height:40px!important;vertical-align:middle}
@media(max-width:700px){.arf-batch-picker{width:100%;margin:8px 0 0}}

/* REV112 – RentalFlow information architecture: context -> identification -> actions -> work queue. */
.arf-ops-context-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:0 0 14px;padding:4px 0 2px}
.arf-ops-context-header h1{margin:2px 0 5px!important;font-size:clamp(1.75rem,3vw,2.35rem)!important;line-height:1.08!important}
.arf-ops-context-header p{margin:0!important;max-width:760px;color:var(--arf-ops-muted,#6b6f73)!important}
.arf-ops-context-badge{display:inline-flex;align-items:center;min-height:32px;padding:6px 10px;border:1px solid var(--arf-ops-line,#dadde0);border-radius:0;background:#fff;color:var(--ars-accent-strong,#b84e08);font-size:.76rem;font-weight:800;white-space:nowrap}

.arf-intern-nav{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px}
/* REQ-UI-CONSISTENCY-PILL-HELPER-FILTER-001 (2026-09-14, direkter Auftraggeber-Auftrag): die
   /intern/rentalcore/-Subnav-Tabs (Uebersicht/Buchungen/Kunden/Disposition) waren pillenfoermig
   (border-radius:999px) - screenshot-belegter Regelverstoss, ausserhalb des Scopes von
   REQ-BACKEND-INPUT-BUTTON-CONSISTENCY-001 (das nur input/select/textarea/button/.button erfasste,
   nicht diese arf_intern_rentalcore_nav()-eigene Klasse). Jetzt eckig wie jedes andere
   interaktive Steuerelement im System. */
.arf-intern-nav__item{display:inline-flex;align-items:center;padding:8px 14px;border:1px solid var(--arf-ops-line,#dadde0);border-radius:0;background:#fff;color:var(--ars-accent-strong,#b84e08);font-size:.86rem;font-weight:700;text-decoration:none}
.arf-intern-nav__item:hover{border-color:var(--arf-ops-green,#d9600a)}
/* LIVE-TASK-2026-09-12-013 V1 (WPADM-TOUCH-001/RESP-001, system-wide not page-wide): the
 * @media(pointer:coarse) 48px touch-target rule was rolled out to admin.css's three wp-admin
 * surfaces (see admin.css:256) but never to this file, so the entire /intern/ front-end (which
 * loads public.css, not admin.css - see class-arf-admin.php:138) kept sub-48px targets under a
 * real coarse pointer: .arf-ops-primary/-secondary (44px), .arf-intern-nav__item (auto height)
 * and plain selects in the ops shell were all measured under 48px. */
@media(pointer:coarse){
  /* Reconciliation note (2026-09-13, merge onto the live branch): the live tip's own
   * ".arf-app.arf-ops .arf-ops-primary/-secondary/-icon-button{min-height:48px!important}" plus
   * its "body:not(.wp-admin) ..." re-measurement follow-up (same LIVE-TASK-2026-09-13-013 finding)
   * were removed here as real duplicates of this branch's own, strictly more complete round-2 fix
   * further below (also covers body.wp-admin and the scanbar variants the live tip's version did
   * not) - keeping both left the mutation test unable to prove the more complete rule is what
   * actually supplies the fix. .arf-intern-nav__item and the select rule below are independent,
   * not covered by that other block, and are kept unchanged. */
  .arf-intern-nav__item{min-height:48px!important}
  .arf-app.arf-ops select,.arf-intern-nav select{min-height:48px!important}
}
/* REQ-DESIGN-WPADMIN-LAYOUT / REQ-INTERN-LAYOUT-CALIBRATION RESP-001 + WPADM-TOUCH-001 (second
 * pass, LIVE-TASK-2026-09-13-013 re-measurement): the block above was correct in intent but LOST
 * THE CASCADE for exactly the two classes it was written for. On every /intern/ page the older
 * REV022 rule `body:not(.wp-admin) .arf-app.arf-ops .arf-ops-primary{min-height:44px!important}`
 * (specificity 0,4,1) out-specifies `.arf-app.arf-ops .arf-ops-primary` (0,3,0), so "Filtern" and
 * "Oeffnen" stayed 47px under a real coarse pointer; the scanner-modal rules (`...scanbar
 * .arf-ops-primary{height:46px/42px!important}`, 0,5,1 / 0,4,0) and the token input do the same
 * inside the Asset-Identification dialog on both surfaces. A presence-only test could not see this.
 * This block restates the touch floor with selectors whose specificity is >= every competing
 * !important rule (verified by tests/test_req_layout_rule_violations_001_cascade.py, which resolves
 * the real cascade of site.css/public.css/admin.css/augite-ux.css for real DOM chains) and is
 * placed after all of them, so it wins on specificity or, on a tie, on source order. min-height
 * beats a smaller fixed height, so the scanner row geometry only needs its token row widened. */
@media(pointer:coarse){
  body:not(.wp-admin) .arf-app.arf-ops .arf-ops-primary,body:not(.wp-admin) .arf-app.arf-ops .arf-ops-secondary,body:not(.wp-admin) .arf-app.arf-ops .arf-ops-icon-button,body:not(.wp-admin) .arf-app.arf-ops .arf-ops-access-link,
  body.wp-admin .arf-app.arf-ops .arf-ops-primary,body.wp-admin .arf-app.arf-ops .arf-ops-secondary,body.wp-admin .arf-app.arf-ops .arf-ops-icon-button{min-height:48px!important}
  body:not(.wp-admin) .arf-app.arf-ops input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),body:not(.wp-admin) .arf-app.arf-ops select,
  body.wp-admin .arf-app.arf-ops input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),body.wp-admin .arf-app.arf-ops select{min-height:48px!important}
  /* LIVE-TASK-2026-09-17-193 R1: the label-wrapped choice chips of the session forms (photo target/visibility, return outcome, condition) follow the same 36/48 contract as the field next to them (measured 44px next to a 36px field before). */
  body:not(.wp-admin) .arf-app.arf-ops .arf-touch-choice label>span,body.wp-admin .arf-app.arf-ops .arf-touch-choice label>span{min-height:var(--augite-ctl-touch,48px)!important}
  body:not(.wp-admin) .arf-app.arf-ops .arf-ops-token-inline{grid-template-rows:16px 48px!important}
  /* LIVE-TASK-2026-09-13-013 Nachmessung (2026-09-17, echte Coarse-Pointer-Emulation auf
   * /intern/rentalinvoice/): die ikonischen Aktionsbuttons ("Rechnungs-PDF", "XML erneut
   * validieren") blieben als einzige eigenen Bedienelemente der /intern/-Flaeche bei 44x44.
   * Ursache ist kein fehlender Selektor, sondern ein Spezifitaets-Gleichstand: die 44px-Regel
   * (public.css ~816) traegt .arf-ops-secondary.arf-ops-icon-only (0,4,1) mit !important und
   * schlaegt damit das min-height:48px der Zeilen darueber (0,3,1). Deshalb hier mit derselben
   * Doppelklasse UND zusaetzlich height/max-height/width, weil die Basisregel Breite und Hoehe
   * fix setzt - min-height allein bliebe an der max-height:44px haengen. */
  body:not(.wp-admin) .arf-app.arf-ops .arf-ops-primary.arf-ops-icon-only,
  body:not(.wp-admin) .arf-app.arf-ops .arf-ops-secondary.arf-ops-icon-only,
  body.wp-admin .arf-app.arf-ops .arf-ops-primary.arf-ops-icon-only,
  body.wp-admin .arf-app.arf-ops .arf-ops-secondary.arf-ops-icon-only{
    width:48px!important;min-width:48px!important;
    height:48px!important;min-height:48px!important;max-height:48px!important}

  .arf-app.arf-ops details>summary{min-height:48px!important;box-sizing:border-box}
  .arf-app.arf-ops .tablenav-pages .page-numbers{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:48px!important;min-height:48px!important}
}
/* REQ-DESIGN-PORTAL-LAYOUT RESP-001 (2026-09-21): the shared header's account/login control
 * (.arf-global-account__toggle/__login, defined above - affects every surface that shares the
 * theme header, most directly the Customer Experience portal's own account entry point) sets
 * min-height:42px with no pointer:coarse floor, unlike every control fixed by the block just
 * above. Confirmed via the real cascade resolver (tests/fixtures/css_cascade.py): under a real
 * coarse pointer at 768/1024/1280/1440 CSS px - i.e. exactly the widths where the header does NOT
 * collapse into the is-menu-open overlay, which already carries its own 48px rule - the control
 * stayed at 42px, 6px under the project-wide RESP-001 floor ("Touchziele mindestens 48x48 auch bei
 * breitem coarse pointer"). Kept as its own block (not merged into the one above) so it does not
 * shift which @media(pointer:coarse){...} block is "the first one" for
 * tests/test_live_task_2026_09_12_013_v1_v2_v3_fixes.py's positional extraction of that
 * pre-existing round-1/round-2 RentalFlow-ops fix. */
@media(pointer:coarse){
  body:not(.wp-admin) .ars-header .arf-global-account__toggle,
  body:not(.wp-admin) .ars-header .arf-global-account__login{min-height:48px!important}
}
/* REQ-DESIGN-WPADMIN-LAYOUT / REQ-INTERN-LAYOUT-CALIBRATION A11Y-001 (focus visibility, second
 * pass after LIVE-TASK-2026-09-13-013): the class-level :focus-visible rules above (0f41db8) match
 * every .arf-ops-primary/-secondary, yet eight controls were still measured with outline-style none
 * - and ALL eight sit inside a container the probe had first opened with a pointer click: the
 * Asset-Identification dialog (QR/Barcode, NFC lesen, Uebernehmen), the <details> transport editor
 * on /intern/rentalcore/disposition/ (Speichern + its checkbox) and the <details> "E-Rechnung
 * erzeugen" disclosure on /intern/rentalinvoice/ (3x ZUGFeRD erzeugen); every control measured
 * WITH a ring sits outside such a container. That is the browser's :focus-visible heuristic, which
 * suppresses the ring when focus is moved programmatically after pointer interaction (exactly what
 * operations.js/admin.js do when a dialog or editor opens). Inside an open dialog/disclosure the
 * position of focus must always be visible (WAI-ARIA dialog pattern), so there the indicator is
 * tied to :focus itself instead of the heuristic. Outside such containers nothing changes. */
/* REQ-RENTALINVOICE-ACTION-LABEL-CLARITY-001 (reopened, wave 17, help box finding): <summary> is NOT in the :focus
 * list any more. A summary is the control that OPENS its own disclosure - with a pointer click it receives focus
 * and, being inside the now-open details, matched this rule, so every mouse-opened help box ("Hilfe zu dieser
 * Seite anzeigen", "Mehr erfahren") and every opened editor summary showed a permanent orange click ring (the
 * "broken" help box in the client screenshot of /intern/rentalinvoice/). Summaries follow :focus-visible (rule
 * below): keyboard users keep a ring, pointer users get none. Controls INSIDE the opened container are unchanged. */
/* REQ-UI-MODAL-HELP-UNIFICATION-001 (wave 20): the three RentalFlow-only modal classes (.is-picker-modal/.is-search-modal/
 * .is-walkin-modal) are gone - every modal is the shared .augite-modal component. Toggles (aria-pressed/aria-expanded
 * controls, the modal close control) are excluded: a pointer click on a toggle must never leave a ring (:focus-visible). */
.arf-app.arf-ops :is(details[open],[role="dialog"],[aria-modal="true"],.augite-modal) :is(a[href],button,input:not([type="hidden"]),select,textarea,[tabindex]:not([tabindex="-1"])):not([aria-pressed]):not([aria-expanded]):not([data-augite-modal-close]):focus{outline:2px solid #d9600a!important;outline-offset:2px!important}
.arf-app summary:focus{outline:0}
.arf-app summary:focus-visible{outline:2px solid #d9600a!important;outline-offset:2px!important}
.arf-intern-nav__item.is-active{background:var(--ars-accent-strong,#b84e08);border-color:var(--ars-accent-strong,#b84e08);color:#fff}
.arf-ops-quick{grid-template-columns:repeat(5,minmax(0,1fr))}
.arf-ops-quick-action:first-child.is-primary{background:#fff;color:inherit;border-color:var(--ars-line,#dadde0)}
.wp-admin .arf-rentalflow-operations>.arf-app.arf-ops{margin-top:0!important}
@media(max-width:900px){.arf-ops-context-header{flex-direction:column;gap:8px}.arf-ops-context-badge{white-space:normal}.arf-ops-quick{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.arf-ops-quick{grid-template-columns:1fr}}

/* REV113 – public journey preference / pickup-location field. */
/* REQ-BACKEND-INPUT-BUTTON-CONSISTENCY-001: this non-compact selector is never reached live (the
   only PHP call site always adds .arf-asset-booking--compact alongside .arf-asset-booking, and
   either way the element sits inside .arf-app so the generic "body:not(.wp-admin) .arf-app select"
   0!important override already wins by specificity) - fixed anyway per the standing "same defect
   class everywhere, not just where it currently renders" rule, instead of leaving a contradicting
   10px declaration in source. */
.arf-asset-booking .arf-booking-field--location{min-width:190px}.arf-asset-booking .arf-booking-field--location select{min-height:48px;width:100%;border:1px solid var(--arf-border,#dadde0);border-radius:0;background:#fff;padding:9px 11px;font:inherit}
@media(max-width:760px){.arf-asset-booking .arf-booking-field--location{min-width:0}.arf-asset-booking .arf-booking-field--location select{font-size:16px}}

/* REV114: non-reserving availability interest / waitlist request */
.arf-availability-interest{margin:12px 0 0;padding:14px 16px;border:1px solid var(--ars-line,#dadde0);border-radius:0;background:#fff}.arf-availability-interest>strong{display:block;margin-bottom:4px}.arf-availability-interest>p{margin:0 0 12px;color:#64676b}.arf-interest-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.arf-interest-grid label{display:flex;flex-direction:column;gap:5px;font-weight:600}.arf-interest-grid input,.arf-interest-grid textarea{min-height:44px;width:100%;box-sizing:border-box}.arf-interest-wide{grid-column:1/-1}.arf-availability-interest>.ars-btn{margin-top:12px;min-height:44px}@media(max-width:680px){.arf-interest-grid{grid-template-columns:1fr}.arf-interest-wide{grid-column:auto}}

/* REV115 RentalFlow tablet-first interaction contract */
.arf-app.arf-ops button,
.arf-app.arf-ops .button,
.arf-app.arf-ops [role="button"],
.arf-app.arf-ops input:not([type="checkbox"]):not([type="radio"]),
.arf-app.arf-ops select { min-height:48px; }
.arf-app.arf-ops button,
.arf-app.arf-ops .button,
.arf-app.arf-ops [role="button"] { touch-action:manipulation; }
.arf-app.arf-ops .arf-batch-assets label,
.arf-app.arf-ops .arf-general-checks label,
.arf-app.arf-ops .arf-preparation-asset > label,
.arf-app.arf-ops .arf-known-damage label { min-height:48px; display:flex; align-items:center; gap:10px; }
.arf-app.arf-ops .arf-summary-plan { border-left:3px solid var(--arf-accent,#f2994a); padding-left:8px; }
.arf-app.arf-ops .arf-known-damage { margin-top:10px; padding:12px; border:1px solid #d8c67d; border-radius:0; background:#fffbea; }
.arf-app.arf-ops .arf-known-damage ul { margin:6px 0 8px 20px; }
@media (max-width:900px), (pointer:coarse) {
  .arf-app.arf-ops .arf-work-asset,
  .arf-app.arf-ops .arf-preparation-asset,
  .arf-app.arf-ops .arf-return-core,
  .arf-app.arf-ops .arf-meter-fields,
  .arf-app.arf-ops .arf-media-meta { grid-template-columns:minmax(0,1fr)!important; }
  .arf-app.arf-ops .arf-ops-actions,
  .arf-app.arf-ops .arf-camera-actions,
  .arf-app.arf-ops .arf-process-footer { align-items:stretch; }
  .arf-app.arf-ops .arf-ops-actions > button,
  .arf-app.arf-ops .arf-camera-actions > button,
  .arf-app.arf-ops .arf-process-footer > button { width:100%; min-height:52px; }
  .arf-app.arf-ops .arf-process-footer .arf-process-footer-actions { flex-direction:column; align-items:stretch; }
  .arf-app.arf-ops .arf-process-footer-actions > button { width:100%; min-height:52px; }
}
/* REQ-BA2-DATA-INTEGRITY-CORRECTION-001 (K1): "Uebergabe/Ruecknahme abbrechen" sits left of the completion button. */
.arf-process-footer .arf-process-footer-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}
@media (hover:none) {
  .arf-app.arf-ops button:hover,
  .arf-app.arf-ops [role="button"]:hover { transform:none; }
}

/* REV116 / REQ-026 – /intern/rentalflow/ structural boxes are square. */
.arf-app.arf-ops .arf-ops-card,
.arf-app.arf-ops .arf-ops-booking,
.arf-app.arf-ops .arf-ops-empty,
.arf-app.arf-ops .arf-ops-summary-item,
.arf-app.arf-ops .arf-work-asset,
.arf-app.arf-ops .arf-check-grid fieldset,
.arf-app.arf-ops .arf-return-asset,
.arf-app.arf-ops .arf-media-box,
.arf-app.arf-ops .arf-preparation-checks,
.arf-app.arf-ops .arf-preparation-asset,
.arf-app.arf-ops .arf-pickup-deviation,
.arf-app.arf-ops .arf-terminal-actions,
.arf-app.arf-ops .arf-known-damage,
.arf-app.arf-ops .arf-master-item.is-return-condition,
.arf-app.arf-ops .arf-derived-disposition,
.arf-app.arf-ops .arf-turnaround-guidance,
.arf-app.arf-ops .arf-asset-suggestions,
.arf-app.arf-ops .arf-ops-quick-action,
.arf-app.arf-ops .arf-ops-empty,
.arf-app.arf-ops .arf-ops-summary-item,
.arf-app.arf-ops .arf-ops-assignment-callout,
.arf-app.arf-ops .arf-general-checks label,
.arf-app.arf-ops .arf-release-gate,
.arf-app.arf-ops .arf-release-gate-item,
.arf-app.arf-ops .arf-transport-card,
.arf-app.arf-ops .arf-transport-warning,
.arf-app.arf-ops .arf-pre-return,
.arf-app.arf-ops .arf-touch-choice label>span,
/* REQ-087 – REV136's Action & Exception Center introduced its own rounded-corner tiles
   (control-metric/staff-context/activity/warning-list) without adding them to this REQ-026
   flat-design list, so they kept their own border-radius while every sibling box on this page
   was already square. */
.arf-app.arf-ops .arf-ops-control-metric,
.arf-app.arf-ops .arf-ops-staff-context,
.arf-app.arf-ops .arf-ops-activity,
.arf-app.arf-ops .arf-ops-staff-context-grid>div,
.arf-app.arf-ops .arf-ops-warning-list li,
/* REQ-026 Vollaudit (2026-09-11) - same recurrence as REQ-087 above: the Degraded-Mode banner
   and the Wave-Picking panel kept their own border-radius. Currently only rendered on the
   admin surface (class-arf-shortcodes.php), but listed here too so this file's flat-design
   coverage stays complete if either is ever also shown externally. */
.arf-app.arf-ops .arf-ops-degraded,
.arf-app.arf-ops .arf-ops-wave { border-radius:0!important; }

.arf-app.arf-ops .arf-ops-booking-icon,
.arf-app.arf-ops .arf-ops-summary-icon,
.arf-app.arf-ops .arf-work-asset-icon,
.arf-app.arf-ops .arf-media-icon,
.arf-app.arf-ops .arf-turnaround-guidance summary>span { border-radius:0!important; }

/* Nutzerauftrag (2026-09-12, Folgeauftrag zur Modal-Breite): dieselbe Ursache wie bei der
 * ".arf-ops-card ist 100% breit"-Falle - der Scanner traegt auch ".arf-ops-card", weshalb diese
 * Akzentrand-Regeln sonst auch im Modal-Zustand einen 4px farbigen Rand statt des einheitlichen,
 * duennen Modal-Rahmens erzwingen wuerden (nur beim Asset-Modal sichtbar, da Suche/
 * Direktvermietung keine .arf-ops-card-Klasse tragen). */
/* REQ-OPS-CARD-NEUTRAL-ACCENT-001 (2026-09-14, user-reported via screenshot of /intern/rentalflow/):
 * every .arf-ops-card - the generic outer "main box" wrapper used for every page section - got the
 * same 4px orange (var(--arf-ops-green), an old token name that now literally holds the Scaeva
 * accent-orange hex #d9600a since the rebrand) left accent regardless of whether that box actually
 * carries anything important. Result: every section on a page reads as "urgent", so nothing does.
 * Genuinely important/status-driven boxes (e.g. .arf-ops-control-metric.is-critical/is-high/is-blocked,
 * .arf-derived-disposition.is-quarantine/is-repair/is-damage) already carry their OWN semantic
 * border-left-color and are untouched by this rule. Only the unconditional default for the outer
 * card itself moves to a subtle neutral gray - the same neutral already used for a "no particular
 * status" state elsewhere in this file (.arf-derived-disposition.is-pending). */
/* REQ-UI-BOX-LEFT-EDGE-NORMAL-001 (wave 30, client decision 141): the neutral grey 4px left edge above is
 * superseded - "die [linke Kante] bekommt die Farbe der normalen Boxkante und ist nicht dicker/breiter als die
 * restlichen Seiten". The former `.arf-ops-card:not(.augite-modal){border-left:4px solid #8e9195!important}` rule
 * is removed, so the left edge IS the card's normal border (1px, same colour as top/right/bottom) by construction;
 * wp-admin's admin.css no longer lists .arf-ops-card among its accent-edge panels either. Status/accent boxes
 * below (.arf-known-damage, .arf-pickup-deviation.is-*, .arf-derived-disposition.is-*) keep their coloured edge.
 * The colour-only `.arf-ops-transport{border-left-color:#2271b1!important}` rule is removed with it: it never won
 * against the (0,4,0) grey rule, and without that rule it would have painted a 1px blue left edge only. */
.arf-app.arf-ops .arf-known-damage,
.arf-app.arf-ops .arf-pickup-deviation.is-progress,
.arf-app.arf-ops .arf-derived-disposition.is-cleaning,
.arf-app.arf-ops .arf-derived-disposition.is-maintenance { border-left:4px solid #b7791f!important; }
.arf-app.arf-ops .arf-pickup-deviation.is-alert,
.arf-app.arf-ops .arf-derived-disposition.is-quarantine,
.arf-app.arf-ops .arf-derived-disposition.is-repair,
.arf-app.arf-ops .arf-derived-disposition.is-damage { border-left:4px solid var(--arf-ops-danger)!important; }
.arf-app.arf-ops .arf-pickup-deviation.is-ok { border-left:4px solid #26734d!important; }

/* Semantic pictograms support scanning, work queue, transport and signature context. */
.arf-app.arf-ops .arf-ops-section-titleline{display:flex;align-items:flex-start;gap:10px}
.arf-app.arf-ops .arf-ops-section-icon{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;color:var(--arf-ops-green);margin-top:1px}
.arf-app.arf-ops .arf-ops-section-icon svg{width:22px;height:22px}

/* REV116 / REQ-022 – field-level validation without destructive rerender. */
.arf-field-invalid{outline:2px solid #b42318!important;outline-offset:1px}
.arf-field-error{display:block;margin-top:4px;font-size:.84rem;font-weight:650;color:#8a1c13}

/* REV118 – RentalFlow header-adjacent staff search and surface-safe navigation. */
.arf-ops-staff-search{display:grid;grid-template-columns:minmax(250px,360px) minmax(0,1fr);gap:20px;align-items:end;margin:0 0 16px}
.arf-ops-global-searchbox{position:relative;min-width:0}.arf-ops-global-searchbox label{display:block;margin:0}.arf-ops-global-searchbox input[type="search"]{width:100%;min-height:48px;margin:0;padding:9px 12px;border:1px solid #b7b9bc;border-radius:0;background:#fff;font:inherit;box-sizing:border-box}.arf-ops-global-searchbox input[type="search"]:focus{border-color:var(--ars-green,#d9600a);box-shadow:0 0 0 2px rgba(217,96,10,.12);outline:0}.arf-ops-global-results{position:absolute;z-index:120;top:calc(100% + 4px);left:0;right:0;max-height:360px;overflow:auto;border:1px solid #bfc1c4;background:#fff;box-shadow:0 12px 28px rgba(20,24,27,.16)}.arf-ops-global-result{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #e6e8e9;color:inherit;text-decoration:none}.arf-ops-global-result:last-child{border-bottom:0}.arf-ops-global-result:hover,.arf-ops-global-result:focus-visible{background:#f4f5f6;outline:0}.arf-ops-global-kind{display:inline-flex;align-items:center;justify-content:center;min-width:74px;padding:4px 7px;border-left:3px solid #d9600a;background:#f1f2f4;font-size:.72rem;font-weight:750;text-transform:uppercase;letter-spacing:.03em}.arf-ops-global-copy{display:grid;gap:2px;min-width:0}.arf-ops-global-copy strong,.arf-ops-global-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arf-ops-global-copy small{color:var(--arf-ops-muted);font-size:.78rem}.arf-ops-global-empty{padding:12px;color:var(--arf-ops-muted)}.arf-ops-identification-divider{height:1px;background:#e3e4e6;margin:0 0 16px}
@media(max-width:760px){.arf-ops-staff-search{grid-template-columns:1fr;gap:10px}.arf-ops-global-results{position:static;margin-top:4px;max-height:280px}.arf-ops-global-kind{min-width:64px}.arf-ops-global-copy small{white-space:normal}}

/* REV118 – RentalFlow surface regression hardening. */
.arf-app.arf-ops .arf-ops-customer-search{border-left-color:#2271b1!important}
.arf-ops-customer-filter{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:10px 12px;border-left:4px solid #2271b1;background:#f2f7fb}
.arf-ops-customer-filter[hidden]{display:none!important}
.arf-ops-global-result{appearance:none;width:100%;border:0;background:#fff;font:inherit;cursor:pointer}
.arf-ops-global-result:focus-visible{box-shadow:inset 0 0 0 2px #2271b1}
.arf-ops-demo-notice{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:start;margin:0 0 10px;padding:10px 12px;border-left:4px solid #c2761d;background:#fff8e7}
.arf-ops-demo-notice .arf-ui-icon{margin-top:1px}.arf-ops-demo-notice strong,.arf-ops-demo-notice span{display:block}.arf-ops-demo-notice span{font-size:.82rem;color:var(--arf-ops-muted)}
.arf-ops-booking.is-demo{border-left:4px solid #c2761d!important}.arf-ops-test-badge{display:inline-flex;margin-left:7px;padding:2px 5px;border:1px solid #c2761d;background:#fff8e7;color:#704b00;font-size:.66rem;font-weight:800;vertical-align:middle}
.arf-ops-assignment-callout{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center}.arf-ops-assignment-callout>.arf-ops-primary{min-height:48px}
.arf-preparation-identify{grid-column:1/-1;display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #e5e7e8}.arf-preparation-identify small{color:var(--arf-ops-muted)}
.arf-batch-asset-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.arf-batch-asset-row>label{margin:0!important}.arf-batch-picker{min-height:48px}
.arf-ops-picker-success{margin-top:8px;padding:8px 10px;border-left:4px solid #26734d;background:#edf8f1;font-weight:650}
@media(max-width:760px){.arf-ops-customer-filter,.arf-preparation-identify{align-items:stretch;flex-direction:column}.arf-ops-assignment-callout,.arf-batch-asset-row{grid-template-columns:1fr}.arf-ops-assignment-callout>.arf-ui-icon{display:none}.arf-batch-picker{width:100%}}

/* REV119 – surface-aware RentalFlow information architecture.
 * External /intern/rentalflow/ stays tablet-first: actions first, compact touch rows,
 * search/asset identification only when invoked. Structural containers remain square. */
.arf-app.arf-ops [hidden]{display:none!important}

/* Nutzerauftrag (2026-09-12): "Kunde suchen muss ebenfalls in ein Modal verschoben werden,
   analog wie in QR-/NFC-Scannen", spaeter praezisiert: "Kundesuche-Modal muss an das andere
   Design angepasst werden" (nicht bildschirmbreit, max. 800px, keine abweichende Optik). Die
   dedizierte Chrome-Regel dieser Kachel wurde entfernt - sie teilt sich jetzt exakt dieselbe
   konsolidierte Modal-Regel wie Scanner und Direktvermietung (siehe REV082-Abschnitt weiter
   oben in dieser Datei), damit nicht wieder drei leicht unterschiedliche Kopien entstehen. */

.arf-app.arf-ops .arf-ops-quick--external{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;margin-bottom:12px}
.arf-app.arf-ops .arf-ops-quick--external .arf-ops-quick-action{border-radius:0!important;min-height:64px}
.arf-app.arf-ops .arf-ops-worklist{display:block;margin-top:12px;border-top:1px solid var(--arf-ops-line)}
.arf-app.arf-ops .arf-ops-workrow{appearance:none;display:grid;width:100%;grid-template-columns:38px minmax(0,1fr) auto 14px;align-items:center;gap:10px;min-height:68px;padding:10px 8px;border:0;border-bottom:1px solid var(--arf-ops-line);border-left:4px solid transparent;border-radius:0!important;background:#fff;color:var(--arf-ops-ink);text-align:left;cursor:pointer;touch-action:manipulation}
.arf-app.arf-ops .arf-ops-workrow:hover,.arf-app.arf-ops .arf-ops-workrow:focus-visible{background:var(--arf-ops-soft);outline:0;border-left-color:var(--arf-ops-green)}
.arf-app.arf-ops .arf-ops-workrow.is-demo{border-left-color:#c2761d;background:#fffdf7}
.arf-app.arf-ops .arf-ops-workrow-icon{display:grid;place-items:center;width:34px;height:34px;color:var(--arf-ops-green)}
.arf-app.arf-ops .arf-ops-workrow-icon svg{width:22px;height:22px}
.arf-app.arf-ops .arf-ops-workrow-copy{display:grid;gap:1px;min-width:0}
.arf-app.arf-ops .arf-ops-workrow-copy strong{font-size:.92rem;line-height:1.25}
.arf-app.arf-ops .arf-ops-workrow-copy>span{font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.arf-app.arf-ops .arf-ops-workrow-copy small{font-size:.75rem;color:var(--arf-ops-muted)}
.arf-app.arf-ops .arf-ops-refresh-warning{margin:0 0 10px;padding:9px 11px;border-left:4px solid #c2761d;background:#fff8e7;color:#674900}
.arf-app.arf-ops .arf-ops-refresh{white-space:nowrap}
@media(max-width:760px),(pointer:coarse){
  .arf-app.arf-ops .arf-ops-quick--external{grid-template-columns:repeat(2,minmax(0,1fr))}
  .arf-app.arf-ops .arf-ops-workrow{grid-template-columns:34px minmax(0,1fr) 14px;min-height:72px;padding:11px 6px}
  .arf-app.arf-ops .arf-ops-workrow .arf-ops-state{grid-column:2;justify-self:start;margin-top:3px}
  .arf-app.arf-ops .arf-ops-workrow .arf-ops-chevron{grid-column:3;grid-row:1/3}
  .arf-app.arf-ops .arf-ops-workrow-copy small{white-space:normal}
}
@media(max-width:460px){.arf-app.arf-ops .arf-ops-quick--external{grid-template-columns:1fr}}

/* REV135 direct-rental drawer + compact picker */

.arf-ops-demo-health{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;align-items:center;margin:0 0 14px;padding:12px 14px;border:1px solid #dba617;border-left:4px solid #b32d2e;background:#fff8e5}.arf-ops-demo-health strong,.arf-ops-demo-health span{display:block}.arf-ops-demo-health span{color:#50575e}.arf-ops-demo-health a{grid-column:2;grid-row:1/3}
@media(max-width:782px){.arf-ops-demo-health{grid-template-columns:1fr}.arf-ops-demo-health a{grid-column:1;grid-row:auto;justify-self:start;min-height:44px}}

.arf-ops-walkin-checkbox{display:grid!important;grid-template-columns:20px minmax(0,1fr)!important;gap:9px!important;align-items:start!important;padding:10px 12px;border:1px solid #e3e4e6;background:#f9fafb}
.arf-ops-walkin-checkbox input[type=checkbox]{appearance:auto;width:18px!important;height:18px!important;min-height:0!important;margin:2px 0 0!important}
.arf-ops-walkin-checkbox span{font-weight:500!important;line-height:1.4}

/* REQ-002 (Package "ohne" audit, 2026-09-10): inline "+ Neuer Kunde" creation inside the
 * walk-in drawer, so staff no longer have to abandon an in-progress direct rental to open
 * the separate Kunden-CRM page. */
.arf-ops-inline-new-customer{border:1px solid #d1d3d5;background:#f7f8f9;padding:12px;margin-top:-4px}
.arf-ops-inline-new-customer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.arf-ops-inline-new-customer-grid label{display:grid;gap:5px}.arf-ops-inline-new-customer-grid label>span{font-weight:650;font-size:12px}
.arf-ops-inline-new-customer-grid input,.arf-ops-inline-new-customer-grid select{width:100%;min-height:40px}
@media(max-width:700px){.arf-ops-inline-new-customer-grid{grid-template-columns:1fr}}

/* REV136 · Workflow Orchestration / Action & Exception Center */
.arf-ops-control-dashboard{margin-top:12px}.arf-ops-control-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.arf-ops-control-total{display:flex;align-items:baseline;gap:6px;margin:0 0 8px;color:var(--arf-ops-muted)}.arf-ops-control-total strong{font-size:1rem;color:var(--arf-ops-ink)}.arf-ops-control-metric{display:grid;gap:3px;min-height:74px;padding:12px 14px;border:1px solid var(--arf-ops-line);border-radius:0;background:var(--arf-ops-paper)}.arf-ops-control-metric strong{font-size:1.45rem;line-height:1;color:var(--arf-ops-ink)}.arf-ops-control-metric span{font-size:.72rem;font-weight:750;color:var(--arf-ops-muted)}.arf-ops-control-metric.is-critical{border-left:4px solid var(--arf-ops-danger)}.arf-ops-control-metric.is-high,.arf-ops-control-metric.is-blocked{border-left:4px solid var(--arf-ops-warn)}.arf-ops-control-metric.is-total{border-left:4px solid var(--arf-ops-green)}
.arf-ops-staff-context,.arf-ops-activity{margin:14px 0;padding:14px;border:1px solid var(--arf-ops-line);border-radius:0;background:#fbfcfb}.arf-ops-staff-context .arf-ops-section-head,.arf-ops-activity .arf-ops-section-head{margin-bottom:10px}.arf-ops-staff-context h3,.arf-ops-activity h3{margin:2px 0 0;font-size:1.05rem}.arf-ops-staff-context-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.arf-ops-staff-context-grid>div{display:grid;gap:3px;padding:9px 10px;border:1px solid #e5e6e7;border-radius:0;background:#fff}.arf-ops-staff-context-grid small{font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:var(--arf-ops-muted);font-weight:800}.arf-ops-staff-context-grid strong{font-size:.8rem;line-height:1.3}
.arf-ops-warning-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}.arf-ops-warning-list li{padding:7px 10px;border-left:3px solid #c9932a;background:#fbf5e8;border-radius:0;font-size:.8rem}.arf-ops-warning-list strong{display:block;font-size:.8rem}.arf-ops-warning-list small{display:block;color:var(--arf-ops-muted);font-size:.72rem;margin-top:2px}
.arf-ops-handover-timeline{margin-top:10px;padding-top:10px;border-top:1px solid #e5e6e7}.arf-ops-handover-timeline>small{font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:var(--arf-ops-muted);font-weight:800}.arf-ops-empty-inline{display:block;margin-top:4px;font-size:.78rem;color:var(--arf-ops-muted)}
.arf-ops-timeline-list{display:grid;gap:0}.arf-ops-timeline-item{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;padding:8px 0}.arf-ops-timeline-item:not(:last-child):before{content:"";position:absolute;left:6px;top:22px;bottom:-8px;width:1px;background:var(--arf-ops-line)}.arf-ops-timeline-dot{width:13px;height:13px;margin-top:2px;border:3px solid #e5e7e8;border-radius:50%;background:var(--arf-ops-green);z-index:1}.arf-ops-timeline-item>div{display:grid;gap:1px}.arf-ops-timeline-item strong{font-size:.8rem}.arf-ops-timeline-item small{font-size:.7rem;color:var(--arf-ops-muted)}
@media(max-width:782px){.arf-ops-control-grid,.arf-ops-staff-context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.arf-ops-control-metric{min-height:66px}.arf-ops-staff-context,.arf-ops-activity{padding:12px}}

/* REV137 capacity-based pickup/return service slots */
.arf-cart-slots{margin:12px 0 16px;padding:12px 14px;border:1px solid var(--arf-theme-line,#e1e2e4);background:var(--arf-theme-soft,#f7f8f9)}.arf-cart-slots>strong{display:block;margin-bottom:3px}.arf-cart-slots>p{margin:0 0 10px;font-size:.82rem;opacity:.72}.arf-cart-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.arf-cart-slot-grid label{display:grid;gap:5px;margin:0!important}.arf-cart-slot-grid label>span{font-weight:700;font-size:.82rem}.arf-cart-slot-grid select{min-height:44px}.arf-cart-slots.is-saving{opacity:.65;pointer-events:none}.arf-time-window-closed-note{margin:2px 0 0;padding:6px 8px;border-radius:0;background:#fff8e5;color:#684b00;font-size:.76rem;font-weight:600}@media(max-width:600px){.arf-cart-slot-grid{grid-template-columns:1fr}}

/* REV138 Package C – operational excellence */
.arf-ops-degraded{margin:12px 0;padding:12px 14px;border:1px solid currentColor;border-radius:0;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:flex-start}.arf-ops-degraded strong{white-space:nowrap}.arf-ops-degraded span{font-size:.92em}.arf-ops-degraded [data-arf-degraded-storage]{flex-basis:100%;margin:6px 0 0}.arf-ops-wave{margin:14px 0;padding:16px;border:1px solid #d7d8da;border-radius:0;background:#fff}.arf-wave-list{display:grid;gap:8px}.arf-wave-row{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(150px,1fr) minmax(180px,1fr);gap:12px;align-items:center;padding:9px 10px;border-bottom:1px solid #edeeef}.arf-wave-row:last-child{border-bottom:0}.arf-wave-row small{justify-self:end}.is-degraded [data-complete-handover],.is-degraded [data-complete-return],.is-degraded [data-op-action="lean-safe-advance"]{opacity:.6}.arf-inspection-template{padding:12px;border:1px solid #dadde0;border-radius:0;background:#fafbfa}.arf-inspection-template-head{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}.arf-inspection-template-item{display:flex;gap:9px;align-items:flex-start;padding:7px 0}.arf-inspection-template-item span{display:flex;flex-direction:column}.arf-inspection-template-item small{opacity:.78}.arf-inspection-template-item.is-blocker{border:1px solid #ecb9a0;border-left:4px solid #b3401d;border-radius:0;background:#fff6f2;padding:9px 10px}.arf-inspection-blocker-icon{flex:0 0 20px;width:20px;height:20px;font-size:20px;line-height:20px;color:#b3401d}.arf-inspection-blocker-copy small{color:#8a2c12}.arf-inspection-template-item .arf-inspection-blocker-choice{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;margin-top:8px}.arf-inspection-blocker-option{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border:1px solid #c5c7c9;border-radius:0;background:#fff;font-weight:600;font-size:.82rem;line-height:1.2;cursor:pointer}.arf-inspection-blocker-option input{margin:0}.arf-inspection-blocker-option .dashicons{font-size:16px;width:16px;height:16px;line-height:16px}.arf-inspection-blocker-option.is-present{color:#8a2c12}.arf-inspection-blocker-option:has(input:checked){border-color:#b3401d;background:#fdeee7;box-shadow:inset 0 0 0 1px #b3401d}.arf-ready-release-form{margin-top:6px}.arf-ready-release-form .button{white-space:nowrap}@media(max-width:760px){.arf-wave-row{grid-template-columns:1fr}.arf-wave-row small{justify-self:start}}

/* REQ-PORTAL-ACCESSIBILITY-I18N-AUDIT-001: Kundenportal DE/EN language switch + a few
   systemwide accessibility fixes (visible keyboard focus on interactive controls, which
   WCAG 2.1 AA (2.4.7 Focus Visible) requires and this stylesheet did not previously set
   explicitly anywhere, relying only on the browser's default outline that some resets/
   themes suppress). */
/* REQ-UI-CONSISTENCY-PILL-HELPER-FILTER-001 (2026-09-14): was two large, bold-bordered,
   pill-shaped (border-radius:999px) "Deutsch"/"English" buttons - a real sponsor-reported
   violation of the system's square-corner convention, and (per the Nachtrag) far too visually
   dominant for a secondary utility control. Now a small, muted icon+DE/EN row: square corners
   (border-radius:0, matching --augite-admin-radius:0px elsewhere), no border/background/accent
   color, quiet text-muted tone - the account-menu identity block and real menu items keep the
   visual weight, not this. */
.arf-lang-switch{display:flex;align-items:center;gap:7px;margin:0;font-size:.74rem;color:#717579}
.arf-lang-switch__icon{display:inline-flex;flex:none;width:15px;height:15px;color:#929598}
.arf-lang-switch__icon svg{width:100%;height:100%;display:block}
.arf-lang-switch__options{display:flex;gap:2px}
.arf-lang-switch__link{padding:3px 6px;border:1px solid transparent;border-radius:0;text-decoration:none;color:#717579;font-weight:700;font-size:.74rem;letter-spacing:.02em}
.arf-lang-switch__link:hover{color:#2f3235}
.arf-lang-switch__link:focus-visible{outline:2px solid rgba(217,96,10,.5);outline-offset:1px}
.arf-lang-switch__link.is-current{color:#2f3235;border-color:#cdcfd1;background:#f0f1f2}
/* REQ-001 NACHTRAG (2026-09-12): sensible, consistent site-wide placement instead of being
   echoed mid-page in four separate templates.
   Superseded (2026-09-14, direct user instruction): the position:fixed floating overlay this
   introduced overlapped the theme's real footer content - the switcher now renders IN FLOW
   inside the theme's own managed footer (augite-rental/inc/assetcore-bridge.php:
   ars64_footer_lang_switch(), styled by the .ars-footer-lang rule in the theme's own site.css,
   which owns that dark surface's colors) instead of as a separate fixed-position element here. */
/* Wave 15: the shared-device notice is a short calm note inside the login card (styled in the "Wave 15" section at the end). */
.arf-shared-device-notice{font-size:.86rem}
/* REQ-PORTAL-LOGIN-FORM-WIDTH-001 (2026-09-14, user-reported: "Login-Password-Felder sind viel
   zu groß"): .arf-login-form inherited .ars-form's width:100% inside the full-width
   .arf-access-card/.arf-checkout-account/.arf-password-reset-card containers, stretching the
   username/password fields to the entire ~900px content width instead of a normal login-form
   measure. Shared by every ARF_Account::login_form_markup() caller (portal login, checkout
   login toggle, password reset - system-wide, not just /meine-buchung/). */
body:not(.wp-admin) .arf-app .arf-login-form{max-width:420px}
.arf-app a:focus-visible,.arf-app button:focus-visible,.arf-app input:focus-visible,.arf-app select:focus-visible,.arf-app textarea:focus-visible,.arf-app [tabindex]:focus-visible{outline:3px solid #1a5fb4;outline-offset:2px}
/* WordPress core defines .screen-reader-text in wp-admin, but a frontend theme is not
   guaranteed to load it - defined here as a fallback so visually-hidden-but-accessible
   labels (e.g. the search inputs below) are not visually broken on the frontend. */
.arf-app .screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;overflow:hidden;position:absolute!important;word-wrap:normal!important;margin:-1px;padding:0}
/* REQ-HELP-011 (REV271): operations.js now renders the ARF_Help error help (data.error_help of a failed REST call)
   directly under the error message of a scan/process action - also on /intern/rentalflow/, where admin.css (which
   styles the wp-admin .arf-help-block) is not loaded. Same visual language as the wp-admin help block.
   REQ-UI-CONSISTENCY-PILL-HELPER-FILTER-001 (2026-09-14): .arf-help-block is now a <details> element (was an
   always-expanded <div>), collapsed by default on /intern/ exactly like the wp-admin mirror in admin.css - same
   >summary/__body split, same reasoning documented there. */

/* REQ-HELP-005: collapsed FAQ disclosure (ARF_Help::render_context_faqs()), same look as the wp-admin rule. */

/* REQ-HELP-009 / Entscheidung 11: error help in the subtle orange warning style - same values as admin.css
 * (.arf-help-block--error_help, token sources and WCAG AA contrast values documented there). */

/* REQ-DESIGN-PORTAL-LAYOUT P1/P2 (LIVE-TASK-2026-09-13-007, UX-LAYOUT-REV001 NAV-001 + Reflow/Zoom):
   the customer portal tab bar is now max. 5 direct tabs + one "Mehr" disclosure (public.js
   portalTabGroups()) and WRAPS instead of scrolling inside a fixed-height strip - at 200% zoom
   (720 CSS px) the old non-wrapping strip produced horizontal page scroll and cut-off labels.
   The disclosure panel is an in-flow, full-width row of the same nav (no absolutely positioned
   dropdown that could itself overflow the viewport at 320 px). */
body:not(.wp-admin) .arf-portal .arf-portal-tabs{display:flex!important;flex-wrap:wrap!important;align-items:stretch;gap:0 18px!important;overflow:visible!important;max-width:100%}
body:not(.wp-admin) .arf-portal .arf-portal-tablist{display:flex;flex-wrap:wrap;gap:0 18px;min-width:0;max-width:100%}
body:not(.wp-admin) .arf-portal .arf-portal-tab{max-width:100%;white-space:normal;text-align:left}
body:not(.wp-admin) .arf-portal .arf-portal-more-toggle{font:inherit;cursor:pointer;-webkit-appearance:none;appearance:none}
body:not(.wp-admin) .arf-portal .arf-portal-more-toggle[aria-expanded="true"] .arf-portal-icon{color:var(--arf-theme-green)}
body:not(.wp-admin) .arf-portal .arf-portal-more-current{font-weight:750}
body:not(.wp-admin) .arf-portal .arf-portal-more-menu{flex:1 0 100%;display:flex;flex-wrap:wrap;gap:6px 8px;margin:0;padding:10px 0 12px;border-top:1px solid var(--arf-theme-line)}
body:not(.wp-admin) .arf-portal .arf-portal-more-menu[hidden]{display:none!important}
body:not(.wp-admin) .arf-portal .arf-portal-more-item{display:inline-flex;align-items:center;gap:8px;max-width:100%;min-height:48px;padding:8px 12px;border:1px solid var(--arf-theme-line);border-radius:0;background:#fff;color:#3e4144;font:inherit;font-size:.9rem;font-weight:750;text-align:left;white-space:normal;cursor:pointer}
body:not(.wp-admin) .arf-portal .arf-portal-more-item:hover,body:not(.wp-admin) .arf-portal .arf-portal-more-item:focus-visible{border-color:var(--arf-theme-green);background:var(--arf-theme-soft);color:var(--ars-accent-strong,#b84e08)}
body:not(.wp-admin) .arf-portal .arf-portal-more-item.is-active{border-color:var(--arf-theme-green);color:var(--ars-accent-strong,#b84e08);box-shadow:inset 0 -3px 0 var(--arf-theme-green)}
body:not(.wp-admin) .arf-portal .arf-portal-more-item .arf-portal-icon{width:16px;height:16px;flex:none}
@media(max-width:760px){body:not(.wp-admin) .arf-portal .arf-portal-tabs,body:not(.wp-admin) .arf-portal .arf-portal-tablist{column-gap:14px!important}}
/* Same P2 defect class found by the real-browser sweep of every portal panel (not the tab bar): the
   "Benutzer" panel's .arf-portal-users-subsection is display:grid with an implicit auto track, so its
   min-content was the 680 px min-width table inside the (scrolling) table wrapper - the whole panel
   grew to ~760 px and scrolled the page by 55 px at 720 and 455 px at 320 CSS px. minmax(0,1fr) lets
   the table wrapper scroll locally, as every other portal list already does. */
body:not(.wp-admin) .arf-portal .arf-portal-users-subsection{grid-template-columns:minmax(0,1fr)}

/* REQ-DESIGN-PORTAL-LAYOUT P3 (LIVE-TASK-2026-09-13-007): at 320 CSS px the non-wrapping
   ".arf-ops-section-head" flex row (title block + "Aktualisieren", white-space:nowrap, 134 px) pushed
   /intern/rentalflow/ 33 px into horizontal page scroll. The head row now wraps: the title block keeps a
   16rem flex basis and grows, so on desktop/tablet the button stays beside the title and only moves
   onto its own line when both no longer fit. Covers every section head on the external ops surface
   (same component on all /intern/ views), not just the queue card. */
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-section-head{flex-wrap:wrap}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-section-head>.arf-ops-section-titleline{flex:1 1 16rem;min-width:0}
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-section-head>button,body:not(.wp-admin) .arf-app.arf-ops .arf-ops-section-head>a{flex:0 1 auto;max-width:100%}

/* REQ-DESIGN-PORTAL-LAYOUT P4 (LIVE-TASK-2026-09-13-007, UX-LAYOUT-REV001 profile table "Reflow/Zoom:
   320 CSS px und 200% Zoom -> Eine Spalte"; Tablet Portrait 768 keeps its 4-column raster): every
   content raster rendered on the customer portal and the external /intern/ surfaces that still showed
   two or more flexible content columns below 768 px (system-wide sweep over public.css + site.css,
   see tests/test_req_design_portal_layout_p1_p4.py) now collapses to one column. Several of these
   previously switched only at 700/560/480 px, i.e. stayed multi-column at 200% zoom (720 CSS px).
   Deliberately NOT included (not a layout raster): fixed icon/checkbox/chevron tracks next to one
   flexible text track (media objects such as .arf-access-head), segmented choice-button groups
   (.arf-touch-choice, .arf-ops-scanbar buttons) and thumbnail galleries (.arf-photo-strip,
   .arf-portal-media). .arf-transport-main is the one icon+copy grid that is collapsed, because the
   live probe measured it and at 320 px the copy gains the full card width. */
@media(max-width:767px){
 body:not(.wp-admin) .arf-app.arf-ops .arf-ops-quick--external,
 body:not(.wp-admin) .arf-app.arf-ops .arf-transport-main,
 body:not(.wp-admin) .arf-app.arf-ops .arf-ops-control-grid,
 body:not(.wp-admin) .arf-app.arf-ops .arf-ops-staff-context-grid,
 body:not(.wp-admin) .arf-app.arf-ops .arf-ops-assets-summary,
 body:not(.wp-admin) .arf-app.arf-ops .arf-release-gate-grid,
 body:not(.wp-admin) .arf-app.arf-ops .arf-batch-assets,
 body:not(.wp-admin) .arf-app.arf-ops .arf-general-checks,
 body:not(.wp-admin) .arf-app.arf-ops .arf-meter-fields,
 body:not(.wp-admin) .arf-app.arf-ops .arf-return-core,
 body:not(.wp-admin) .arf-app.arf-ops .arf-return-findings,
 body:not(.wp-admin) .arf-app.arf-ops .arf-ops-inline-new-customer-grid,
 body:not(.wp-admin) .arf-app .arf-metric-grid,
 body:not(.wp-admin) .arf-app .arf-facts,
 body:not(.wp-admin) .arf-app .arf-admin-gate-grid,
 body:not(.wp-admin) .arf-app .arf-invitation-summary,
 body:not(.wp-admin) .arf-app.arf-portal .arf-portal-kpi-grid,
 body:not(.wp-admin) .arf-app.arf-portal .arf-portal-overview-grid,
 body:not(.wp-admin) .arf-app.arf-portal .arf-portal-detail-grid,
 body:not(.wp-admin) .arf-app.arf-portal .arf-portal-profile-summary,
 body:not(.wp-admin) .arf-app.arf-portal .arf-portal-message-form{grid-template-columns:minmax(0,1fr)!important}
 body:not(.wp-admin) .arf-app.arf-ops .arf-transport-main{gap:8px}
}

/* REQ-DESIGN-PORTAL-LAYOUT Entscheidung 20 (docs/projektsteuerung/ENTSCHEIDUNGEN-2026-09-13.md; UX-LAYOUT-REV001
   profile "Reflow/Zoom 320 CSS px und 200% Zoom: Navigation als beschriftete Auswahl"): below 768 CSS px the wrapping
   portal tab bar and its "Mehr" disclosure are replaced by the labelled native select that portalTabsHtml() renders
   in front of the tablist (the "Mehr" areas are an optgroup of it). Desktop/tablet (>= 768 px) are unchanged: the
   select is display:none there, so assistive technology never meets two navigations at once. */
body:not(.wp-admin) .arf-portal .arf-portal-area-select{display:none}
@media(max-width:767px){
 body:not(.wp-admin) .arf-portal .arf-portal-tabs .arf-portal-tablist,
 body:not(.wp-admin) .arf-portal .arf-portal-tabs .arf-portal-more-toggle,
 body:not(.wp-admin) .arf-portal .arf-portal-tabs .arf-portal-more-menu{display:none!important}
 body:not(.wp-admin) .arf-portal .arf-portal-tabs .arf-portal-area-select{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;flex:1 1 100%;min-width:0;max-width:100%}
 body:not(.wp-admin) .arf-portal .arf-portal-area-select label{margin:0;color:var(--arf-theme-text);font-size:.82rem;font-weight:800}
 body:not(.wp-admin) .arf-portal .arf-portal-area-select select{box-sizing:border-box;display:block;width:100%;max-width:100%;min-height:48px;margin:0;padding:0 36px 0 12px;border:1px solid var(--arf-theme-line);border-radius:0;background-color:#fff;color:var(--arf-theme-text);font:inherit;font-size:.95rem;font-weight:700}
 body:not(.wp-admin) .arf-portal .arf-portal-area-select select:focus-visible{outline:2px solid var(--arf-theme-green);outline-offset:2px;border-color:var(--arf-theme-green)}
}

/* REQ-DESIGN-PORTAL-LAYOUT Entscheidung 18 (ENTSCHEIDUNGEN-2026-09-13.md: "Ein-Spalten-Regel 320 px / 200 %: Alles
   einspaltig, auch Icon+Text-Zeilen, Auswahlbutton-Gruppen, Galerien"): supersedes the P4 exclusions above. Below
   768 CSS px EVERY grid on the customer portal (.arf-portal), on the portal access/login/invitation/password-reset/
   pay cards (.arf-access-shell) and on every front-end /intern/ surface (.arf-ops: RentalFlow, RentalCore,
   RentalInvoice, RentalPayments) has exactly one column - one universal rule instead of a selector list, so a grid
   added later cannot silently stay two-column (tests/test_req_design_portal_one_column_decision18.py sweeps every
   grid rule of public.css + the theme's site.css through the real cascade). Explicit item placement (grid-column:2,
   grid-row:1/3, ...) is neutralised too, because a placed item would otherwise open an implicit second column.
   Several older /intern/ rules are themselves !important at (0,4,1) (e.g. .arf-ops-booking, .arf-ops-scanbar), so the
   universal selector carries one ID-level specificity via :not(#arf-reflow-one-column) (no element has that id; it
   matches every element) - otherwise those rules would silently keep two columns at 320/720 px.
   Flex-based choice groups (.arf-touch-choice--chips, .arf-choice-row) become the same one-column grid. wp-admin and
   the public catalog/cart/checkout/withdrawal pages are out of scope (neither portal nor /intern/). */
@media(max-width:767px){
 body:not(.wp-admin) .arf-app:is(.arf-portal,.arf-access-shell,.arf-ops) :not(#arf-reflow-one-column){grid-template-columns:minmax(0,1fr)!important;grid-template-areas:none!important;grid-auto-flow:row!important;grid-column:auto!important;grid-row:auto!important}
 body:not(.wp-admin) .arf-app:is(.arf-portal,.arf-access-shell,.arf-ops) :is(.arf-touch-choice,.arf-touch-choice--chips,.arf-choice-row){display:grid!important}
}

/* REQ-DESIGN-PORTAL-LAYOUT Entscheidung 30 (ENTSCHEIDUNGEN-2026-09-13.md: "Checkbox ueber Label auf schmalen Geraeten -
   Nein, Checkbox neben ihrem Text lassen; nur echte Inhaltsspalten einspaltig"): precision of the Entscheidung-18 rule
   above. A checkbox/radio row is not a content column: below 768 CSS px its control stays on the same line as its text.
   One shared row component (.arf-check-row, used by every portal/access/intern check row that had no own row layout) plus
   every existing check-row component found by the system-wide sweep over public.css + the theme's site.css (all labels
   that hold an input[type=checkbox|radio] in RentalCore/RentalFlow PHP+JS, RentalPayments, RentalInvoice and the theme):
   .ars-checkbox, .arf-ops-walkin-checkbox, .arf-login-form__remember (via .arf-check-row) and the /intern/ checklist item
   .arf-master-item (icon on its own row, copy + confirmation checkbox side by side). Flex-based check rows
   (.arf-general-checks, .arf-batch-assets, .arf-choice-row, .arf-preparation-asset labels) are never touched by the
   grid rule and stay unchanged. Carries one ID-level specificity more than the Entscheidung-18 rule so it wins there. */
body:not(.wp-admin) form label.arf-check-row,body:not(.wp-admin) .arf-app label.arf-check-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;column-gap:9px;row-gap:0;font-weight:500}
body:not(.wp-admin) label.arf-check-row>input:is([type="checkbox"],[type="radio"]){width:18px;height:18px;min-height:0;margin:2px 0 0}
@media(max-width:767px){
 body:not(.wp-admin) .arf-app:is(.arf-portal,.arf-access-shell,.arf-ops) :is(.arf-check-row,.ars-checkbox,.arf-ops-walkin-checkbox,.augite-modal__check):not(#arf-reflow-one-column):not(#arf-reflow-check-row){grid-template-columns:auto minmax(0,1fr)!important} /* wave 33 (decision 166 follow-up): + every dialog checkbox row */
 body:not(.wp-admin) .arf-app:is(.arf-portal,.arf-access-shell,.arf-ops) .arf-master-item:not(.is-blocking):not(.is-return-condition):not(#arf-reflow-one-column):not(#arf-reflow-check-row){grid-template-columns:minmax(0,1fr) auto!important}
 body:not(.wp-admin) .arf-app:is(.arf-portal,.arf-access-shell,.arf-ops) .arf-master-item:not(.is-blocking):not(.is-return-condition) .arf-master-icon:not(#arf-reflow-one-column):not(#arf-reflow-check-row){grid-column:1/-1!important}
}

/* REQ-DESIGN-PORTAL-LAYOUT Entscheidung 27 (ENTSCHEIDUNGEN-2026-09-13.md: "Seitlicher Scroll bei 720 px im Portal
   (Kontomenue, Tabellen Schaeden/Benutzer) - Beheben"; LIVE-TASK-2026-09-13-056/-086: 28 px overhang at 720 CSS px).
   Tables: every table on a customer-facing/front-end surface sits in its own horizontally scrolling wrapper that can
   never widen its ancestors - the wrapper is capped at its container (max-width:100%, min-width:0) and every portal
   panel/list/subsection between the panel and the wrapper may shrink below the table's min-width (flex/grid items
   otherwise take the table's min-content width). System-wide sweep: .arf-portal-table-wrap (portal: bookings, documents,
   finance, messages, damage, contacts, users, invitations), .arf-admin-table-scroll (/intern/ RentalCore/RentalFlow and
   RentalInvoice), .arf-ops-table-wrap (operations tables). The header account menu is handled in Entscheidung 28 below. */
body:not(.wp-admin) .arf-app :is(.arf-portal-table-wrap,.arf-admin-table-scroll,.arf-ops-table-wrap){position:relative;box-sizing:border-box;display:block;max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
body:not(.wp-admin) .arf-portal :is(.arf-portal-panel,.arf-portal-panels,.arf-portal-list,.arf-portal-subsection,.arf-portal-users-subsection,.arf-portal-table-tools){box-sizing:border-box;min-width:0;max-width:100%}
body:not(.wp-admin) .arf-app.arf-ops :is(.arf-ops-card,.arf-ops-section){min-width:0;max-width:100%}

/* REQ-DESIGN-PORTAL-LAYOUT Entscheidung 28 (ENTSCHEIDUNGEN-2026-09-13.md: "Kontomenue im Seitenkopf auf schmalen
   Viewports - auch einspaltig, konsequent zu Nr. 18"). Below 768 CSS px the header account control (guest login link,
   logged-in toggle) and every entry of its menu are one column: icon, text and disclosure chevron stack instead of
   sitting in 20px/1fr/auto tracks, and no text track can push the control past the viewport (the 720 px overhang of
   LIVE-TASK-2026-09-13-056 was .arf-global-account__text/__chevron at right edges 726/748). Together with the theme's
   narrow-header rule (site.css: the navigation opens as overlay below 768 px instead of 600 px) the account control
   lives in the full-width overlay there. */
@media(max-width:767px){
 body:not(.wp-admin) .ars-header .arf-global-account{max-width:100%!important}
 body:not(.wp-admin) .ars-header .arf-global-account__toggle,
 body:not(.wp-admin) .ars-header .arf-global-account__login,
 body:not(.wp-admin) .ars-header .arf-global-account__item{grid-template-columns:minmax(0,1fr)!important;justify-items:start;row-gap:4px!important;max-width:100%!important;box-sizing:border-box}
 body:not(.wp-admin) .ars-header .arf-global-account__text strong,
 body:not(.wp-admin) .ars-header .arf-global-account__login strong{max-width:100%!important}
 body:not(.wp-admin) .ars-header .arf-global-account__menu{max-width:100%!important;box-sizing:border-box}
}

/* Wave 15 - REQ-LOGIN-NO-WORDPRESS-TRAITS-LAYOUT-001: the shared login screen (ARF_Login_Screen) of every login gate
   (/meine-buchung/, /mein-konto/, the guest state of every /intern/ module, wp-login.php via the theme).
   Cascade root causes of the client screenshot (fixed here, not overridden elsewhere):
   1. The login form carried the generic long-form contract .ars-form (theme site.css: width:100%;max-width:940px) and had
      no own container, so every input stretched to the 940 px form cap (~980 px with the field chrome). The form now
      lives in .arf-login-card, whose grid column is capped at 30rem; inside the card the form has no own cap.
   2. The shared-device notice was a sibling paragraph after .arf-access-grid, which only had margin-top, inside an
      .arf-access-card flattened to padding:0 - nothing ever separated the two. It is now a short calm note inside the card
      below the form, separated by its own spacing and a hairline (no help box, no collapsible - decision 64).
   3. "Passwort vergessen?" and the "Mietgeräte"/"Kontakt" links carried .ars-btn--ghost (outlined button geometry) and
      .arf-login-form__actions had no layout. Secondary actions are now .arf-login-link text links; the primary action
      spans the card width.
   Spacing scale 8/16/24/32/40 px; square corners; colours only from the theme tokens (--ars-*). Text on white (links) uses the
   button/text accent token of decision 49 (--ars-accent-strong, wave 14) with the current accent as fallback until it ships;
   --ars-green stays for lines and pictograms. */
body:not(.wp-admin) .arf-login-panel{max-width:100%;min-width:0}
body:not(.wp-admin) .arf-login-panel .arf-login-panel__head{margin:0}
body:not(.wp-admin) .arf-login-panel .arf-login-panel__head h1,
body:not(.wp-admin) .arf-login-panel .arf-login-panel__head h2{margin:0 0 8px!important}
body:not(.wp-admin) .arf-login-panel .arf-login-panel__head .ars-lead{max-width:60ch;margin:0!important;font-size:1.05rem;line-height:1.5}
/* REQ-LOGIN-SCREEN-EQUAL-HEIGHT-001 (2026-09-14, user-reported via screenshot of /meine-buchung/:
   "kacheln sind nicht gleich hoch!"): align-items:start let each column size to its own content,
   so the login card (more content) and the info column (less content) ended up different
   heights - the same "two boxes side by side must match height" issue already fixed the same
   way for .augac-two-col/.augri-two-col (align-items:stretch) elsewhere in this codebase. */
body:not(.wp-admin) .arf-login-panel__grid{display:grid;grid-template-columns:minmax(0,30rem) minmax(0,1fr);gap:40px;align-items:stretch;margin-top:32px}
body:not(.wp-admin) .arf-login-panel--single .arf-login-panel__grid{grid-template-columns:minmax(0,30rem)}
/* REQ-LOGIN-SCREEN-RIGHT-COLUMN-BOX-001 (2026-09-14, user-reported via screenshot of /meine-buchung/:
   "nebeneinander ist fein, der rechte block hat aber keine Box aussen. Farbige Kante ist immer
   links!"): the login card used border-top for its accent - the only box on the whole site that
   put its colour accent on top instead of the left edge every other bordered box in this project
   uses (.ars-group, .arf-ops-card, .arf-checkout-summary, etc.) - and the info column next to it
   had no box at all (just a thin left divider line), so the two-column layout read as one real
   card next to bare text. Both now get a real box (border on all sides, padding, background) with
   the accent on the left, matching every other card on the site. */
body:not(.wp-admin) .arf-login-card{box-sizing:border-box;min-width:0;padding:32px;border:1px solid var(--ars-line);border-left:4px solid var(--ars-green);border-radius:0;background:var(--ars-white)}
body:not(.wp-admin) .arf-login-card .arf-login-form{display:grid;gap:16px;width:100%;max-width:none;margin:0}
body:not(.wp-admin) .arf-login-card .arf-login-form label:not(.arf-check-row){display:grid;gap:8px;margin:0;font-weight:700}
body:not(.wp-admin) .arf-login-card .arf-login-form__actions{display:grid;margin:8px 0 0}
body:not(.wp-admin) .arf-login-card .arf-login-form__submit{width:100%;justify-content:center}
body:not(.wp-admin) .arf-login-card .arf-login-form__links{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0;font-size:.94rem}
body:not(.wp-admin) .arf-login-link{color:var(--ars-accent-strong,var(--ars-green));font-weight:700;text-decoration:underline;text-underline-offset:3px}
body:not(.wp-admin) .arf-login-link:hover,body:not(.wp-admin) .arf-login-link:focus-visible{color:var(--ars-ink)}
body:not(.wp-admin) .arf-login-card .arf-shared-device-notice{margin:24px 0 0;padding:16px 0 0;border-top:1px solid var(--ars-line);color:var(--ars-muted);font-size:.88rem;line-height:1.45}
/* Live finding LIVE-TASK-2026-09-15-170 (2026-09-15): the shared result/validation notices (ARF_Admin::admin_result_notice(),
   render_validation_notice(), used by every /intern/ write view) carry WordPress' .notice classes, which have no styling outside
   wp-admin - a rejection showed as plain body text between the module tabs and the first card. Styled once for every front-end
   app surface, with the wp-admin semantics (error red, success green, warning amber, info blue). */
body:not(.wp-admin) :is(.arf-app,.arf-theme-page) .notice{display:block;box-sizing:border-box;margin:0 0 16px;padding:12px 16px;border:1px solid var(--arf-theme-line,#dcdcde);border-left:4px solid #2271b1;border-radius:0;background:#f0f6fc;color:#1d2327;line-height:1.5;box-shadow:none}
body:not(.wp-admin) :is(.arf-app,.arf-theme-page) .notice p{margin:0}
body:not(.wp-admin) :is(.arf-app,.arf-theme-page) .notice p+p{margin-top:6px}
body:not(.wp-admin) :is(.arf-app,.arf-theme-page) .notice-error{border-left-color:#b32d2e;background:#fcf0f1}
body:not(.wp-admin) :is(.arf-app,.arf-theme-page) .notice-error>p:first-child{font-weight:600}
body:not(.wp-admin) :is(.arf-app,.arf-theme-page) .notice-success{border-left-color:#1f7a4f;background:#edfaef}
body:not(.wp-admin) :is(.arf-app,.arf-theme-page) .notice-warning{border-left-color:#8a5a00;background:#fcf9e8}
/* /LIVE-TASK-2026-09-15-170 front-end notices */
body:not(.wp-admin) .arf-login-card :is(.notice,.message,#login_error,.arf-invitation-state){margin:0 0 16px;padding:16px;border:0;border-left:4px solid var(--ars-green);border-radius:0;background:var(--ars-soft);color:var(--ars-text);box-shadow:none}
body:not(.wp-admin) .arf-login-card :is(#login_error,.notice-error){border-left-color:var(--ars-warn);background:var(--ars-warn-bg)}
body:not(.wp-admin) .arf-login-card :is(.notice,.message,#login_error) p{margin:0}
body:not(.wp-admin) .arf-login-card :is(.notice,.message,#login_error) p+p{margin-top:8px}
body:not(.wp-admin) .arf-password-reset-card .arf-password-reset-body.arf-login-card{max-width:30rem;margin-top:32px}
body:not(.wp-admin) .arf-password-reset-card .arf-password-reset-body .ars-lead{margin:0 0 16px!important;font-size:1rem}
body:not(.wp-admin) .arf-password-reset-card .arf-password-reset-body .arf-access-actions{margin-top:16px!important}
body:not(.wp-admin) .arf-login-info{box-sizing:border-box;min-width:0;max-width:36rem;padding:32px;border:1px solid var(--ars-line);border-radius:0;background:var(--ars-white)}
body:not(.wp-admin) .arf-login-panel .arf-login-info .arf-login-info__title{margin:0 0 16px!important;font-size:1.05rem!important;line-height:1.3!important;letter-spacing:0!important}
body:not(.wp-admin) .arf-login-info__list{display:grid;gap:16px;margin:0;padding:0;list-style:none}
body:not(.wp-admin) .arf-login-info__item{display:grid;grid-template-columns:24px minmax(0,1fr);gap:16px;align-items:start;margin:0}
body:not(.wp-admin) .arf-login-info__icon{display:grid;place-items:center;width:24px;height:24px;color:var(--ars-green)}
body:not(.wp-admin) .arf-login-info__icon svg{display:block;width:20px;height:20px}
body:not(.wp-admin) .arf-login-info__text{display:grid;gap:4px;color:var(--ars-muted);font-size:.94rem;line-height:1.45}
body:not(.wp-admin) .arf-login-info__text strong{color:var(--ars-ink);font-size:.98rem}
body:not(.wp-admin) .arf-login-info__links{display:flex;flex-wrap:wrap;gap:8px 24px;margin:24px 0 0;padding:16px 0 0;border-top:1px solid var(--ars-line)}
body:not(.wp-admin) .arf-login-panel--compact .arf-login-panel__head{grid-template-columns:minmax(0,1fr)}
body:not(.wp-admin) .arf-login-panel--compact .arf-login-panel__head h1{font-size:1.4rem!important;line-height:1.2!important}
body:not(.wp-admin) .arf-login-panel--compact .arf-login-panel__grid{grid-template-columns:minmax(0,1fr);margin-top:16px}
body:not(.wp-admin) .arf-login-panel--compact .arf-login-card{padding:16px}
@media(max-width:767px){
 body:not(.wp-admin) .arf-login-panel .arf-login-panel__grid{grid-template-columns:minmax(0,1fr)!important;gap:32px;margin-top:24px}
 body:not(.wp-admin) .arf-login-panel .arf-login-info{max-width:none;padding:24px 16px}
 body:not(.wp-admin) .arf-login-card{padding:24px 16px}
}
/* Floating cart (wave 15): starts hidden on login screens while the cart is empty (public.js reveals it), and system-wide
   the managed footer reserves the band the fixed button occupies, so at the end of every page no footer content (legal
   links, copyright) stays covered - including the iOS safe area. */
body:not(.wp-admin) a.arf-floating-cart[hidden],body:not(.wp-admin) .arf-floating-cart[hidden]{display:none!important}
body:not(.wp-admin) a.arf-floating-cart.ars-btn{bottom:calc(78px + env(safe-area-inset-bottom, 0px))!important}
body:not(.wp-admin):has(.arf-floating-cart:not([hidden])) .ars-footer{padding-bottom:calc(136px + env(safe-area-inset-bottom, 0px))}
/* Wave 21 - client decision 72 (REQ-LOGIN-NO-WORDPRESS-TRAITS-LAYOUT-001): "Passwort anzeigen" in every inline login form
   (ARF_Account::login_form_markup(): portal, checkout, invitation, /intern/ gates). WordPress' wp-pwd pattern in the component
   style: the field keeps its full width, a square icon button sits inside its right end (46 px, the field height), the field
   reserves that space. The button starts hidden (password-toggle.js reveals it), so without JavaScript nothing is shown.
   Theme tokens only, square corners, visible focus ring. The label stands above the field (not wrapping the button). */
body:not(.wp-admin) .arf-login-form .arf-login-form__field{display:grid;gap:8px;margin:0}
body:not(.wp-admin) .arf-login-form .arf-login-form__field>label{display:block;margin:0;font-weight:700}
body:not(.wp-admin) .arf-password-field{position:relative;display:block;min-width:0}
body:not(.wp-admin) .arf-password-field input{width:100%;box-sizing:border-box}
body:not(.wp-admin) .arf-password-field:has(.arf-password-toggle:not([hidden])) input{padding-right:52px!important}
body:not(.wp-admin) .arf-password-toggle{position:absolute;top:0;right:0;display:grid;place-items:center;width:46px;min-width:46px;height:100%;min-height:44px;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--ars-accent-strong,var(--ars-green));box-shadow:none;cursor:pointer}
body:not(.wp-admin) .arf-password-toggle[hidden]{display:none!important}
body:not(.wp-admin) .arf-password-toggle:hover{color:var(--ars-ink)}
body:not(.wp-admin) .arf-password-toggle:focus-visible{outline:2px solid var(--ars-green);outline-offset:-4px}
body:not(.wp-admin) .arf-password-toggle svg{display:block;width:20px;height:20px}
body:not(.wp-admin) .arf-password-toggle .arf-password-toggle__hide,
body:not(.wp-admin) .arf-password-toggle[aria-pressed="true"] .arf-password-toggle__show{display:none}
body:not(.wp-admin) .arf-password-toggle[aria-pressed="true"] .arf-password-toggle__hide{display:block}
/* Wave 21 - decision 69: the internal info column of wp-login.php (target wp-admin or /intern/) uses the same compact list. */
body:not(.wp-admin) .arf-login-info--internal .arf-login-info__links{margin-top:16px}
/* Wave 27 - REQ-UI-CARD-FOOTER-BOTTOM-ALIGN-001 (client decision 120, screenshot /meine-buchung/ logged out): "in solchen Boxen
   muessen die unteren Inhalte (hier zwei Links) immer auf der gleichen Hoehe sein". The login card and the info column were
   already stretched to equal height, but as block boxes the info column's link row ended right below its list, mid-box. Both
   boxes of the two-column grid are now flex columns; their closing content takes margin-top:auto and so sits at the inner bottom
   edge of either box, whichever of the two is taller:
   - card with the shared inline form (portal, /intern/ gates): the form grows, its closing "Passwort vergessen?" row moves down;
   - card on wp-login.php (WordPress' core form + component links + shared-device note): the link row and the note after it move down;
   - info column: the link row moves down together with its hairline; the former margin-top becomes the list's margin-bottom
     (24 px, 16 px in the internal column), so the minimum distance is unchanged.
   One column (below 768 px) the boxes are not stretched, the auto margins resolve to 0 - no artificial gap. The standalone
   password reset card (no neighbour) is not part of the grid and stays unchanged. */
body:not(.wp-admin) .arf-login-panel__grid>.arf-login-card,
body:not(.wp-admin) .arf-login-panel__grid>.arf-login-info{display:flex;flex-direction:column}
body:not(.wp-admin) .arf-login-panel__grid>.arf-login-card>.arf-login-form{display:flex;flex-direction:column;flex:1 0 auto}
body:not(.wp-admin) .arf-login-panel__grid>.arf-login-card>.arf-login-form>.arf-login-form__links:last-child,
body:not(.wp-admin) .arf-login-panel__grid>.arf-login-card>.arf-login-form__links,
body:not(.wp-admin) .arf-login-panel__grid>.arf-login-info>.arf-login-info__links{margin-top:auto}
body:not(.wp-admin) .arf-login-panel__grid>.arf-login-info>.arf-login-info__list:not(:last-child){margin-bottom:24px}
body:not(.wp-admin) .arf-login-panel__grid>.arf-login-info--internal>.arf-login-info__list:not(:last-child){margin-bottom:16px}
/* /Wave 27 login footer */
/* Wave 27 - REQ-UI-CARD-FOOTER-BOTTOM-ALIGN-001 (client decision 120): /intern/rentalflow/ "Transporte heute & als Naechstes" cards
   (two columns above 820 px). As a grid the stretched card shared its extra height among all rows, so the action row ("Buchung
   oeffnen" + status action) ended at different heights when only one card had a conflict/missing-data warning. Flex column with
   the same 10 px gap; the action row (and the result line after it) takes margin-top:auto - 0 in one column. */
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-list>.arf-transport-card{display:flex;flex-direction:column}
body:not(.wp-admin) .arf-app.arf-ops .arf-transport-list>.arf-transport-card>.arf-transport-actions{margin-top:auto}
/* /Wave 27 transport footer */
body:not(.wp-admin) .arf-app.arf-ops .arf-ops-secondary.arf-ops-icon-text>svg{width:18px;height:18px;flex:none}

/* Wave 29 - REQ-CART-PAGE-REWORK-001 (client 2026-09-14, /warenkorb/: "Die Anzeige ist nicht korrekt formatiert/layout/verteilt
   ... Zeitfenster-Dropdowns müssen nicht so breit sein! ... Komplett überarbeiten!"). Final cart/checkout-summary layer,
   loaded last so it wins over the older REV095/REV137/REV171 cart rules above without deleting them:
   - one column of sections with the same left edge and a fixed vertical rhythm (24px), section headings;
   - item cards: image (or neutral placeholder box) left, title/SKU/quantity/remove right, the item's safety information as
     a sub-section INSIDE the card;
   - "Passende Ergänzungen" as equal-height cards whose action row sits at the card bottom (flex column + margin-top:auto,
     the same pattern as REQ-UI-CARD-FOOTER-BOTTOM-ALIGN-001);
   - pickup/return: labels directly above content-width selects (max 22rem), Abholung and Rückgabe side by side on desktop,
     stacked on narrow screens; the location select uses the same width;
   - the Vorlaufzeit | Gebühr matrix in the shared dialog; square corners, theme tokens only. */
body:not(.wp-admin) .arf-app .arf-cart-sections{display:flex;flex-direction:column;gap:24px;margin:0;padding:0;min-width:0}
/* decision 349: cart page (/warenkorb/) two-column layout - content left, sticky Preisübersicht/Hilfe aside right */
body:not(.wp-admin) .arf-app .arf-cart-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.9fr);gap:24px;align-items:start;margin:0;min-width:0}
body:not(.wp-admin) .arf-app .arf-cart-main{display:flex;flex-direction:column;gap:24px;min-width:0}
body:not(.wp-admin) .arf-app .arf-cart-aside{position:sticky;top:24px;display:flex;flex-direction:column;gap:14px;min-width:0}
body:not(.wp-admin) .arf-app .arf-cart-aside .arf-cart-section--totals{margin:0!important}
body:not(.wp-admin) .arf-app .arf-cart-aside .arf-cart-section--period{margin:0!important}
body:not(.wp-admin) .arf-app .arf-cart-aside .arf-cart-period-summary{margin:0!important;flex-wrap:wrap}
body:not(.wp-admin) .arf-app .arf-cart-aside .arf-cart-totals-box{max-width:100%!important}
body:not(.wp-admin) .arf-app .arf-cart-aside .arf-cart-section--totals .arf-help-block{max-width:100%!important}
@media(max-width:900px){
 body:not(.wp-admin) .arf-app .arf-cart-layout{grid-template-columns:1fr;gap:22px}
 body:not(.wp-admin) .arf-app .arf-cart-aside{position:static}
}
body:not(.wp-admin) .arf-app .arf-cart-section{margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;min-width:0}
body:not(.wp-admin) .arf-app .arf-cart-section-title{margin:0 0 12px!important;padding:0!important;font-size:1.08rem!important;line-height:1.3!important;letter-spacing:0!important;color:var(--arf-theme-ink)}
/* period summary with "Zeitraum ändern" */
body:not(.wp-admin) .arf-app .arf-cart-period-summary{display:flex!important;flex-wrap:wrap;align-items:center!important;justify-content:space-between!important;gap:12px 24px!important;margin:0!important;padding:16px 20px!important;border:1px solid var(--arf-theme-line)!important;border-left:4px solid var(--arf-theme-green)!important;border-radius:0!important;background:var(--arf-theme-soft)!important}
body:not(.wp-admin) .arf-app .arf-cart-period-text{display:flex;flex-direction:column;gap:2px;min-width:0}
body:not(.wp-admin) .arf-app .arf-cart-period-text strong{font-size:1.05rem;color:var(--arf-theme-ink)}
body:not(.wp-admin) .arf-app .arf-cart-period-text small{color:var(--arf-theme-muted);opacity:1}
body:not(.wp-admin) .arf-app .arf-cart-period-change{flex:0 0 auto;width:auto!important;margin:0!important}
/* item cards */
body:not(.wp-admin) .arf-app .arf-cart-items{display:flex!important;flex-direction:column!important;gap:12px!important;margin:0!important;padding:0!important;border:0!important}
body:not(.wp-admin) .arf-app .arf-cart-item{display:grid!important;grid-template-columns:120px minmax(0,1fr) minmax(190px,auto)!important;column-gap:20px!important;row-gap:12px!important;align-items:start!important;margin:0!important;padding:14px!important;border:1px solid var(--arf-theme-line)!important;border-radius:0!important;background:var(--ars-white)!important;box-shadow:none!important}
/* decision 348/349: line price sits in its own right-aligned third column (user: use the empty space on the right); safety spans full width below */
body:not(.wp-admin) .arf-app .arf-cart-item>.arf-cart-item-price{grid-column:3;justify-self:stretch;text-align:right;margin:0}
body:not(.wp-admin) .arf-app .arf-cart-item>.arf-cart-item-safety{grid-column:1/-1}
body:not(.wp-admin) .arf-app .arf-cart-item>.arf-cart-item-media{display:block!important;gap:0!important;width:120px;aspect-ratio:4/3;max-width:100%;overflow:hidden;border:1px solid var(--arf-theme-line);background:var(--arf-theme-soft)}
body:not(.wp-admin) .arf-app .arf-cart-item-media img{display:block;width:100%;height:100%;object-fit:contain;border-radius:0}
body:not(.wp-admin) .arf-app .arf-cart-item-placeholder{display:block;width:100%;height:100%}
body:not(.wp-admin) .arf-app .arf-cart-item-body{display:flex;flex-direction:column;gap:12px;min-width:0}
body:not(.wp-admin) .arf-app .arf-cart-item-head{display:flex;flex-direction:column;gap:2px;min-width:0}
body:not(.wp-admin) .arf-app .arf-cart-item-title{margin:0!important;padding:0!important;font-size:1rem!important;line-height:1.35!important;letter-spacing:0!important;color:var(--arf-theme-ink);overflow-wrap:anywhere}
body:not(.wp-admin) .arf-app .arf-cart-item-title a{color:inherit;text-decoration:none}
body:not(.wp-admin) .arf-app .arf-cart-item-title a:hover,body:not(.wp-admin) .arf-app .arf-cart-item-title a:focus-visible{text-decoration:underline}
body:not(.wp-admin) .arf-app .arf-cart-item-sku{display:block;color:var(--arf-theme-muted);font-size:.84rem;opacity:1;overflow-wrap:anywhere}
body:not(.wp-admin) .arf-app .arf-cart-item-controls{display:flex!important;flex-wrap:wrap;align-items:flex-end!important;justify-content:flex-start!important;gap:8px 20px!important;margin:0}
body:not(.wp-admin) .arf-app .arf-cart-item-controls label.arf-cart-item-qty-field{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:4px!important;margin:0!important;font-size:.82rem;font-weight:700}
body:not(.wp-admin) .arf-app .arf-cart-item-controls input[type=number]{width:6rem!important;min-width:0!important;height:42px!important;min-height:42px!important}
body:not(.wp-admin) .arf-app .arf-cart-item-controls .arf-link-danger{min-height:42px;margin:0}
body:not(.wp-admin) .arf-app .arf-cart-item-qty{font-weight:700;color:var(--arf-theme-ink)}
body:not(.wp-admin) .arf-app .arf-cart-item-safety{margin:0;padding:9px 12px;border:0;border-left:3px solid var(--arf-theme-green);border-radius:0;background:var(--arf-theme-soft);font-size:.86rem}
body:not(.wp-admin) .arf-app .arf-cart-item{padding:14px!important}
body:not(.wp-admin) .arf-app .arf-cart-item-body{gap:10px}
body:not(.wp-admin) .arf-app .arf-cart-item-safety-title{display:flex;align-items:center;gap:8px;margin:0;font-size:.9rem;color:var(--arf-theme-ink)}
body:not(.wp-admin) .arf-app .arf-cart-item-safety-title .arf-portal-icon{flex:0 0 auto;width:18px;height:18px;color:var(--arf-theme-muted)}
body:not(.wp-admin) .arf-app .arf-cart-item-safety ul{margin:8px 0 0 18px;padding:0}
body:not(.wp-admin) .arf-app .arf-cart-item-safety li{margin:0 0 4px}
body:not(.wp-admin) .arf-app .arf-cart-item-handover{margin:8px 0 0!important;padding:8px 0 0;border-top:1px solid var(--arf-theme-line);font-size:.88rem;font-weight:600;color:var(--arf-theme-text)}
body:not(.wp-admin) .arf-app .arf-cart-section .arf-cart-required{margin:12px 0 0!important}
/* recommendations: equal-height cards, action row at the card bottom */
body:not(.wp-admin) .arf-app .arf-cart-section.arf-cart-recommendations{margin:0!important;padding:0!important;border:0!important;border-left:0!important;background:transparent!important}
body:not(.wp-admin) .arf-app .arf-cart-rec-list{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr))!important;gap:12px!important;align-items:stretch!important;margin:0!important}
body:not(.wp-admin) .arf-app .arf-cart-rec{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:12px!important;height:100%;box-sizing:border-box;margin:0!important;padding:14px 16px!important;border:1px solid var(--arf-theme-line)!important;border-radius:0!important;background:var(--ars-white)!important;text-align:left!important}
body:not(.wp-admin) .arf-app .arf-cart-rec-top{display:flex;align-items:flex-start;gap:12px;min-width:0}
body:not(.wp-admin) .arf-app .arf-cart-rec-media{flex:0 0 64px;width:64px;height:64px;overflow:hidden;border:1px solid var(--arf-theme-line);background:var(--arf-theme-soft)}
body:not(.wp-admin) .arf-app .arf-cart-rec-media img{width:100%;height:100%;object-fit:contain;display:block}
body:not(.wp-admin) .arf-app .arf-cart-rec-media-empty{display:block;width:100%;height:100%}
body:not(.wp-admin) .arf-app .arf-cart-rec-body{display:flex!important;flex-direction:column;gap:2px;min-width:0}
body:not(.wp-admin) .arf-app .arf-cart-rec-kind{font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--arf-theme-muted)}
body:not(.wp-admin) .arf-app .arf-cart-rec-body>strong{font-size:.95rem;color:var(--arf-theme-ink);overflow-wrap:anywhere}
body:not(.wp-admin) .arf-app .arf-cart-rec-body>small{font-size:.82rem;color:var(--arf-theme-muted);opacity:1}
body:not(.wp-admin) .arf-app .arf-cart-rec-foot{margin-top:auto!important;display:flex}
body:not(.wp-admin) .arf-app .arf-cart-rec-foot .ars-btn{width:auto!important;margin:0!important}
/* pickup/return: location + compact slot grid */
body:not(.wp-admin) .arf-app .arf-cart-section--service{padding:20px 24px!important;border:1px solid var(--arf-theme-line)!important;background:var(--ars-white)!important}
body:not(.wp-admin) .arf-app .arf-cart-location{display:flex!important;flex-direction:column!important;align-items:stretch;gap:6px!important;max-width:22rem!important;margin:0 0 16px!important}
body:not(.wp-admin) .arf-app .arf-cart-location>label,body:not(.wp-admin) .arf-app .arf-cart-slot-label{display:block!important;margin:0!important;font-size:.86rem;font-weight:700;line-height:1.3;color:var(--arf-theme-ink)}body:not(.wp-admin) .arf-app .arf-cart-location select,body:not(.wp-admin) .arf-app .arf-cart-slot-field select,body:not(.wp-admin) .arf-app .arf-cart-slot-field input[type=text],body:not(.wp-admin) .arf-app .arf-cart-slot-field input:not([type]){width:100%!important;max-width:22rem!important;min-width:0!important}
body:not(.wp-admin) .arf-app .arf-cart-slots{margin:0!important;padding:0!important;border:0!important;background:transparent!important}
body:not(.wp-admin) .arf-app .arf-cart-slot-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,22rem))!important;justify-content:start!important;align-items:start!important;gap:16px 32px!important;margin:0!important}
body:not(.wp-admin) .arf-app .arf-cart-slot-field{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:6px!important;margin:0!important;min-width:0}
body:not(.wp-admin) .arf-app .arf-cart-slot-date{font-weight:600;color:var(--arf-theme-muted)}
body:not(.wp-admin) .arf-app .arf-cart-slot-moved,body:not(.wp-admin) .arf-app .arf-cart-slot-field .arf-time-window-closed-note{margin:0!important;padding:6px 10px!important;border:0!important;border-left:4px solid var(--arf-theme-green)!important;border-radius:0!important;background:var(--arf-theme-soft)!important;color:var(--arf-theme-text)!important;font-size:.84rem;font-weight:600}
body:not(.wp-admin) .arf-app .arf-cart-slot-hint{margin:12px 0 0!important;font-size:.86rem;color:var(--arf-theme-muted);opacity:1}
body:not(.wp-admin) .arf-app .arf-cart-slots .arf-help-block{margin:12px 0 0}
/* legal line + dialog matrix */
body:not(.wp-admin) .arf-app .arf-cart-legal-line{margin:0!important}
body:not(.wp-admin) .arf-app .arf-cart-legal-open.arf-link-button{padding:4px 0!important;font-size:.95rem!important;font-weight:700;color:var(--ars-accent-strong)!important;text-underline-offset:3px;cursor:pointer}
body:not(.wp-admin) .arf-app .arf-cart-legal-open.arf-link-button:hover{color:var(--arf-theme-ink)!important}
.augite-modal .arf-legal-terms p{margin:0 0 12px!important;max-width:70ch}
.augite-modal .arf-legal-matrix-wrap{position:relative;max-width:100%;overflow-x:auto;margin:0 0 16px}
.augite-modal .arf-legal-matrix{width:auto;min-width:min(100%,24rem);border-collapse:collapse;margin:0;font-variant-numeric:tabular-nums}
.augite-modal .arf-legal-matrix th,.augite-modal .arf-legal-matrix td{padding:10px 16px;border:1px solid var(--arf-theme-line,var(--ars-line));text-align:left;vertical-align:top}
.augite-modal .arf-legal-matrix thead th{background:var(--arf-theme-soft,var(--ars-soft));font-weight:700;color:var(--arf-theme-ink,var(--ars-ink))}
.augite-modal .arf-legal-matrix td:last-child,.augite-modal .arf-legal-matrix th:last-child{text-align:right;white-space:nowrap}
.augite-modal .arf-cart-legal-links{display:flex;flex-wrap:wrap;gap:4px 8px}
/* period dialog */
.augite-modal.arf-cart-period-dialog .arf-cart-period-form{display:block;margin:0;padding:0;border:0;background:transparent}
.augite-modal.arf-cart-period-dialog .arf-native-range{display:grid!important;grid-template-columns:repeat(2,minmax(0,14rem))!important;gap:12px 16px!important;justify-content:start}
.augite-modal.arf-cart-period-dialog .arf-native-range-sep{display:none!important}
.augite-modal.arf-cart-period-dialog .arf-native-date{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:6px!important;margin:0!important;font-size:.86rem!important;font-weight:700!important;text-transform:none!important;letter-spacing:0!important}
.augite-modal.arf-cart-period-dialog .arf-native-date input{width:100%!important;min-height:46px!important}
.augite-modal.arf-cart-period-dialog [data-arf-cart-period-result]{margin:12px 0 0;min-height:0}
.augite-modal.arf-cart-period-dialog [data-arf-cart-period-result]:empty{display:none}
/* action row: buttons without pictograms, content width on desktop */
body:not(.wp-admin) .arf-app.arf-cart-page .arf-cart-actions .ars-btn{width:auto}
/* checkout summary (/buchung/): the same pieces, compact in the narrow aside */
body:not(.wp-admin) .arf-checkout-summary .arf-cart-sections{gap:16px}
body:not(.wp-admin) .arf-checkout-summary .arf-cart-section-title{font-size:.95rem!important;margin-bottom:8px!important}
body:not(.wp-admin) .arf-checkout-summary .arf-cart-period-summary{padding:12px 14px!important}
body:not(.wp-admin) .arf-checkout-summary .arf-cart-item{grid-template-columns:64px minmax(0,1fr)!important;gap:12px!important;padding:12px!important}
/* checkout summary (narrow aside): price and safety stack full-width, left aligned - no third price column */
body:not(.wp-admin) .arf-checkout-summary .arf-cart-item>.arf-cart-item-price{grid-column:1/-1!important;justify-self:stretch!important;text-align:right!important}
body:not(.wp-admin) .arf-checkout-summary .arf-cart-item>.arf-cart-item-safety{grid-column:1/-1!important}
/* phones: single-column item card, price full-width left aligned again */
@media(max-width:600px){body:not(.wp-admin) .arf-app .arf-cart-item>.arf-cart-item-price{grid-column:1/-1;justify-self:stretch;align-items:flex-start;text-align:left}}
body:not(.wp-admin) .arf-checkout-summary .arf-cart-item>.arf-cart-item-media{width:64px}
body:not(.wp-admin) .arf-checkout-summary .arf-cart-item-body{gap:8px}
body:not(.wp-admin) .arf-checkout-summary .arf-cart-item-safety{padding:8px 10px;font-size:.85rem}
body:not(.wp-admin) .arf-checkout-summary .arf-cart-section--service{padding:14px!important}
body:not(.wp-admin) .arf-checkout-summary .arf-cart-slot-grid{grid-template-columns:minmax(0,1fr)!important}body:not(.wp-admin) .arf-checkout-summary .arf-cart-slot-field select,body:not(.wp-admin) .arf-checkout-summary .arf-cart-slot-field input[type=text],body:not(.wp-admin) .arf-checkout-summary .arf-cart-slot-field input:not([type]){max-width:100%!important}
body:not(.wp-admin) .arf-checkout-summary .arf-checkout-edit-cart{margin-top:16px}
@media(max-width:600px){
 body:not(.wp-admin) .arf-app .arf-cart-sections{gap:20px}
 body:not(.wp-admin) .arf-app .arf-cart-period-summary{padding:14px 16px!important}
 body:not(.wp-admin) .arf-app .arf-cart-period-change{width:100%!important;justify-content:center}
 body:not(.wp-admin) .arf-app .arf-cart-item{grid-template-columns:72px minmax(0,1fr)!important;gap:12px!important;padding:12px!important}
 body:not(.wp-admin) .arf-app .arf-cart-item>.arf-cart-item-media{width:72px}
 body:not(.wp-admin) .arf-app .arf-cart-item-controls{justify-content:space-between!important}
 body:not(.wp-admin) .arf-app .arf-cart-section--service{padding:16px!important}
 body:not(.wp-admin) .arf-app .arf-cart-slot-grid{grid-template-columns:minmax(0,1fr)!important}body:not(.wp-admin) .arf-app .arf-cart-location,body:not(.wp-admin) .arf-app .arf-cart-location select,body:not(.wp-admin) .arf-app .arf-cart-slot-field select,body:not(.wp-admin) .arf-app .arf-cart-slot-field input[type=text],body:not(.wp-admin) .arf-app .arf-cart-slot-field input:not([type]){max-width:100%!important}
 .augite-modal.arf-cart-period-dialog .arf-native-range{grid-template-columns:minmax(0,1fr)!important}
 .augite-modal .arf-legal-matrix{min-width:100%}
}
/* Wave 36 - REQ-PRICING-CALCULATION-CORRECTNESS-001 (client decision 211): provisional rental prices for the tenant - price
   line inside each cart item card, the "Preisübersicht" box (rental total, VAT per rate, deposit) after the items section of
   the cart and the checkout summary, and the price preview below the availability line of the product page widget. Normal
   1px boxes (decision 141), square corners, theme tokens only; the short provisional-price note keeps the orange hint edge. */
body:not(.wp-admin) .arf-app .arf-cart-item-price{display:flex;flex-direction:column;gap:5px;margin:0;min-width:0;font-variant-numeric:tabular-nums}
/* price rows: label left, amount pinned right (margin-left:auto) on EVERY width incl. narrow checkout summary + phone */
body:not(.wp-admin) .arf-app .arf-cart-price-line{display:flex;flex-wrap:nowrap;align-items:baseline;gap:2px 14px;min-width:0}
body:not(.wp-admin) .arf-app .arf-cart-price-line__label{font-size:.86rem;color:var(--arf-theme-muted);min-width:0;overflow-wrap:anywhere}
body:not(.wp-admin) .arf-app .arf-cart-price-line__label small{color:var(--arf-theme-muted);font-size:.8rem}
body:not(.wp-admin) .arf-app .arf-cart-price-line__value{margin-left:auto;text-align:right;white-space:nowrap;color:var(--arf-theme-ink);flex:0 0 auto}
body:not(.wp-admin) .arf-app .arf-cart-price-line__value small{color:var(--arf-theme-muted);font-size:.8rem;font-weight:600}
body:not(.wp-admin) .arf-app .arf-cart-price-line--rental .arf-cart-price-line__value .arf-cart-item-price-amount{font-size:1.04rem;font-weight:800;color:var(--arf-theme-ink)}
body:not(.wp-admin) .arf-app .arf-cart-price-line--deposit{padding-top:5px;border-top:1px solid var(--arf-theme-line)}
/* info box (e.g. deposit refund note) above the "Vorläufiger Preis" note */
body:not(.wp-admin) .arf-app .arf-cart-info-box{display:flex;align-items:flex-start;gap:9px;margin:12px 0 0;padding:11px 14px;border:1px solid var(--arf-theme-line);border-left:4px solid var(--arf-theme-green);background:var(--arf-theme-soft)}
body:not(.wp-admin) .arf-app .arf-cart-info-box>.arf-portal-icon{flex:0 0 auto;width:18px;height:18px;margin-top:1px;color:var(--arf-theme-muted)}
body:not(.wp-admin) .arf-app .arf-cart-info-box p{margin:0;font-size:.86rem;color:var(--arf-theme-text)}
body:not(.wp-admin) .arf-app .arf-cart-item-price-label{font-size:.84rem;color:var(--arf-theme-muted)}
body:not(.wp-admin) .arf-app .arf-cart-item-price-rule,body:not(.wp-admin) .arf-app .arf-price-preview-rule{font-size:.8rem;font-weight:600;color:var(--arf-theme-muted);opacity:1}
body:not(.wp-admin) .arf-app .arf-cart-item-price-amount{font-size:1.02rem;color:var(--arf-theme-ink)}
body:not(.wp-admin) .arf-app .arf-cart-item-price-amount small,body:not(.wp-admin) .arf-app .arf-cart-totals small,body:not(.wp-admin) .arf-app .arf-price-preview-amount small{font-size:.8rem;font-weight:600;color:var(--arf-theme-muted);opacity:1}
body:not(.wp-admin) .arf-app .arf-cart-item-price-unit,body:not(.wp-admin) .arf-app .arf-cart-item-price-deposit,body:not(.wp-admin) .arf-app .arf-cart-item-price-hint{font-size:.84rem;color:var(--arf-theme-text);opacity:1}
body:not(.wp-admin) .arf-app .arf-cart-item-price--open{font-size:.88rem;color:var(--arf-theme-text)}
/* net/gross view toggle (decision 354): heading + segmented control on one row */
body:not(.wp-admin) .arf-app .arf-cart-totals-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;margin-bottom:10px}
body:not(.wp-admin) .arf-app .arf-cart-totals-head .arf-cart-section-title{margin:0!important}
body:not(.wp-admin) .arf-app .arf-cart-price-toggle{display:inline-flex;border:1px solid var(--arf-theme-line);background:var(--arf-theme-soft)}
body:not(.wp-admin) .arf-app .arf-cart-price-toggle__btn{display:flex;flex-direction:column;align-items:center;gap:0;padding:5px 12px;border:0;background:transparent;color:var(--arf-theme-muted);cursor:pointer;font:inherit;line-height:1.12;white-space:nowrap}
body:not(.wp-admin) .arf-app .arf-cart-price-toggle__btn+.arf-cart-price-toggle__btn{border-left:1px solid var(--arf-theme-line)}
body:not(.wp-admin) .arf-app .arf-cart-price-toggle__btn small{font-size:.7rem;font-weight:600}
body:not(.wp-admin) .arf-app .arf-cart-price-toggle__btn.is-active{background:var(--ars-white);color:var(--arf-theme-ink);font-weight:800}
body:not(.wp-admin) .arf-app .arf-cart-price-toggle__btn:focus-visible{outline:2px solid var(--arf-theme-green);outline-offset:-2px}
body:not(.wp-admin) .arf-app .arf-cart-totals-box{margin:0;padding:16px 20px;border:1px solid var(--arf-theme-line);border-radius:0;background:var(--ars-white);max-width:36rem}
body:not(.wp-admin) .arf-app .arf-cart-totals-period{margin:0 0 8px!important;font-size:.86rem;color:var(--arf-theme-muted)}
body:not(.wp-admin) .arf-app .arf-cart-totals{display:flex;flex-direction:column;gap:0;margin:0;padding:0;font-variant-numeric:tabular-nums}
body:not(.wp-admin) .arf-app .arf-cart-totals>div[data-arf-price-b2c],body:not(.wp-admin) .arf-app .arf-cart-totals>div[data-arf-price-b2b]{display:flex;flex-direction:column}
body:not(.wp-admin) .arf-app .arf-cart-totals>div[hidden]{display:none!important}
body:not(.wp-admin) .arf-app .arf-cart-totals-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:0;padding:6px 0;border-bottom:1px solid var(--arf-theme-line)}
body:not(.wp-admin) .arf-app .arf-cart-totals-row dt{margin:0;font-weight:600;color:var(--arf-theme-text)}
body:not(.wp-admin) .arf-app .arf-cart-totals-row dd{margin:0;text-align:right;white-space:nowrap;color:var(--arf-theme-ink)}
body:not(.wp-admin) .arf-app .arf-cart-totals-row--sum dt,body:not(.wp-admin) .arf-app .arf-cart-totals-row--sum dd{font-weight:800;font-size:1.02rem;color:var(--arf-theme-ink)}
body:not(.wp-admin) .arf-app .arf-cart-totals-row--deposit{border-bottom:0}
body:not(.wp-admin) .arf-app .arf-cart-totals-open{margin:10px 0 0!important;font-size:.86rem;color:var(--arf-theme-text)}
body:not(.wp-admin) .arf-app .arf-price-note{margin:10px 0 0!important;padding:6px 10px;border:0;border-left:4px solid var(--arf-theme-green);border-radius:0;background:var(--arf-theme-soft);font-size:.84rem;font-weight:600;color:var(--arf-theme-text)}
body:not(.wp-admin) .arf-app .arf-cart-section--totals .arf-help-block{margin:12px 0 0;max-width:36rem}
body:not(.wp-admin) .arf-app .arf-price-preview{margin:8px 0 0;min-width:0;font-variant-numeric:tabular-nums}
body:not(.wp-admin) .arf-app .arf-price-preview[hidden]{display:none!important}
body:not(.wp-admin) .arf-app .arf-price-preview-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0!important}
body:not(.wp-admin) .arf-app .arf-price-preview-label,body:not(.wp-admin) .arf-app .arf-price-preview-deposit,body:not(.wp-admin) .arf-app .arf-price-preview-hint,body:not(.wp-admin) .arf-app .arf-price-preview-open{font-size:.88rem;color:var(--arf-theme-text);opacity:1}
body:not(.wp-admin) .arf-app .arf-price-preview-amount{font-size:1.05rem;color:var(--arf-theme-ink)}
body:not(.wp-admin) .arf-checkout-summary .arf-cart-totals-box{padding:12px 14px;max-width:100%}
@media(max-width:600px){
 body:not(.wp-admin) .arf-app .arf-cart-totals-box{padding:12px 14px;max-width:100%}
 body:not(.wp-admin) .arf-app .arf-cart-totals-row{gap:10px}
 body:not(.wp-admin) .arf-app .arf-cart-totals-row dd{white-space:normal}
}
/* /Wave 29 cart page rework */
/* REQ-UI-NO-PILLS-BOXES-SYSTEMWIDE-001 (client rule 102, wave 24): every RentalCore surface rendered through .arf-app
 * (storefront, cart, checkout, portal, /intern/, the wp-admin operations console) and every shared dialog is square, also on
 * hosts without the augite theme. Exceptions only per tools/pill_shape_scan.py ALLOW_LIST (radio buttons, status/timeline
 * dots, card-terminal illustration). */
.arf-app:not(input[type=radio]):not(.augac-health-dot):not(.arf-ops-timeline-dot):not(.arp-solo-device-body):not(.arp-solo-device-display),.arf-app *:not(input[type=radio]):not(.augac-health-dot):not(.arf-ops-timeline-dot):not(.arp-solo-device-body):not(.arp-solo-device-display),.augite-modal *:not(input[type=radio]):not(.augac-health-dot):not(.arf-ops-timeline-dot):not(.arp-solo-device-body):not(.arp-solo-device-display){border-radius:0!important}

/* REQ-SCAN-DIALOG-LAYOUT-SAFARI-001 (wave 33, client decision 165): a pictogram placed directly in a console button (outside a
 * dialog - the dialog rule lives in modal.css) is 18 px, never the 100% of ".arf-ops svg" that made unsized icon SVGs huge; the
 * photo camera stage (.arf-camera-stage, above) is at most 640 px wide in 4:3, the scan dialog preview at most 480 px (modal.css). */
.arf-ops :is(.arf-ops-primary,.arf-ops-secondary)>svg{display:block;width:18px;height:18px;min-width:18px;max-width:20px;max-height:20px;flex:0 0 18px}
/* Wave 37 / IN-1 item 1+3 (REQ-INTERN-IN1-QUICKFIXES-001): critical customer request marker, request facts and the payment assignment form in /intern/. */
.arf-ops .arf-status-pill[data-status="critical"]{color:var(--arf-ops-danger);background:var(--arf-ops-paper);border:2px solid var(--arf-ops-danger);border-radius:0;font-weight:700}
.arf-ops .arf-service-request-critical{margin:6px 0}
.arf-ops .arf-service-request-facts{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.arf-ops .arf-service-request-facts dd{overflow-wrap:anywhere}
.arf-ops .arf-payment-assign{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;margin:8px 0 0}.arf-ops .arf-payment-assign select{max-width:100%}
/* Wave 37 / IN-1 item 4: offer acceptance confirmation in the portal dialog (summary, links, required checkbox, "Zahlungspflichtig mieten"). */
.arf-offer-accept__links{margin:12px 0}
.arf-offer-accept__confirm{display:flex;align-items:flex-start;gap:8px;margin:12px 0;font-weight:600}
.arf-offer-accept__confirm input{margin-top:3px;flex:0 0 auto}

/* LIVE-TASK-2026-09-13-013 Nachmessung (2026-09-17): systemweiter Fokusring-Sweep ueber 295
 * fokussierbare Bedienelemente auf vier Flaechen (wp-admin augri-invoice-invoices 104,
 * /intern/rentalcore/disposition/ 65, /intern/rentalinvoice/ 50, /intern/rentalcore/buchungen/ 76)
 * fand genau EIN Element ohne jeden Indikator (weder outline noch box-shadow): das Suchfeld der
 * WordPress-Adminleiste, das auf der /intern/-Flaeche fuer angemeldete Mitarbeiter mitgerendert
 * wird. Core selbst setzt dort outline:none ohne Ersatz. Es ist Core-Markup, aber es sitzt auf
 * unserer Flaeche und ist per Tab erreichbar - deshalb hier nachgezogen (gleiche Linie wie
 * augite-ux.css, die .page-title-action/.page-numbers von Core bereits korrigiert). */
#wpadminbar #adminbarsearch input.adminbar-input:focus{outline:2px solid var(--ars-green)!important;outline-offset:-2px!important}

/* REQ-RENTALFLOW-CONSOLE-BOOKING-DEEPLINK-001: step control targeted by a process deep link (focus intent) */
.arf-ops .arf-deeplink-focus{outline:3px solid var(--ars-green);outline-offset:3px}

/* REQ-OFFLINE-RENTALFLOW-4-CONFLICTS-001: conflict decisions stay in the shared replay dialog and
 * pending operations remain visible on both bookings and allocated asset positions. */
.arf-offline-conflict{display:grid;gap:10px;padding:12px;border:2px solid var(--arf-ops-warning,#9a6700);background:var(--arf-ops-paper,#fff)}
.arf-offline-conflict__copy{display:block;font-weight:650;line-height:1.45}
.arf-offline-conflict__reason{display:grid;gap:6px;font-weight:650}
.arf-offline-conflict__reason textarea{box-sizing:border-box;width:100%;min-height:88px;padding:10px;border:1px solid currentColor;background:#fff;color:inherit;font:inherit;resize:vertical}
.arf-offline-conflict .arf-ops-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.arf-offline-conflict [data-arf-replay-action]{min-height:48px;white-space:normal}
.arf-offline-conflict__state{display:block;min-height:1.4em;font-weight:700}
.arf-not-transferred{display:inline-flex;align-items:center;margin-inline-start:6px;border:2px solid currentColor!important;font-weight:750;white-space:normal}
.arf-not-transferred[hidden]{display:none!important}
@media(max-width:600px){.arf-offline-conflict .arf-ops-actions{display:grid}.arf-offline-conflict [data-arf-replay-action]{width:100%}}

/* REQ-PORTAL-STAMMDATEN-SELFSERVICE-001: grouped customer master data in the existing portal modal pattern. */
body:not(.wp-admin) .arf-portal-customer-master-form{display:grid;gap:16px;margin-top:22px;padding-top:20px;border-top:1px solid var(--arf-theme-line)}
body:not(.wp-admin) .arf-portal-master-addresses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
body:not(.wp-admin) .arf-portal-master-address{min-width:0;margin:0;padding:14px;border:1px solid var(--arf-theme-line);background:#fafbfc}
body:not(.wp-admin) .arf-portal-master-address legend{padding:0 5px;color:var(--arf-theme-ink);font-size:.82rem;font-weight:800}
body:not(.wp-admin) .arf-portal-master-same{display:flex!important;align-items:center;gap:9px;margin:0!important;font-weight:700}
body:not(.wp-admin) .arf-portal-master-same input{width:18px;height:18px;min-height:18px;margin:0}
@media(max-width:760px){body:not(.wp-admin) .arf-portal-master-addresses{grid-template-columns:1fr}body:not(.wp-admin) .arf-portal-customer-master-form{margin-top:18px;padding-top:16px}}

/* REQ-HELP-010 (2026-09-21): /intern/hilfe/ - Hilfesuche. Bewusst eigene, immer sichtbare Klassen:
   .augite-help/.arf-help-block traegt waehrend "Hilfe AUS" (Default) das hidden-Attribut; diese Seite
   IST die Hilfe und muss in beiden Schalterzustaenden identisch sichtbar sein. Nutzt ausschliesslich
   die vorhandenen --arf-ops-* Tokens, damit die Flaeche zum Rest von /intern/ passt. */
.arf-help-search__form{display:flex;flex-direction:column;gap:6px;margin:14px 0 0}
.arf-help-search__label{font-size:.82rem;font-weight:700;line-height:1.2}
.arf-help-search__row{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;min-width:0}
.arf-help-search__input{flex:1 1 18rem;min-width:0;max-width:100%;min-height:46px;margin:0;padding:9px 12px;font:inherit;font-size:1rem;border:1px solid #6b6f73;border-radius:0;background:#fff;color:var(--arf-ops-ink)}
.arf-help-search__input:focus-visible{outline:2px solid var(--ars-accent-strong,#b84e08);outline-offset:1px}
.arf-help-search__submit{flex:0 0 auto;white-space:nowrap}
.arf-help-search__status{margin:10px 0 0;font-size:.82rem;font-weight:700;color:var(--arf-ops-muted)}
.arf-help-search__results{margin:0}
.arf-help-search__results[aria-busy="true"]{opacity:.55}
.arf-help-search__hits{display:grid;gap:12px;margin:12px 0 0;padding:0;list-style:none}
.arf-help-search__hit{margin:0;padding:14px;border:1px solid #cccdd0;border-radius:0;background:var(--arf-ops-paper)}
.arf-help-search__type{margin:0;font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--arf-ops-muted)}
.arf-help-search__hit-title{margin:3px 0 8px;font-size:1rem;line-height:1.25}
.arf-help-search__body>*{margin:0 0 8px}
.arf-help-search__body>*:last-child{margin-bottom:0}
.arf-help-search__reset{margin:12px 0 0;font-size:.82rem}
.arf-help-search__reset a{color:inherit;text-decoration:underline}
@media(max-width:620px){.arf-help-search__row{display:grid;grid-template-columns:1fr}.arf-help-search__submit{width:100%}}

/* REQ-MAINTENANCE-INTERVAL-CALENDAR-001 (Bedienweg, 2026-09-21): /intern/wartung/.
   Nur das, was die Seite ueber die bereits vorhandenen Bausteine (.arf-ops-card,
   .augite-table, .augite-check, .augite-form-row) hinaus braucht: die Faelligkeitsstufe
   als Textmarke (Farbe allein genuegt nicht, UX-ACT-003/WCAG 1.4.1), die Abstaende der
   Intervall-Eingabe auf der 4/8-Skala (UX-LAY-002) und die lokale Querscrollflaeche der
   beiden Tabellen (UX-LAY-005: die SEITE scrollt nie quer, die Datenflaeche darf es).

   Zur Herkunft von .arf-wartung-scroll, damit niemand eine Messung nachschlaegt, die es nicht
   gibt: die Flaeche lag zuerst als display:block;overflow-x:auto am <table> selbst. Ein
   Chromium-Render bei 390 px meldete daraufhin 394 px Querueberlauf - diese Messung war FALSCH,
   ein kaputt zusammengesetzter CSS-Kommentar in der Screenshot-Vorlage hatte die ersten Regeln
   verschluckt, sodass gar keine Scrollflaeche aktiv war. Nachgemessen liefern beide Varianten
   0 px Ueberlauf bei 390 px und bei 1280 px. Der Wrapper bleibt trotzdem, aber aus dem richtigen
   Grund: div > table ist der Tabellenvertrag, den ARF_Backend_UI::table() systemweit rendert
   (div.augite-table-scroll), und nicht aus einem gemessenen Defekt. */
.arf-wartung-scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.arf-wartung-table{width:100%;min-width:0}
.arf-wartung-table small{display:block;color:var(--arf-ops-muted)}
.arf-wartung-stage{display:inline-block;padding:0 8px;border:1px solid currentColor;border-radius:0;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.arf-wartung-stage--due{color:#8b5a12}
.arf-wartung-stage--overdue{color:#9a3412}
.arf-wartung-none{color:var(--arf-ops-muted)}
.arf-wartung-choice{margin:0 0 12px;padding:12px;border:1px solid var(--arf-theme-line,#dadde0);border-radius:0}
.arf-wartung-choice legend{padding:0 4px;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.arf-wartung-choice .augite-check{display:flex;align-items:center;gap:8px;margin:4px 0}
.arf-wartung-active{margin:0 0 12px;padding:8px 12px;background:var(--arf-theme-soft,#f4f5f6);font-size:.85rem}
.arf-wartung-values{margin-bottom:8px}
.arf-wartung-values small{display:block;color:var(--arf-ops-muted);font-size:.75rem}
.arf-wartung-hint{margin:0 0 16px;font-size:.8rem;color:var(--arf-ops-muted)}
.arf-wartung-actions{display:flex;flex-wrap:wrap;gap:8px}

/* REQ-040 (Live-Abnahme 2026-09-21): der geteilte Ausloeser "Asset identifizieren"
   (ARF_Admin::asset_picker_trigger()) traegt auf /intern/ dieselbe Klasse wie in wp-admin
   ("button button-secondary"), aber nur wp-admin bringt ein Stylesheet dafuer mit - und
   .arf-admin-asset-picker-trigger ist ausschliesslich in admin.css gesetzt, die hier nicht laedt.
   Live gemessen auf /intern/rentalcore/disposition/: 147x17 CSS px, transparenter Hintergrund,
   randlos, unterstrichener Text. Damit war der Ausloeser weder als Knopf erkennbar noch nach
   UX-RWD-002 (>= 48x48 CSS px Zielgroesse, Tabletkonsole) bedienbar - die Komponente funktionierte,
   sah aber nicht wie dieselbe aus. Die Regel gibt ihm die Gestalt der vorhandenen
   Sekundaerknoepfe (.arf-ops-secondary), kein neues Knopfsystem. body:not(.wp-admin) haelt sie
   von den wp-admin-Stellen fern, auf denen public.css als 'arf-ops-base' ebenfalls geladen wird. */
body:not(.wp-admin) .arf-admin-asset-picker-trigger{display:inline-flex;align-items:center;margin-top:6px}
body:not(.wp-admin) .arf-admin-asset-picker-trigger>.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:9px 14px;border:1px solid #c5c7c9;border-radius:0;background:#fff;color:var(--arf-ops-ink,#14181b);font:inherit;font-weight:700;line-height:1.15;text-decoration:none;cursor:pointer}
body:not(.wp-admin) .arf-admin-asset-picker-trigger>.button:hover{border-color:var(--ars-accent-strong,#b84e08);color:var(--ars-accent-strong,#b84e08)}
body:not(.wp-admin) .arf-admin-asset-picker-trigger>.button:focus-visible{outline:2px solid #d9600a;outline-offset:2px}
/* REQ-CART-FIELD-SEMANTICS-001: die Feldmeldung des Mengenfeldes spannt die ganze Buchungszeile,
   statt in der 68px-Mengenspalte zu einem senkrechten Wortband zu werden. */
.arf-booking-inline>.arf-field-error{grid-column:1/-1;margin:2px 0 0;font-size:.78rem;line-height:1.35;color:#a3261c;font-weight:600}
.arf-booking-inline>.arf-field-error::before{content:'';display:inline-block}
.arf-field-invalid{border-color:#a3261c!important;outline:2px solid rgba(163,38,28,.25);outline-offset:1px}

/* REQ-INTERN-LAYOUT-CALIBRATION (Live-Abnahme 2026-09-24, RESP-003/RESP-002): bei 320 CSS px
   schob die Kopfzeile der /intern/-Huelle die ganze Seite horizontal auf. Ursache real gemessen
   (Chromium, rental.augite.de, production f44e9428): .arf-ops-context-header ist ein Flexcontainer
   mit align-items:flex-start; ab 900px schaltet er auf flex-direction:column. In einer Spalte
   bedeutet flex-start, dass das Textelement auf max-content schrumpft - also auf die Breite des
   laengsten nicht umbrechbaren Wortes der H1. "Personalabwesenheiten" ergab 351,6px, 
   "Zahlungsbereitschaft" 310,7px, beides mehr als die 320px-Viewportbreite; documentElement.
   scrollWidth war dadurch 400 bzw. 359 gegen clientWidth 320. Seiten mit kurzer H1 ("Buchungen",
   "RentalFlow") blieben nur zufaellig unauffaellig. Die Vorschrift laesst bei 320 CSS px keinen
   horizontalen SEITEN-Scroll zu; die Ausnahme "echte zweidimensionale Datentabelle" meint die
   lokal scrollende Tabelle (.augite-table-scroll, overflow-x:auto), nicht das Dokument.
   Bewusst NUR max-width/min-width am Kind, nicht align-items:stretch am Container: stretch haette
   auch das Geschwister .arf-ops-context-badge auf die volle Breite gezogen (auf Tablet real von
   344px auf 738px gemessen) - eine sichtbare Aenderung auf genau den Geraeten, fuer die diese
   Flaeche gebaut ist. max-width:100% deckelt das Textelement, ohne die Ausrichtung zu aendern.
   hyphens:auto steht VOR overflow-wrap: allein mit break-word brach Chromium "Personalabwesenheiten"
   bei 320px mitten im Wort zu "Personalabwe/senheiten" (Screenshot der ersten Fassung). Mit der
   deutschen Silbentrennung (das Dokument traegt lang="de-DE") bricht dasselbe Wort mit Trennstrich
   an einer Silbengrenze; break-word bleibt nur die Reserve fuer Woerter ohne Trennstelle. */
@media(max-width:900px){
  .arf-ops-context-header>*{min-width:0;max-width:100%}
}
.arf-ops-context-header h1,.arf-ops-context-header p,.arf-ops-context-header .arf-ops-eyebrow{hyphens:auto;overflow-wrap:break-word}
