/* Mobile is a separate ergonomic layout, not a scaled desktop table. */
.mobile-trip-toggle,.mobile-tab-nav{display:none}
@media(max-width:700px){
 html{scroll-padding-top:76px}body{background:#f1f2ed;padding-bottom:18px}.topbar{height:58px;padding:0 14px}.brand{font-size:16px}.brand-logo{width:32px;height:32px}.top-actions{gap:7px}.top-actions #adminBtn{display:none}.top-actions #logoutBtn{padding:8px 10px;font-size:12px}.workspace{width:100%;padding:14px 10px 30px}.card{border-radius:16px;box-shadow:none}.editor-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;margin-bottom:10px}.editor-head .back{justify-self:start;border:0;padding:9px 5px;color:var(--green);font-weight:750}.editor-actions{display:flex;flex-wrap:nowrap}.editor-actions #saveStatus,.editor-actions .pdf-button{display:none}.undo-button{width:40px;height:40px;padding:0}.mobile-trip-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:8px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:left}.mobile-trip-toggle span,.mobile-trip-toggle small,.mobile-trip-toggle strong{display:block}.mobile-trip-toggle small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.mobile-trip-toggle strong{margin-top:2px;font-size:14px}.mobile-trip-toggle b{color:var(--green);font-size:18px}.hero-form{padding:15px;overflow:hidden;transition:max-height .2s,padding .2s,border-width .2s}.hero-form.mobile-collapsed{max-height:0;padding-block:0;border-width:0;margin:0}.hero-title,.summary-fields{grid-template-columns:1fr 1fr;gap:9px}.hero-title input{font-size:18px;padding:11px}.summary-fields{margin-top:11px}.summary-fields label{font-size:11px}.summary-fields input{padding:10px}.summary-fields label:nth-child(3),.summary-fields .summary-transport-button{display:none}.quick-transport-rows{margin-top:10px}.quick-transport-row{grid-template-columns:1fr 1fr;gap:8px;padding-top:10px}.quick-transport-row label{font-size:11px}.quick-transport-row label:nth-of-type(3),.quick-transport-row label:nth-of-type(6){grid-column:1/-1}.quick-transport-delete{grid-column:2;justify-self:end}.tabs{display:none}.mobile-tab-nav{position:sticky;top:66px;z-index:10;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;margin:10px 0 8px;padding:7px 8px 7px 12px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 7px 22px rgba(26,45,34,.08);backdrop-filter:blur(12px)}.mobile-tab-nav span{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.mobile-tab-nav select{width:100%;padding:9px 34px 9px 11px;border:0;background:#eef2ec;color:var(--green);font-weight:800}.tab-content{min-height:0;padding:15px;border-radius:16px;scroll-margin-top:122px}.section-title{align-items:center;flex-direction:row;margin-bottom:14px}.section-title h2{font-size:23px}.list-actions{width:auto;flex-wrap:nowrap;gap:5px}.list-actions button{width:36px;height:36px;padding:0}.table-wrap{overflow:visible}.data-table{display:block;min-width:0!important}.data-table thead{display:none}.data-table tbody{display:grid;gap:10px}.data-table tr{position:relative;display:grid!important;grid-template-columns:1fr 1fr;gap:7px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fbfcf9}.data-table td{display:grid;align-content:start;min-width:0;padding:0!important;border:0!important}.data-table td::before{margin:0 0 3px;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.data-table input,.data-table select,.data-table textarea{min-width:0;width:100%;padding:9px!important;border:1px solid #e2e7e1!important;border-radius:9px!important;background:#fff!important;font-size:13px}.data-table .row-controls,.data-table .budget-delete-cell{position:absolute;top:7px;right:7px;display:block}.data-table .row-controls .icon-btn,.data-table .budget-delete-cell .icon-btn{display:grid!important;place-items:center;width:30px;height:30px;padding:0;opacity:1!important;border-radius:9px;background:#fff;color:var(--danger)}.table-days tr{grid-template-columns:68px 42px minmax(0,1fr) 42px}.table-days .drag-cell{display:none}.table-days .cell-date{grid-column:1}.table-days .cell-dayNumber{grid-column:2}.table-days .cell-text:has(input[data-key="city"]){grid-column:3}.table-days .cell-text:has(textarea[data-key="plan"]){grid-column:1/-1;grid-row:2}.table-days .cell-timing{grid-column:4;grid-row:1}.table-days .cell-bookings{grid-column:1/-1;grid-row:3}.table-days .cell-date::before{content:'Дата'}.table-days .cell-dayNumber::before{content:'День'}.table-days .cell-text:has(input[data-key="city"])::before{content:'Город'}.table-days .cell-text:has(textarea[data-key="plan"])::before{content:'План'}.table-days .cell-timing::before{content:'Тайминг'}.table-days .cell-bookings::before{content:'Брони'}.table-days .date-with-weekday{justify-content:flex-start}.table-days .date-short{padding:7px 6px}.table-days .weekday-short{display:none}.table-days .day-number{min-height:36px}.table-days input[data-key="city"]{height:36px!important;font-size:14px!important}.table-days .table-plan{min-height:72px!important;padding:10px!important}.table-days .booking-actions{justify-content:flex-start}.table-days .row-controls{top:auto;right:8px;bottom:8px}.table-hotels td:nth-child(1)::before{content:'Заезд'}.table-hotels td:nth-child(2)::before{content:'Выезд'}.table-hotels td:nth-child(3)::before{content:'Город'}.table-hotels td:nth-child(4)::before{content:'Отель'}.table-hotels td:nth-child(5)::before{content:'Стоимость'}.table-hotels td:nth-child(4){grid-column:1/-1}.table-transport tr{grid-template-columns:1fr 1fr}.table-transport td:nth-child(1)::before{content:'Вид'}.table-transport td:nth-child(2)::before{content:'Номер'}.table-transport td:nth-child(3)::before{content:'Откуда'}.table-transport td:nth-child(4)::before{content:'Отправление'}.table-transport td:nth-child(5)::before{content:'Куда'}.table-transport td:nth-child(6)::before{content:'Прибытие'}.table-transport td:nth-child(7)::before{content:'Стоимость'}.table-transport td:nth-child(7){grid-column:1/-1}.table-events td:nth-child(1)::before{content:'Дата'}.table-events td:nth-child(2)::before{content:'Время'}.table-events td:nth-child(3)::before{content:'Мероприятие'}.table-events td:nth-child(4)::before{content:'Место'}.table-events td:nth-child(5)::before{content:'Стоимость'}.table-events td:nth-child(3),.table-events td:nth-child(4),.table-events td:nth-child(5){grid-column:1/-1}.table-expenses tr{grid-template-columns:1fr}.table-expenses td:nth-child(1)::before{content:'Источник'}.table-expenses td:nth-child(2)::before{content:'Описание'}.table-expenses td:nth-child(3)::before{content:'Стоимость'}.table-expenses td:nth-child(4)::before{content:'Разделение'}.table-expenses .row-controls{position:static}.money-field{grid-template-columns:minmax(0,1fr) 72px}.total-card{align-items:stretch;flex-direction:column;gap:12px;padding:15px;font-size:16px}.budget-people{grid-template-columns:1fr!important}.table-checklist tr{grid-template-columns:40px minmax(0,1fr)}.table-checklist td:nth-child(1)::before{content:''}.table-checklist td:nth-child(2)::before{content:'Категория'}.table-checklist td:nth-child(3)::before{content:'Задача'}.table-checklist td:nth-child(3){grid-column:1/-1}.notes-area{min-height:55svh}.timing-layout{display:block}.timing-days{position:static;display:flex;margin:0 -15px 12px;padding:2px 15px;overflow-x:auto;scroll-snap-type:x mandatory}.timing-day-card{min-width:78%;scroll-snap-align:center}.timing-workspace-head{padding:14px}.timing-step-note{display:none}.day-timeline{max-height:none;padding:8px 5px 18px}.timeline-slot{grid-template-columns:43px 10px minmax(0,1fr);gap:7px}.timeline-slot::before,.timing-preview-dialog .timeline-slot::before{left:54px}.timeline-content input{min-height:36px}.timing-preview-dialog,.row-dialog{width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;margin:0!important;border-radius:0!important}.row-dialog-form,.timing-preview-dialog .row-dialog-form{width:100%!important;height:100%!important;max-height:none!important;padding:18px!important;overflow:auto}.row-dialog-fields{grid-template-columns:1fr!important}.row-dialog-actions,.timing-preview-dialog .row-dialog-actions{position:sticky;bottom:-18px;z-index:2;margin:16px -18px -18px!important;padding:12px 18px!important;background:#fff;border-top:1px solid var(--line)}.row-dialog-actions button{flex:1}.toast{right:10px;bottom:10px;left:10px;text-align:center}.page-head{gap:14px;margin-bottom:22px}.page-head h1{font-size:36px}.trip-grid{grid-template-columns:1fr;gap:12px}.trip-card-main{padding:18px}.trip-card-main h2{margin:28px 0 5px;font-size:24px}.trip-meta{margin-top:22px}.admin-list,.audit-card{padding:14px}.user-tools{grid-template-columns:1fr!important}
}
@media(max-width:430px){.hero-title,.summary-fields,.quick-transport-row{grid-template-columns:1fr}.mobile-tab-nav{top:62px}.tab-content{padding:12px}}

/* iPhone layout corrections. Keep these last so desktop table geometry cannot leak in. */
@media(max-width:700px){
 html{-webkit-text-size-adjust:100%}
 .data-table,.data-table tbody,.data-table tr,.data-table td{width:100%!important;min-width:0!important;max-width:100%!important;height:auto!important;min-height:0!important}
 .data-table tr{box-sizing:border-box!important}
 .data-table td{box-sizing:border-box!important;overflow:visible!important;text-align:left!important}
 .data-table .row-controls{width:auto!important;min-width:30px!important;max-width:30px!important}
 .data-table input,.data-table select,.data-table textarea,.data-table label{box-sizing:border-box!important;max-width:100%!important}

 /* Days: date, day and city share the first line. Timing joins the booking actions. */
 .table-days tr{grid-template-columns:72px 44px minmax(0,1fr)!important;grid-template-rows:auto auto auto!important}
 .table-days .cell-date{grid-column:1!important;grid-row:1!important}
 .table-days .cell-dayNumber{grid-column:2!important;grid-row:1!important}
 .table-days .cell-text:has(input[data-key="city"]){grid-column:3!important;grid-row:1!important}
 .table-days .cell-text:has(textarea[data-key="plan"]){grid-column:1/-1!important;grid-row:2!important}
 .table-days .cell-timing{grid-column:1!important;grid-row:3!important;display:flex!important;align-items:end!important}
 .table-days .cell-bookings{grid-column:2/-1!important;grid-row:3!important;padding-right:38px!important}
 .table-days .cell-timing::before,.table-days .cell-bookings::before{display:none!important}
 .table-days .cell-timing .day-timing-button,.table-days .booking-actions .hotel-indicator{width:34px!important;height:34px!important;min-width:34px!important}
 .table-days .booking-actions{align-items:center!important;gap:7px!important;min-height:34px!important}
 .table-days .row-controls{right:10px!important;bottom:11px!important}

 /* Hotels: arrival, departure and city form one balanced header row. */
 .table-hotels tr{grid-template-columns:minmax(0,.9fr) minmax(0,.9fr) minmax(0,1.15fr)!important;padding-top:40px!important}
 .table-hotels td:nth-child(1){grid-column:1!important;grid-row:1!important}
 .table-hotels td:nth-child(2){grid-column:2!important;grid-row:1!important}
 .table-hotels td:nth-child(3){grid-column:3!important;grid-row:1!important}
 .table-hotels td:nth-child(4){grid-column:1/-1!important;grid-row:2!important}
 .table-hotels td:nth-child(5){grid-column:1/-1!important;grid-row:3!important}
 .table-hotels .date-with-weekday{justify-content:flex-start!important;gap:5px!important}
 .table-hotels .date-short{width:auto!important;min-width:0!important;padding:8px 5px!important}
 .table-hotels .weekday-short{font-size:11px!important;white-space:nowrap!important}
 .table-hotels td:nth-child(3) input{height:38px!important;text-align:left!important}
 .table-hotels .money-field{width:min(240px,100%)!important}

 /* Transport cards and the expandable trip transport form use stable mobile columns. */
 .table-transport tr{grid-template-columns:1fr 1fr!important;padding-top:42px!important}
 .table-transport td:nth-child(1){grid-column:1!important;grid-row:1!important}
 .table-transport td:nth-child(2){grid-column:2!important;grid-row:1!important}
 .table-transport td:nth-child(3){grid-column:1!important;grid-row:2!important}
 .table-transport td:nth-child(4){grid-column:1!important;grid-row:3!important}
 .table-transport td:nth-child(5){grid-column:2!important;grid-row:2!important}
 .table-transport td:nth-child(6){grid-column:2!important;grid-row:3!important}
 .table-transport td:nth-child(7){grid-column:1/-1!important;grid-row:4!important}
 .table-transport .unified-datetime{display:block!important;width:100%!important;min-width:0!important;height:40px!important;padding:10px 7px!important;overflow:hidden!important;white-space:nowrap!important}
 .table-transport .unified-datetime span{display:block!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:11px!important}
 .table-transport .money-field{width:min(240px,100%)!important;grid-template-columns:minmax(0,1fr) 66px!important}

 /* Budget entries are vertical cards; fixed desktop row heights caused the overlap on Safari. */
 .table-expenses tbody{gap:12px!important}
 .table-expenses tr{grid-template-columns:minmax(0,1fr) 34px!important;grid-template-rows:auto auto auto auto!important;padding:12px!important}
 .table-expenses td:nth-child(1){grid-column:1!important;grid-row:1!important}
 .table-expenses td:nth-child(2){grid-column:1/-1!important;grid-row:2!important}
 .table-expenses td:nth-child(3){grid-column:1/-1!important;grid-row:3!important}
 .table-expenses td:nth-child(4){position:static!important;grid-column:1/-1!important;grid-row:4!important;display:flex!important;justify-content:flex-start!important}
 .table-expenses td:nth-child(5){grid-column:2!important;grid-row:1!important}
 .table-expenses td::before{position:static!important}
 .table-expenses .source-select{display:block!important;width:max-content!important;max-width:100%!important;height:38px!important;margin:0!important}
 .table-expenses .budget-description,.table-expenses .budget-description-input{min-height:42px!important;padding:10px!important;border:1px solid #e2e7e1!important;background:#fff!important}
 .table-expenses .money-field{width:min(260px,100%)!important;grid-template-columns:minmax(0,1fr) 70px!important}
 .table-expenses .money-field input,.table-expenses .money-field select{height:42px!important;border:1px solid #e2e7e1!important;background:#fff!important}
 .table-expenses .split-button{min-width:124px!important}
 .table-expenses .budget-delete-cell{position:static!important;display:grid!important;width:34px!important;padding:0!important}
 .table-expenses .budget-row-delete{visibility:visible!important;opacity:1!important}
 .budget-total-card{grid-template-columns:1fr!important}
 .budget-total-card .total-currency{width:100%!important}
 .budget-person{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}

 /* Checklist: compact action row, then the task at full width. */
 .table-checklist tr{grid-template-columns:46px minmax(0,1fr)!important;padding-top:40px!important}
 .table-checklist td:nth-child(1){grid-column:1!important;grid-row:1!important;align-self:center!important}
 .table-checklist td:nth-child(2){grid-column:2!important;grid-row:1!important}
 .table-checklist td:nth-child(3){grid-column:1/-1!important;grid-row:2!important}
 .table-checklist .checklist-category{width:100%!important;max-width:100%!important;margin:0!important}
}

@media(max-width:430px){
 .quick-transport-row{grid-template-columns:1fr!important}
 .quick-transport-row label,.quick-transport-row label:nth-of-type(3),.quick-transport-row label:nth-of-type(6){grid-column:1!important}
 .quick-transport-delete{grid-column:1!important;justify-self:end!important}
}
@media print{.mobile-trip-toggle,.mobile-tab-nav{display:none!important}.hero-form.mobile-collapsed{max-height:none;padding:26px;border-width:1px}}
