/* WoodFlow visual identity v7. Presentation only; no workflow or offline API changes. */
body.wf-ui-v7 {
  --wf-brand:#2F6F44;--wf-brand-hover:#275E39;--wf-brand-active:#204D2F;
  --wf-brand-soft:#EAF3ED;--wf-navigation:#1F2D3D;--wf-app-bg:#F5F7F9;
  --wf-paper:#fff;--wf-ink:#243345;--wf-muted:#596B7E;--wf-line:#DFE6E9;
  --wf-information:#206BC4;--wf-warning:#D98A23;--wf-radius-sm:.5rem;
  --wf-radius:.75rem;--wf-radius-lg:.9rem;--wf-control-height:40px;
  --wf-focus:rgba(47,111,68,.22);--tblr-primary:#2F6F44;
  --tblr-primary-rgb:47,111,68;--tblr-border-color:var(--wf-line);
  --tblr-body-color:var(--wf-ink);--tblr-bg-surface:var(--wf-paper);
  background:var(--wf-app-bg);color:var(--wf-ink);
}
[data-bs-theme="dark"] body.wf-ui-v7,body.wf-ui-v7[data-bs-theme="dark"] {
  --wf-app-bg:#151F2C;--wf-paper:#1F2D3D;--wf-ink:#EFF4F8;
  --wf-muted:#B4C0CC;--wf-line:#344557;--wf-brand-soft:#1D3D2D;
  --wf-focus:rgba(123,193,139,.28);
}
body.wf-ui-v7 .page-wrapper,body.wf-ui-v7 .page-body{background:var(--wf-app-bg)}
body.wf-ui-v7 .page-body{padding-block:1.25rem 2rem}
body.wf-ui-v7 .page-body>.container-xxl{min-width:0}
body.wf-ui-v7 .text-secondary{color:var(--wf-muted)!important}
/* Navigation and headings */
body.wf-ui-v7 .wf-v3-sidebar{background:var(--wf-navigation)}
body.wf-ui-v7 .wf-v3-sidebar .nav-item.active>.nav-link,
body.wf-ui-v7 .wf-v3-sidebar .nav-link[aria-current="page"]{
 background:rgba(255,255,255,.13);box-shadow:inset 3px 0 0 #8CC79D
}
body.wf-ui-v7 .page-wrapper>header.navbar{background:var(--wf-paper);border-bottom:1px solid var(--wf-line)}
body.wf-ui-v7 .wf-page-header{margin-bottom:1.15rem!important}
body.wf-ui-v7 .wf-page-header .page-title,body.wf-ui-v7 .dashboard-title{
 color:var(--wf-ink);line-height:1.25;letter-spacing:-.02em
}
body.wf-ui-v7 .wf-page-header .text-secondary{max-width:85ch;line-height:1.5}
/* Cards, dashboard, fleet, documents and administrative modules */
body.wf-ui-v7 .page-body .card{
 background:var(--wf-paper);border:1px solid var(--wf-line);
 border-radius:var(--wf-radius-lg);box-shadow:0 2px 9px rgba(24,36,51,.035);min-width:0
}
body.wf-ui-v7 .page-body .card-header{
 background:transparent;border-bottom-color:var(--wf-line);
 min-height:52px;padding:.9rem 1.15rem
}
body.wf-ui-v7 .page-body .card-title{font-weight:670;line-height:1.35;color:var(--wf-ink)}
body.wf-ui-v7 .page-body .card-body{padding:1.1rem 1.15rem}
body.wf-ui-v7 .page-body .card-footer{background:transparent;border-top-color:var(--wf-line)}
body.wf-ui-v7 .page-body .badge{font-weight:650;letter-spacing:.005em}
/* Green is a primary action, while success, warning and errors retain their own
   labeled status badges. Explicit Tabler button variables prevent blue fallback. */
