:root {
    --agri-forest: #2f8f6b;
    --agri-forest-dark: #1f6b4e;
    --agri-cream: #f6f8f7;
    --agri-amber: #d98f3f;
    --agri-amber-dark: #b3701f;
    --agri-milk: #ffffff;
    --agri-line: #e1e7e3;
    --agri-text: #1c2b25;
    --agri-muted: #72857c;
    --agri-danger: #c9524f;
    --agri-success: #2f8f6b;
    --agri-shadow: 0 1px 3px rgba(20, 40, 32, 0.06);
    --agri-panel: #1f6b4e;      /* dark green surface: sidebar, hero, thead, login backdrop */
    --agri-on-panel: #f3f8f5;   /* light text for panels — stays light in both themes */
}

body {
    background: var(--agri-cream);
    color: var(--agri-text);
    font-family: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
}

/* ---------- Sidebar ---------- */
.sidebar {
    width: 250px;
    height: 100vh;
    max-height: 100vh;
    flex: 0 0 250px;
    align-self: flex-start;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: var(--agri-panel);
    color: var(--agri-on-panel);
    position: sticky;
    top: 0;
}

.sidebar .brand {
    color: #ffffff;
    border-bottom: 1px solid rgba(255,255,255,0.12);
    padding-bottom: 1rem;
}

.sidebar .brand small { color: rgba(255,255,255,0.72); }

html[data-theme="dark"] {
    --agri-forest: #4fae86;
    --agri-forest-dark: #d9ece2;
    --agri-cream: #101613;
    --agri-amber: #e0a866;
    --agri-amber-dark: #c78a44;
    --agri-milk: #171f1b;
    --agri-line: #2b3934;
    --agri-text: #e4ede8;
    --agri-muted: #93a89e;
    --agri-danger: #ec8785;
    --agri-success: #64c299;
    --agri-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
    --agri-panel: #0d1512;      /* stays a deep panel, never inverts light like forest-dark used to */
    color-scheme: dark;
}

