/* Station refinements: orange / black / white only. Load after ods.css. */
@import url('./shimmer.css?v=1');
@import url('./help-refinements.css?v=1');
:root {
  --color-primary:var(--ods-orange); --color-primary-dark:var(--ods-orange); --color-primary-light:var(--ods-orange);
  --color-primary-bg:rgba(255,122,0,.08); --color-positive:var(--ods-orange); --color-negative:#000000;
  --color-success:var(--ods-orange); --color-error:#000000; --color-warning:var(--ods-orange); --color-info:#000000;
  --color-neutral:#000000; --color-bg:#ffffff; --color-card:#ffffff; --color-border:#000000; --color-border-light:rgba(0,0,0,.14);
  --color-text:#000000; --color-text-light:#000000; --color-text-lighter:#000000;
  --radius-sm:0px; --radius-md:0px; --radius-lg:0px; --radius-xl:0px; --radius-full:0px;
  --gradient-primary:linear-gradient(#ff7a00,#ff7a00); --gradient-positive:linear-gradient(#ff7a00,#ff7a00);
  --gradient-negative:linear-gradient(#000000,#000000); --gradient-warning:linear-gradient(#ff7a00,#ff7a00); --gradient-neutral:linear-gradient(#000000,#000000);
}
html body.has-shell main > header{align-items:center !important;min-height:64px}
html body.has-shell :is(main,#mainContent) > header{background:transparent !important;border:0 !important;border-radius:0 !important;box-shadow:none !important;backdrop-filter:none !important;padding:0 !important;margin-bottom:24px !important}
html body.has-shell :is(main,#mainContent) > header .titles p{color:#000 !important}
html body.has-shell :is(.btn,.btn-add,.btn-primary,.btn-cancel,.btn-delete,.btn-delete-confirm,.btn--primary,.btn--ghost,.btn--danger,.secondary-btn,.secondary-button){border-radius:0 !important;padding:10px 20px !important;font-size:16px !important;line-height:24px !important;font-weight:700 !important;box-shadow:none !important;transform:none !important;background-image:none !important;filter:none !important}
html body.has-shell .modal-actions :is(.btn,.btn-add,.btn-cancel,.btn-delete){border-radius:0 !important;padding:10px 20px !important}
html body.has-shell :is(.btn-add,.btn-primary,.btn--primary){background:var(--ods-orange) !important;border:2px solid var(--ods-orange) !important;color:#fff !important}
html body.has-shell :is(.btn-add,.btn-primary,.btn--primary):hover{background:#000 !important;border-color:#000 !important;color:#fff !important}
html body.has-shell :is(.btn-add,.btn-primary,.btn--primary) i{color:inherit !important}
html body.has-shell :is(.btn-cancel,.btn--ghost,.secondary-btn,.secondary-button){background:transparent !important;border:2px solid #000 !important;color:#000 !important}
html body.has-shell .btn-delete{background:#000 !important;border:2px solid #000 !important;color:#fff !important}
html body.has-shell #sidebar{position:fixed;inset:0 auto 0 0;z-index:1000;width:var(--shell-w)}
html body.has-shell #sidebar .shell-logo-mark{border-radius:0 !important;box-shadow:none !important}
html body.has-shell #sidebar .shell-logo{padding:20px 24px 16px !important}
html body a{color:#000}
html body a:hover{color:var(--ods-orange)}
html body.has-shell main > header::after{content:none !important}
html body.has-shell .titles h1{background:none !important;-webkit-text-fill-color:#000000 !important;color:#000000 !important}
html body.has-shell .titles p{line-height:1.5}
html body .ods-id-column{display:none !important}

/* One level of scroll for the page, local horizontal scroll for wide tables. */
html body.has-shell > .container{height:auto;min-height:100dvh;align-items:stretch}
html:has(body.has-shell){height:auto;min-height:100%;overflow-x:clip}
html body.has-shell{height:auto;min-height:100dvh;overflow-x:clip}
html body.has-shell main{height:auto !important;min-height:100dvh;overflow:visible !important}
html body.has-shell .card{border-radius:0 !important}
html body.has-shell .card > .table-container{border:0 !important;border-radius:0 !important;max-height:none !important;min-height:0 !important;height:auto !important;overflow:auto !important}
html body.has-shell table{table-layout:auto !important;min-width:0 !important}
html body.has-shell table th,html body.has-shell table td{line-height:1.5 !important}
html body.has-shell :is(.card,.data-table,table) thead th{background:rgba(0,0,0,.025) !important;color:#000 !important;font-size:13px !important;padding:12px 16px !important;text-transform:none !important;border-bottom:1px solid #000 !important}
html body.has-shell :is(.card,.data-table,table) tbody td{padding:12px 16px !important;color:#000 !important;border-top:0 !important;border-bottom:1px solid rgba(0,0,0,.14) !important}
html body.has-shell :is(.card,.data-table,table) tbody tr:hover{background:rgba(255,122,0,.04) !important}
html body.has-shell table td{max-width:360px;overflow:hidden;text-overflow:ellipsis}
html body.has-shell table td:last-child{overflow:visible !important}
html body.has-shell table.ods-actions-table td:last-child{display:table-cell !important;vertical-align:middle;text-align:right !important}
html body.has-shell table.ods-actions-table :is(th,td):last-child{position:sticky;right:0;background:#fff !important;z-index:2;box-shadow:-1px 0 0 rgba(0,0,0,.14)}
html body.has-shell table.ods-actions-table thead th:last-child{z-index:3}
html body.has-shell table.ods-actions-table td .btn-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px}
html body.has-shell table tbody tr:last-child td{border-bottom:0 !important}
html body.has-shell .pagination-bar{display:flex;align-items:center !important;justify-content:space-between !important;gap:12px !important;padding:12px 20px !important;margin:0 !important;background:#ffffff !important;border-top:1px solid #000000 !important;border-radius:0 !important}
html body.has-shell .pagination{display:flex;align-items:center;gap:6px}
html body.has-shell :is(.pg-item,.pagination button){border-radius:0 !important;box-shadow:none !important;transform:none !important}
html body.has-shell .page-stats{color:#000000 !important}

/* Place reservation alongside the title, before the filters/search panel. */
html body.has-shell #btnNewReservation{margin:0 !important;align-self:center;flex:0 0 auto;position:static !important}
html body.has-shell .toolbar{display:flex !important;flex-direction:column !important;gap:20px !important;background:#ffffff !important;border:1px solid #000000 !important;border-radius:0 !important;box-shadow:none !important;backdrop-filter:none !important;padding:20px !important;margin-bottom:24px !important}
html body.has-shell .toolbar-left{display:flex !important;align-items:center !important;gap:16px !important;width:100%;min-width:0}
html body.has-shell .toolbar .search-box{flex:1 1 auto !important;margin:0 !important;width:100% !important}
html body.has-shell .toolbar:hover{transform:none !important;box-shadow:none !important}
html body.has-shell .filters{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(160px,1fr)) !important;align-items:end !important;gap:16px !important;width:100%;min-width:0}
html body.has-shell .filter-item{display:flex;flex-direction:column;gap:6px;min-width:0}
html body.has-shell .filter-item label{font-size:13px !important;font-weight:700 !important;line-height:1.5;color:#000000 !important;letter-spacing:0 !important;text-transform:none !important}
html body.has-shell .filter-item :is(input,select){width:100% !important;min-width:0 !important}
html body.has-shell .search-box input{min-width:0 !important;width:100% !important}
html body.has-shell :is(.search-box,.shell-search) input,html body.has-shell :is(.search-box,.shell-search) input:focus{border:0 !important;background:transparent !important;box-shadow:none !important;padding:14px 0 !important;font-size:15px !important;color:#000 !important}
html body.has-shell :is(.search-box,.shell-search) i{color:#000 !important}
html body :is(input,textarea)::placeholder{color:rgba(0,0,0,.5) !important}
html body.has-shell .shell-search{background:#fff !important;border:1px solid #000 !important}
html body.has-shell .shell-search input{padding:8px 0 !important}
html body.has-shell .shell-user-name,html body.has-shell .shell-user-role{display:block}
html body.has-shell .shell-user-role{font-size:11px;color:rgba(0,0,0,.6)}
html body.has-shell .search-box i{position:static !important;transform:none !important;flex:0 0 auto;background:transparent !important;border:0 !important;padding:0 !important}
html body.has-shell .header-badge{margin-left:auto}

/* Readable accounting summary: equal panels, separated rows, aligned amounts. */
html body.has-shell .summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}
html body.has-shell .kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
html body.has-shell .kpi-card{flex-direction:column;align-items:flex-start;gap:14px}
html body.has-shell .kpi-icon{width:40px;height:40px;font-size:20px}
html body.has-shell .kpi-label{text-transform:none;letter-spacing:0;font-size:13px;color:#000}
html body.has-shell .kpi-value{font-size:24px;white-space:nowrap}
html body.has-shell .kpi-trend{font-size:12px;font-weight:400;line-height:1.5}
html body.has-shell .summary-card{min-width:0;border:1px solid #000000 !important;border-radius:0 !important;background:#ffffff !important;box-shadow:none !important;overflow:hidden}
html body.has-shell .summary-card:hover{transform:none !important;box-shadow:none !important}
html body.has-shell .summary-header{display:flex;align-items:center;gap:10px;padding:16px 20px !important;border-bottom:1px solid #000000 !important;background:#ffffff !important}
html body.has-shell .summary-header h3{font-size:16px !important;line-height:1.35 !important;margin:0;letter-spacing:-.025rem}
html body.has-shell .summary-header i{color:var(--ods-orange) !important;font-size:18px !important}
html body.has-shell .summary-content{padding:4px 20px !important}
html body.has-shell :is(.summary-item,.destination-item,.agent-item){display:flex !important;align-items:flex-start !important;justify-content:space-between !important;gap:16px !important;padding:16px 0 !important;border-bottom:1px solid rgba(0,0,0,.14) !important;background:transparent !important;border-radius:0 !important;transform:none !important}
html body.has-shell :is(.destination-item,.agent-item){border-top:0 !important;border-left:0 !important;border-right:0 !important}
html body.has-shell :is(.summary-item,.destination-item,.agent-item):last-child{border-bottom:0 !important}
html body.has-shell :is(.destination-list,.agent-list){display:flex;flex-direction:column;gap:0 !important}
html body.has-shell :is(.summary-label,.destination-name,.agent-name){min-width:0;flex:1;line-height:1.5;font-size:14px !important;color:#000000 !important;overflow-wrap:anywhere}
html body.has-shell :is(.summary-value,.destination-amount,.agent-amount){flex:0 0 auto;text-align:right;color:var(--ods-orange) !important;font-size:15px !important;font-weight:700 !important;line-height:1.5;white-space:nowrap;font-variant-numeric:tabular-nums}
html body.has-shell .summary-value.negative{color:#000000 !important}
html body.has-shell .agent-name .planning-date{display:block;font-size:12px;font-weight:400;margin-top:4px;line-height:1.5}
html body.has-shell .summary-item:last-child .summary-value{color:#000000 !important}
html body.has-shell :is(.positive,.negative,.amount-positive,.amount-negative,.kpi-trend){color:#000000 !important}
html body.has-shell :is(.kpi-icon,.transaction-id-badge,.ticket-id-badge){border-radius:0 !important;background:var(--ods-orange) !important;color:#ffffff !important;box-shadow:none !important}
html body.has-shell .kpi-value{color:#000000 !important;font-weight:700 !important}
html body.has-shell .balance-card{background:#000000 !important;border:1px solid #000000 !important;border-radius:0 !important;box-shadow:none !important;color:#ffffff !important}
html body.has-shell .balance-card :is(.brand-title,.brand-subtitle,.balance-amount,.balance-hint,.balance-detail-item){color:#ffffff !important}
html body.has-shell .balance-decor{display:none !important}
html body.has-shell .balance-btn{border-radius:0 !important;background:transparent !important;border:1px solid #ffffff !important;color:#ffffff !important}
html body.has-shell .balance-card .balance-pill{color:#ffffff !important;border-color:#ffffff !important}
html body.has-shell .balance-card .brand-chip{border:0 !important;background:var(--ods-orange) !important;color:#ffffff !important}

/* Cover the bespoke ticket/accounting controls as well as legacy .btn classes. */
html body.has-shell :is(.btn-eye,.btn-pay,.btn-bagages,.action-btn,.balance-btn){border-radius:0 !important;box-shadow:none !important;transform:none !important;font-weight:700 !important}
html body.has-shell td :is(.btn-eye,.action-btn){display:inline-flex !important;align-items:center !important;justify-content:center !important;width:40px !important;height:40px !important;padding:10px !important;background:transparent !important;color:#000000 !important;border:2px solid transparent !important}
html body.has-shell table.ods-actions-table td :is(.btn-eye,.btn-pay){border-radius:0 !important;box-shadow:none !important;background-image:none !important;filter:none !important}
html body.has-shell td :is(.btn-eye,.action-btn):hover{background:rgba(0,0,0,.06) !important}
html body.has-shell td .btn-pay{background:var(--ods-orange) !important;color:#ffffff !important;border:2px solid var(--ods-orange) !important;padding:8px 12px !important;font-size:14px !important}
html body.has-shell :is(.engin-badge,.status-badge,.source-badge,.bag-badge,.cl-badge,.bag-status){display:inline-flex;align-items:center;gap:6px;border:1px solid #000000 !important;border-radius:0 !important;background:transparent !important;color:#000000 !important;padding:3px 8px !important;font-size:12px !important;font-weight:700 !important;line-height:1.5 !important}
html body.has-shell :is(.engin-yes,.source-online,.status-paid){color:var(--ods-orange) !important;border-color:var(--ods-orange) !important}
html body.has-shell :is(.transaction-badge,.transaction-status){display:inline-flex;align-items:center;gap:6px;background:transparent !important;color:#000 !important;border:1px solid #000 !important;border-radius:0 !important;padding:3px 8px !important;font-size:12px !important;font-weight:700 !important;line-height:1.5}
html body.has-shell .transaction-status.status-completed{color:var(--ods-orange) !important;border-color:var(--ods-orange) !important}
html body.has-shell .btn-bagages{background:transparent !important;color:var(--ods-orange) !important;border:1px solid var(--ods-orange) !important}
html body :is(.tf-card,.tf-toast,.tf-snackbar,.help-modal,.help-window){border-radius:0 !important;border:1px solid #000000 !important;background:#ffffff !important;color:#000000 !important}
html body .tf-modal{background:rgba(0,0,0,.5) !important;backdrop-filter:none !important}
html body .tf-card{max-width:calc(100vw - 32px);max-height:90dvh;overflow:auto}
html body .tf-card > header{background:#ffffff !important;border-bottom:1px solid #000000 !important;color:#000000 !important}
html body .tf-card > header h3{color:#000 !important;-webkit-text-fill-color:#000 !important;background:none !important;font-size:18px !important}
html body .tf-card > header .close{color:#000 !important;background:transparent !important;border:0 !important;border-radius:0 !important}
html body .tf-card > header::after{content:none !important}
html body .tf-toast{border-left:4px solid var(--ods-orange) !important;font-family:var(--ods-font) !important}
html body .tf-toast-icon{color:var(--ods-orange)}
html body.has-shell .shell-iconbtn .shell-badge{border-radius:0;background:var(--ods-orange)}
html body .modal.ods-confirm .modal-content,html body .modal.ods-confirm .modal-actions > button{border-radius:0 !important}
html body :is(.cpick,.cpick__nav,.cpick__day,.cpick__hour,.cpick__minute){border-radius:0 !important}
html body :is(.cpick__title,.cpick__wd span,.cpick__time-label){color:#000000 !important}
html body :is(.ps-nav,.ps-card,.ps-section,.doc-card,.bag-panel,.cl-panel){border-radius:0 !important}
html body .help-head{background:#fff;color:#000}
html body .tf-reservation-card :is(.res-planning-info-section,.res-seats,.res-form,.res-price){border-radius:0 !important;background:#fff !important;border:1px solid rgba(0,0,0,.14) !important}
html body .tf-reservation-card :is(.res-field,.res-field label){font-size:14px;line-height:1.5}
html body .tf-reservation-card .res-field label{font-weight:700}
html body .tf-reservation-card #resCategorieBadge{border-radius:0 !important;background:transparent !important;border:1px solid var(--ods-orange);color:var(--ods-orange) !important}
html body .tf-reservation-card .res-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:16px 0}
html body .tf-reservation-card .res-actions button{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:700 16px/24px var(--ods-font);padding:10px 20px;border:2px solid #000;border-radius:0 !important;background:transparent;box-shadow:none !important;color:#000}
html body .tf-reservation-card #resConfirmBtn{background:var(--ods-orange);border-color:var(--ods-orange);color:#fff}
html body .tf-modal-reservation .tf-reservation-card{display:flex;flex-direction:column;max-height:90dvh !important;overflow:hidden !important}
html body .tf-modal-reservation .tf-reservation-card > header{flex:0 0 auto;padding:16px 20px !important}
html body .tf-modal-reservation .tf-reservation-card header h3 i{border-radius:0 !important;background:transparent !important;color:var(--ods-orange) !important;width:auto;height:auto}
html body .tf-modal-reservation .tf-reservation-card > .content{min-height:0;overflow-y:auto !important;padding:20px !important;flex:1 1 auto;gap:16px !important}
html body .tf-modal-reservation .tf-reservation-card > .content > *{flex:0 0 auto}
html body .tf-modal-reservation #resPlanningLabel{color:#000 !important;font-size:14px;line-height:1.5;padding:0;margin-top:8px}
html body .tf-modal-reservation .res-planning-info-section{padding:16px !important;margin-bottom:0 !important}
html body .tf-modal-reservation #resPlanningLabel{border:0;box-shadow:none;border-radius:0;background:transparent;-webkit-text-fill-color:#000}
html body .tf-modal-reservation .res-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px !important;margin:0}
html body .tf-modal-reservation :is(.res-seats,.res-form){min-width:0;padding:16px !important}
html body .tf-modal-reservation .res-actions{position:static !important;background:#fff !important;border-top:1px solid #000;padding:16px 0 0;margin:16px 0 0}
html body .tf-modal-reservation .tf-reservation-card > .res-actions{flex:0 0 auto;padding:16px 20px;margin:0}
html body .tf-modal-reservation .res-field label{text-transform:none !important;letter-spacing:0 !important}
html body .tf-modal-reservation .res-seat{border:1px solid #000 !important;border-radius:0 !important;background:#fff !important;color:#000 !important;box-shadow:none !important;min-height:40px;transform:none !important}
html body .tf-modal-reservation .res-seat[data-selected='1']{background:var(--ods-orange) !important;border-color:var(--ods-orange) !important;color:#fff !important}
html body .tf-modal-reservation .res-seat:disabled{background:rgba(0,0,0,.06) !important;border-style:dashed !important;text-decoration:line-through}
html body .empty-row td::before{content:none !important}
html body.has-shell :is(main,#mainContent) > header .titles{min-width:0}
html body:not(.has-shell):has(.login-card) .right-panel{height:auto;width:100%}
html body .login-card{margin:0}

/* Orange controls always carry white labels and icons, including nested SVGs. */
html body :is(.btn-add,.btn-primary,.btn--primary,.btn-save,.login-button),
html body .tf-reservation-card #resConfirmBtn{color:#fff !important}
html body :is(.btn-add,.btn-primary,.btn--primary,.btn-save,.login-button) :is(i,svg,span),
html body .tf-reservation-card #resConfirmBtn :is(i,svg,span){color:inherit !important;-webkit-text-fill-color:currentColor !important}
html body.has-shell td:last-child .ods-table-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:12px;vertical-align:middle}
html body.has-shell td:last-child .ods-table-actions > button{margin:0 !important;flex:0 0 auto}
html body.has-shell td:last-child :is(.btn-ensure,.btn-cancel-occ){display:inline-flex !important;align-items:center !important;justify-content:center !important;width:40px !important;height:40px !important;padding:8px !important;min-width:40px !important;border-radius:0 !important;box-shadow:none !important}
html body.has-shell td:last-child .btn-ensure{background:var(--ods-orange) !important;color:#fff !important}
html body.has-shell td:last-child .btn-ensure :is(i,svg){color:#fff !important}
html body button.doc-dot.is-active{color:#fff !important}

html body.has-shell .shell-topbar .shell-burger{display:grid;place-items:center;flex:none;width:40px;height:40px;border:1px solid rgba(0,0,0,.3);border-radius:8px;background:#fff;color:#000;cursor:pointer}
@media(min-width:769px){
  html body.has-shell.sidebar-compact{--shell-w:76px}
  html body.has-shell.sidebar-compact #sidebar .shell-logo{justify-content:center;padding:20px 0 16px !important}
  html body.has-shell.sidebar-compact #sidebar .shell-logo>span:last-child,
  html body.has-shell.sidebar-compact #sidebar .shell-item>span,
  html body.has-shell.sidebar-compact #sidebar .shell-section-header,
  html body.has-shell.sidebar-compact #sidebar .logout>span{display:none !important}
  html body.has-shell.sidebar-compact #sidebar .shell-section-body{max-height:none;overflow:visible;padding:0}
  html body.has-shell.sidebar-compact #sidebar .shell-section{margin-top:6px}
  html body.has-shell.sidebar-compact #sidebar .shell-item{justify-content:center;padding:14px 0 !important;margin:4px 10px;gap:0;border-radius:8px}
  html body.has-shell.sidebar-compact #sidebar .shell-item i{opacity:1;font-size:20px}
  html body.has-shell.sidebar-compact #sidebar .shell-item.is-active::before{left:0;right:auto;top:8px;bottom:8px;width:3px;height:auto}
  html body.has-shell.sidebar-compact #sidebar .logout{justify-content:center;padding:18px 0;gap:0}
}

/* Legacy modal rules use IDs and !important white borders. Match that
   specificity once for every modal so fields remain visible on white. */
html body :is(#busModal,.modal,.tf-modal-reservation):is(.modal,.tf-modal-reservation) :is(input:not([type='hidden']):not([type='checkbox']):not([type='radio']):not([type='range']):not([type='file']),select,textarea){
  border:1px solid rgba(0,0,0,.45) !important;
  background:#fff !important;color:#000 !important;border-radius:8px !important;
}
html body :is(#busModal,.modal,.tf-modal-reservation):is(.modal,.tf-modal-reservation) :is(input,select,textarea):focus{
  border-color:#ff7a00 !important;outline:2px solid rgba(255,122,0,.18) !important;outline-offset:1px;
}
html body :is(input,select,textarea)::placeholder{color:rgba(0,0,0,.55) !important;opacity:1}

@media(max-width:1100px){html body.has-shell .summary-grid{grid-template-columns:minmax(0,1fr)}html body.has-shell .charts-section{grid-template-columns:minmax(0,1fr)}html body.has-shell .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){html body.has-shell .filters{grid-template-columns:repeat(2,minmax(0,1fr)) !important}html body.has-shell .toolbar{padding:16px !important}html body.has-shell .pagination-bar{padding:12px !important}html body.has-shell main > header{gap:16px !important;flex-wrap:wrap}html body.has-shell #btnNewReservation{width:100%;justify-content:center}html body.has-shell #sidebar{left:0 !important;transform:translateX(-100%);transition:transform .2s ease;width:min(280px,85vw)}html body.has-shell #sidebar.active{transform:translateX(0)}html body.has-shell main,html body.has-shell main.shifted{margin-left:0 !important;width:100% !important}html body.has-shell > .container{display:block}}
@media(max-width:400px){html body.has-shell .filters{grid-template-columns:minmax(0,1fr) !important}html body.has-shell .summary-content{padding:4px 16px !important}html body.has-shell :is(.summary-item,.destination-item,.agent-item){gap:10px !important}}
@media(max-width:768px){html body .tf-modal-reservation .res-layout{grid-template-columns:minmax(0,1fr)}html body .tf-modal-reservation .tf-reservation-card > .content{padding:16px !important}html body .tf-modal-reservation .res-actions button{width:100%;min-width:0 !important}}
