/* NovinFarm workspace v2. Shared source: design/novinfarm-workspace.css. */
:root {
  --nf-brand:#166451; --nf-ink:#172b26; --nf-muted:#536b62;
  --nf-canvas:#f4f7f5; --nf-surface:#fff; --nf-line:#dce6e0;
  --nf-tint:#e8f2ec; --nf-radius:16px; --nf-space:24px;
  --nf-shadow:0 4px 20px rgb(23 43 38 / 4%);
}
[data-theme="dark"], .mud-theme-dark {
  --nf-brand:#76d4b1; --nf-ink:#e6f1ec; --nf-muted:#abc1b7;
  --nf-canvas:#101a16; --nf-surface:#19271f; --nf-line:#34473c; --nf-tint:#243d30;
}
.nf-workspace { color:var(--nf-ink); background:var(--nf-canvas); min-height:100dvh; }
.nf-workspace .mud-main-content { background:var(--nf-canvas); }
.nf-workspace .mud-paper { box-shadow:var(--nf-shadow); }
.nf-workspace .mud-button-root { text-transform:none; letter-spacing:0; border-radius:10px; min-height:40px; }
.nf-workspace .mud-input-control { scroll-margin-top:100px; }
.nf-workspace .mud-input-outlined .mud-input-outlined-border { border-color:var(--nf-line); border-radius:10px; }
.nf-workspace :is(button,a,input,select,textarea,summary):focus-visible {
  outline:3px solid var(--nf-brand); outline-offset:3px;
}
.nf-workspace .mud-table-container { border:1px solid var(--nf-line); border-radius:12px; }
.nf-workspace .mud-table-head .mud-table-cell { background:var(--nf-tint); color:var(--nf-ink); font-weight:700; padding-block:14px; }
.nf-workspace .mud-table-body .mud-table-cell { border-color:var(--nf-line); padding-block:13px; font-variant-numeric:tabular-nums; }
.nf-workspace .mud-table-row:hover { background:var(--nf-tint); }
/* Brand-colored app bar that follows the selected theme. */
.nf-workspace .mud-appbar { box-shadow:0 1px 0 rgba(255,255,255,.12), 0 8px 24px color-mix(in srgb, var(--theme-primary-dark) 22%, transparent); border-bottom:1px solid rgba(255,255,255,.14); }
.nf-workspace .app-bar-root, .nf-workspace .nf-appbar { background:linear-gradient(120deg,var(--theme-primary-dark) 0%,var(--theme-primary) 55%,color-mix(in srgb,var(--theme-primary-dark) 74%,#000) 100%) !important; color:#fff !important; }
[data-theme="dark"] .nf-workspace .app-bar-root, [data-theme="dark"] .nf-workspace .nf-appbar { background:linear-gradient(120deg,color-mix(in srgb,var(--theme-primary-dark) 62%,#000) 0%,var(--theme-primary-dark) 100%) !important; }
.nf-workspace .app-bar-root :is(.app-bar-title,.app-bar-action-btn,.app-bar-menu-btn,.app-bar-user-btn),
.nf-workspace .nf-appbar :is(.nf-appbar-title,.mud-icon-button,.nf-appbar-user) { color:#fff !important; opacity:1 !important; }
.nf-workspace .app-bar-farm-chip { background:rgba(255,255,255,.16) !important; color:#fff !important; border-color:rgba(255,255,255,.38) !important; }
.nf-workspace .ps-nav-shell, .nf-workspace .nf-drawer { background:#133b2e; color:#edf7f1; }
.nf-workspace .mud-nav-link { min-height:44px; border-radius:9px; margin-block:3px; }
.nf-workspace .mud-nav-link.active { background:rgb(255 255 255 / 14%); box-shadow:inset -3px 0 #91d7b7; }
.nf-workspace .home-page-wrapper { display:flex; flex-direction:column; gap:20px; }
/* Dashboard hero in the active theme colors — elegant brand depth instead of a flat white card. */
.nf-workspace .home-hero { background:linear-gradient(125deg,var(--theme-primary-dark) 0%,var(--theme-primary) 48%,color-mix(in srgb,var(--theme-primary-dark) 78%,#000) 100%) !important; border:1px solid rgba(255,255,255,.14); border-radius:var(--nf-radius); box-shadow:0 16px 40px color-mix(in srgb, var(--theme-primary-dark) 24%, transparent); padding:24px !important; color:#fff !important; }
[data-theme="dark"] .nf-workspace .home-hero { background:linear-gradient(125deg,color-mix(in srgb,var(--theme-primary-dark) 62%,#000) 0%,var(--theme-primary-dark) 100%) !important; }
.nf-workspace .home-hero::before, .nf-workspace .home-hero::after { display:block; }
.nf-workspace .home-hero :is(.home-hero-greeting,.home-hero-subtitle,.home-hero-meta) { color:#fff !important; text-shadow:0 1px 2px rgba(0,0,0,.18); }
.nf-workspace .home-hero :is(.home-hero-subtitle,.home-hero-meta) { color:rgba(255,255,255,.86) !important; }
.nf-workspace .home-hero-mark { background:rgba(255,255,255,.16); color:#d9ed72; box-shadow:inset 0 0 0 1px rgba(255,255,255,.25); border:0; }
.nf-workspace .home-hero .dashboard-switch-btn--chain { border-color:rgba(255,255,255,.5) !important; }
.nf-workspace :is(.home-filter-bar,.home-actions-panel,.home-kpi-bar,.home-chart-card,.page-header) {
  border:1px solid var(--nf-line); border-radius:var(--nf-radius); background:var(--nf-surface); box-shadow:none; margin-block:0;
}
.nf-workspace .home-kpi-strip { display:grid; grid-template-columns:repeat(auto-fit,minmax(155px,1fr)); gap:12px; }
.nf-workspace .home-kpi-tile { border-radius:12px; background:var(--nf-surface); border:1px solid var(--nf-line); padding:18px; }
.nf-workspace .home-kpi-value { font-size:1.65rem; font-variant-numeric:tabular-nums; line-height:1.6; }
.nf-workspace .home-shortcuts-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(118px,1fr)); gap:10px; }
.nf-workspace .home-shortcuts-grid--featured { grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); row-gap:10px; }
.nf-workspace .home-shortcut-item { border:1px solid var(--nf-line); border-radius:12px; min-height:82px; box-shadow:none; background:var(--nf-surface); color:var(--nf-ink); }
.nf-workspace .home-shortcut-item:hover { border-color:var(--nf-brand); background:var(--nf-tint); transform:translateY(-1px); }
.nf-workspace .page-header { padding:24px; margin-bottom:24px; }
.nf-workspace .page-title { font-size:1.5rem; font-weight:800; color:var(--nf-ink); }
.nf-workspace .page-subtitle { color:var(--nf-muted); line-height:1.8; margin-top:6px; }
.nf-workspace .page-header-icon { background:var(--nf-tint); color:var(--nf-brand); border-radius:12px; }
.nf-context { display: none !important; }
.nf-context-label { color:var(--nf-muted); margin-inline-end:6px; }
.nf-context-link { margin-inline-start:auto; color:var(--nf-brand); font-weight:700; text-decoration:none; }
.nf-section-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-block:0 18px; }
.nf-section-heading h2 { font-size:1.1rem; margin:0; font-weight:800; }
.nf-section-heading p { color:var(--nf-muted); margin:4px 0 0; font-size:.875rem; }
.nf-action-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; }
.nf-action { display:flex; gap:12px; align-items:center; padding:18px; min-height:72px; color:var(--nf-ink); background:var(--nf-surface); border:1px solid var(--nf-line); border-radius:12px; text-decoration:none; font-weight:700; }
.nf-action:hover { border-color:var(--nf-brand); background:var(--nf-tint); }
.nf-action svg { color:var(--nf-brand); }
.nf-details { color:var(--nf-muted); border-block-start:1px solid var(--nf-line); padding-block-start:12px; }
.nf-details summary { cursor:pointer; padding:6px; font-weight:600; }
.nf-section { padding:24px; border:1px solid var(--nf-line); border-radius:var(--nf-radius); background:var(--nf-surface); }
.nf-stale { display:flex; align-items:center; gap:8px; padding:10px 14px; background:var(--nf-tint); color:var(--nf-muted); border-radius:10px; font-size:.8125rem; }
.nf-skip { position:fixed; inset-block-start:-120px; inset-inline-start:20px; z-index:9999; padding:12px 20px; background:var(--nf-surface); color:var(--nf-ink); border:2px solid var(--nf-brand); border-radius:8px; }
.nf-skip:focus { inset-block-start:12px; }
@media(max-width:767px) {
  :root { --nf-space:16px; }
  .nf-workspace .home-hero, .nf-workspace .page-header, .nf-section { padding:16px !important; }
  .nf-workspace .home-kpi-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nf-workspace .home-shortcuts-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .nf-workspace .home-shortcuts-grid--featured { grid-template-columns:repeat(auto-fill,minmax(78px,1fr)); row-gap:8px; }
  .nf-context { gap:8px; padding:12px; font-size:.8125rem; }
  .nf-context-link { margin-inline-start:0; }
  .nf-action-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nf-action { padding:14px; min-height:72px; }
  .nf-workspace .mud-icon-button { min-width:44px; min-height:44px; }
}
@media(prefers-reduced-motion:reduce) {
  .nf-workspace *, .nf-workspace *::before, .nf-workspace *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}
@media print { .nf-context,.nf-skip,.nf-action-grid { display:none !important; } .nf-workspace { background:white; } }

.nf-workspace .catalog-header, .nf-workspace .catalog-page-header { background:var(--nf-surface); color:var(--nf-ink); border:1px solid var(--nf-line); border-radius:16px; }
.nf-workspace .dm-toolbar { background:var(--nf-surface); border:1px solid var(--nf-line); border-radius:14px; box-shadow:none; }
.nf-workspace .dm-table-card { border:1px solid var(--nf-line); border-radius:14px; box-shadow:none; }
.nf-workspace .dm-save-btn { min-height:44px; padding-inline:24px; }
.nf-workspace .dm-table input { min-height:44px; font-size:1rem; font-variant-numeric:tabular-nums; }
.nf-workspace .dm-table input:focus { background:var(--nf-tint); }
.login-container.nf-login { background:#f4f7f5; }
.nf-login .login-glow, .nf-login .login-grid-pattern { display:none; }
.nf-login .login-card { border:1px solid #dce6e0; border-radius:24px; box-shadow:0 24px 80px rgb(19 59 46 / 8%); overflow:hidden; }
.nf-login .login-form-section { background:#fff; color:#172b26; padding:clamp(24px,4vw,56px); }
.nf-login .login-form-section .mud-input-root { border-radius:10px; }
.nf-login .login-form-section .mud-button-filled-primary { background:#166451; min-height:48px; box-shadow:none; }
.nf-login .login-brand-section { background:#133b2e; color:white; }
