/* DYRGA DRIVE — finalna warstwa stabilizująca UI
   Ładowana po styl.css. Ogranicza konflikty dawnych breakpointów i porządkuje mobile/laptop/tablet. */

:root{
  --ui-page-x:clamp(16px,2.2vw,34px);
  --ui-section-y:clamp(42px,6vw,84px);
  --ui-radius:20px;
}
html{overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-x:hidden}
img,svg,video,canvas{max-width:100%;height:auto}
input,select,textarea,button{font:inherit}
.dd-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
[hidden]{display:none!important}

/* Jedna, przewidywalna szerokość treści. */
.wrap{width:min(100% - (2 * var(--ui-page-x)),1440px)!important;max-width:1440px!important;margin-inline:auto!important}
.public-page main,.booking-page main{min-width:0}
.content-section{padding-block:var(--ui-section-y)}
.section-heading{gap:clamp(20px,4vw,58px)}
.section-heading h2{font-size:clamp(30px,4vw,54px);line-height:1.04}
.section-heading p{font-size:clamp(14px,1.25vw,18px);line-height:1.65}

/* Publiczny header — bez ściskania i przypadkowego zawijania. */
.public-header{z-index:100}
.public-nav{min-width:0}
.public-links,.public-actions{min-width:0}
.public-links a{white-space:nowrap}
.brand-logo{width:clamp(154px,15vw,220px)!important}

/* Strona główna — bez technicznej listy SEO, krótsza sekcja Tesla. */
.split-feature{min-height:0!important;align-items:center!important}
.abstract-feature{min-height:280px!important}
.action-grid,.premium-service-grid{align-items:stretch}
.action-card,.premium-service-card{height:100%}

/* Rezerwacja — jeden skupiony formularz i krótki proces. */
.booking-layout--single{display:block!important;max-width:980px!important;padding-bottom:clamp(46px,7vw,90px)!important}
.booking-form--focused{width:100%!important;margin:0!important;padding:clamp(20px,4vw,44px)!important;overflow:visible!important}
.booking-success--centered{max-width:780px;margin:0 auto!important;text-align:center}
.booking-success--centered .btn{margin-top:10px}
.quote-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 36px;padding:0}
.quote-flow>div{display:grid;grid-template-columns:36px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;min-width:0;padding:16px;border:1px solid var(--line);border-radius:15px;background:#FBFAF7}
.quote-flow span{grid-row:1/3;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;font-size:12px;font-weight:800}
.quote-flow strong{color:var(--navy);font-size:13px}
.quote-flow small{color:var(--muted);font-size:10px;line-height:1.4}
.service-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;margin-bottom:32px!important}
.choice-tile span{min-height:70px!important;padding:15px!important;text-align:center!important;justify-content:center!important}
.booking-form .grid2{gap:14px}
.booking-form input,.booking-form select,.booking-form textarea{min-width:0;max-width:100%;box-sizing:border-box}
.booking-form .check-row{display:flex!important;align-items:flex-start!important;gap:12px!important;width:100%!important}
.booking-form .check-row input[type="checkbox"]{width:22px!important;min-width:22px!important;max-width:22px!important;height:22px!important;min-height:22px!important;padding:0!important;flex:0 0 22px!important}
.booking-form .check-row span{min-width:0;overflow-wrap:anywhere}
.confirmation-choice{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important}
.confirmation-choice label{min-width:0}
.confirmation-choice span{height:100%;min-height:128px!important;padding:18px!important}
.confirmation-choice small{font-size:10.5px;line-height:1.45}
.contact-fields [data-email-field][hidden]{display:none!important}
.form-note{max-width:760px}