html[data-theme="dark"] body { background: var(--agri-cream); }
html[data-theme="dark"] .section-card, html[data-theme="dark"] .kpi-card, html[data-theme="dark"] .login-card { background: var(--agri-milk); }
html[data-theme="dark"] .text-muted, html[data-theme="dark"] .form-text { color: var(--agri-muted) !important; }
html[data-theme="dark"] .table { --bs-table-bg: transparent; --bs-table-color: var(--agri-text); --bs-table-border-color: var(--agri-line); }
html[data-theme="dark"] .table-light { --bs-table-bg: #202d27; --bs-table-color: var(--agri-text); }
html[data-theme="dark"] .form-control, html[data-theme="dark"] .form-select { color: var(--agri-text); background-color: #151f1a; border-color: #35453e; }
html[data-theme="dark"] .form-control:focus, html[data-theme="dark"] .form-select:focus { color: var(--agri-text); background-color: #151f1a; }
html[data-theme="dark"] .form-control::placeholder { color: var(--agri-muted); opacity: 1; }
html[data-theme="dark"] .form-select { --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dcefe3' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); }
html[data-theme="dark"] .list-group-item { color: var(--agri-text); background-color: transparent; border-color: var(--agri-line); }
html[data-theme="dark"] .dropdown-menu { --bs-dropdown-bg: #1a231e; --bs-dropdown-color: var(--agri-text); --bs-dropdown-link-color: var(--agri-text); --bs-dropdown-link-hover-bg: #263a30; }
html[data-theme="dark"] .btn-outline-secondary { --bs-btn-color: #c8d8cf; --bs-btn-border-color: #4c6157; --bs-btn-hover-bg: #35453e; --bs-btn-hover-border-color: #35453e; }
html[data-theme="dark"] .dashboard-task-item { background: #1a2320; border-color: #35453e; }
html[data-theme="dark"] .dashboard-task-item.is-overdue { background: #2a201f; border-color: #5c3d3c; }
html[data-theme="dark"] .dashboard-task-title, html[data-theme="dark"] .task-title { color: var(--agri-text); }
html[data-theme="dark"] .dashboard-task-description, html[data-theme="dark"] .dashboard-task-details, html[data-theme="dark"] .dashboard-task-label { color: #a3b8ad; }
html[data-theme="dark"] .task-item { background: #171f1c; border-color: #35453e !important; }
html[data-theme="dark"] .task-meta span { background: #202b26; color: #b9d0c2; }
html[data-theme="dark"] .filter-segment { background: #172019; border-color: #35453e; }
html[data-theme="dark"] .filter-segment .filter-segment-btn { color: #9cb3a7; }
html[data-theme="dark"] .filter-segment .filter-segment-btn:hover { color: #dcefe3; background: #202b26; }
html[data-theme="dark"] .filter-segment .filter-segment-btn.active { background: #33795c; }
html[data-theme="dark"] .filter-segment-count { background: #21352c; color: #b9d0c2; }
html[data-theme="dark"] .filter-segment .filter-segment-btn.active .filter-segment-count { background: rgba(255, 255, 255, 0.22); color: #fff; }
html[data-theme="dark"] .task-check { color: #567065; border-color: #4a5c53; }
html[data-theme="dark"] .task-check:hover { color: var(--agri-success); background: #21352c; border-color: var(--agri-success); }
html[data-theme="dark"] .task-check.is-done { background: #33795c; border-color: #33795c; }
html[data-theme="dark"] .task-check.is-done:hover { background: #3c8a6b; border-color: #3c8a6b; }
html[data-theme="dark"] .task-item.is-overdue { background: #241d1c; border-color: #5c3d3c !important; }
html[data-theme="dark"] .task-empty-icon { background: #21352c; color: #b9d0c2; }

.sidebar .brand i {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: rgba(255,255,255,0.14);
}


.sidebar .nav-link {
    display: flex;
    align-items: center;
    width: 100%;
    white-space: nowrap;
    line-height: 1.2;
    color: rgba(255,255,255,0.78);
    border-radius: 8px;
    font-weight: 500;
    font-size: 0.93rem;
    padding: 0.62rem 0.8rem;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.sidebar .nav-link i {
    line-height: 1;
    flex-shrink: 0;
}
.sidebar .nav-item {
    width: 100%;
}

.sidebar .nav-link:hover {
    background-color: rgba(255,255,255,0.08);
    color: #fff;
}

.sidebar .nav-link.active {
    background: var(--agri-amber);
    color: #fff;
}

.sidebar .user-link {
    color: rgba(255,255,255,0.85);
}

.sidebar hr {
    border-color: rgba(255,255,255,0.12);
}

.main-content {
    background: transparent;
    min-height: 100vh;
}

/* ---------- Cards / KPI tiles ---------- */
.kpi-card {
    background: var(--agri-milk);
    border: 1px solid var(--agri-line);
    border-radius: 10px;
    padding: 1.25rem 1.4rem;
    height: 100%;
    border-left: 3px solid var(--agri-forest);
    box-shadow: var(--agri-shadow);
    transition: border-color 0.15s ease;
}

.theme-toggle {
    display: flex;
    align-items: center;
    width: 100%;
    gap: .55rem;
    margin-bottom: 1rem;
    padding: .52rem .65rem;
    color: rgba(255,255,255,.83);
    font-size: .82rem;
    font-weight: 650;
    text-align: left;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.11);
    border-radius: 8px;
    transition: background-color .15s ease;
}
.theme-toggle:hover { background: rgba(255,255,255,.14); }
.theme-toggle-knob { width: 19px; height: 19px; margin-left: auto; border-radius: 50%; background: #f0c179; }
html[data-theme="dark"] .theme-toggle-knob { background: #e9f5ee; }

.kpi-card:hover { border-left-color: var(--agri-forest-dark); }

.kpi-card.amber { border-left-color: var(--agri-amber); }
.kpi-card.danger { border-left-color: var(--agri-danger); }
.kpi-card.success { border-left-color: var(--agri-success); }

.kpi-card .kpi-label {
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.72rem;
    color: var(--agri-muted);
    font-weight: 600;
}

.kpi-card .kpi-value {
    font-size: 1.9rem;
    font-weight: 700;
    color: var(--agri-forest);
    line-height: 1.2;
}

.section-card {
    background: var(--agri-milk);
    border: 1px solid var(--agri-line);
    border-radius: 10px;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    box-shadow: var(--agri-shadow);
}

.page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.page-header h1 {
    font-size: 1.75rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--agri-text);
    margin-bottom: 0.1rem;
}

.page-header .subtitle {
    color: var(--agri-muted);
    font-size: 0.92rem;
}

/* ---------- Buttons ---------- */
.btn-agri {
    background-color: var(--agri-forest);
    border-color: var(--agri-forest);
    color: #fff;
}
.btn-primary, .btn-agri {
    border-radius: 8px;
    font-weight: 600;
    padding: 0.58rem 1rem;
    background: var(--agri-forest);
    border-color: var(--agri-forest);
}
.btn-primary:hover, .btn-agri:hover { background: var(--agri-panel); border-color: var(--agri-panel); }
.btn-outline-primary { color: var(--agri-forest); border-color: var(--agri-line); border-radius: 8px; font-weight: 600; }
.btn-outline-primary:hover { background: var(--agri-forest); border-color: var(--agri-forest); color: #fff; }
.btn-outline-secondary { border-radius: 8px; font-weight: 600; }

/* ---------- Consultant workspace ---------- */
.consultant-hero {
    padding: 1.5rem 1.75rem;
    border-radius: 12px;
    color: #fff;
    background: var(--agri-panel);
}
.consultant-hero h1 { color: #fff; margin: 0; }
.consultant-hero .subtitle { color: rgba(255,255,255,0.76); }
.consultant-hero .btn { background: #fff; color: var(--agri-forest); border: 0; }
.consultant-hero .btn:hover { background: #eef6f1; }
/* Segmented filter control */
.filter-segment {
    display: inline-flex;
    gap: 0.25rem;
    padding: 0.3rem;
    background: #eef3f0;
    border: 1px solid var(--agri-line);
    border-radius: 10px;
}
.filter-segment .filter-segment-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.38rem 0.85rem;
    color: var(--agri-muted);
    background: transparent;
    border-radius: 7px;
    font-size: 0.82rem;
    font-weight: 650;
    text-decoration: none;
    transition: color 0.15s ease, background-color 0.15s ease;
}
.filter-segment .filter-segment-btn:hover { color: var(--agri-text); }
.filter-segment .filter-segment-btn.active {
    color: #fff;
    background: var(--agri-forest);
    box-shadow: 0 1px 2px rgba(20, 40, 32, 0.18);
}
.filter-segment-count {
    padding: 0.02rem 0.45rem;
    color: inherit;
    background: rgba(127, 166, 144, 0.16);
    border-radius: 99px;
    font-size: 0.7rem;
    font-weight: 700;
}
.filter-segment .filter-segment-btn.active .filter-segment-count { background: rgba(255, 255, 255, 0.22); }
.task-board { border: 0; background: transparent; box-shadow: none; }
.task-item {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--agri-line) !important;
    border-radius: 10px !important;
    margin-bottom: 0.6rem;
    background: var(--agri-milk);
    box-shadow: none;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}
.task-item:hover { border-color: #b9d2c5 !important; }
/* Overdue cards carry the same red accent as dashboard task cards */
.task-item.is-overdue { background: #fff8f7; border-color: #f0cecb !important; }
.task-item.is-overdue:hover { border-color: #e5b3b0 !important; }
.task-item.is-overdue::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: var(--agri-danger);
}
/* Completed cards fade back so pending work stands out */
.task-item.is-done .task-title {
    color: var(--agri-muted);
    text-decoration: line-through;
    text-decoration-color: rgba(114, 133, 124, 0.55);
}
.task-item.is-done .task-details,
.task-item.is-done .task-meta,
.task-item.is-done .task-cow-section { opacity: 0.72; }
/* Checkbox-style complete toggle: square with soft corners, never a round pill */
.task-check {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 25px;
    height: 25px;
    margin-top: 1px;
    padding: 0;
    color: #bccfc4;
    background: transparent;
    border: 2px solid #c4d6cb;
    border-radius: 7px;
    line-height: 1;
    cursor: pointer;
    transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.task-check i { font-size: 1rem; }
.task-check:hover {
    color: var(--agri-forest);
    background: #eef6f1;
    border-color: var(--agri-forest);
    transform: scale(1.05);
}
.task-check:focus-visible { outline: 2px solid var(--agri-forest); outline-offset: 2px; }
.task-check.is-done { color: #fff; background: var(--agri-forest); border-color: var(--agri-forest); }
.task-check.is-done:hover { background: #27835f; border-color: #27835f; }
.task-title { font-size: 1rem; color: var(--agri-text); }
.task-details { color: var(--agri-muted); }
.task-meta { display: flex; gap: .55rem; flex-wrap: wrap; margin-top: .7rem; }
.task-meta span { display: inline-flex; align-items: center; gap: .3rem; padding: .28rem .55rem; border-radius: 6px; background: #eef3f0; color: #4f6459; font-size: .75rem; font-weight: 600; }
.task-meta .task-overdue { background: #fbeceb; color: #b84143; }
.task-state { font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; color: var(--agri-success); }
.task-state.completed { color: var(--agri-muted); }
.task-empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin-bottom: 0.85rem;
    color: var(--agri-forest);
    background: #eef6f1;
    border-radius: 50%;
    font-size: 1.45rem;
}
/* Cow chips — shared by the task list cards and the task detail page */
.task-cow-section { margin-top: 0.75rem; }
.task-cow-heading {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.5rem;
    color: var(--agri-muted);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.task-cow-heading i { color: var(--agri-success); }
.task-cow-count {
    padding: 0.05rem 0.5rem;
    color: var(--agri-forest);
    background: #eaf4ee;
    border-radius: 99px;
    font-size: 0.68rem;
}
.task-cow-list { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.task-cow-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.65rem;
    color: var(--agri-text);
    background: var(--agri-milk);
    border: 1px solid var(--agri-line);
    border-radius: 99px;
    font-size: 0.78rem;
    font-weight: 650;
    text-decoration: none;
    transition: border-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
.task-cow-chip i { color: var(--agri-danger); font-size: 0.7rem; }
.task-cow-chip:hover { border-color: var(--agri-forest); color: var(--agri-forest); transform: translateY(-1px); }
.task-no-cows { color: var(--agri-muted); font-size: 0.82rem; font-style: italic; }
html[data-theme="dark"] .task-cow-count { background: #21352c; color: #b9d0c2; }

.consultant-form { max-width: 760px; border: 0; box-shadow: var(--agri-shadow); }
.consultant-form .form-label { font-size: .81rem; text-transform: uppercase; letter-spacing: .05em; font-weight: 700; color: #4f6459; }
.consultant-form .form-control, .consultant-form .form-select { border-radius: 8px; border-color: var(--agri-line); padding: .68rem .8rem; }
.consultant-form .form-control:focus, .consultant-form .form-select:focus { border-color: var(--agri-forest); box-shadow: 0 0 0 .18rem rgba(47, 143, 107, .13); }
.cow-picker-wrap { padding: .85rem; background: #f0f4f2; border: 1px solid var(--agri-line); border-radius: 8px; }
.cow-picker-help { margin-bottom: .65rem; color: #638075; font-size: .78rem; }
.cow-picker-help i { margin-right: .35rem; color: var(--agri-success); }
.cow-picker { display: grid; grid-template-columns: repeat(auto-fill, minmax(145px, 1fr)); gap: .45rem; }
.cow-picker > div { position: relative; }
.cow-picker input { position: absolute; opacity: 0; }
.cow-picker label { display: block; padding: .48rem .58rem; color: #45655a; background: #fff; border: 1px solid var(--agri-line); border-radius: 6px; cursor: pointer; font-size: .8rem; font-weight: 600; transition: all .15s ease; }
.cow-picker label:hover { border-color: #85af97; }
.cow-picker label:has(input:checked) { color: #fff; background: var(--agri-forest); border-color: var(--agri-forest); }
html[data-theme="dark"] .cow-picker-wrap { background: #172019; border-color: #35453e; }
html[data-theme="dark"] .cow-picker-help { color: #a3b8ad; }
html[data-theme="dark"] .cow-picker label { color: #c4d8cc; background: #1c2621; border-color: #35453e; }
html[data-theme="dark"] .cow-picker label:has(input:checked) { color: #fff; background: #33795c; border-color: #33795c; }


/* Consultant task form (add/edit) — grouped layout + live preview side rail */
.task-form-card { max-width: none; }
.task-form-group { margin: 0 0 1.5rem; }
.task-form-group:last-of-type { margin-bottom: .25rem; }
.task-form-legend {
    display: flex;
    align-items: center;
    gap: .45rem;
    float: none;
    width: 100%;
    margin: 0 0 .9rem;
    padding: 0;
    color: var(--agri-muted);
    font-size: .74rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .07em;
    text-transform: uppercase;
}
.task-form-legend i { color: var(--agri-forest); font-size: .95rem; }
.taskform-count-chip { padding: .1rem .55rem; color: var(--agri-forest); background: #eaf4ee; border-radius: 99px; font-size: .68rem; letter-spacing: .02em; }
.cow-picker-action { display: inline-flex; align-items: center; padding: .3rem .62rem; color: #4f6459; background: #fff; border: 1px solid var(--agri-line); border-radius: 7px; font-size: .72rem; font-weight: 700; transition: color .15s ease, border-color .15s ease, background-color .15s ease; }
.cow-picker-action:hover { color: var(--agri-forest); border-color: #85af97; background: #eef6f1; }
.taskform-required { color: var(--agri-danger); }
.task-form-footer { margin-top: 1.5rem; padding-top: 1.15rem; border-top: 1px solid var(--agri-line); }
.taskform-side { position: sticky; top: 1.1rem; display: grid; gap: 1.25rem; }
.taskform-side .section-card { margin-bottom: 0; }
.taskform-side-heading { display: flex; align-items: center; gap: .45rem; margin-bottom: .85rem; color: var(--agri-muted); font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.taskform-side-heading i { color: var(--agri-forest); font-size: .95rem; }
.task-preview { position: relative; overflow: hidden; padding: .95rem 1rem 1rem 1.15rem; background: #f0f4f2; border: 1px solid var(--agri-line); border-radius: 10px; }
.task-preview::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--agri-forest); }
.task-preview.is-overdue::before { background: var(--agri-danger); }
.task-preview .task-meta { margin-top: .7rem; }
.task-preview .task-meta span { background: #fff; }
.task-preview .task-meta b { font-weight: 600; }
.taskform-preview-note { margin: .75rem 0 0; color: var(--agri-muted); font-size: .72rem; }
.taskform-tips { display: grid; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.taskform-tips li { display: flex; gap: .55rem; align-items: flex-start; color: #4f6459; font-size: .8rem; line-height: 1.5; }
.taskform-tips i { flex-shrink: 0; margin-top: .12rem; color: var(--agri-forest); }
html[data-theme="dark"] .taskform-count-chip { background: #21352c; color: #b9d0c2; }
html[data-theme="dark"] .cow-picker-action { color: #c4d8cc; background: #1c2621; border-color: #35453e; }
html[data-theme="dark"] .cow-picker-action:hover { color: #dcefe3; background: #21352c; }
html[data-theme="dark"] .task-preview { background: #172019; border-color: #35453e; }
html[data-theme="dark"] .task-preview .task-meta span { background: #202b26; color: #b9d0c2; }
html[data-theme="dark"] .taskform-tips li { color: #a3b8ad; }
html[data-theme="dark"] .task-meta .task-overdue { background: #3a2624; color: #f2a9a6; }

@media (max-width: 767.98px) {
    .sidebar { width: 72px; flex-basis: 72px; padding-left: .7rem !important; padding-right: .7rem !important; }
    .sidebar .brand div, .sidebar .nav-link { font-size: 0; }
    .sidebar .brand { justify-content: center; }
    .sidebar .brand i { margin: 0 !important; }
    .sidebar .nav-link { justify-content: center; padding: .7rem; }
    .sidebar .nav-link i { margin: 0 !important; font-size: 1.15rem; }
    .sidebar .user-link strong, .sidebar .user-link::after { display: none; }
    .theme-toggle span:not(.theme-toggle-knob) { display: none; }
    .theme-toggle { justify-content: center; }
    .theme-toggle-knob { display: none; }
}
.btn-agri:hover {
    background-color: var(--agri-panel);
    border-color: var(--agri-panel);
    color: #fff;
}
.btn-agri-amber {
    background-color: var(--agri-amber);
    border-color: var(--agri-amber);
    color: #fff;
}
.btn-agri-amber:hover {
    background-color: var(--agri-amber-dark);
    border-color: var(--agri-amber-dark);
    color: #fff;
}

/* ---------- Tables ---------- */
.table-agri thead {
    background-color: var(--agri-panel);
    color: var(--agri-on-panel);
}
.table-agri thead th {
    font-weight: 600;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border: none;
}
.table-agri tbody tr:hover {
    background-color: rgba(217, 143, 63, 0.07);
}

.badge-reorder {
    background-color: var(--agri-danger);
}
.badge-active {
    background-color: var(--agri-success);
}
.badge-removed {
    background-color: var(--agri-muted);
}

.badge-amber {
    background-color: var(--agri-amber);
}

/* Horizontal data bars used inside report tables */
.data-bar-track {
    height: 7px;
    max-width: 160px;
    border-radius: 99px;
    background: #eef3f0;
    overflow: hidden;
}
.data-bar-fill {
    height: 100%;
    border-radius: 99px;
    background: var(--agri-forest);
}
.data-bar-fill.amber { background: var(--agri-amber); }
.data-bar-fill.danger { background: var(--agri-danger); }
html[data-theme="dark"] .data-bar-track { background: #202b26; }

/* Report index cards */
.report-card { transition: border-color 0.15s ease, transform 0.15s ease; }
a:hover .report-card { border-color: #85af97; transform: translateY(-2px); }
a:hover .report-card h5 { color: var(--agri-forest); }

/* ---------- Login page ---------- */
.login-wrapper {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--agri-panel);
}
.login-card {
    background: var(--agri-milk);
    border-radius: 10px;
    padding: 2.5rem;
    width: 100%;
    max-width: 400px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}
.login-card .brand-mark {
    color: var(--agri-forest);
    font-weight: 700;
    font-size: 1.6rem;
}

/* Dashboard task cards are intentionally distinct from data and alert lists. */
.dashboard-tasks-card { border-color: var(--agri-line); }
.dashboard-task-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; }
.dashboard-task-item { position: relative; display: flex; flex-direction: column; min-height: 190px; padding: 1.1rem; overflow: hidden; background: var(--agri-milk); border: 1px solid var(--agri-line); border-radius: 10px; box-shadow: none; transition: border-color .15s ease; }
.dashboard-task-item::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--agri-forest); }
.dashboard-task-item:hover { border-color: #b9d2c5; }
.dashboard-task-item.is-overdue { background: #fff8f7; border-color: #f0cecb; }
.dashboard-task-item.is-overdue::before { background: var(--agri-danger); }
.dashboard-task-topline { display: flex; justify-content: space-between; align-items: center; gap: .5rem; margin-bottom: .65rem; }
.dashboard-task-label { color: #527469; font-size: .67rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.dashboard-task-alert { padding: .22rem .45rem; color: #b84143; background: #fbeceb; border-radius: 6px; font-size: .66rem; font-weight: 700; text-transform: uppercase; }
.dashboard-task-title { margin: 0; color: var(--agri-text); font-size: 1rem; font-weight: 700; }
.dashboard-task-title-link { color: inherit; text-decoration: none; transition: color .15s ease; }
.dashboard-task-title-link:hover { color: var(--agri-forest); }
.dashboard-task-description { margin: .42rem 0 .8rem; color: #6a8076; font-size: .82rem; line-height: 1.45; }
.dashboard-task-details { display: grid; gap: .35rem; margin-top: auto; color: #527469; font-size: .76rem; }
.dashboard-task-details span { display: flex; align-items: center; gap: .4rem; }
.dashboard-task-details .due-danger { color: #bd4548; font-weight: 700; }
.dashboard-task-footer { display: flex; align-items: center; justify-content: space-between; gap: .7rem; margin-top: .9rem; padding-top: .75rem; border-top: 1px solid var(--agri-line); }
.dashboard-task-footer .btn { border-radius: 6px; font-size: .74rem; font-weight: 700; }

/* General inventory */
.general-category-panel { padding: .8rem; }
.general-category-link { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .62rem .7rem; color: var(--agri-text); border-radius: 8px; text-decoration: none; font-size: .87rem; font-weight: 600; }
.general-category-link:hover { background: #eef3f0; color: var(--agri-forest); }
.general-category-link.active { color: #fff; background: var(--agri-forest); }
.general-category-link small { min-width: 1.45rem; padding: .1rem .35rem; color: inherit; background: rgba(127, 166, 144, .14); border-radius: 6px; text-align: center; }
.general-category-link.active small { background: rgba(255,255,255,.16); }
.general-item-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; }
.general-item-card { display: flex; flex-direction: column; min-height: 205px; padding: 1rem; background: var(--agri-milk); border: 1px solid var(--agri-line); border-radius: 10px; box-shadow: none; transition: border-color .15s ease; }
.general-item-card:hover { border-color: #b9d2c5; }
.general-item-card h5 { margin: .8rem 0 .55rem; color: var(--agri-text); font-size: 1rem; font-weight: 700; }
.general-item-category { color: #56756a; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.general-item-quantity { margin-bottom: .65rem; color: var(--agri-forest); font-size: 1.5rem; font-weight: 700; line-height: 1; }
.general-item-quantity span { color: var(--agri-muted); font-size: .75rem; font-weight: 600; }
.general-condition { padding: .2rem .45rem; border-radius: 6px; font-size: .65rem; font-weight: 700; text-transform: uppercase; white-space: nowrap; }
.general-condition.good { color: #187250; background: #e6f7ed; }
.general-condition.needs_repair { color: #a55f16; background: #fff2dd; }
.general-condition.retired { color: #6f7874; background: #edf0ee; }
html[data-theme="dark"] .general-category-link { color: var(--agri-text); }
html[data-theme="dark"] .general-category-link:hover { background: #202b26; }
html[data-theme="dark"] .general-item-card { background: #171f1c; border-color: #35453e; }
html[data-theme="dark"] .general-item-category { color: #a3b8ad; }
html[data-theme="dark"] .general-condition.good { color: #8be1b3; background: #1a3c2c; }
html[data-theme="dark"] .general-condition.needs_repair { color: #f2c17f; background: #45361d; }
html[data-theme="dark"] .general-condition.retired { color: #c0cbc4; background: #2f3934; }