html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

h1:focus {
    outline: none;
}

a {
    color: #0071c1;
}

.content {
    padding-top: 1.1rem;
}

#blazor-error-ui {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.boot-screen { align-items:center; background:radial-gradient(circle at 50% 15%,#2e7b50 0%,#1d5b3b 30%,#0c2b1c 100%); box-sizing:border-box; color:#fff; display:flex; flex-direction:column; gap:1.7rem; justify-content:center; min-height:100vh; padding:2rem 1.5rem; text-align:center; }
.boot-branding { align-items:center; animation:boot-fade-in .8s ease-out both; background:#ffffffee; border:1px solid #ffffffb8; border-radius:1rem; box-shadow:0 1rem 3rem #04160d55; display:flex; gap:1rem; padding:.8rem 1.1rem; }
.boot-branding img { height:auto; max-height:3.5rem; object-fit:contain; width:auto; }.boot-branding img:first-child { max-width:9rem; }.boot-branding img:last-child { max-width:10rem; }.boot-branding span { background:#c8d7cc; height:2.5rem; width:1px; }
.boot-copy { animation:boot-fade-in .8s .12s ease-out both; display:grid; gap:.35rem; }.boot-eyebrow { color:#b9e7c9; font-size:.78rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }.boot-copy strong { font-size:clamp(1.5rem,4vw,2rem); font-weight:600; letter-spacing:-.02em; }.boot-copy > span:last-child { color:#d3e7d9; font-size:.95rem; }
.boot-progress-wrap { animation:boot-fade-in .8s .22s ease-out both; height:8rem; position:relative; width:8rem; }
.loading-progress { display:block; height:8rem; inset:0; position:absolute; width:8rem; }

    .loading-progress circle {
        fill: none;
        stroke: #e0e0e0;
        stroke-width: 0.6rem;
        transform-origin: 50% 50%;
        transform: rotate(-90deg);
    }

        .loading-progress circle:last-child {
            stroke: #a8e6ba;
            stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%;
            transition: stroke-dasharray 0.05s ease-in-out;
        }

.loading-progress-text { align-items:center; display:flex; font-size:1.1rem; font-weight:700; inset:0; justify-content:center; position:absolute; }

    .loading-progress-text:after {
        content: var(--blazor-load-percentage-text, "Loading");
    }

.boot-footer { animation:boot-fade-in .8s .3s ease-out both; color:#a9cdb4; font-size:.78rem; letter-spacing:.04em; }
@keyframes boot-fade-in { from { opacity:0; transform:translateY(.6rem); } to { opacity:1; transform:none; } }
@media (max-width: 480px) { .boot-branding { gap:.65rem; padding:.7rem; }.boot-branding img:first-child { max-width:7.2rem; }.boot-branding img:last-child { max-width:7.8rem; } }

code {
    color: #c02d76;
}

.page-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; margin-bottom:2rem; }
.eyebrow { color:#2f7d53; font-size:.75rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; margin:0 0 .4rem; }
.muted { color:#667085; }
.button { border:0; border-radius:.55rem; display:inline-block; font-weight:600; padding:.7rem 1rem; text-decoration:none; cursor:pointer; }
.button-primary { background:#236b45; color:#fff; }.button-ghost { background:#edf5ef; color:#236b45; }.button-danger { background:#b42318; color:#fff; }
.jas-access-denied{align-items:flex-start;background:#fff;border:1px solid #f0d1cc;border-left:4px solid #b42318;border-radius:1rem;box-shadow:0 8px 24px #183b2a0d;display:flex;gap:1rem;margin:1.25rem 0;padding:clamp(1.25rem,3vw,2rem)}.jas-access-denied-icon{align-items:center;background:#fff0ee;border-radius:50%;color:#b42318;display:flex;flex:0 0 auto;height:3rem;justify-content:center;width:3rem}.jas-access-denied-icon .rz-icon{font-size:1.4rem}.jas-access-denied h2{color:#3f241f;font-size:1.2rem;margin:.1rem 0 .45rem}.jas-access-denied p:not(.eyebrow){color:#6f514b;margin:0;max-width:46rem}.jas-access-denied-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.1rem}.jas-access-denied-actions .button{align-items:center;display:inline-flex;gap:.4rem}

/* Shared design language for all report filter pages. */
.jas-report-filter-page{display:grid;gap:1rem}.jas-report-filter-toolbar{display:flex;justify-content:flex-start}.jas-report-filter-toolbar .button,.jas-report-filter-actions .button{align-items:center;display:inline-flex;gap:.4rem;text-decoration:none}.jas-report-filter-card{background:#fff;border:1px solid #dce8df;border-radius:1rem;box-shadow:0 8px 25px rgba(20,74,42,.06);padding:1.25rem}.jas-report-filter-heading{border-bottom:1px solid #e2ebe5;margin-bottom:1.1rem;padding-bottom:1rem}.jas-report-filter-heading .eyebrow{margin:0 0 .25rem}.jas-report-filter-heading h2{color:#173b27;font-size:1.15rem;margin:0}.jas-report-filter-heading>p:last-child:not(.eyebrow){color:#607568;font-size:.8rem;margin:.35rem 0 0}.jas-report-filter-grid{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.jas-report-filter-grid label{color:#2a4e39;display:grid;font-size:.8rem;font-weight:700;gap:.35rem;min-width:0}.jas-report-filter-grid input,.jas-report-filter-grid select{background:#fbfefc;border:1px solid #bfd4c4;border-radius:.5rem;box-sizing:border-box;color:#173b27;font:inherit;font-weight:500;min-height:2.65rem;min-width:0;padding:.5rem .65rem;width:100%}.jas-report-filter-grid input:focus,.jas-report-filter-grid select:focus{border-color:#278154;box-shadow:0 0 0 3px rgba(39,129,84,.12);outline:0}.jas-report-filter-grid .jas-report-filter-wide{grid-column:span 2}.jas-report-inline-field{align-items:end;display:grid;gap:.55rem;grid-template-columns:minmax(0,1fr) auto}.jas-report-inline-field .button{min-height:2.65rem;white-space:nowrap}.jas-report-filter-help{color:#718177;font-size:.7rem;font-weight:500}.jas-report-filter-error{align-items:center;background:#fff5f3;border:1px solid #f1d5cf;border-radius:.6rem;color:#9d4037;display:flex;gap:.45rem;margin:1rem 0 0;padding:.75rem .85rem}.jas-report-filter-actions{border-top:1px solid #e2ebe5;display:flex;gap:.65rem;justify-content:flex-end;margin-top:1.2rem;padding-top:1rem}
.inventory-search-field,.inventory-date-row,.jas-report-date-row{grid-column:1/-1}.inventory-date-row,.jas-report-date-row{display:grid;gap:1rem;grid-template-columns:repeat(4,minmax(0,1fr))}.jas-report-inline-control{align-items:end;display:grid;gap:.55rem;grid-column:span 2;grid-template-columns:minmax(0,1fr) auto;min-width:0}.jas-report-inline-control .button{min-height:2.65rem;white-space:nowrap}
.jas-report-filter-grid .rz-form-field{min-width:0;width:100%}.jas-report-filter-grid .rz-form-field-content{min-width:0}.jas-report-filter-grid .rz-dropdown,.jas-report-filter-grid .rz-calendar,.jas-report-filter-grid .rz-inputtext,.jas-report-filter-grid textarea{box-sizing:border-box;width:100%}
.jas-report-filter-loading{align-items:center;background:#fff;border:1px solid #dce8df;border-radius:1rem;box-shadow:0 8px 24px #183b2a0d;display:flex;gap:.85rem;min-height:8rem;padding:clamp(1.25rem,3vw,2rem)}.jas-report-filter-loading div{display:grid;gap:.2rem}.jas-report-filter-loading strong{color:#214b38;font-size:.95rem}.jas-report-filter-loading div span{color:#6f7f8c;font-size:.8rem}.jas-report-filter-loading-spinner{animation:jas-report-filter-loading-spin .8s linear infinite;border:3px solid #dcefe5;border-radius:50%;border-top-color:#24824f;display:block;height:1.8rem;width:1.8rem}@keyframes jas-report-filter-loading-spin{to{transform:rotate(360deg)}}
@media(max-width:900px){.jas-report-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.inventory-date-row,.jas-report-date-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.jas-report-filter-card{padding:1rem}.jas-report-filter-grid{grid-template-columns:minmax(0,1fr)}.jas-report-filter-grid .jas-report-filter-wide{grid-column:auto}.jas-report-inline-field,.jas-report-inline-control{align-items:stretch;grid-column:auto;grid-template-columns:1fr}.jas-report-filter-actions{align-items:stretch;flex-direction:column-reverse}.jas-report-filter-actions .button{justify-content:center;width:100%}.inventory-date-row,.jas-report-date-row{grid-template-columns:minmax(0,1fr)}}
.table-card, .profile-card { background:#fff; border:1px solid #e5e7eb; border-radius:1rem; box-shadow:0 8px 24px #183b2a0d; }
.filter-bar input { border:1px solid #cbd5d0; border-radius:.5rem; padding:.75rem; }
.notice { background:#fff8df; border:1px solid #ead590; border-radius:.65rem; margin-bottom:1.5rem; padding:1rem; }
.filter-bar { display:flex; flex-wrap:wrap; gap:.75rem; margin-bottom:1.25rem; }.filter-bar input { flex:1; min-width:15rem; }
.table-card { overflow:auto; } table { border-collapse:collapse; width:100%; } th, td { padding:1rem; text-align:left; white-space:nowrap; } th { background:#f4f8f5; color:#475467; font-size:.8rem; text-transform:uppercase; } tr+tr { border-top:1px solid #edf0ee; } td a { color:#236b45; font-weight:600; }.status { background:#edf5ef; border-radius:99px; color:#236b45; display:inline-block; padding:.25rem .6rem; font-size:.8rem; font-weight:600; }.profile-card { align-items:center; display:flex; justify-content:space-between; margin-bottom:1.25rem; padding:1.5rem; }.profile-card h2 { margin:.25rem 0; }
.login-page { align-items:center; background:#16251d url('/images/jas-login-hero.jpg') center/cover no-repeat; display:flex; justify-content:flex-end; min-height:100vh; overflow:auto; padding:clamp(1.25rem,4vw,4rem) clamp(1.25rem,7vw,8rem); position:fixed; inset:0; z-index:10; }
.login-page::before { background:linear-gradient(90deg,#09150c22 0%,#09150c55 42%,#09150ccc 100%); content:""; inset:0; position:absolute; }.login-panel { background:#fffffff2; border:1px solid #ffffffb8; border-radius:1.25rem; box-shadow:0 20px 70px #00000045; display:grid; gap:1rem; max-width:25rem; padding:clamp(1.5rem,3vw,2.5rem); position:relative; width:100%; }.login-panel label { display:grid; gap:.35rem; font-weight:600; }.login-panel input { border:1px solid #cbd5d0; border-radius:.5rem; padding:.75rem; }.login-error { background:#fff0f0; border:1px solid #efb7b7; border-radius:.5rem; color:#a51d2d; padding:.7rem; }
@media (max-width: 700px) { .login-page { align-items:flex-end; background-position:35% center; justify-content:center; padding:1rem; }.login-page::before { background:linear-gradient(180deg,#09150c22 0%,#09150c66 38%,#09150ce6 100%); }.login-panel { max-width:30rem; } }
.login-logos { align-items:center; display:flex; gap:.85rem; margin-bottom:.25rem; }.login-logos img { height:auto; max-height:3.35rem; object-fit:contain; width:auto; }.login-logos img:first-child { max-width:9.2rem; }.login-logos img:last-child { max-width:10rem; }.login-logos span { background:#d5dfd7; height:2.35rem; width:1px; }
@media (max-width: 380px) { .login-logos { gap:.55rem; }.login-logos img:first-child { max-width:7.4rem; }.login-logos img:last-child { max-width:8rem; } }
.login-submit:disabled { cursor:wait; opacity:.82; }.login-submit-content { align-items:center; display:inline-flex; gap:.55rem; justify-content:center; }.login-spinner { animation:login-spin .75s linear infinite; border:2px solid #ffffff66; border-radius:50%; border-top-color:#fff; display:inline-block; height:1rem; width:1rem; }@keyframes login-spin { to { transform:rotate(360deg); } }
.login-panel form { display:grid; gap:1rem; }.radzen-login-field { position:relative; }.radzen-login-field .rz-form-field { width:100%; }.radzen-login-field .rz-textbox, .radzen-login-field .rz-password { width:100%; }.radzen-login-field .rz-form-field-content { min-height:3.25rem; }.password-input-wrap { position:relative; width:100%; }.password-input-wrap input { padding-right:3.5rem !important; }.password-toggle { align-items:center; background:transparent; border:0; border-radius:.4rem; color:#236b45; cursor:pointer; display:flex; font-size:1.15rem; height:2.4rem; justify-content:center; padding:0; position:absolute; right:.5rem; top:50%; transform:translateY(-50%); width:2.4rem; z-index:2; }.password-toggle:hover { background:#edf5ef; }.password-toggle:focus-visible { outline:2px solid #236b45; outline-offset:2px; }.login-submit { width:100%; }
/* Farmer query and registered-farmer listing */
.farmer-query-card { background:#fff; border:1px solid #dfe3e8; box-shadow:0 8px 24px #183b2a0d; }
.farmer-query-card { border-radius:1rem; border-top:3px solid #2c7d54; padding:1rem 1rem .85rem; }
.farmer-query-grid { display:grid; gap:.8rem 1rem; grid-template-columns:repeat(3,minmax(0,1fr)); }
.farmer-query-date-group { display:grid; gap:.8rem 1rem; grid-column:1 / -1; grid-template-columns:repeat(3,minmax(0,1fr)); min-width:0; }
.farmer-query-date { min-width:0; }
.farmer-query-date .rz-form-field-content,.farmer-query-date .rz-datepicker { width:100%; }
.farmer-query-operator { min-width:0; width:100%; }
.farmer-query-operator .rz-form-field-content,.farmer-query-operator .rz-dropdown { min-height:2.55rem; width:100%; }
.farmer-query-field { min-width:0; width:100%; }
.farmer-query-field .rz-form-field-content,.farmer-query-field .rz-textbox,.farmer-query-field .rz-dropdown,.farmer-query-field .rz-datepicker { width:100%; }
.farmer-query-field .rz-form-field-content,.farmer-query-date .rz-form-field-content { min-height:2.55rem; }
.farmer-query-actions { align-items:center; border-top:1px solid #e4e9e6; display:flex; gap:.65rem; justify-content:flex-end; margin-top:1rem; padding-top:.7rem; }
.farmer-query-actions .button { align-items:center; display:inline-flex; gap:.35rem; padding:.6rem .9rem; }
.query-reset { background:#edf5ef; }
.query-search { min-width:6.5rem; justify-content:center; }
.farmer-result-photo { align-items:center; background:#d9e5e4; border-radius:50%; display:flex; height:3.2rem; justify-content:center; overflow:hidden; width:3.2rem; }
.farmer-result-photo img { height:100%; object-fit:cover; width:100%; }
.farmer-result-photo .rz-icon { color:#527579; font-size:1.4rem; }
@media (max-width:850px) { .farmer-query-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:650px) { .farmer-query-grid,.farmer-query-date-group { grid-template-columns:1fr; } .farmer-query-card { padding:1rem; } }