body.wf-ui-v7 .btn-primary{
 --tblr-btn-bg:var(--wf-brand);--tblr-btn-border-color:var(--wf-brand);
 --tblr-btn-hover-bg:var(--wf-brand-hover);--tblr-btn-hover-border-color:var(--wf-brand-hover);
 --tblr-btn-active-bg:var(--wf-brand-active);--tblr-btn-active-border-color:var(--wf-brand-active);
 --tblr-btn-color:#fff;background:var(--wf-brand);border-color:var(--wf-brand);color:#fff
}
body.wf-ui-v7 .btn-primary:hover,body.wf-ui-v7 .btn-primary:focus-visible{
 background:var(--wf-brand-hover);border-color:var(--wf-brand-hover);color:#fff
}
body.wf-ui-v7 .btn-outline-primary{
 --tblr-btn-color:var(--wf-brand);--tblr-btn-border-color:var(--wf-brand);
 --tblr-btn-hover-bg:var(--wf-brand);--tblr-btn-hover-border-color:var(--wf-brand);
 color:var(--wf-brand);border-color:var(--wf-brand)
}
body.wf-ui-v7 .btn-outline-primary:hover{background:var(--wf-brand);color:#fff}
body.wf-ui-v7 .page-body .btn,body.wf-ui-v7 .wf-page-actions .btn,
body.wf-ui-v7 .woodflow-modal .btn{
 display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
 border-radius:var(--wf-radius-sm);min-height:var(--wf-control-height);
 line-height:1.35;font-weight:590;max-width:100%;white-space:normal;text-align:center
}
body.wf-ui-v7 .btn.btn-sm{min-height:34px}
body.wf-ui-v7 .btn.btn-icon{width:38px;min-width:38px;padding:.45rem}
body.wf-ui-v7 .btn svg{flex:0 0 auto}
body.wf-ui-v7 .btn-list{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
body.wf-ui-v7 .btn-list.flex-nowrap{flex-wrap:nowrap}
body.wf-ui-v7 .page-body .table-actions .btn.btn-ghost-secondary,
body.wf-ui-v7 .page-body .table-actions .btn.btn-ghost-primary,
body.wf-ui-v7 .page-body .table-actions .btn.btn-ghost-danger{
 border:1px solid var(--wf-line);background:var(--wf-paper)
}
body.wf-ui-v7 .page-body .table-actions .btn.btn-ghost-primary{border-color:rgba(32,107,196,.36)}
body.wf-ui-v7 .page-body .table-actions .btn.btn-ghost-danger{border-color:rgba(214,57,57,.32)}
body.wf-ui-v7 .btn:disabled,body.wf-ui-v7 .btn.disabled{cursor:not-allowed}
/* Form controls, filters and validation */
body.wf-ui-v7 .form-label{font-weight:620;margin-bottom:.4rem;color:var(--wf-ink)}
body.wf-ui-v7 .form-control,body.wf-ui-v7 .form-select,body.wf-ui-v7 .input-group-text{
 border-color:var(--wf-line);border-radius:var(--wf-radius-sm);
 min-height:var(--wf-control-height);background-color:var(--wf-paper);color:var(--wf-ink)
}
body.wf-ui-v7 textarea.form-control{min-height:90px}
body.wf-ui-v7 .form-control::placeholder{color:var(--wf-muted);opacity:.86}
body.wf-ui-v7 .form-control:focus,body.wf-ui-v7 .form-select:focus{
 border-color:var(--wf-brand);box-shadow:0 0 0 .2rem var(--wf-focus)
}
body.wf-ui-v7 .form-check-input:checked{background-color:var(--wf-brand);border-color:var(--wf-brand)}
body.wf-ui-v7 .form-hint{color:var(--wf-muted);line-height:1.5}
body.wf-ui-v7 .invalid-feedback{font-size:.81rem;font-weight:550}
body.wf-ui-v7 .form-control.is-invalid,body.wf-ui-v7 .form-select.is-invalid{
 border-color:var(--tblr-danger,#d63939)
}
body.wf-ui-v7 .input-icon .form-control{padding-left:2.4rem}
body.wf-ui-v7 .input-icon-addon{color:var(--wf-muted)}
/* Tables, headers, page navigation: shared styling for all agendas */
body.wf-ui-v7 .wf-table-region{border-radius:0 0 var(--wf-radius-lg) var(--wf-radius-lg)}
body.wf-ui-v7 .wf-table-region .table{margin-bottom:0}
body.wf-ui-v7 .wf-table-region thead th{
 background:var(--wf-app-bg);border-bottom:1px solid var(--wf-line);
 color:var(--wf-muted);font-size:.75rem;font-weight:690;letter-spacing:.018em;
 vertical-align:middle;padding-top:.78rem;padding-bottom:.78rem
}
body.wf-ui-v7 .wf-table-region tbody td{
 border-bottom-color:var(--wf-line);vertical-align:middle;
 padding-top:.75rem;padding-bottom:.75rem;overflow-wrap:break-word
}
body.wf-ui-v7 .wf-table-region tbody tr:last-child td{border-bottom-color:transparent}
body.wf-ui-v7 .wf-table-region tbody tr:hover{background:rgba(47,111,68,.035)}
body.wf-ui-v7 .wf-table-heading{font-weight:690;color:inherit}
body.wf-ui-v7 .wf-sortable-heading{
 font-size:inherit;font-weight:inherit;color:inherit;min-height:30px
}
body.wf-ui-v7 .wf-sortable-heading:hover{color:var(--wf-brand)}
body.wf-ui-v7 .wf-active-filters .wf-filter-chip{border-color:var(--wf-line)}
body.wf-ui-v7 [data-wf-page-jump]{width:5rem}
body.wf-ui-v7 .pagination .page-link{min-width:34px;min-height:34px;border-color:var(--wf-line)}
body.wf-ui-v7 .pagination .page-item.active .page-link{
 background:var(--wf-brand);border-color:var(--wf-brand);color:#fff
}
/* Modal, lifecycle and fleet indicators */
body.wf-ui-v7 .woodflow-modal .modal-content{
 border-radius:var(--wf-radius-lg);border:1px solid var(--wf-line);background:var(--wf-paper)
}
body.wf-ui-v7 .woodflow-modal .modal-header{border-bottom:1px solid var(--wf-line)}
body.wf-ui-v7 .woodflow-modal .modal-title{font-size:1.06rem;font-weight:700}
body.wf-ui-v7 .woodflow-modal .modal-footer{gap:.6rem;border-top:1px solid var(--wf-line)}
body.wf-ui-v7 .woodflow-modal .modal-body{line-height:1.55}
body.wf-ui-v7 .wf-ux-workflow .card-title{font-size:.96rem}
body.wf-ui-v7 .dashboard-page .dashboard-heading,
body.wf-ui-v7 .wf-workspace .wf-workspace-heading{margin-bottom:1.2rem}
body.wf-ui-v7 .dashboard-page [class*="dashboard-widget"],
body.wf-ui-v7 .wf-workspace .card{min-width:0}
body.wf-ui-v7 .vehicle-fleet-tabs .nav-link.active,
body.wf-ui-v7 .page-body .nav-tabs .nav-link.active{
 border-bottom-color:var(--wf-brand);color:var(--wf-brand);font-weight:680
}
body.wf-ui-v7 .wf-ux-dispatch-jumps .btn{min-height:38px}
body.wf-ui-v7 .wf-ux-fleet-health{border-color:var(--wf-line);border-radius:var(--wf-radius-lg)}
body.wf-ui-v7 :is(a,button,input,select,textarea,summary):focus-visible{
 outline:2px solid var(--wf-brand);outline-offset:2px
}
@media(max-width:767.98px){
 body.wf-ui-v7 .page-body{padding-block:.9rem 5rem}
 body.wf-ui-v7 .page-body .card-header,body.wf-ui-v7 .page-body .card-body{padding:.85rem .95rem}
 body.wf-ui-v7 .page-body .btn:not(.btn-icon){min-height:44px}
 body.wf-ui-v7 .page-body .table-actions .btn{min-height:44px}
 body.wf-ui-v7 .page-body .table-actions .btn.btn-icon{width:44px;min-width:44px}
 body.wf-ui-v7 .wf-page-header .wf-page-actions{width:100%;gap:.5rem}
 body.wf-ui-v7 .wf-page-header .wf-page-actions .btn{min-height:44px}
 body.wf-ui-v7 .woodflow-modal .modal-footer .btn{min-height:44px}
}
@media(prefers-reduced-motion:reduce){
 body.wf-ui-v7 .btn,body.wf-ui-v7 .card{transition:none!important}
}
/* Segmented buttons: keep shared edges square ONLY inside .btn-group.
   Ordinary buttons and independently spaced .btn-list items stay rounded. */
body.wf-ui-v7 .page-body .btn-group > .btn {
  border-radius: 0;
}
body.wf-ui-v7 .page-body .btn-group > .btn:first-child:not(:last-child) {
  border-radius: var(--wf-radius-sm) 0 0 var(--wf-radius-sm);
}
body.wf-ui-v7 .page-body .btn-group > .btn:last-child:not(:first-child) {
  border-radius: 0 var(--wf-radius-sm) var(--wf-radius-sm) 0;
}
body.wf-ui-v7 .page-body .btn-group > .btn:only-child {
  border-radius: var(--wf-radius-sm);
}

/* Tabler ghost buttons can turn their icon white on hover.  Match the
   background and text colors together so the icon never disappears. */
body.wf-ui-v7 .page-body .table-actions .btn.btn-ghost-primary:is(:hover, :focus-visible) {
  background-color: var(--wf-brand);
  border-color: var(--wf-brand);
  color: #fff;
}
body.wf-ui-v7 .page-body .table-actions .btn.btn-ghost-danger:is(:hover, :focus-visible) {
  background-color: var(--tblr-danger, #d63939);
  border-color: var(--tblr-danger, #d63939);
  color: #fff;
}
body.wf-ui-v7 .page-body .table-actions .btn.btn-ghost-secondary:is(:hover, :focus-visible) {
  background-color: var(--wf-app-bg);
  border-color: var(--wf-line);
  color: var(--wf-ink);
}
body.wf-ui-v7 .page-body .btn:is(:hover, :focus-visible) svg.icon {
  color: inherit !important;
  stroke: currentColor;
  opacity: 1;
}

/* <a class="btn"> and <button class="btn"> share the same control layout. */
body.wf-ui-v7 .page-body :is(a.btn, button.btn) {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    vertical-align: middle;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
}
body.wf-ui-v7 .page-body :is(a.btn, button.btn) > svg.icon {
    flex: 0 0 auto;
    color: inherit;
}

/* The four sales-order row actions share one exact height.  Only the two
   labeled buttons use horizontal padding; square icon buttons center the SVG. */
body.wf-ui-v7 .page-body .wf-sales-order-load-actions {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: .5rem;
}
body.wf-ui-v7 .page-body .wf-sales-order-load-actions > :is(a.btn, button.btn) {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    height: 52px;
    min-height: 52px;
    margin: 0;
    padding: .5rem .75rem;
    border-radius: .55rem;
    line-height: 1.25;
    white-space: normal;
    text-align: center;
    text-decoration: none;
}
body.wf-ui-v7 .page-body .wf-sales-order-load-actions > .btn:not(.btn-icon) {
    max-width: 150px;
}
body.wf-ui-v7 .page-body .wf-sales-order-load-actions > .btn.btn-icon {
    display: inline-flex;
    flex: 0 0 52px;
    width: 52px;
    min-width: 52px;
    height: 52px;
    min-height: 52px;
    padding: 0;
    align-items: center;
    justify-content: center;
}
body.wf-ui-v7 .page-body .wf-sales-order-load-actions > .btn > svg.icon {
    display: block;
    flex: 0 0 1rem;
    width: 1rem;
    height: 1rem;
    margin: 0 !important;
    color: inherit;
    stroke: currentColor;
}

/* The edit modal has its own action row; it wraps gracefully at narrow widths. */
body.wf-ui-v7 .wf-sales-order-modal-actions__buttons {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .5rem;
    flex-wrap: wrap;
}
body.wf-ui-v7 .wf-sales-order-modal-actions__buttons > :is(a.btn, button.btn) {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    padding: .55rem .85rem;
    line-height: 1.25;
    white-space: normal;
    text-align: center;
}
body.wf-ui-v7 .wf-sales-order-modal-actions__buttons > .btn > svg.icon {
    flex: 0 0 1rem;
    margin: 0 !important;
}
@media (max-width: 575.98px) {
    body.wf-ui-v7 .wf-sales-order-modal-actions__buttons {
        width: 100%;
        margin-left: 0 !important;
    }
    body.wf-ui-v7 .wf-sales-order-modal-actions__buttons > .btn {
        flex: 1 1 auto;
    }
}
