:root {
  --oa-ink: #182321;
  --oa-muted: #65736f;
  --oa-line: #dfe7e3;
  --oa-bg: #f3f6f4;
  --oa-surface: #ffffff;
  --oa-green: #075d47;
  --oa-green-hover: #064d3c;
  --oa-mint: #e5f2ed;
  --oa-mint-strong: #d7ebe3;
  --oa-danger: #b83a3a;
  --oa-radius: 12px;
  --oa-shadow: 0 1px 2px rgba(20, 54, 45, .04);
}

html { color-scheme: light; }
body {
  color: var(--oa-ink);
  background-color: var(--oa-bg);
  font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

button, input, select, textarea { font: inherit; }
input, select, textarea {
  border-color: var(--oa-line);
  border-radius: 9px;
  color: var(--oa-ink);
  background: var(--oa-surface);
  transition: border-color .16s ease, box-shadow .16s ease;
}
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: #69a995;
  box-shadow: 0 0 0 3px rgba(7, 93, 71, .11);
}

button, .btn {
  border-radius: 9px;
  transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .08s ease;
}
button:active, .btn:active { transform: translateY(1px); }
.primary, .btn-primary, button.primary {
  background-color: var(--oa-green);
  border-color: var(--oa-green);
  color: #fff;
}
.primary:hover, .btn-primary:hover, button.primary:hover {
  background-color: var(--oa-green-hover);
  border-color: var(--oa-green-hover);
}
.ghost, .btn-default, .btn-secondary {
  background: var(--oa-surface);
  border-color: var(--oa-line);
  color: var(--oa-ink);
}
.ghost:hover, .btn-default:hover, .btn-secondary:hover {
  border-color: #8ebcad;
  background: #f6faf8;
}

.panel, .card, .widget, .list-row-container, .frappe-card {
  border-color: var(--oa-line);
  border-radius: var(--oa-radius);
  box-shadow: var(--oa-shadow);
}

.table-wrap, .datatable, .dt-scrollable {
  scrollbar-color: #a8beb7 #edf3f0;
  scrollbar-width: thin;
}
.table-wrap::-webkit-scrollbar,
.datatable::-webkit-scrollbar,
.dt-scrollable::-webkit-scrollbar { width: 10px; height: 10px; }
.table-wrap::-webkit-scrollbar-track,
.datatable::-webkit-scrollbar-track,
.dt-scrollable::-webkit-scrollbar-track { background: #edf3f0; border-radius: 8px; }
.table-wrap::-webkit-scrollbar-thumb,
.datatable::-webkit-scrollbar-thumb,
.dt-scrollable::-webkit-scrollbar-thumb {
  background: #a8beb7;
  border: 2px solid #edf3f0;
  border-radius: 8px;
}

table {
  border-collapse: separate;
  border-spacing: 0;
  font-variant-numeric: tabular-nums;
}
table th {
  color: #50615c;
  font-weight: 650;
  background: #f2f7f5;
  border-bottom-color: #dbe5e1;
}
table td { border-bottom-color: #e8eeeb; }
table tbody tr:nth-child(even) td { background-color: #f9fbfa; }
table tbody tr:hover td { background-color: #eaf6f1; }
table tfoot td {
  color: #15483d;
  font-weight: 700;
  background: var(--oa-mint);
  border-top: 2px solid #8ebcad;
}
td.num, th.num, td.text-right, th.text-right {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.badge, .pill, .indicator-pill {
  border-radius: 999px;
  font-weight: 600;
}
.nav-tabs, .submodule-tabs, .segmented {
  border-radius: 11px;
  background: #e8efec;
}
.nav-tabs .active, .submodule-tabs .active, .segmented .active {
  color: var(--oa-green);
  background: #fff;
  box-shadow: 0 1px 4px rgba(13, 41, 35, .1);
}

*:focus-visible {
  outline: 2px solid #69a995;
  outline-offset: 2px;
}

@media (max-width: 720px) {
  .panel, .card, .widget, .frappe-card { border-radius: 10px; }
  table { font-size: 12px; }
}
