/* Sona Rice Mill · SRM Console theme tokens
   Source: SRM Console design. Light theme only. Colour comes from tokens only;
   semantic colours carry meaning (red = receivable / sale / fail, green = paid / purchase / pass,
   amber = pending / needs authorisation). Tints are color-mix() of a token — never a new hex. */
:root {
    --font: 'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
    /* One font family everywhere, numbers and prices included; tabular figures keep columns aligned. */

    --ac: #4f46e5; --ac-press: #4338ca; --ac-soft: #eef2ff; --ac-ring: rgba(79, 70, 229, .18);
    --red: #e02424; --green: #0e9f6e; --amber: #d97706; --blue: #1e9ff0;
    --red-ink: #b91c1c; --green-ink: #046c4e; --amber-ink: #92400e; --blue-ink: #0369a1;
    --red-soft: #fdecec; --red-soft-2: #fbdada;

    --ink: #111827; --ink-2: #374151; --ink-3: #6b7280; --ink-4: #9ca3af;
    --bg: #f4f5f9; --panel: #fff; --panel-2: #f8fafc; --line: #e5e7eb; --line-2: #eef0f4; --hover: #f7f8fb; --sel: #eef2ff;

    --sh-sm: 0 1px 2px rgba(16, 24, 40, .06);
    --sh: 0 2px 8px rgba(16, 24, 40, .08);
    --sh-lg: 0 12px 32px rgba(16, 24, 40, .24);
    --sh-pop: 0 12px 32px rgba(16, 24, 40, .14);

    --r: 10px; --r-sm: 8px; --r-lg: 12px; --r-pill: 999px;
    --rowh: 56px; --side-w: 248px; --top-h: 64px;
}

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; height: 100%; }
body { background: var(--bg); font: 500 14px/1.45 var(--font); font-variant-numeric: tabular-nums; color: var(--ink); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
a { color: var(--ac); text-decoration: none; }
a:hover { color: var(--ac-press); }
::selection { background: var(--ac-soft); color: var(--ink); }
:focus-visible { outline: 2px solid var(--ac); outline-offset: 2px; }
input, select, textarea, button { font-family: inherit; font-size: inherit; color: inherit; }
button { cursor: pointer; }
input::placeholder, textarea::placeholder { color: var(--ink-4); }
img, svg { max-width: 100%; vertical-align: middle; }
h1, h2, h3, h4, h5, h6, p { margin: 0; }
ul, ol { margin: 0; padding-left: 1.2em; }
table { border-collapse: collapse; }
hr { border: 0; border-top: 1px solid var(--line-2); margin: 16px 0; }
strong, b { font-weight: 700; }
small { font-size: 12.5px; }
[hidden] { display: none !important; }
code { font-family: var(--font); font-size: 12.5px; }
kbd { display: inline-block; font: 600 10.5px/1 var(--font); color: var(--ink-4); background: var(--panel-2); border: 1px solid var(--line); border-radius: 4px; padding: 3px 4px; white-space: nowrap; }

.mono { font-family: var(--font); font-variant-numeric: tabular-nums; }
.num { text-align: right; font-family: var(--font); font-variant-numeric: tabular-nums; }
.muted { color: var(--ink-4); }
.ink-2 { color: var(--ink-2); }
.ink-3 { color: var(--ink-3); }
.tone-green { color: var(--green); }
.tone-red { color: var(--red); }
.tone-amber { color: var(--amber); }
.tone-ac { color: var(--ac); }
.tone-blue { color: var(--blue); }
.text-mono { font-family: var(--font); }
.nowrap { white-space: nowrap; }
.ellipsis { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.required::after, .is-req::after { content: ' *'; color: var(--red); }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@keyframes lineIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes toastIn { from { opacity: 0; transform: translate(-50%, 10px); } to { opacity: 1; transform: translate(-50%, 0); } }
@keyframes popIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}
