:root{--ink:#152232;--accent:#8a1f1f;--paper:#f5f7f8;--line:#dfe4e8;--muted:#66727d;--white:#fff;--ok:#176b45;--warn:#9b6210;--danger:#a52a2a}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.45}.app-shell{min-height:100vh}.sidebar{background:var(--ink);padding:18px;display:flex;flex-direction:column;gap:12px}.brand{display:block;background:#fff;border-radius:8px;padding:8px}.brand img{width:170px;max-width:100%;display:block}.sidebar nav{display:grid;gap:4px}.nav-item{color:#e7ebef;text-decoration:none;padding:9px 10px;border-radius:6px}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.12);color:#fff}.app-main{min-width:0}.topbar{background:#fff;border-bottom:1px solid var(--line);padding:14px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px}.topbar>div:first-child{display:flex;flex-direction:column}.topbar span{color:var(--muted);font-size:.85rem}.user-chip{display:flex;align-items:center;gap:8px}.user-chip>span{width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center}.page-content{padding:20px;display:grid;gap:16px}.ag-component{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px;min-width:0}.ag-component h1,.ag-component h2{margin:0 0 8px}.ag-component h2{font-size:1rem}.page-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.page-header p{margin:0;color:var(--muted)}.page-meta{color:var(--muted)}.kv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.kv{border:1px solid var(--line);border-radius:7px;padding:9px;display:flex;flex-direction:column}.kv span{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.empty-state{padding:20px;text-align:center;color:var(--muted)}.empty-state strong{color:var(--ink)}.pagination{display:flex;justify-content:space-between;color:var(--muted)}.action-message{margin:16px 20px 0;background:#eaf5ee;border:1px solid #cfe5d7;border-radius:8px;padding:10px 14px}.notice{padding:12px;background:#f4f6f8;border-left:4px solid var(--ink);margin:12px 0}.notice.needs-spec{border-left-color:var(--warn);background:#fff8e8}.integration-config form,.auth-card form,.user-form,.branding-form{display:grid;gap:12px}.integration-config label,.auth-card label,.user-form label,.branding-form label{display:grid;gap:5px;font-weight:600}.integration-config input,.auth-card input,.user-form input,.user-form select,.branding-form input,.branding-form textarea,select{padding:10px;border:1px solid #bcc5cc;border-radius:6px;background:#fff;color:var(--ink)}button,.button{border:0;border-radius:6px;padding:10px 14px;background:var(--ink);color:#fff;cursor:pointer;text-decoration:none;display:inline-block;width:max-content}button:hover,.button:hover{filter:brightness(1.08)}.inline-form{display:flex!important;flex-wrap:wrap;gap:8px!important;margin-top:10px}.auth-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:var(--paper)}.auth-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px}.auth-card .auth-logo{width:190px;display:block;margin:0 auto 18px}.error{background:#fff0f0;border:1px solid #f0c9c9;padding:10px;border-radius:6px;color:#8b2020}.success{background:#edf8f1;border:1px solid #cde6d6;padding:10px;border-radius:6px;color:#176b45}table{width:100%;border-collapse:collapse}th,td{text-align:left;border-bottom:1px solid var(--line);padding:9px;vertical-align:top}th{font-size:.78rem;text-transform:uppercase;color:var(--muted)}footer{padding:20px;color:var(--muted);font-size:.8rem}.report-format{display:flex;gap:6px;flex-wrap:wrap}.user-actions{display:flex;gap:6px;flex-wrap:wrap}
@media(min-width:900px){.app-shell{display:grid;grid-template-columns:230px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh}.page-content{grid-template-columns:repeat(12,minmax(0,1fr))}.page-content>.ag-component{grid-column:span 12}.page-content>.ag-component:has(.kv-grid){grid-column:span 12}}

/* Production shell and form typography refinements */
.ag-component h1{
    font-size:1.35rem;
    font-weight:600;
    line-height:1.25;
}
.ag-component h2{
    font-size:1rem;
    font-weight:600;
    line-height:1.3;
    color:var(--ink);
}
.user-form label,
.integration-config label,
.auth-card label,
.branding-form label{
    font-size:.84rem;
    font-weight:400;
    color:var(--muted);
}
.user-form input,
.user-form select,
.integration-config input,
.integration-config select,
.auth-card input,
.branding-form input,
.branding-form textarea{
    font-size:.95rem;
    font-weight:400;
    color:var(--ink);
}
.kv strong{
    font-weight:400;
    color:var(--ink);
}

@media(min-width:900px){
    .app-main{margin-left:0;width:100%;max-width:none;}
}

/* System administration lifecycle / subscription controls */
.button.secondary{background:#e8edf1;color:var(--ink)}
.admin-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end}
.admin-grid button{grid-column:1/-1}
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 14px}
.feature-grid .check{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:.9rem}
.admin-override-notice{margin:14px 20px 0;padding:10px 14px;border:1px solid #e5c883;background:#fff8e7;border-radius:8px;display:flex;gap:8px;flex-wrap:wrap;align-items:baseline}
.admin-override-notice strong{font-size:.9rem;font-weight:600}.admin-override-notice span{font-size:.88rem;color:#6d5620}
.ag-component hr{border:0;border-top:1px solid var(--line);margin:18px 0}
.ag-component h3{font-size:.92rem;font-weight:600;margin:0 0 10px;color:var(--ink)}

/* Brand shell: formal Agri AI identity without changing farm semantic colours. */
.auth-card h1,
.sidebar + .app-main .topbar strong{
    font-family:"Staatliches",Impact,sans-serif;
    font-weight:400;
    letter-spacing:.02em;
    color:var(--ink);
}
.auth-card h1{font-size:1.8rem;line-height:1;margin:0 0 18px}
.auth-card .auth-logo{width:220px;max-width:72%;height:auto;margin-bottom:24px}
.sidebar{background:linear-gradient(180deg,#101b28,var(--ink))}
.sidebar .brand{padding:10px;background:#fff;border:1px solid rgba(255,255,255,.12)}
.sidebar .nav-item.active{box-shadow:inset 3px 0 0 var(--accent);background:rgba(255,255,255,.10)}
.user-chip>span{background:var(--accent)}

/* Login password visibility control */
.auth-card .password-field{position:relative;display:block}
.auth-card .password-field input{width:100%;padding-right:44px}
.auth-card .password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:36px;height:36px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--muted);display:grid;place-items:center}
.auth-card .password-toggle:hover{background:transparent;color:var(--ink);filter:none}.auth-card .password-toggle:focus-visible{background:transparent;color:var(--ink);filter:none;outline:2px solid currentColor;outline-offset:1px}
.auth-card .password-toggle svg{width:20px;height:20px;display:block}.auth-card .password-toggle .eye-visible{display:none}.auth-card .password-toggle[aria-pressed="true"] .eye-hidden{display:none}.auth-card .password-toggle[aria-pressed="true"] .eye-visible{display:block}

/* Internal R&D impact and product-usage administration */
.admin-page{align-content:start}
.admin-section-heading{display:flex;flex-direction:column;gap:14px;margin-bottom:16px}
.admin-section-heading h1,.admin-section-heading h2{margin-bottom:4px}
.admin-section-heading p{margin:0;color:var(--muted)}
.admin-impact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.admin-impact-card{border:1px solid var(--line);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:5px;min-width:0}
.admin-impact-card span{font-size:.78rem;color:var(--muted)}
.admin-impact-card strong{font-size:1.35rem;font-weight:600;line-height:1.1;color:var(--ink);overflow-wrap:anywhere}
.admin-subheading{margin-top:22px!important}
.admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.admin-period-form{display:flex;align-items:end;gap:8px;flex-wrap:wrap}
.admin-period-form label{display:grid;gap:4px;font-size:.76rem;color:var(--muted)}
.admin-period-form input{height:var(--agri-control-height,36px);min-height:var(--agri-control-height,36px);padding:0 8px;border:1px solid #bcc5cc;border-radius:6px;color:var(--ink);background:#fff;box-sizing:border-box}
.table-scroll{overflow:auto;max-width:100%}
.admin-usage-status{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:.75rem;background:#eef2f5;color:var(--muted)}
.admin-usage-status.used{background:#e8f5ed;color:#176b45}.admin-usage-status.unused{background:#fff3df;color:#8d5a09}
@media(min-width:700px){.admin-impact-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-section-heading{flex-direction:row;justify-content:space-between;align-items:flex-start}}
@media(min-width:1100px){.admin-impact-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}


/* Public authentication/product shell */
.auth-panel{width:100%;display:grid;place-items:center}
.auth-page-split{padding:0;display:grid;place-items:stretch;background:#fff}
.auth-page-split .auth-panel{padding:28px;background:var(--paper)}
.auth-page-split .auth-card{width:min(460px,100%);box-shadow:0 10px 34px rgba(16,27,40,.06)}
.auth-marketing{display:flex;align-items:center;padding:36px 28px;background:linear-gradient(145deg,#101b28 0%,#152232 58%,#243549 100%);color:#fff;position:relative;overflow:hidden}
.auth-marketing:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-150px;bottom:-150px;background:rgba(138,31,31,.34)}
.auth-marketing-inner{position:relative;z-index:1;max-width:660px;margin:0 auto}
.auth-eyebrow{display:inline-block;margin-bottom:14px;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#dce4eb}
.auth-marketing h2{font-family:"Staatliches",Impact,sans-serif;font-size:clamp(2.25rem,7vw,4.6rem);font-weight:400;line-height:.96;letter-spacing:.01em;margin:0 0 18px;max-width:700px}
.auth-marketing p{font-size:1.02rem;line-height:1.65;color:#dce4eb;max-width:610px;margin:0 0 24px}
.auth-marketing ul{list-style:none;padding:0;margin:0 0 28px;display:grid;gap:11px}
.auth-marketing li{position:relative;padding-left:26px;color:#f2f5f7}
.auth-marketing li:before{content:"✓";position:absolute;left:0;top:0;color:#fff;font-weight:700}
.auth-marketing-cta{display:inline-flex;align-items:center;gap:12px;padding:11px 15px;border:1px solid rgba(255,255,255,.5);border-radius:7px;color:#fff;text-decoration:none;font-weight:700;background:rgba(255,255,255,.04)}
.auth-marketing-cta:hover{background:rgba(255,255,255,.1)}
.auth-intro{margin:-6px 0 18px;color:var(--muted)}
.auth-links{margin:10px 0 0}
.auth-form-grid{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:760px){.auth-form-grid{grid-template-columns:1fr 1fr}}
@media(min-width:900px){.auth-page-split{grid-template-columns:minmax(420px,1.12fr) minmax(430px,.88fr);min-height:100vh}.auth-page-split .auth-panel{padding:48px}.auth-marketing{padding:64px clamp(40px,6vw,96px)}}

/* Auth split revision: TradeBuild-style product/auth shell */
.auth-page-split{grid-template-columns:1fr;background:#fff}
.auth-page-split .auth-panel{background:#f7f8fa;padding:42px 24px;display:grid;align-items:center;justify-items:center}
.auth-page-split .auth-card{width:min(430px,100%);padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}
.auth-page-split .auth-card .auth-logo{display:none}
.auth-page-split .auth-card h1{font-family:Arial,Helvetica,sans-serif;font-size:2rem;font-weight:700;letter-spacing:-.02em;line-height:1.08;margin:0 0 8px;text-transform:none}
.auth-page-split .auth-card h1:after{content:" to Agri AI"}
.auth-page-split .auth-card form{gap:14px}
.auth-page-split .auth-card label{font-size:.82rem;color:var(--ink);font-weight:700}
.auth-page-split .auth-card input{height:48px;border-color:#ccd4db;border-radius:9px;padding:0 14px;background:#fff}
.auth-page-split .auth-card form>button{width:100%;height:48px;border-radius:9px;font-weight:700;background:#101b28}
.auth-page-split .auth-card .auth-links{margin-top:4px;font-size:.9rem}
.auth-page-split .auth-card .password-toggle{right:8px;width:32px;height:32px;border-radius:0;background:transparent!important;box-shadow:none!important}
.auth-page-split .auth-card .password-toggle:hover,.auth-page-split .auth-card .password-toggle:active{background:transparent!important;filter:none!important}
.auth-page-split .auth-card .password-toggle svg[hidden]{display:none!important}

.auth-marketing{min-height:46vh;padding:28px 24px;background:linear-gradient(145deg,#10212c 0%,#173340 58%,#1f5060 100%);display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;color:#fff;position:relative;overflow:hidden}
.auth-marketing:after{display:none}
.auth-brand{display:inline-flex;align-items:center;width:max-content;text-decoration:none}
.auth-brand-mark{display:grid;place-items:center;background:#fff;border-radius:10px;padding:10px 12px;box-shadow:0 8px 30px rgba(0,0,0,.08)}
.auth-brand-mark img{display:block;width:160px;height:auto}
.auth-marketing-copy{max-width:720px;margin-top:90px}
.auth-eyebrow{margin-bottom:16px;font-size:.74rem;letter-spacing:.14em;color:#d5e1e7}
.auth-marketing h2{font-family:Arial,Helvetica,sans-serif;font-size:clamp(2.6rem,5.5vw,5.2rem);font-weight:700;letter-spacing:-.045em;line-height:.96;max-width:760px;margin:0 0 22px}
.auth-marketing p{max-width:670px;font-size:1.04rem;line-height:1.6;color:#e0e8ec;margin:0 0 30px}
.auth-marketing-join{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;font-size:.92rem;color:#dce6eb}
.auth-marketing-join a{color:#fff;text-decoration:none;font-weight:700;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:2px}
.auth-marketing-join a:hover{border-bottom-color:#fff}

@media(min-width:900px){
  .auth-page-split{grid-template-columns:minmax(0,1.58fr) minmax(430px,1fr);min-height:100vh}
  .auth-marketing{min-height:100vh;padding:42px 44px 54px}
  .auth-marketing-copy{margin-top:auto;margin-bottom:8vh}
  .auth-page-split .auth-panel{padding:64px clamp(44px,6vw,96px);justify-items:start}
  .auth-page-split .auth-card{width:min(460px,100%)}
}
.auth-signin-intro{margin:0 0 26px;color:var(--muted);font-size:.96rem;line-height:1.5}

/* Shared standard action sizing for non-farm/admin shells. Auth pages are intentionally excluded. */
.app-shell form button:not(.password-toggle):not(.text-link-button):not(.report-action-btn):not(.btn-close),
.app-shell input[type="submit"],
.app-shell input[type="button"],
.app-shell input[type="reset"],
.app-shell .button,
.app-shell .btn-agri,
.app-shell .btn:not(.btn-close),
.app-shell .dropdown-action-toggle {
    box-sizing: border-box;
    min-height: var(--agri-control-height, 34px);
    height: var(--agri-control-height, 34px);
    padding-top: 0;
    padding-bottom: 0;
    align-items: center;
    justify-content: center;
    line-height: 1.2;
    font-size: 10px;
    font-weight: 600;
    vertical-align: middle;
}
.app-shell .button,
.app-shell .btn,
.app-shell .btn-agri,
.app-shell .dropdown-action-toggle {
    display: inline-flex;
}

/* Standard component heading rhythm: one source of truth for rendered blocks. */
:root{
    --agri-component-heading-support-gap:4px;
    --agri-component-heading-content-gap:14px;
}
.ag-component > h1,
.ag-component > h2{
    margin:0 0 10px;
}
.ag-component > h1 + p,
.ag-component > h2 + p,
.ag-component > h1 + .page-meta,
.ag-component > h2 + .page-meta{
    margin-top:-6px;
    margin-bottom:var(--agri-component-heading-content-gap);
}
.ag-component > .admin-section-heading{
    margin-bottom:var(--agri-component-heading-content-gap);
}
.admin-section-heading > div:first-child > h1,
.admin-section-heading > div:first-child > h2{
    margin:0;
}
.admin-section-heading > div:first-child > h1 + p,
.admin-section-heading > div:first-child > h2 + p,
.admin-section-heading > div:first-child > h1 + .page-meta,
.admin-section-heading > div:first-child > h2 + .page-meta{
    margin:var(--agri-component-heading-support-gap) 0 0;
}
