:root {
  --ui-color-primary-700: #164b34;
  --ui-color-primary-600: #225f46;
  --ui-color-primary-500: #2a7654;
  --ui-color-primary-400: #4f8c6d;
  --ui-color-primary-100: #dcebe3;
  --ui-color-primary-050: #edf5f1;
  --ui-color-bg: #f4f7f5;
  --ui-color-surface: #fff;
  --ui-color-text: #193226;
  --ui-color-muted: #687b71;
  --ui-color-border: #d9e5de;
  --ui-color-border-strong: #adc2b6;
  --ui-color-danger: #a84635;
  --ui-color-warning: #8a6a24;
  --ui-color-info: #28738a;
  --ui-control-height: 38px;
  --ui-table-head-height: 36px;
  --ui-table-row-height: 38px;
  --ui-radius-sm: 5px;
  --ui-radius-md: 8px;
  --ui-radius-lg: 10px;
  --ui-space-1: .25rem;
  --ui-space-2: .5rem;
  --ui-space-3: .75rem;
  --ui-space-4: 1rem;
  --ui-shadow-modal: 0 18px 60px #0005;
}

.ui-page-header { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--ui-space-3); margin:0 0 var(--ui-space-3); }
.ui-page-header__title { margin:0; color:var(--ui-color-text); font-size:1.45rem; line-height:1.3; }
.ui-page-header__description { margin:.2rem 0 0; color:var(--ui-color-muted); font-size:.84rem; }
.ui-page-header__actions { display:flex; align-items:center; gap:var(--ui-space-2); }

.ui-filter-bar { display:grid; gap:var(--ui-space-2); margin-bottom:var(--ui-space-3); padding:var(--ui-space-3); border:1px solid var(--ui-color-border); border-radius:var(--ui-radius-md); background:var(--ui-color-primary-050); }
.ui-filter-bar__row { display:flex; align-items:end; gap:var(--ui-space-2); min-width:0; }
.ui-filter-bar__row > * { min-width:0; }
.ui-filter-bar__field,.ui-field { display:grid; align-content:start; gap:var(--ui-space-1); margin:0; min-width:0; }
.ui-filter-bar__field > span,.ui-field > span { color:var(--ui-color-text); font-size:.8rem; font-weight:700; }
.ui-action-bar { display:flex; align-items:center; justify-content:flex-end; gap:var(--ui-space-2); margin:var(--ui-space-2) 0; }

