:root{
  --ui-control-sm:36px;
  --ui-control-md:44px;
  --ui-control-lg:52px;
  --ui-hit:44px;
  --ui-focus:0 0 0 4px rgba(24,235,176,.20);
  --ui-overlay:rgba(4,15,11,.56);
  --ui-disabled:.48;
}

/* Contract reset */
:where(.btn,.ui-btn,.icon-btn,.ui-icon-btn,.ds-tab,.ui-tab,.ui-page){font:inherit;-webkit-tap-highlight-color:transparent}
:where(.btn,.ui-btn,.icon-btn,.ui-icon-btn,.ds-tab,.ui-tab,.ui-page):focus-visible,
:where(.ds-input,.ds-select,.ds-textarea,.field input,.field select,.field textarea):focus-visible{
  outline:0!important;box-shadow:var(--ui-focus)!important;border-color:var(--oilora-primary-500)!important;
}
:where(.btn,.ui-btn,.icon-btn,.ui-icon-btn)[disabled],:where(.btn,.ui-btn,.icon-btn,.ui-icon-btn).is-disabled{opacity:var(--ui-disabled)!important;cursor:not-allowed!important;pointer-events:none!important;transform:none!important}

/* Actions */
:where(.btn,.ui-btn){min-height:var(--ui-control-md);padding-inline:16px;border:1px solid transparent;border-radius:var(--oilora-radius-md);display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:var(--oilora-font-bold);line-height:1;white-space:nowrap;cursor:pointer;transition:background var(--oilora-motion-normal) var(--oilora-ease),border-color var(--oilora-motion-normal) var(--oilora-ease),box-shadow var(--oilora-motion-normal) var(--oilora-ease),transform var(--oilora-motion-normal) var(--oilora-ease)}
:where(.btn,.ui-btn):hover:not(:disabled){transform:translateY(-1px)}
:where(.btn,.ui-btn):active:not(:disabled){transform:translateY(0)}
:where(.btn-primary,.ui-btn--primary,.btn:not([class*="btn-"])){background:var(--oilora-primary-800);border-color:var(--oilora-primary-800);color:#fff;box-shadow:0 7px 18px rgba(8,123,96,.16)}
:where(.btn-primary,.ui-btn--primary,.btn:not([class*="btn-"])):hover:not(:disabled){background:var(--oilora-primary-900);border-color:var(--oilora-primary-900)}
:where(.btn-secondary,.ui-btn--secondary){background:var(--oilora-primary-100);border-color:var(--oilora-primary-200);color:var(--oilora-primary-900);box-shadow:none}
:where(.btn-soft,.ui-btn--soft){background:var(--oilora-primary-50);border-color:var(--oilora-primary-200);color:var(--oilora-primary-800);box-shadow:none}
:where(.btn-ghost,.ui-btn--outline){background:#fff;border-color:var(--oilora-border-strong);color:var(--oilora-text);box-shadow:var(--oilora-shadow-xs)}
:where(.ui-btn--ghost){background:transparent;border-color:transparent;color:var(--oilora-text-secondary);box-shadow:none}
:where(.btn-danger,.ui-btn--danger){background:#fff5f4;border-color:#f4d4d1;color:#a92f27;box-shadow:none}
:where(.btn-sm,.ui-btn--sm){min-height:var(--ui-control-sm);padding-inline:12px;font-size:12px}
:where(.btn-lg,.ui-btn--lg){min-height:var(--ui-control-lg);padding-inline:20px;font-size:14px}
:where(.btn-block,.ui-btn--block){width:100%}
:where(.icon-btn,.ui-icon-btn){width:var(--ui-control-md);height:var(--ui-control-md);padding:0;border:1px solid var(--oilora-border);border-radius:var(--oilora-radius-md);background:#fff;color:var(--oilora-text-secondary);display:grid;place-items:center;cursor:pointer;box-shadow:var(--oilora-shadow-xs)}
:where(.icon-btn,.ui-icon-btn):hover{background:var(--oilora-primary-50);border-color:var(--oilora-primary-200);color:var(--oilora-primary-800)}
.ui-spinner{width:16px;height:16px;border:2px solid currentColor;border-inline-start-color:transparent;border-radius:50%;display:inline-block;animation:ui-foundation-spin .7s linear infinite}@keyframes ui-foundation-spin{to{transform:rotate(360deg)}}

/* Forms */
:where(.field,.ui-field){display:grid;gap:7px;min-width:0}
:where(.field label,.ui-label){font-size:12px;font-weight:var(--oilora-font-bold);color:var(--oilora-text-secondary)}
:where(.field-help,.field-error,.ui-help,.ui-error){font-size:11px;line-height:1.7;color:var(--oilora-text-muted)}
:where(.field-error,.ui-error){color:var(--oilora-danger)}
:where(.field input,.field select,.field textarea,.ds-input,.ds-select,.ds-textarea,.ui-input,.ui-select,.ui-textarea){width:100%;min-height:var(--ui-control-md);padding:9px 12px;border:1px solid var(--oilora-border-strong);border-radius:var(--oilora-radius-md);background:#fff;color:var(--oilora-text);font:inherit;outline:0;box-shadow:var(--oilora-shadow-xs);transition:border-color var(--oilora-motion-normal),box-shadow var(--oilora-motion-normal),background var(--oilora-motion-normal)}
:where(.field input,.field select,.field textarea,.ds-input,.ds-select,.ds-textarea,.ui-input,.ui-select,.ui-textarea)::placeholder{color:var(--oilora-text-faint)}
:where(.field input,.field select,.field textarea,.ds-input,.ds-select,.ds-textarea,.ui-input,.ui-select,.ui-textarea):hover:not(:disabled){border-color:var(--oilora-graphite-400)}
:where(.field textarea,.ds-textarea,.ui-textarea){min-height:108px;resize:vertical;line-height:1.8}
:where(.field input,.field select,.field textarea,.ds-input,.ds-select,.ds-textarea,.ui-input,.ui-select,.ui-textarea)[aria-invalid="true"],.field.is-error :where(input,select,textarea){border-color:#df776f;background:#fffafa}
:where(.field input,.field select,.field textarea,.ds-input,.ds-select,.ds-textarea,.ui-input,.ui-select,.ui-textarea):disabled{background:var(--oilora-surface-muted);color:var(--oilora-text-faint);cursor:not-allowed}
.ui-field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ui-control-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}

/* Selection controls */
:where(.ds-check,.ds-radio,.ui-check,.ui-radio,.ds-switch,.ui-switch){min-height:var(--ui-hit);display:inline-flex;align-items:center;gap:9px;color:var(--oilora-text-secondary);font-size:13px;cursor:pointer}
:where(.ds-check input,.ds-radio input){width:18px;height:18px;accent-color:var(--oilora-primary-800)}

/* Surfaces */
:where(.card,.ds-card,.ui-card){background:#fff;border:1px solid var(--oilora-border);border-radius:var(--oilora-radius-lg);box-shadow:var(--oilora-shadow-xs);overflow:hidden}
:where(.ds-card,.ui-card).is-hoverable:hover{border-color:var(--oilora-primary-200);box-shadow:var(--oilora-shadow-md);transform:translateY(-1px)}
:where(.card-head,.ds-card-head,.ui-card-head){min-height:58px;padding:15px 18px;border-bottom:1px solid var(--oilora-border);display:flex;align-items:center;justify-content:space-between;gap:12px}
:where(.card-body,.ds-card-body,.ui-card-body){padding:18px}
:where(.ds-card-foot,.ui-card-foot){padding:14px 18px;border-top:1px solid var(--oilora-border);background:var(--oilora-surface-subtle)}
.ui-divider{height:1px;border:0;background:var(--oilora-border);margin:0}

/* Status + feedback */
:where(.badge,.ds-badge,.ui-badge){display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:4px 9px;border:1px solid transparent;border-radius:999px;font-size:11px;font-weight:var(--oilora-font-bold);line-height:1.2;background:var(--oilora-surface-muted);color:var(--oilora-text-secondary)}
:where(.ds-badge.success,.ui-badge--success){background:#edf9f3;border-color:#cfeddd;color:#08704f}
:where(.ds-badge.info,.ui-badge--info){background:#f0f6ff;border-color:#d8e6fb;color:#245fa9}
:where(.ds-badge.warning,.ui-badge--warning){background:#fff8ed;border-color:#f2dfbd;color:#8a570d}
:where(.ds-badge.danger,.ui-badge--danger){background:#fff4f3;border-color:#f2d4d1;color:#a4372f}
:where(.ui-badge--brand){background:var(--oilora-primary-50);border-color:var(--oilora-primary-200);color:var(--oilora-primary-900)}
:where(.ds-alert,.ui-alert){display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;padding:13px 14px;border:1px solid var(--oilora-border);border-radius:var(--oilora-radius-md);font-size:12px;line-height:1.8;background:#fff}
:where(.ds-alert,.ui-alert) strong{display:block;margin-bottom:2px}
:where(.ds-alert.success,.ui-alert--success){background:#f2fbf6;border-color:#cfeadd;color:#08704f}
:where(.ds-alert.info,.ui-alert--info){background:#f3f7fd;border-color:#dbe6f7;color:#245fa9}
:where(.ds-alert.warning,.ui-alert--warning){background:#fff9ef;border-color:#f1dfbd;color:#87550d}
:where(.ds-alert.danger,.ui-alert--danger){background:#fff5f4;border-color:#f1d3d0;color:#a4372f}
.ui-toast-stack{position:fixed;inset-inline-end:20px;bottom:20px;z-index:1200;display:grid;gap:10px;pointer-events:none;width:min(390px,calc(100vw - 32px))}
:where(.toast,.ui-toast){position:relative!important;left:auto!important;bottom:auto!important;min-width:0!important;max-width:none!important;width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:10px;padding:12px 13px;background:var(--oilora-graphite-950);color:#fff;border:1px solid rgba(255,255,255,.10);border-radius:var(--oilora-radius-md);box-shadow:var(--oilora-shadow-lg);pointer-events:auto}
.ui-toast__dot{width:9px;height:9px;margin-top:6px;border-radius:50%;background:var(--oilora-primary-500)}
.ui-toast__close{width:32px;height:32px;border:0;background:transparent;color:#d8e5df;border-radius:9px;cursor:pointer}

/* Loading, empty, error */
.ui-state{min-height:220px;display:grid;place-items:center;text-align:center;padding:28px 18px;border:1px dashed var(--oilora-border-strong);border-radius:var(--oilora-radius-lg);background:var(--oilora-surface-subtle)}
.ui-state__inner{max-width:390px}.ui-state__icon{width:48px;height:48px;margin:0 auto 10px;border-radius:15px;display:grid;place-items:center;background:#fff;border:1px solid var(--oilora-border);font-size:20px;color:var(--oilora-text-muted)}
.ui-state h3{margin:0 0 5px;font-size:15px}.ui-state p{margin:0;color:var(--oilora-text-muted);font-size:12px;line-height:1.8}.ui-state__actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:14px}
.ui-skeleton{display:block;max-width:100%;min-height:12px;border-radius:8px;background:linear-gradient(90deg,var(--oilora-surface-muted) 25%,#f8fbfa 50%,var(--oilora-surface-muted) 75%);background-size:200% 100%;animation:ui-foundation-shimmer 1.35s linear infinite}@keyframes ui-foundation-shimmer{to{background-position:-200% 0}}
.ui-loading-inline{display:inline-flex;align-items:center;gap:8px;color:var(--oilora-text-muted);font-size:12px}

/* Navigation */
:where(.ds-tabs,.ui-tabs){display:flex;gap:4px;padding:4px;background:var(--oilora-surface-muted);border:1px solid var(--oilora-border);border-radius:var(--oilora-radius-md);width:max-content;max-width:100%;overflow:auto;scrollbar-width:none}
:where(.ds-tabs,.ui-tabs)::-webkit-scrollbar{display:none}
:where(.ds-tab,.ui-tab){min-height:36px;padding:7px 13px;border:0;border-radius:10px;background:transparent;color:var(--oilora-text-muted);font-size:12px;font-weight:var(--oilora-font-bold);white-space:nowrap;cursor:pointer}
:where(.ds-tab,.ui-tab):hover{color:var(--oilora-primary-900)}
:where(.ds-tab,.ui-tab).active,:where(.ds-tab,.ui-tab)[aria-selected="true"]{background:#fff;color:var(--oilora-primary-900);box-shadow:var(--oilora-shadow-sm)}
.ui-breadcrumb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px;color:var(--oilora-text-muted)}.ui-breadcrumb a:hover{color:var(--oilora-primary-800)}.ui-breadcrumb [aria-current="page"]{color:var(--oilora-text);font-weight:var(--oilora-font-bold)}

/* Data table + pagination */
.ui-table-shell{border:1px solid var(--oilora-border);border-radius:var(--oilora-radius-lg);background:#fff;overflow:hidden}
:where(.table-wrap,.ui-table-scroll){width:100%;overflow:auto;overscroll-behavior-inline:contain}
:where(.ui-table,table[data-ui-table]){width:100%;border-collapse:collapse;min-width:680px}
:where(.ui-table,table[data-ui-table]) th,:where(.ui-table,table[data-ui-table]) td{padding:13px 15px;border-bottom:1px solid var(--oilora-border);font-size:12px;text-align:start;vertical-align:middle}
:where(.ui-table,table[data-ui-table]) th{background:var(--oilora-surface-subtle);color:var(--oilora-text-muted);font-weight:var(--oilora-font-bold);position:sticky;top:0;z-index:1}
:where(.ui-table,table[data-ui-table]) tbody tr:hover{background:color-mix(in srgb,var(--oilora-primary-50) 55%,#fff)}
:where(.ui-table,table[data-ui-table]) tr:last-child td{border-bottom:0}
.ui-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border-top:1px solid var(--oilora-border)}.ui-pagination__pages{display:flex;align-items:center;gap:5px}.ui-page{min-width:36px;height:36px;padding:0 8px;border:1px solid var(--oilora-border);border-radius:10px;background:#fff;color:var(--oilora-text-secondary);display:grid;place-items:center;cursor:pointer}.ui-page.active,.ui-page[aria-current="page"]{background:var(--oilora-primary-800);border-color:var(--oilora-primary-800);color:#fff}.ui-pagination__meta{font-size:11px;color:var(--oilora-text-muted)}

/* Overlay contract */
:where(.modal-backdrop,.ui-overlay){position:fixed;inset:0;z-index:1100;background:var(--ui-overlay);backdrop-filter:blur(5px);display:grid;place-items:center;padding:20px;overscroll-behavior:contain}
:where(.modal,.ui-modal){position:relative!important;inset:auto!important;width:min(560px,100%)!important;max-height:min(82dvh,760px);display:flex;flex-direction:column;background:#fff;border:1px solid rgba(255,255,255,.55);border-radius:var(--oilora-radius-xl);box-shadow:var(--oilora-shadow-lg);overflow:hidden}
.ui-modal__head,.ui-modal__foot{flex:0 0 auto;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.ui-modal__head{border-bottom:1px solid var(--oilora-border)}.ui-modal__head h3{margin:0;font-size:15px}.ui-modal__body{flex:1 1 auto;min-height:0;overflow:auto;padding:18px}.ui-modal__foot{border-top:1px solid var(--oilora-border);background:var(--oilora-surface-subtle)}
body.ui-overlay-open{overflow:hidden!important}

/* Tooltip / dropdown */
.ui-tooltip{position:relative;display:inline-flex}.ui-tooltip__bubble{position:absolute;z-index:1300;bottom:calc(100% + 8px);inset-inline-start:50%;transform:translateX(50%);min-width:max-content;max-width:260px;padding:7px 9px;border-radius:9px;background:var(--oilora-graphite-950);color:#fff;font-size:10px;line-height:1.6;box-shadow:var(--oilora-shadow-md);pointer-events:none;opacity:0;visibility:hidden;transition:.14s}.ui-tooltip:hover .ui-tooltip__bubble,.ui-tooltip:focus-within .ui-tooltip__bubble{opacity:1;visibility:visible}
.ui-dropdown{position:relative;display:inline-flex}.ui-dropdown__menu{position:absolute;z-index:1250;top:calc(100% + 7px);inset-inline-end:0;min-width:210px;padding:6px;border:1px solid var(--oilora-border);border-radius:var(--oilora-radius-md);background:#fff;box-shadow:var(--oilora-shadow-lg)}.ui-dropdown__menu[hidden]{display:none}.ui-dropdown__menu button,.ui-dropdown__menu a{width:100%;min-height:38px;padding:7px 9px;border:0;border-radius:9px;background:transparent;color:var(--oilora-text-secondary);font:inherit;font-size:12px;text-align:start;display:flex;align-items:center;gap:8px;cursor:pointer}.ui-dropdown__menu :is(button,a):hover{background:var(--oilora-primary-50);color:var(--oilora-primary-900)}

/* Responsive density */
@media(max-width:760px){.ui-field-row{grid-template-columns:1fr}.ui-toast-stack{inset-inline:12px;bottom:12px;width:auto}.ui-pagination{align-items:stretch}.ui-pagination__pages{width:100%;overflow:auto}.ui-modal__foot{flex-wrap:wrap}.ui-modal__foot :where(.btn,.ui-btn){flex:1 1 140px}}
@media(max-width:520px){:where(.modal-backdrop,.ui-overlay){padding:0;align-items:end}:where(.modal,.ui-modal){width:100%!important;max-height:88dvh;border-radius:22px 22px 0 0;border-bottom:0}.ui-modal__body{padding:16px}.ui-state{min-height:190px}}
@media(prefers-reduced-motion:reduce){.ui-skeleton{animation:none;background:var(--oilora-surface-muted)}:where(.btn,.ui-btn,.icon-btn,.ui-icon-btn,.ui-tooltip__bubble){transition:none!important}}
@media(forced-colors:active){:where(.btn,.ui-btn,.icon-btn,.ui-icon-btn,.ui-input,.ui-select,.ui-textarea,.ui-card,.ui-state){forced-color-adjust:auto}}