/* Rekrutacja — krótszy proces i dwie równe karty. */
.recruit-panel--compact{min-height:0!important}
.recruit-steps-inline{display:grid;gap:0;margin:20px 0 22px;border-top:1px solid rgba(255,255,255,.12)}
.recruit-steps-inline>div{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.recruit-steps-inline strong{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(196,152,72,.16);color:var(--gold-soft);font-size:11px}
.recruit-steps-inline span{color:#F1F4F8;font-size:13px;line-height:1.4}
.model-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:1040px;margin-inline:auto}
.model-grid--two .model-card{min-height:0!important}
.contact-shell{align-items:stretch}
.contact-form-panel form{margin:0}

/* Panel: mniej pozycji, spokojniejszy topbar, kontekstowe zakładki. */
.app-topbar__actions .btn{min-height:38px!important;padding:8px 12px!important}
.podmenu--driver .wrap{justify-content:flex-start}
.app-nav a{white-space:nowrap}
.app-sidebar__footer{margin-top:auto}

/* Karty i formularze panelu mają nie wychodzić poza ekran. */
.app-main,.app-wrap,.surface,.karta,.karta-biala,.page-heading{min-width:0}
.app-wrap{width:min(100% - 30px,1420px)!important}
table{max-width:100%}
.table-scroll,.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* Grafik — pełny desktop, karty na telefonie. */
.schedule-page-head h1{font-size:clamp(30px,4vw,48px)}
.admin-week-board-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.admin-week-board{min-width:980px}
.driver-week-list{display:grid;gap:10px}
.driver-day-card{min-width:0}
.shift-row>*{min-width:0}
.shift-row strong,.shift-row span,.shift-row small{overflow-wrap:anywhere}
.available-shift-card{min-width:0}
.shift-hours-edit input{width:100%;min-width:0}

/* Strony prawne. */
.legal-page{background:#FBFAF7}
.legal-wrap{max-width:860px!important}
.legal-wrap h1{margin:8px 0 30px;color:var(--navy);font-size:clamp(42px,6vw,72px);letter-spacing:-.05em}
.legal-wrap h2{margin:34px 0 10px;color:var(--navy);font-size:22px}
.legal-wrap p{color:var(--muted);font-size:16px;line-height:1.8}
.legal-wrap a{color:var(--navy);font-weight:700}

/* Mały laptop i tablet poziomo: kompaktowy desktop, nie tablet pionowy. */
@media (min-width:820px) and (max-width:1280px) and (orientation:landscape){
  :root{--ui-page-x:20px;--ui-section-y:44px}
  .public-nav{height:62px!important;min-height:62px!important}
  .brand-logo{width:156px!important}
  .public-links{gap:16px!important}
  .public-links a{font-size:11px!important}
  .public-actions .btn{min-height:36px!important;padding:7px 10px!important;font-size:10px!important}
  .mobile-menu-button{display:none!important}
  .home-hero-grid,.recruit-hero-grid{grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr)!important;gap:28px!important}
  .hero-title,.recruit-title{font-size:clamp(42px,5vw,62px)!important}
  .hero-lead,.recruit-lead{font-size:13px!important}
  .premium-service-grid,.action-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .benefit-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .model-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .quote-flow{grid-template-columns:repeat(3,minmax(0,1fr))}
  .service-choice-grid,.confirmation-choice{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .app-shell{grid-template-columns:190px minmax(0,1fr)!important}
  .app-sidebar{position:sticky!important;transform:none!important;width:auto!important;height:100vh!important}
  .app-menu-button,.app-overlay{display:none!important}
  .app-topbar{height:58px!important}
  .app-topbar__title{font-size:12px!important}
  .app-topbar__meta{font-size:9px!important}
  .app-nav a{min-height:38px!important;font-size:10.5px!important}
  .dashboard-stats{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* Tablet pionowo i telefon. */
@media (max-width:819px), (max-width:980px) and (orientation:portrait){
  :root{--ui-page-x:18px;--ui-section-y:46px}
  .public-header{position:sticky;top:0}
  .public-nav{height:64px!important;min-height:64px!important}
  .brand-logo{width:150px!important}
  .public-links{display:none!important}
  .public-actions>.btn{display:none!important}
  .mobile-menu-button{display:grid!important}
  .mobile-public-menu{top:64px!important}
  .home-hero-grid,.recruit-hero-grid,.split-feature,.contact-shell{grid-template-columns:1fr!important}
  .hero-art{min-height:310px!important}
  .section-heading{display:grid!important;gap:14px!important}
  .section-heading p{max-width:620px}
  .premium-service-grid,.action-grid,.benefit-grid,.model-grid--two{grid-template-columns:1fr!important}
  .abstract-feature{min-height:230px!important}
  .quote-flow{grid-template-columns:1fr!important;gap:8px;margin-bottom:26px}
  .quote-flow>div{grid-template-columns:34px 1fr;padding:13px}
  .service-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .confirmation-choice{grid-template-columns:1fr!important}
  .confirmation-choice span{min-height:0!important;padding:15px!important}
  .booking-hero{padding:34px 0 16px!important}
  .booking-hero h1{font-size:clamp(39px,11vw,56px)!important}
  .booking-form--focused{padding:18px!important;border-radius:18px!important}
  .booking-form .grid2{grid-template-columns:1fr!important}
  .route-field{padding-left:30px!important}
  .recruit-panel--compact{padding:22px!important}
  .recruit-steps-inline>div{grid-template-columns:38px 1fr}
  .contact-copy,.contact-form-panel{padding:22px!important}

  .app-shell{display:block!important}
  .app-sidebar{position:fixed!important;left:0!important;top:0!important;bottom:0!important;width:min(84vw,310px)!important;height:100dvh!important;transform:translateX(-104%)!important;z-index:1000!important}
  .app-sidebar.is-open{transform:translateX(0)!important}
  .app-overlay.is-open{display:block!important}
  .app-menu-button{display:grid!important}
  .app-topbar{height:64px!important;padding:0 14px!important}
  .app-topbar__actions{gap:6px!important}
  .app-topbar__home{display:none!important}
  .app-topbar__logout{min-height:34px!important;padding:6px 10px!important;font-size:10px!important}
  .podmenu{position:sticky!important;top:64px!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch}
  .podmenu .wrap{width:max-content!important;min-width:100%!important;padding-inline:14px!important}
  .podmenu a{white-space:nowrap!important}
  .app-wrap{width:min(100% - 24px,100%)!important;padding-top:14px!important}
  .page-heading{display:grid!important;gap:12px!important}
  .dashboard-stats,.dashboard-grid,.quick-actions{grid-template-columns:1fr!important}
  .schedule-two-columns{grid-template-columns:1fr!important}
  .available-shifts-grid{grid-template-columns:1fr!important}
  .schedule-change-form{grid-template-columns:1fr 1fr!important}
  .schedule-change-form>div:first-child,.schedule-change-form>div:nth-child(4),.schedule-change-form .btn{grid-column:1/-1!important}
  .driver-day-card{grid-template-columns:68px minmax(0,1fr)!important}
  .shift-row{grid-template-columns:8px minmax(100px,1fr) auto!important}
  .shift-row small{grid-column:2/4!important}
  .report-history-money{grid-template-columns:1fr!important}
  .report-filter{grid-template-columns:1fr!important}
}

@media (max-width:430px){
  :root{--ui-page-x:14px}
  .brand-logo{width:138px!important}
  .booking-hero h1{font-size:38px!important}
  .service-choice-grid{grid-template-columns:1fr!important}
  .choice-tile span{min-height:54px!important}
  .form-section-title{font-size:16px!important}
  .booking-form--focused{padding:15px!important}
  .btn-block{width:100%!important}
  .driver-day-card{grid-template-columns:58px minmax(0,1fr)!important}
  .shift-row{grid-template-columns:7px 1fr!important}
  .shift-row>span:not(.shift-dot):not(.shift-me){grid-column:2!important}
  .shift-row small{grid-column:2!important}
  .shift-me{grid-column:2!important;justify-self:start!important}
  .schedule-page-actions{grid-template-columns:1fr!important}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