.ui-button { display:inline-flex; align-items:center; justify-content:center; min-height:var(--ui-control-height); padding:.45rem .8rem; border:1px solid transparent; border-radius:var(--ui-radius-sm); background:var(--ui-color-primary-500); color:#fff; font:inherit; font-size:.88rem; font-weight:700; line-height:1; text-decoration:none; white-space:nowrap; cursor:pointer; }
.ui-button:hover { background:var(--ui-color-primary-600); }
.ui-button--secondary { border-color:#b7cec1; background:#e4eee9; color:#24543d; }
.ui-button--secondary:hover { background:#d5e6dc; }
.ui-button--danger { background:var(--ui-color-danger); }
.ui-button--quiet { border-color:var(--ui-color-border-strong); background:#fff; color:#24543d; }
.ui-button--small { min-height:32px; padding:.35rem .62rem; font-size:.8rem; }
.ui-button:disabled,.ui-button[aria-disabled="true"] { opacity:.55; cursor:not-allowed; }

.ui-form-section { padding:var(--ui-space-3) 0; border-top:1px solid var(--ui-color-border); }
.ui-form-section:first-child { padding-top:0; border-top:0; }
.ui-form-section__title { margin:0 0 var(--ui-space-2); font-size:1rem; }
.ui-form { width:100%; }
.ui-form > p { display:grid; grid-template-columns:140px minmax(0,1fr); align-items:center; gap:var(--ui-space-2); margin:0; padding:.42rem 0; border-bottom:1px solid #e8eeea; }
.ui-form > p > label { margin:0; font-size:.84rem; font-weight:700; }
.ui-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),.ui-form select { width:100%; min-height:var(--ui-control-height); padding:.42rem .55rem; }
.ui-form textarea { width:100%; min-height:88px; padding:.55rem; resize:vertical; }
.ui-form-table-wrap { width:100%; overflow:auto; margin:var(--ui-space-3) 0; border:1px solid var(--ui-color-border); border-radius:var(--ui-radius-md); background:#fff; }
.ui-form-table { width:100%; margin:0; border:0; border-collapse:collapse; table-layout:fixed; }
.ui-form-table th,.ui-form-table td { padding:.48rem .55rem; border:1px solid #dce6e0; text-align:center; vertical-align:middle; }
.ui-form-table th { background:#eaf2ed; font-size:.84rem; white-space:nowrap; }
.ui-form-table input:not([type="checkbox"]):not([type="radio"]),.ui-form-table select,.ui-form-table textarea { width:100%; box-sizing:border-box; }
.ui-form-actions { display:flex; align-items:center; justify-content:flex-end; gap:var(--ui-space-2); margin-top:var(--ui-space-3); }
.ui-form-errors,.ui-form .errorlist,.ui-form-table .errorlist { margin:.25rem 0 0; color:var(--ui-color-danger); font-size:.78rem; text-align:left; }
.ui-help { margin:.2rem 0 var(--ui-space-2); color:var(--ui-color-muted); font-size:.82rem; }
.ui-form-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--ui-space-3); }
.ui-field input:not([type="checkbox"]):not([type="radio"]),.ui-field select { width:100%; height:var(--ui-control-height); padding:.42rem .55rem; }
.ui-field textarea { width:100%; min-height:88px; padding:.55rem; resize:vertical; }
.ui-field [readonly],.ui-field :disabled { background:#eef2f0; color:#63746b; }
.ui-required::after { content:" *"; color:var(--ui-color-danger); }
.ui-field-error { margin:0; color:var(--ui-color-danger); font-size:.78rem; }

.ui-table-wrap { width:100%; overflow:auto; border:1px solid var(--ui-color-border); border-radius:var(--ui-radius-md); }
.ui-data-table { width:100%; border-collapse:collapse; font-size:.88rem; font-variant-numeric:tabular-nums; }
.ui-table-wrap > .ui-data-table,
.ui-table-wrap > .ui-data-table > thead,
.ui-table-wrap > .ui-data-table > tbody,
.ui-table-wrap > .ui-data-table > thead > tr,
.ui-table-wrap > .ui-data-table > tbody > tr,
.ui-table-wrap > .ui-data-table > thead > tr > th,
.ui-table-wrap > .ui-data-table > tbody > tr > td { position:static; top:auto; right:auto; bottom:auto; left:auto; transform:none; }
.ui-data-table th { position:static; height:var(--ui-table-head-height); padding:.4rem .55rem; border-bottom:1px solid #c7d9cf; background:#eaf2ed; text-align:center; white-space:nowrap; }
.ui-table-wrap.ui-table-wrap--sticky .ui-data-table thead th { position:sticky; top:0; z-index:3; }
.ui-data-table td { height:var(--ui-table-row-height); padding:.4rem .55rem; border-bottom:1px solid #e1e9e4; text-align:center; vertical-align:middle; }
.ui-data-table tbody tr:hover { background:#f6faf8; }
.ui-data-table .ui-align-left { text-align:left; }
.ui-data-table .ui-number,.ui-data-table .ui-money { text-align:right; }
.ui-data-table .ui-total-row > * { background:#edf5f1; font-weight:800; }
.ui-data-table .ui-empty-row { padding:1.2rem; color:var(--ui-color-muted); text-align:center; }
.ui-number,.ui-money { font-variant-numeric:tabular-nums; }

.ui-detail-summary { display:flex; align-items:center; gap:var(--ui-space-3); min-height:38px; margin-bottom:var(--ui-space-3); padding:.48rem .7rem; border:1px solid var(--ui-color-border); border-radius:var(--ui-radius-md); background:var(--ui-color-primary-050); overflow-x:auto; white-space:nowrap; }
.ui-detail-summary__number { color:var(--ui-color-primary-600); font-size:1.02rem; }
.ui-detail-actions { display:flex; align-items:center; gap:var(--ui-space-2); margin:var(--ui-space-2) 0 var(--ui-space-3); overflow-x:auto; }
.ui-detail-actions > * { flex:0 0 auto; }
.ui-detail-section { margin-top:var(--ui-space-4); }
.ui-detail-section__title { margin:0 0 var(--ui-space-2); font-size:1rem; }
.ui-detail-grid { width:100%; border-collapse:collapse; font-size:.88rem; }
.ui-detail-grid th,.ui-detail-grid td { min-height:36px; padding:.48rem .58rem; border:1px solid var(--ui-color-border); vertical-align:middle; }
.ui-detail-grid th { background:#eaf2ed; text-align:center; white-space:nowrap; }
.ui-detail-grid td { background:#fff; }
.ui-detail-grid .ui-number,.ui-detail-grid .ui-money { text-align:right; }
.ui-detail-list { margin:0; padding:0; list-style:none; border-top:1px solid var(--ui-color-border); }
.ui-detail-list > li { padding:.55rem .65rem; border-bottom:1px solid var(--ui-color-border); }
.ui-summary-strip { display:flex; align-items:stretch; margin:var(--ui-space-2) 0 var(--ui-space-3); border:1px solid var(--ui-color-border); border-radius:var(--ui-radius-md); background:#fbfdfc; overflow:auto; }
.ui-summary-strip > * { flex:1 0 auto; min-width:120px; padding:.55rem .75rem; border-right:1px solid #e0e8e4; }
.ui-summary-strip > :last-child { border-right:0; }
.ui-summary-strip span,.ui-summary-strip small { color:var(--ui-color-muted); font-size:.78rem; }
.ui-summary-strip strong,.ui-summary-strip b { margin-left:.35rem; color:var(--ui-color-primary-600); font-size:.95rem; }
.ui-dashboard-section { padding:.75rem .9rem; border:1px solid var(--ui-color-border); border-radius:var(--ui-radius-md); background:#fff; }
.ui-dashboard-section__header { display:flex; align-items:center; justify-content:space-between; gap:var(--ui-space-2); margin-bottom:var(--ui-space-2); }
.ui-dashboard-section__header h2,.ui-dashboard-section__header h3 { margin:0; font-size:1rem; }

.ui-status-badge { display:inline-flex; align-items:center; min-height:24px; padding:.15rem .5rem; border-radius:999px; background:#e8eeeb; color:#4c6056; font-size:.78rem; font-weight:700; white-space:nowrap; }
.ui-status-badge--progress,.ui-status-badge--approved,.ui-status-badge--complete { background:#dcefe5; color:#1d6546; }
.ui-status-badge--waiting,.ui-status-badge--requested { background:#f3ecd8; color:#73571b; }
.ui-status-badge--rejected,.ui-status-badge--cancelled { background:#f3dfda; color:#8d382a; }
.ui-status-badge--info { background:#dcecf1; color:#235f72; }

.ui-modal { width:min(760px,calc(100vw - 32px)); max-height:88vh; padding:0; border:0; border-radius:var(--ui-radius-lg); background:var(--ui-color-surface); box-shadow:var(--ui-shadow-modal); }
.ui-modal::backdrop { background:#10281d80; }
.ui-modal__header { display:flex; align-items:center; justify-content:space-between; min-height:50px; padding:.7rem 1rem; background:var(--ui-color-primary-600); color:#fff; }
.ui-modal__header h2 { margin:0; font-size:1.08rem; }
.ui-modal__header > strong { font-size:1.02rem; }
.ui-modal__header > button { min-height:32px; padding:.3rem .65rem; background:#fff; color:var(--ui-color-primary-600); }
.ui-modal__body { max-height:calc(88vh - 108px); overflow:auto; padding:var(--ui-space-4); }
.ui-modal .ui-data-table thead th { position:static !important; top:auto !important; z-index:auto !important; }
.ui-modal__footer { display:flex; align-items:center; justify-content:flex-end; gap:var(--ui-space-2); min-height:58px; padding:.65rem 1rem; border-top:1px solid var(--ui-color-border); }
.ui-modal--small { width:min(460px,calc(100vw - 32px)); }
.ui-modal--large { width:min(1160px,calc(100vw - 32px)); }
.ui-modal--frame { height:min(820px,90vh); overflow:hidden; }
.ui-modal--frame iframe { display:block; width:100%; height:calc(100% - 50px); border:0; background:var(--ui-color-bg); }

.ui-segmented { display:inline-flex; align-items:stretch; }
.ui-segmented > * { min-height:34px; padding:.38rem .7rem; border:1px solid #b8cec2; border-left-width:0; border-radius:0; background:#fff; color:#294d3b; }
.ui-segmented > :first-child { border-left-width:1px; border-radius:var(--ui-radius-sm) 0 0 var(--ui-radius-sm); }
.ui-segmented > :last-child { border-radius:0 var(--ui-radius-sm) var(--ui-radius-sm) 0; }
.ui-segmented > .active,.ui-segmented > [aria-pressed="true"] { background:var(--ui-color-primary-500); color:#fff; }

@media (max-width:1000px) {
  .ui-filter-bar__row { flex-wrap:wrap; }
  .ui-form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
  .ui-page-header { align-items:stretch; flex-direction:column; }
  .ui-page-header__actions,.ui-action-bar { flex-wrap:wrap; justify-content:flex-start; }
  .ui-filter-bar__row { align-items:stretch; flex-direction:column; }
  .ui-form-grid { grid-template-columns:1fr; }
  .ui-form > p { grid-template-columns:1fr; }
  .ui-detail-summary { align-items:flex-start; flex-direction:column; white-space:normal; }
  .ui-summary-strip { align-items:stretch; flex-direction:column; }
  .ui-summary-strip > * { border-right:0; border-bottom:1px solid #e0e8e4; }
}
@media print {
  .ui-filter-bar,.ui-action-bar,.ui-page-header__actions { display:none!important; }
  .ui-table-wrap { overflow:visible; border:0; }
}
.ui-contract-price-button{display:inline-flex!important;align-items:center!important;justify-content:center!important;background:#e67e22!important;border-color:#cf6f19!important;color:#fff!important;font-weight:700!important;text-decoration:none!important}.ui-contract-price-button:hover,.ui-contract-price-button:focus{background:#c96512!important;border-color:#b85b0e!important;color:#fff!important}
