/* FMIS — Forest Department, Government of Jharkhand */

@font-face { font-family: "Inter"; font-weight: 400; font-display: swap; src: url("../fonts/inter-400.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-weight: 500; font-display: swap; src: url("../fonts/inter-500.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-weight: 600; font-display: swap; src: url("../fonts/inter-600.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-weight: 700; font-display: swap; src: url("../fonts/inter-700.woff2") format("woff2"); }
@font-face { font-family: "Noto Sans Devanagari"; font-weight: 400; font-display: swap; src: url("../fonts/noto-deva-400.woff2") format("woff2"); unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FF; }
@font-face { font-family: "Noto Sans Devanagari"; font-weight: 500; font-display: swap; src: url("../fonts/noto-deva-500.woff2") format("woff2"); unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FF; }
@font-face { font-family: "Noto Sans Devanagari"; font-weight: 600; font-display: swap; src: url("../fonts/noto-deva-600.woff2") format("woff2"); unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FF; }
@font-face { font-family: "Noto Sans Devanagari"; font-weight: 700; font-display: swap; src: url("../fonts/noto-deva-700.woff2") format("woff2"); unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FF; }

:root {
  --c-primary: #1f5130;
  --c-primary-700: #173f25;
  --c-primary-600: #27643c;
  --c-primary-100: #dfeae1;
  --c-primary-50: #f0f5f1;
  --c-accent: #b7791f;
  --c-accent-50: #fbf4e8;
  --c-bg: #f4f5f1;
  --c-surface: #ffffff;
  --c-border: #dde2da;
  --c-border-strong: #c4ccc2;
  --c-text: #1c2920;
  --c-text-muted: #5b665e;
  --c-info: #2f5d8a;
  --c-info-50: #ecf2f8;
  --c-warn: #9a6412;
  --c-warn-50: #fdf5e6;
  --c-danger: #a83a2a;
  --c-danger-50: #fbefec;
  --c-ok: #2c6b3f;
  --c-ok-50: #eaf4ec;
  --radius: 6px;
  --radius-sm: 4px;
  --shadow: 0 1px 2px rgba(20, 35, 25, 0.06), 0 1px 1px rgba(20, 35, 25, 0.04);
  --shadow-lg: 0 10px 30px rgba(20, 35, 25, 0.14);
  --font: "Inter", "Noto Sans Devanagari", "Nirmala UI", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: ui-monospace, "Cascadia Mono", Consolas, monospace;
  --nav-w: 252px;
}

html { font-size: 100%; -webkit-text-size-adjust: 100%; }
html[data-font="sm"] { font-size: 90%; }
html[data-font="lg"] { font-size: 110%; }
html[data-font="xl"] { font-size: 120%; }

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: var(--font); font-size: 0.875rem; line-height: 1.5; color: var(--c-text); background: var(--c-bg); font-feature-settings: "tnum" 1; }
[lang="hi"] { line-height: 1.6; }
h1, h2, h3 { line-height: 1.3; margin: 0; font-weight: 600; }
h1 { font-size: 1.45rem; letter-spacing: -0.01em; }
h2 { font-size: 1.05rem; }
h3 { font-size: 0.95rem; }
p { margin: 0 0 0.75rem; }
a { color: var(--c-primary-600); text-decoration: none; }
a:hover { text-decoration: underline; }
code, .mono { font-family: var(--mono); font-size: 0.85em; }
kbd { font-family: var(--mono); font-size: 0.75rem; padding: 0.05rem 0.35rem; border: 1px solid var(--c-border-strong); border-bottom-width: 2px; border-radius: 3px; background: #fff; }
img { max-width: 100%; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }

.icon { width: 1.1em; height: 1.1em; flex: none; vertical-align: -0.18em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.icon-ok { color: var(--c-ok); }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: -999px; top: 0; background: #fff; padding: 0.5rem 1rem; z-index: 100; }
.skip-link:focus { left: 1rem; }
.muted { color: var(--c-text-muted); }
.small { font-size: 0.8rem; }
.nowrap { white-space: nowrap; }
.center { text-align: center; }
.num { text-align: right; font-variant-numeric: tabular-nums; }
.empty { color: var(--c-text-muted); padding: 1rem 0; text-align: center; }

/* ------------------------------------------------------------------ chrome */
.gov-strip { background: var(--c-primary-700); color: #e4ede6; font-size: 0.75rem; }
.gov-strip__inner { display: flex; align-items: center; gap: 0.5rem; padding: 0.3rem 1.25rem; }
.gov-strip .sep { opacity: 0.5; }
.gov-strip__tools { margin-left: auto; display: flex; gap: 0.15rem; }
.gov-strip__tools button { background: transparent; border: 1px solid rgba(255,255,255,0.25); color: inherit; font: inherit; padding: 0 0.45rem; border-radius: 3px; cursor: pointer; line-height: 1.5; }
.gov-strip__tools button:hover { background: rgba(255,255,255,0.12); }

.topbar { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: 0.75rem; padding: 0.5rem 1.25rem; background: var(--c-surface); border-bottom: 1px solid var(--c-border); box-shadow: inset 0 -3px 0 -1px var(--c-accent-50); }
.topbar__menu { display: none; background: none; border: 0; padding: 0.4rem; color: var(--c-text); cursor: pointer; font-size: 1.25rem; }
.brand { display: flex; align-items: center; gap: 0.75rem; color: inherit; min-width: 0; }
.brand:hover { text-decoration: none; }
.brand__marks { display: flex; align-items: center; gap: 0.35rem; flex: none; }
.brand img { width: 44px; height: 44px; object-fit: contain; border-radius: 50%; border: 1px solid var(--c-border); background: #fff; }
.brand__text { display: flex; flex-direction: column; min-width: 0; }
.brand__hi { font-weight: 600; color: var(--c-primary); font-size: 0.95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.brand__en { font-size: 0.75rem; color: var(--c-text-muted); letter-spacing: 0.02em; text-transform: uppercase; }
.topbar__user { margin-left: auto; }

.usermenu { position: relative; }
.usermenu summary { list-style: none; display: flex; align-items: center; gap: 0.6rem; cursor: pointer; padding: 0.25rem 0.5rem; border-radius: var(--radius); }
.usermenu summary::-webkit-details-marker { display: none; }
.usermenu summary:hover { background: var(--c-primary-50); }
.avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--c-primary); color: #fff; display: grid; place-items: center; font-weight: 600; }
.usermenu__who { display: flex; flex-direction: column; line-height: 1.25; max-width: 220px; }
.usermenu__who strong { font-weight: 600; font-size: 0.85rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.usermenu__who small { color: var(--c-text-muted); font-size: 0.72rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.usermenu__caret { color: var(--c-text-muted); }
.usermenu__panel { position: absolute; right: 0; top: calc(100% + 6px); width: 250px; background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius); box-shadow: var(--shadow-lg); padding: 0.35rem; z-index: 40; }
.usermenu__meta { padding: 0.5rem 0.65rem 0.6rem; border-bottom: 1px solid var(--c-border); margin-bottom: 0.3rem; }
.usermenu__meta small { color: var(--c-text-muted); }
.usermenu__panel a, .usermenu__panel button { display: flex; align-items: center; gap: 0.55rem; width: 100%; padding: 0.5rem 0.65rem; border: 0; background: none; font: inherit; color: var(--c-text); text-align: left; border-radius: var(--radius-sm); cursor: pointer; }
.usermenu__panel a:hover, .usermenu__panel button:hover { background: var(--c-primary-50); text-decoration: none; }

.shell { display: grid; grid-template-columns: var(--nav-w) minmax(0, 1fr); min-height: calc(100vh - 120px); }
.sidenav { background: var(--c-surface); border-right: 1px solid var(--c-border); padding: 0.75rem 0.6rem 2rem; position: sticky; top: 61px; height: calc(100vh - 61px); overflow-y: auto; }
.sidenav__office { padding: 0.6rem 0.7rem 0.8rem; margin-bottom: 0.4rem; border-bottom: 1px solid var(--c-border); }
.sidenav__office small { display: block; color: var(--c-accent); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; }
.sidenav__office strong { font-weight: 600; font-size: 0.85rem; }
.sidenav__section { margin-top: 0.6rem; }
.sidenav__heading { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--c-text-muted); font-weight: 600; padding: 0.35rem 0.7rem; }
.sidenav__link { display: flex; align-items: center; gap: 0.65rem; padding: 0.45rem 0.7rem; border-radius: var(--radius-sm); color: var(--c-text); font-weight: 500; }
.sidenav__link .icon { color: var(--c-text-muted); }
.sidenav__link:hover { background: var(--c-primary-50); text-decoration: none; }
.sidenav__link.is-active { background: var(--c-primary-100); color: var(--c-primary-700); box-shadow: inset 3px 0 0 var(--c-primary); }
.sidenav__link.is-active .icon { color: var(--c-primary); }
.sidenav__link .count { margin-left: auto; background: var(--c-accent); color: #fff; font-size: 0.7rem; font-weight: 600; border-radius: 999px; padding: 0 0.45rem; line-height: 1.5; }
.nav-backdrop { display: none; }

.main { padding: 1.4rem 1.75rem 2.5rem; min-width: 0; outline: none; }
.footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem; padding: 0.9rem 1.75rem; border-top: 1px solid var(--c-border); background: var(--c-surface); color: var(--c-text-muted); font-size: 0.75rem; }

/* ------------------------------------------------------------------ page structure */
.page-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.1rem; }
.page-head p { margin: 0.25rem 0 0; }
.page-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.page-actions > form { display: contents; }
.eyebrow { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--c-accent); font-weight: 600; margin: 0 0 0.2rem !important; }
.eyebrow a { color: inherit; display: inline-flex; align-items: center; gap: 0.2rem; }
.pf-code { display: inline-block; font-size: 0.8em; font-weight: 600; color: var(--c-primary); background: var(--c-primary-50); border: 1px solid var(--c-primary-100); border-radius: var(--radius-sm); padding: 0 0.4rem; margin-right: 0.25rem; vertical-align: 0.1em; }
.section-head { display: flex; justify-content: space-between; align-items: center; margin: 1.5rem 0 0.75rem; }
.link { display: inline-flex; align-items: center; gap: 0.2rem; font-weight: 500; font-size: 0.82rem; }

.card { background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius); padding: 1.1rem 1.2rem; box-shadow: var(--shadow); margin-bottom: 1rem; min-width: 0; }
.card-narrow { max-width: 760px; }
.card__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.85rem; }
.card__title { font-size: 0.98rem; font-weight: 600; margin-bottom: 0.85rem; }
.card__head .card__title { margin-bottom: 0; }
.card h2.card__title + form, .card .card__title + p { margin-top: 0; }

.grid { display: grid; gap: 1rem; margin-bottom: 0; }
.grid > .card { margin-bottom: 0; }
.grid + .grid, .grid + section, section + .grid { margin-top: 1rem; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-2 > :only-child { grid-column: 1 / -1; }
.grid-3-1 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.grid-1-2 { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.split { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 1rem; align-items: start; }

/* ------------------------------------------------------------------ alerts / toasts */
.flashes { margin-bottom: 1rem; }
.alert { display: flex; align-items: flex-start; gap: 0.65rem; padding: 0.7rem 0.9rem; border-radius: var(--radius); border: 1px solid; margin-bottom: 0.6rem; }
.alert > .icon { margin-top: 0.15rem; }
.alert > div { flex: 1; }
.alert-success { background: var(--c-ok-50); border-color: #b8d6bf; color: #1f4d2d; }
.alert-error { background: var(--c-danger-50); border-color: #ecc3ba; color: #7d2a1e; }
.alert-warning { background: var(--c-warn-50); border-color: #ecd3a4; color: #6b4609; }
.alert-info { background: var(--c-info-50); border-color: #c4d5e7; color: #234a70; }
.alert__close { background: none; border: 0; color: inherit; cursor: pointer; padding: 0.1rem; opacity: 0.6; }
.alert__close:hover { opacity: 1; }
.toast-region { position: fixed; right: 1rem; bottom: 1rem; z-index: 80; display: flex; flex-direction: column; gap: 0.5rem; max-width: min(420px, calc(100vw - 2rem)); }
.toast { padding: 0.7rem 0.95rem; border-radius: var(--radius); background: #23302a; color: #fff; box-shadow: var(--shadow-lg); border-left: 4px solid var(--c-accent); animation: toast-in 0.2s ease-out; transition: opacity 0.5s, transform 0.5s; }
.toast-success { border-left-color: #6fbf85; }
.toast-error { border-left-color: #e58b78; }
.toast.is-leaving { opacity: 0; transform: translateY(6px); }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } }

/* ------------------------------------------------------------------ forms */
.field { display: flex; flex-direction: column; gap: 0.3rem; margin-bottom: 0.85rem; min-width: 0; }
fieldset.field { border: 0; padding: 0; margin: 0 0 0.85rem; }
.field label, .field legend { font-weight: 500; font-size: 0.8rem; color: #35423a; padding: 0; }
.field-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
.field-row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
input, select, textarea { font: inherit; color: inherit; }
.field input, .field select, .field textarea, .filterbar input, .filterbar select, .summary-strip input, .table-edit input, .table-edit select, .workflow textarea {
  width: 100%; padding: 0.48rem 0.65rem; border: 1px solid var(--c-border-strong); border-radius: var(--radius-sm); background: #fff; min-height: 2.3rem;
  transition: border-color 0.15s, box-shadow 0.15s;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--c-primary-600); box-shadow: 0 0 0 3px rgba(39, 100, 60, 0.15); }
input:disabled { background: var(--c-bg); color: var(--c-text-muted); }
.hint { color: var(--c-text-muted); font-size: 0.78rem; }
.check { display: inline-flex; align-items: center; gap: 0.45rem; font-weight: 400; cursor: pointer; margin: 0.15rem 1rem 0.35rem 0; }
.check input { width: 1rem; height: 1rem; accent-color: var(--c-primary); }
.checks { display: flex; flex-direction: column; }
.input-group { display: flex; gap: 0.35rem; }
.input-group input { flex: 1; }
.form-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: flex-end; margin-top: 0.5rem; }
.form-actions--sticky { position: sticky; bottom: 0; background: linear-gradient(to top, var(--c-bg) 70%, transparent); padding: 1rem 0 0.75rem; z-index: 5; }

.btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; padding: 0.45rem 0.85rem; min-height: 2.3rem; border: 1px solid var(--c-border-strong); background: var(--c-surface); color: var(--c-text); font: inherit; font-weight: 500; border-radius: var(--radius-sm); cursor: pointer; white-space: nowrap; transition: background 0.15s, border-color 0.15s; }
.btn:hover { background: var(--c-primary-50); border-color: var(--c-primary-600); text-decoration: none; }
.btn-primary { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.btn-primary:hover { background: var(--c-primary-700); border-color: var(--c-primary-700); }
.btn-warn { background: #fff; border-color: #d9a54d; color: #7a4c06; }
.btn-warn:hover { background: var(--c-warn-50); border-color: var(--c-warn); }
.btn-ghost { border-color: transparent; background: transparent; }
.btn-sm { padding: 0.25rem 0.55rem; min-height: 1.9rem; font-size: 0.8rem; }
.btn-icon { padding: 0.25rem; min-height: 1.9rem; min-width: 1.9rem; border-color: transparent; background: transparent; color: var(--c-text-muted); }
.btn-icon:hover { color: var(--c-danger); background: var(--c-danger-50); border-color: transparent; }
.btn-block { width: 100%; }
.btn-row { display: flex; gap: 0.3rem; justify-content: flex-end; }
.btn-row form { margin: 0; }

.signature-preview { max-width: 280px; margin: 0.5rem auto 1rem; padding: 0.75rem 1rem; text-align: center; font-size: 0.82rem; background: #fff; border: 1px dashed var(--c-border-strong); border-radius: var(--radius-sm); }
.signature-preview__space { height: 64px; display: flex; align-items: flex-end; justify-content: center; }
.signature-preview__space img { max-height: 60px; max-width: 220px; }
.signature-preview__line { border-top: 1px solid #333; margin: 0 0 0.2rem; }

.filterbar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.75rem; background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius); padding: 0.75rem 0.9rem; margin-bottom: 1rem; }
.filterbar__field { display: flex; flex-direction: column; gap: 0.25rem; min-width: 120px; }
.filterbar__field--wide { flex: 1 1 220px; }
.filterbar__field--btn { justify-content: flex-end; }
.filterbar label { font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--c-text); line-height: 1.25; }
.filterbar__field--office { flex: 1 1 200px; max-width: 320px; }
.filterbar select option.select-head { font-weight: 700; color: #1c1917; }
.pick { position: relative; width: 100%; }
.pick__native { position: absolute !important; width: 1px !important; height: 1px !important; min-height: 0 !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0); border: 0 !important; white-space: nowrap; }
.pick__btn { position: relative; width: 100%; min-height: 2.3rem; padding: 0.48rem 1.75rem 0.48rem 0.65rem; border: 1px solid var(--c-border-strong); border-radius: var(--radius-sm); background: #fff; text-align: left; font: inherit; color: inherit; cursor: pointer; }
.pick__btn::after { content: ""; position: absolute; right: 0.7rem; top: 50%; margin-top: -2px; border: 5px solid transparent; border-top-color: #5c6b62; }
.pick.is-open .pick__btn, .pick__btn:focus { outline: none; border-color: var(--c-primary-600); box-shadow: 0 0 0 3px rgba(39, 100, 60, 0.15); }
.pick__menu { position: absolute; z-index: 40; left: 0; right: 0; top: calc(100% + 2px); max-height: 280px; overflow: auto; margin: 0; padding: 0.25rem 0; background: #fff; border: 1px solid var(--c-border-strong); border-radius: var(--radius-sm); box-shadow: 0 8px 24px rgba(28, 41, 32, 0.12); }
.pick__head, .pick__opt { display: block; width: 100%; margin: 0; padding: 0.32rem 0.65rem; border: 0; background: transparent; text-align: left; font: inherit; line-height: 1.35; }
.pick__head { font-weight: 700; color: #1c1917; }
.pick__opt { cursor: pointer; color: inherit; }
.pick__menu .pick__opt:has(.pick__box) { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.pick__box { flex: none; width: 1.05rem; height: 1.05rem; border: 1px solid var(--c-border-strong); border-radius: 3px; background: #fff; color: #fff; font-size: 0.8rem; line-height: 1; display: inline-flex; align-items: center; justify-content: center; }
.pick__opt.is-selected .pick__box { background: var(--c-primary); border-color: var(--c-primary); }
.pick__opt:hover, .pick__opt.is-selected { background: var(--c-primary-50); }
.filterbar__hi { text-transform: none; letter-spacing: 0; font-weight: 600; color: var(--c-text-muted); }
.filterbar__pair { display: flex; gap: 0.35rem; }
.filterbar__pair select:first-child { min-width: 7.5rem; }
.filterbar__range { display: flex; flex-wrap: nowrap; align-items: flex-end; gap: 0.75rem; }
.filterbar__note { flex-basis: 100%; display: flex; align-items: center; gap: 0.35rem; margin: 0; font-size: 0.82rem; color: var(--c-warn); }
.filter-summary { flex-basis: 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.4rem; margin: 0.1rem 0 0; padding-top: 0.6rem; border-top: 1px dashed var(--c-border); font-size: 0.82rem; color: var(--c-text-muted); }
.filter-summary .icon { color: var(--c-primary-600); }
.filter-summary__label { font-weight: 600; color: var(--c-text); }
.filter-chip { display: inline-flex; align-items: center; padding: 0.12rem 0.55rem; border-radius: 999px; background: var(--c-primary-50); border: 1px solid var(--c-primary-100); color: var(--c-primary-700); font-weight: 500; }
.filter-chip.is-all { background: transparent; border-color: var(--c-border); color: var(--c-text-muted); font-weight: 400; }
.filter-chip.is-count { background: var(--c-accent-50); border-color: #ecd6ad; color: var(--c-warn); font-weight: 600; }
.filter-summary__reset { margin-left: auto; display: inline-flex; align-items: center; gap: 0.3rem; font-weight: 500; }

.tabs { display: flex; gap: 0.25rem; border-bottom: 1px solid var(--c-border); margin-bottom: 1rem; overflow-x: auto; }
.tab { padding: 0.55rem 0.9rem; color: var(--c-text-muted); font-weight: 500; border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.tab:hover { color: var(--c-text); text-decoration: none; }
.tab.is-active { color: var(--c-primary); border-bottom-color: var(--c-primary); }

/* ------------------------------------------------------------------ badges / status */
.badge { display: inline-flex; align-items: center; padding: 0.08rem 0.5rem; border-radius: 999px; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.01em; border: 1px solid transparent; white-space: nowrap; vertical-align: middle; }
.badge-none { background: #eef0ed; color: #5f6a62; border-color: #dfe3de; }
.badge-draft { background: #fbf5e3; color: #7b5c0d; border-color: #efdca7; }
.badge-submitted { background: var(--c-info-50); color: #24507a; border-color: #c4d5e7; }
.badge-partial { background: #fdf0e6; color: #8a4b12; border-color: #f0cfae; }
.badge-verified { background: #e6f3f2; color: #1d5f5a; border-color: #b9dcd8; }
.badge-returned { background: var(--c-danger-50); color: #8c2f21; border-color: #ecc3ba; }
.badge-approved { background: var(--c-ok-50); color: #23603a; border-color: #b8d6bf; }

/* ------------------------------------------------------------------ dashboard */
.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.kpi { background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius); padding: 0.95rem 1.1rem; box-shadow: var(--shadow); border-top: 3px solid var(--c-primary); }
.kpi--ok { border-top-color: #4d9a63; }
.kpi--info { border-top-color: var(--c-info); }
.kpi--warn { border-top-color: var(--c-accent); }
.kpi--alert { border-top-color: var(--c-danger); }
.kpi__label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--c-text-muted); font-weight: 600; }
.kpi__value { font-size: 1.85rem; font-weight: 600; line-height: 1.25; margin: 0.25rem 0; }
.kpi__value span { font-size: 0.95rem; color: var(--c-text-muted); font-weight: 500; margin-left: 0.2rem; }
.kpi__foot { font-size: 0.78rem; color: var(--c-text-muted); }
.meter { height: 6px; background: #e7ebe6; border-radius: 999px; overflow: hidden; margin: 0.35rem 0; }
.meter span { display: block; height: 100%; background: var(--c-primary-600); border-radius: inherit; }
.meter--inline { display: inline-block; width: calc(100% - 3.2rem); vertical-align: middle; margin: 0 0.4rem 0 0; }
.meter--mid span { background: var(--c-accent); }
.meter--low span { background: var(--c-danger); }
.chart-box { position: relative; height: 260px; }
.chart-box--sm { height: 240px; }

.status-list { list-style: none; margin: 0; padding: 0; }
.status-list li { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.5rem 0; border-bottom: 1px solid #edf0ec; }
.status-list li:last-child { border-bottom: 0; }
.status-list a { display: flex; gap: 0.6rem; align-items: baseline; color: var(--c-text); min-width: 0; }
.status-list .code { font-weight: 600; color: var(--c-primary); white-space: nowrap; font-size: 0.8rem; }
.status-list .title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.indicators { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
.indicator { background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius); padding: 0.9rem 1rem 0.6rem; box-shadow: var(--shadow); display: flex; flex-direction: column; }
.indicator header { margin-bottom: 0.35rem; }
.indicator__pf { font-size: 0.7rem; font-weight: 600; color: var(--c-accent); text-transform: uppercase; letter-spacing: 0.05em; }
.indicator h3 { font-size: 0.85rem; font-weight: 600; }
.indicator__value { font-size: 1.45rem; font-weight: 600; }
.indicator__value small { font-size: 0.75rem; color: var(--c-text-muted); font-weight: 500; }
.indicator__compare { font-size: 0.78rem; color: var(--c-text-muted); }
.indicator__chart { position: relative; height: 90px; margin-top: auto; padding-top: 0.5rem; }

.notices { list-style: none; margin: 0; padding: 0; }
.notices li { display: flex; gap: 0.9rem; padding: 0.65rem 0; border-bottom: 1px solid #edf0ec; align-items: flex-start; }
.notices li:last-child { border-bottom: 0; }
.notices li.is-high strong::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--c-danger); margin-right: 0.4rem; vertical-align: 0.15em; }
.notices li.is-muted { opacity: 0.55; }
.notices__date { flex: none; width: 3.6rem; font-size: 0.75rem; font-weight: 600; color: var(--c-primary); text-transform: uppercase; }
.notices__body, .notices li > div:nth-child(2) { flex: 1; }
.notices p { margin: 0.2rem 0; color: #3b483f; }

.timeline { list-style: none; margin: 0; padding: 0 0 0 1rem; border-left: 2px solid var(--c-border); }
.timeline li { position: relative; padding: 0 0 0.85rem 0.6rem; }
.timeline li::before { content: ""; position: absolute; left: calc(-1rem - 6px); top: 0.4rem; width: 10px; height: 10px; border-radius: 50%; background: #fff; border: 2px solid var(--c-primary-600); }
.timeline small { display: block; color: var(--c-text-muted); }
.timeline p { margin: 0.25rem 0 0; padding: 0.4rem 0.6rem; background: var(--c-bg); border-radius: var(--radius-sm); }
.timeline--returned::before { border-color: var(--c-danger) !important; }

/* ------------------------------------------------------------------ returns board */
.summary-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1.4rem; margin-bottom: 1rem; color: var(--c-text-muted); }
.summary-strip strong { color: var(--c-text); font-size: 1.05rem; }
.summary-strip .ok strong { color: var(--c-ok); }
.summary-strip .warn { color: var(--c-warn); }
.summary-strip .warn strong { color: var(--c-warn); }
.summary-strip .alert-text strong { color: var(--c-danger); }
.summary-strip__search { margin-left: auto; min-width: min(320px, 100%); }
.summary-strip--flat { margin-bottom: 0.75rem; }
.board-group { margin-bottom: 1.4rem; }
.board-group__title { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--c-text-muted); margin-bottom: 0.6rem; }
.board { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 0.75rem; }
.board-item { display: flex; flex-direction: column; gap: 0.3rem; background: var(--c-surface); border: 1px solid var(--c-border); border-left: 4px solid #cfd5ce; border-radius: var(--radius); padding: 0.75rem 0.9rem; color: var(--c-text); box-shadow: var(--shadow); transition: border-color 0.15s, transform 0.15s; }
.board-item:hover { text-decoration: none; border-color: var(--c-primary-600); transform: translateY(-1px); }
.board-item--draft { border-left-color: #e2c260; }
.board-item--submitted { border-left-color: var(--c-info); }
.board-item--verified { border-left-color: #3b8f87; }
.board-item--returned { border-left-color: var(--c-danger); }
.board-item--approved { border-left-color: #4d9a63; }
.board-item__top { display: flex; justify-content: space-between; align-items: center; }
.board-item .code { font-weight: 600; color: var(--c-primary); font-size: 0.8rem; }
.board-item__title { font-weight: 500; line-height: 1.45; }
.board-item__sub { font-size: 0.78rem; color: var(--c-text-muted); }
.board-item__meta { font-size: 0.75rem; color: var(--c-text-muted); margin-top: auto; }
.board-item__remark { font-size: 0.78rem; color: #8c2f21; background: var(--c-danger-50); border-radius: var(--radius-sm); padding: 0.3rem 0.5rem; }
.empty-state { text-align: center; padding: 2.5rem 1rem; color: var(--c-text-muted); }
.empty-state .icon { width: 2rem; height: 2rem; color: var(--c-primary-600); }
.empty-state h2 { color: var(--c-text); margin: 0.5rem 0; }

.report-list { list-style: none; margin: 0; padding: 0; }
.report-list li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0.6rem 0; border-bottom: 1px solid #edf0ec; }
.report-list li:last-child { border-bottom: 0; }
.report-list__name { display: flex; flex-wrap: wrap; gap: 0.2rem 0.6rem; align-items: baseline; min-width: 0; flex: 1 1 320px; }
.report-list__name .code { font-weight: 600; color: var(--c-primary); }
.report-list__name small { flex-basis: 100%; }
.report-list__actions { display: flex; flex-wrap: wrap; gap: 0.35rem; }

/* ------------------------------------------------------------------ proforma sheets */
.sheet-wrap { overflow: auto; max-height: calc(100vh - 210px); background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius); box-shadow: var(--shadow); margin-bottom: 0.75rem; }
.sheet-note { margin: 0.35rem 0.5rem; }
.missing-returns { margin: 0.6rem 0.5rem; border: 1px solid #ecd9a8; border-left: 4px solid var(--c-warn); border-radius: var(--radius-sm); background: #fffbf0; }
.missing-returns > summary { cursor: pointer; padding: 0.55rem 0.8rem; font-size: 0.88rem; display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; }
.missing-returns > summary strong { color: var(--c-warn); }
.missing-returns > summary .icon { color: var(--c-warn); }
.share-groups { display: flex; flex-direction: column; gap: 0.45rem; }
.share-group { border: 1px solid var(--c-border); border-radius: var(--radius-sm); background: #fff; }
.share-group > summary { cursor: pointer; display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.6rem; padding: 0.5rem 0.75rem; list-style: none; }
.share-group > summary::-webkit-details-marker { display: none; }
.share-group > summary::before { content: '▸'; color: var(--c-primary); font-size: 0.85em; transition: transform 0.15s ease; }
.share-group[open ] > summary::before { transform: rotate(90deg); }
.share-group > summary:hover { background: var(--c-primary-50); border-radius: var(--radius-sm); }
.share-group__body { padding: 0.35rem 0.75rem 0.6rem; border-top: 1px solid var(--c-border); }
.missing-returns__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0.6rem; padding: 0 0.8rem 0.8rem; }
.missing-returns__group { background: #fff; border: 1px solid var(--c-border); border-radius: var(--radius-sm); padding: 0.5rem 0.65rem; }
.missing-returns__group h4 { display: flex; justify-content: space-between; gap: 0.5rem; font-size: 0.8rem; margin: 0 0 0.35rem; color: var(--c-text); }
.missing-returns__count { flex: none; font-weight: 600; font-size: 0.72rem; color: var(--c-warn); background: #fff3d6; border-radius: 999px; padding: 0 0.45rem; height: fit-content; }
.missing-returns__group ul { margin: 0; padding-left: 1.05rem; font-size: 0.8rem; color: var(--c-text-muted); }
.missing-returns__group li { margin: 0.1rem 0; }
.office-pf-title { font-size: 1rem; margin: 1.25rem 0 0.5rem; }
.orgchart-title { text-transform: uppercase; letter-spacing: 0.02em; text-align: center; }
.orgchart-wrap { overflow: auto; border: 1px solid #d6dfe8; border-radius: 6px; background: #f8fbff; padding: 0.5rem; margin: 0.5rem 0; max-height: 80vh; }
.orgchart-wrap svg { display: block; margin: 0 auto; width: 100%; height: auto; }
.swatch.is-mine { background: #dcf0dd; border: 2px solid #1f6b27; }
.swatch.is-above { background: #f3f4f6; border: 1px dashed #8a97a6; }
.swatch.is-files { background: #eaf2fb; }
.org-chain { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.5rem; margin: 0 0 0.75rem; font-size: 0.85rem; }
.org-chain span { color: #8a97a6; }
.orgchart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.25rem 1.25rem; list-style: none; padding: 0; margin: 0.25rem 0; font-size: 0.8rem; }
.orgchart-legend li { display: inline-flex; align-items: center; gap: 0.35rem; }
.swatch { display: inline-block; width: 1.1rem; height: 0.8rem; border: 1px solid #2f5d8a; background: #fff; border-radius: 2px; }
.swatch.is-complete { background: #dcf0dd; border-color: #2e7d32; }
.swatch.is-partial { background: #fff2c9; border-color: #b7791f; }
.swatch.is-none { background: #fde3e0; border-color: #c0392b; }
.sheet { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 0.82rem; }
.sheet th, .sheet td { border-right: 1px solid #e1e5df; border-bottom: 1px solid #e1e5df; padding: 0.4rem 0.55rem; vertical-align: top; }
.sheet thead { position: sticky; top: 0; z-index: 3; }
.sheet thead th { background: #eef2ec; font-weight: 600; text-align: center; vertical-align: middle; color: #263a2d; line-height: 1.35; min-width: 80px; }
.sheet thead .th-group { background: #e4ebe2; }
.sheet thead .th-computed { background: #f3eedf; }
.sheet .th-unit { display: block; font-weight: 400; font-size: 0.72rem; color: var(--c-text-muted); }
.sheet .th-en { display: block; font-size: 0.78rem; }
.sheet .th-lakh { font-weight: 400; font-size: 0.78rem; color: var(--c-text-muted); }
.sheet .th-numbers th { background: #f6f8f5; font-weight: 500; font-size: 0.7rem; color: var(--c-text-muted); padding: 0.15rem; min-width: 0; }
.sheet .col-sn { position: sticky; left: 0; z-index: 2; background: #f6f8f5; text-align: center; width: 3rem; min-width: 3rem; color: var(--c-text-muted); font-weight: 500; }
.sheet thead .col-sn { z-index: 4; background: #eef2ec; }
.sheet .col-label { min-width: 200px; text-align: left; }
.sheet tbody tr:hover td { background: #fafbf8; }
.sheet td.is-computed { background: #fbf8ef; font-weight: 500; }
.sheet .row-total th, .sheet .row-total td { background: #f1f4ef; font-weight: 600; border-top: 1px solid var(--c-border-strong); }
.sheet .row-grand th, .sheet .row-grand td { background: var(--c-primary-100); font-weight: 700; border-top: 2px solid var(--c-primary-600); }
.sheet .row-total__label { text-align: right; }
.sheet .row-group th { background: var(--c-primary-50); text-align: left; color: var(--c-primary-700); font-weight: 600; position: static; }
.sheet .row-office th { background: #fafbf8; text-align: left; font-weight: 600; }
.sheet .row-office.depth-1 th, .sheet .row-group.depth-1 th { padding-left: 1.5rem; }
.sheet .row-office.depth-2 th, .sheet .row-group.depth-2 th { padding-left: 2.5rem; }
.sheet .row-office .badge { margin-left: 0.5rem; }
.sheet tfoot { position: sticky; bottom: 0; z-index: 2; }
.sheet tfoot .col-sn { z-index: 3; }

.sheet--edit td { padding: 0; }
.sheet--edit td.col-sn, .sheet--edit td.is-computed { padding: 0.45rem 0.55rem; }
.sheet--edit input, .sheet--edit select, .sheet--edit textarea { display: block; border: 0; border-radius: 0; background: transparent; padding: 0.45rem 0.55rem; min-height: 2.2rem; min-width: 70px; font: inherit; }
.sheet--edit textarea { resize: vertical; }
.sheet--edit input.num { text-align: right; font-variant-numeric: tabular-nums; }
.sheet--edit input:focus, .sheet--edit select:focus, .sheet--edit textarea:focus { background: #fffdf3; box-shadow: inset 0 0 0 2px var(--c-primary-600); }
.sheet--edit td.is-invalid { background: var(--c-danger-50); }
.sheet--edit td.is-invalid input, .sheet--edit td.is-invalid select { box-shadow: inset 0 0 0 2px #d6826f; }
.sheet--edit .col-actions { width: 2.4rem; text-align: center; vertical-align: middle; }
.sheet--edit tr.is-blank .col-sn { color: #b5bdb6; }
.sheet .col-actions { min-width: 2.4rem; }

.grid-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.5rem; margin-bottom: 0.6rem; }
.grid-toolbar__group { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.save-state { font-size: 0.8rem; color: var(--c-text-muted); }
.save-state.is-dirty { color: var(--c-warn); font-weight: 500; }
.grid-hint { display: flex; gap: 0.4rem; align-items: flex-start; }
.grid-hint > svg { flex: none; margin-top: 0.1rem; }
.instructions { background: var(--c-accent-50); border: 1px solid #ecd9b6; border-radius: var(--radius); padding: 0.55rem 0.85rem; margin-bottom: 0.9rem; }
.instructions summary { cursor: pointer; font-weight: 500; color: #6b4609; display: flex; align-items: center; gap: 0.4rem; }
.instructions > div { padding-top: 0.5rem; }
.workflow { margin-top: 1rem; }
.workflow__form { display: flex; flex-direction: column; gap: 0.45rem; align-items: flex-start; margin-bottom: 0.9rem; }
.workflow__form textarea { min-height: 3rem; }

/* compliance matrix */
.matrix th, .matrix td { text-align: center; vertical-align: middle; }
.matrix .col-label { position: sticky; left: 0; z-index: 2; background: #fff; text-align: left; font-weight: 500; }
.matrix thead .col-label { z-index: 4; background: #eef2ec; }
.matrix__pf { writing-mode: vertical-rl; transform: rotate(180deg); min-width: 2.2rem !important; white-space: nowrap; padding: 0.5rem 0.2rem !important; font-size: 0.75rem; }
.matrix__cell { padding: 0.25rem !important; }
.cell-status { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 4px; font-size: 0.72rem; font-weight: 700; color: #fff; text-decoration: none !important; }
.cell-none { background: #e5e8e4; color: #6d776f; }
.cell-draft { background: #e2c260; color: #4d3a06; }
.cell-submitted { background: var(--c-info); }
.cell-verified { background: #3b8f87; }
.cell-returned { background: var(--c-danger); }
.cell-approved { background: #3e8a55; }
.cell-na { color: #c7cdc7; }
.legend { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; margin-bottom: 0.75rem; font-size: 0.78rem; color: var(--c-text-muted); }
.legend > span { display: inline-flex; align-items: center; gap: 0.35rem; }

/* ------------------------------------------------------------------ tables */
.table-wrap { overflow-x: auto; }
.table { width: 100%; border-collapse: collapse; }
.table th, .table td { padding: 0.6rem 0.65rem; border-bottom: 1px solid #e8ebe6; text-align: left; vertical-align: top; }
.table thead th { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--c-text-muted); font-weight: 600; background: #f7f8f5; border-bottom-color: var(--c-border); }
.table th.num, .table td.num { text-align: right; }
.table th.center, .table td.center { text-align: center; }
.table tbody tr:hover { background: #fafbf8; }
.table-compact th, .table-compact td { padding: 0.42rem 0.55rem; }
.table .row-group th { background: var(--c-primary-50); color: var(--c-primary-700); text-transform: none; font-size: 0.8rem; letter-spacing: 0; }
.table tr.is-muted td { color: var(--c-text-muted); }
.table .col-actions { text-align: right; width: 1%; white-space: nowrap; }
.table-edit td { padding: 0.3rem 0.35rem; vertical-align: middle; }
.table-edit input, .table-edit select { min-height: 2rem; padding: 0.3rem 0.45rem; }
.tree-branch { color: var(--c-border-strong); margin-right: 0.35rem; }
.audit-details { max-width: 340px; word-break: break-word; color: var(--c-text-muted); font-family: var(--mono); font-size: 0.72rem; }
.pager { display: flex; gap: 1rem; justify-content: center; align-items: center; padding-top: 0.75rem; color: var(--c-text-muted); }
.matrix-perm td, .matrix-perm th { text-align: center; }
.matrix-perm td:first-child, .matrix-perm th:first-child { text-align: left; }
.matrix-perm input { width: 1.05rem; height: 1.05rem; accent-color: var(--c-primary); }

.side-list { list-style: none; margin: 0 0 1rem; padding: 0; }
.side-list a { display: flex; justify-content: space-between; padding: 0.45rem 0.6rem; border-radius: var(--radius-sm); color: var(--c-text); }
.side-list a:hover { background: var(--c-primary-50); text-decoration: none; }
.side-list a.is-active { background: var(--c-primary-100); color: var(--c-primary-700); font-weight: 600; }
.side-list .count { color: var(--c-text-muted); font-size: 0.75rem; }
.side-form { border-top: 1px solid var(--c-border); padding-top: 0.9rem; }
.side-form h3 { margin-bottom: 0.6rem; }

/* proforma builder */
.fld { position: relative; display: grid; grid-template-columns: 2rem minmax(0, 1fr) 2rem; gap: 0 0.6rem; padding: 0.8rem 0.6rem 0.4rem; border: 1px solid var(--c-border); border-radius: var(--radius); margin-bottom: 0.6rem; background: #fcfdfb; }
.fld[data-type="computed"] { background: #fdfaf1; border-color: #ecdcb8; }
.fld__order { display: flex; flex-direction: column; gap: 0.2rem; padding-top: 1.3rem; }
.fld__order .btn-icon:hover { color: var(--c-primary); background: var(--c-primary-50); }
.fld__main { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0 0.75rem; }
.fld__wide { grid-column: span 2; }
.fld__num input { max-width: 7rem; }
.fld__more { grid-column: 2; margin-bottom: 0.4rem; }
.fld__more summary { cursor: pointer; font-size: 0.78rem; color: var(--c-primary-600); margin-bottom: 0.5rem; }
.fld__remove { grid-column: 3; grid-row: 1; align-self: start; margin-top: 1.3rem; }
.formula-msg { font-size: 0.75rem; }
.formula-msg.is-ok { color: var(--c-ok); }
.formula-msg.is-bad { color: var(--c-danger); }

.prose h2 { margin: 1.1rem 0 0.4rem; }
.prose h2:first-child { margin-top: 0; }
.prose ol { padding-left: 1.2rem; }
.prose li { margin-bottom: 0.35rem; }

.pw-meter { height: 4px; background: #e7ebe6; border-radius: 999px; overflow: hidden; }
.pw-meter span { display: block; height: 100%; width: 0; transition: width 0.2s, background 0.2s; }
.pw-meter[data-score="1"] span { width: 25%; background: var(--c-danger); }
.pw-meter[data-score="2"] span { width: 50%; background: var(--c-accent); }
.pw-meter[data-score="3"] span { width: 75%; background: #6c9d43; }
.pw-meter[data-score="4"] span { width: 100%; background: var(--c-ok); }

.error-page { max-width: 640px; margin: 3rem auto; text-align: center; }
.error-page__code { font-size: 4rem; font-weight: 700; color: var(--c-primary-100); line-height: 1; }
.error-page h1 { margin: 0.5rem 0; }
.error-page .form-actions { justify-content: center; }
.error-page__trace { text-align: left; background: #1c2920; color: #d7e3da; padding: 1rem; border-radius: var(--radius); overflow: auto; font-size: 0.75rem; margin-top: 1.5rem; }

/* ------------------------------------------------------------------ sign-in */
.plain { min-height: 100vh; display: flex; flex-direction: column; background: linear-gradient(160deg, #eef3ee 0%, var(--c-bg) 45%); }
.plain__main { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 2rem 1rem; }
.plain__flash { width: min(720px, 100%); position: relative; z-index: 2; }
.plain__footer { text-align: center; color: var(--c-text-muted); font-size: 0.75rem; padding: 1rem; }
.plain--login { position: relative; isolation: isolate; background: #1a2e1c; overflow-x: hidden; }
.plain--login .gov-strip { position: relative; z-index: 3; background: rgba(23, 63, 37, 0.88); }
.plain--login .plain__main { position: relative; z-index: 2; padding: 1.25rem 1rem 1.75rem; }
.plain--login .plain__footer { position: relative; z-index: 2; color: #e8f0e9; text-shadow: 0 1px 8px rgba(0, 0, 0, 0.55); font-weight: 500; }

.login-scene { position: relative; width: min(720px, 100%); display: flex; justify-content: center; }
.login-bg {
  position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden;
  background: #1a2e1c;
}
.login-bg img {
  width: 100%; height: 100%; object-fit: cover; object-position: center center;
  display: block; opacity: 0.5; filter: none;
}

.login {
  position: relative; z-index: 2;
  display: grid; grid-template-columns: 0.95fr 1.05fr; width: min(720px, 100%);
  background: #fff7ea; border: 1px solid rgba(255, 236, 200, 0.95);
  border-radius: 14px; overflow: hidden;
  box-shadow: 0 10px 28px rgba(20, 28, 12, 0.22), 0 2px 6px rgba(20, 28, 12, 0.12);
  font-size: calc(1em + 1pt);
}
.login__intro {
  background: linear-gradient(165deg, #1a140c 0%, #2c2114 48%, #3d2c16 100%);
  color: #f3e6d0; padding: 1.75rem 1.5rem; display: flex; flex-direction: column; gap: 0.45rem; position: relative;
}
.login__intro::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(135deg, rgba(255, 214, 140, 0.16), transparent 45%);
}
.login__intro::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: linear-gradient(90deg, #c48a1a, #e2b44a 55%, #c48a1a); }
.login__marks { display: flex; align-items: center; gap: 0.55rem; position: relative; z-index: 1; }
.login__intro img { border-radius: 50%; background: #fff; padding: 2px; width: 64px; height: 64px; object-fit: contain; box-shadow: 0 6px 14px rgba(0, 0, 0, 0.35); }
.login__intro h2, .login__intro p, .login__system, .login__points { position: relative; z-index: 1; }
.login__intro h2 { font-size: 1.15rem; color: #fff8e8; margin-top: 0.4rem; }
.login__intro p { color: #d8c4a4; margin: 0; font-size: 0.85rem; }
.login__system { margin-top: 0.9rem; padding-top: 0.9rem; border-top: 1px solid rgba(226, 180, 74, 0.28); display: flex; flex-direction: column; }
.login__system strong { color: #ffe7b0; font-size: 1rem; font-weight: 600; }
.login__system span { font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: #cbb48f; }
.login__points { margin: 0.75rem 0 0; padding-left: 1.1rem; color: #e8d7ba; font-size: 0.8rem; }
.login__points li { margin-bottom: 0.3rem; }
.login__card {
  position: relative; padding: 1.75rem 1.55rem;
  background: linear-gradient(165deg, #fffaf2 0%, #fff3df 58%, #f6e6c8 100%);
}
.login__card-shine {
  position: absolute; top: -20%; right: -15%; width: 55%; height: 55%; pointer-events: none;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.9), transparent 70%);
  opacity: 0.65;
}
.login__card h1 { margin-bottom: 0.25rem; position: relative; color: #1f180f; font-size: 1.35rem; }
.login__card .muted { color: #6b5a42; }
.login__card .muted, .login__card form, .login__note { position: relative; }
.login__card label { color: #3a2c18; font-weight: 700; }
.login__card .btn-primary {
  background: #8a5a12; border-color: #7a4f0e; color: #fff8e8;
  box-shadow: 0 8px 16px rgba(90, 52, 8, 0.28), 0 1px 0 rgba(255, 255, 255, 0.22) inset;
  transform: translateZ(0);
}
.login__card .btn-primary:hover {
  background: #9b6816; border-color: #8a5a12;
  box-shadow: 0 10px 20px rgba(90, 52, 8, 0.34), 0 1px 0 rgba(255, 255, 255, 0.22) inset;
}
.login__note { display: flex; align-items: center; gap: 0.4rem; color: #7a684c; font-size: 0.72rem; margin: 0.85rem 0 0; }
.captcha { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0.4rem; }
.captcha img { border: 1px solid var(--c-border); border-radius: var(--radius-sm); }
.input-code { text-transform: uppercase; letter-spacing: 0.25em; font-family: var(--mono); }

/* ------------------------------------------------------------------ organogram */
.wing-hq { --wing: #1f5130; }
.wing-territorial { --wing: #2c6b3f; }
.wing-wildlife { --wing: #b7791f; }
.wing-wldb { --wing: #6b4f2a; }
.wing-social { --wing: #4f8a3a; }
.wing-projects { --wing: #2f5d8a; }
.wing-admin { --wing: #5b665e; }
.wing-hrd { --wing: #7a4a7e; }
.wing-research { --wing: #2b7a78; }
.wing-fda { --wing: #8a5a2f; }
.wing-wp { --wing: #4a5f9a; }
.wing-dev { --wing: #a0522d; }
.wing-campa { --wing: #3f7f5f; }

.org-summary { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem; }
.org-summary__item { display: flex; align-items: baseline; gap: 0.4rem; background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius); padding: 0.45rem 0.8rem; }
.org-summary__item strong { font-size: 1.15rem; color: var(--c-primary); }
.org-summary__item span { color: var(--c-text-muted); font-size: 0.78rem; letter-spacing: 0.04em; }
.org-toolbar { display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; align-items: flex-start; margin-bottom: 1rem; }
.org-search { flex: 0 1 340px; margin: 0; }
.org-search input { width: 100%; }
.org-legend { display: flex; flex-wrap: wrap; gap: 0.35rem 0.9rem; list-style: none; margin: 0; padding: 0; flex: 1 1 400px; font-size: 0.78rem; }
.org-legend li { display: inline-flex; align-items: center; gap: 0.35rem; }
.org-legend__swatch { width: 0.7rem; height: 0.7rem; border-radius: 2px; background: var(--wing); }
.org-toolbar__actions { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.org-chart__hint { margin: 0.85rem 0 0; }

.org-board, .org-rank__row { list-style: none; margin: 0; padding: 0; }
.org-board { margin-top: 0.25rem; }
.org-branch { display: flex; flex-direction: column; min-width: 0; }
.org-board > .org-branch > .org-office { width: min(26rem, 100%); margin-inline: auto; }
.org-office {
  display: flex; flex-direction: column; min-width: 0;
  background: var(--c-surface); border: 1px solid var(--c-border); border-top: 3px solid var(--wing, var(--c-primary));
  border-radius: var(--radius); box-shadow: var(--shadow);
}
.org-office--root { border-top-width: 4px; background: linear-gradient(180deg, var(--c-primary-50), var(--c-surface) 2.6rem); }
.org-office.is-mine { box-shadow: 0 0 0 2px var(--c-accent), var(--shadow); }
.org-branch.is-match > .org-office { background: #fff8e6; border-color: var(--c-accent); border-top-color: var(--wing, var(--c-accent)); }
.org-office__rank {
  display: flex; justify-content: space-between; align-items: flex-start; gap: 0.5rem;
  padding: 0.45rem 0.75rem 0; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.07em;
  text-transform: uppercase; color: var(--wing, var(--c-primary-700));
}
.org-office__wing { font-weight: 600; letter-spacing: 0.02em; text-transform: none; text-align: right; color: var(--c-text-muted); font-size: 0.72rem; max-width: 60%; }
.org-office__body { display: flex; flex-direction: column; gap: 0.1rem; padding: 0.2rem 0.75rem 0.65rem; }
.org-office--root .org-card__name { font-size: 1.02rem; }
.org-card__name { font-weight: 600; color: var(--c-text); }
.org-card__name a { color: inherit; }
.org-card__name a:hover { text-decoration: underline; }
.org-card__status { margin-top: 0.35rem; font-size: 0.75rem; font-weight: 700; }
.org-card__status.is-complete { color: #1f6b27; }
.org-card__status.is-partial { color: #8a5a0c; }
.org-card__status.is-none { color: #a3281c; }
.org-card__status.is-nofile { color: #6b7b8c; font-weight: 500; }
.org-office.is-complete { box-shadow: inset 3px 0 0 #2e7d32, var(--shadow); }
.org-office.is-partial { box-shadow: inset 3px 0 0 #b7791f, var(--shadow); }
.org-office.is-none { box-shadow: inset 3px 0 0 #c0392b, var(--shadow); }
.org-office.is-nofile { box-shadow: inset 3px 0 0 #c5ced6, var(--shadow); }
.org-card__hi { font-size: 0.8rem; color: var(--c-text-muted); }
.org-card__head { font-size: 0.75rem; color: var(--c-text-muted); font-style: italic; }
.org-card__tags { display: flex; flex-wrap: wrap; gap: 0.25rem; margin-top: 0.25rem; }
.org-tag { font-size: 0.68rem; padding: 0.05rem 0.4rem; border-radius: 3px; background: #eef2ec; color: #3b4a3f; letter-spacing: 0.02em; }
.org-tag--wing { background: transparent; border: 1px solid var(--wing); color: var(--wing); }
.org-tag--files { background: #e3efe6; color: var(--c-ok); }
.org-tag--me { background: var(--c-accent); color: #fff; }
.org-toggle { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.5rem; width: calc(100% - 0.9rem); margin: 0 0.45rem 0.5rem; justify-content: flex-start; }
.org-toggle__count { margin-left: auto; color: var(--c-text-muted); font-weight: 500; }
.org-toggle[aria-expanded="true"] .org-toggle__when-closed,
.org-toggle[aria-expanded="false"] .org-toggle__when-open { display: none; }
.org-kids { margin-top: 0.55rem; padding: 0.15rem 0 0.2rem 0.8rem; border-left: 2px solid var(--c-primary-100); }
.org-board > .org-branch > .org-kids { margin-top: 0.15rem; padding: 0 0 0.2rem; border-left: 0; }
.org-board > .org-branch > .org-kids::before { content: ""; display: block; width: 2px; height: 0.9rem; margin: 0 auto 0.15rem; background: var(--c-primary-600); }
.org-rank { margin-top: 0.85rem; }
.org-rank__title {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 0.35rem 0.55rem; margin: 0 0 0.45rem;
  font-size: 0.72rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--c-primary-700); text-align: center;
}
.org-rank__short { background: var(--c-primary); color: #fff; border-radius: 3px; padding: 0.08rem 0.4rem; letter-spacing: 0.06em; }
.org-rank__name { font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--c-text-muted); font-size: 0.78rem; }
.org-rank__row { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: 0.7rem; }
.org-rank__row > .org-branch { flex: 1 1 16rem; max-width: 22rem; min-width: min(100%, 16rem); }
.org-kids .org-kids .org-rank__row > .org-branch { flex-basis: 100%; max-width: 100%; min-width: 0; }

/* ------------------------------------------------------------------ responsive */
@media (max-width: 1200px) {
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-3-1 { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 960px) {
  .shell { grid-template-columns: minmax(0, 1fr); }
  .topbar__menu { display: inline-flex; }
  .sidenav { position: fixed; top: 0; left: 0; bottom: 0; height: 100vh; width: min(290px, 86vw); z-index: 60; transform: translateX(-100%); transition: transform 0.22s ease; box-shadow: var(--shadow-lg); }
  .nav-open .sidenav { transform: none; }
  .nav-open .nav-backdrop { display: block; position: fixed; inset: 0; background: rgba(15, 25, 18, 0.45); z-index: 50; }
  .main { padding: 1rem 1rem 2rem; }
  .grid-2, .grid-1-2, .split { grid-template-columns: minmax(0, 1fr); }
  .usermenu__who { display: none; }
  .login { grid-template-columns: 1fr; }
  .login__intro { padding: 1.6rem; }
  .login__points { display: none; }
}

@media (max-width: 640px) {
  body { font-size: 0.9rem; }
  h1 { font-size: 1.2rem; }
  .gov-strip__inner { padding: 0.3rem 0.75rem; }
  .topbar { padding: 0.45rem 0.75rem; }
  .brand img { width: 36px; height: 36px; }
  .brand__en { display: none; }
  .brand__hi { font-size: 0.82rem; white-space: normal; }
  .kpis { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0.6rem; }
  .kpi { padding: 0.75rem; }
  .kpi__value { font-size: 1.45rem; }
  .field-row, .field-row--3 { grid-template-columns: minmax(0, 1fr); }
  .filterbar__field { flex: 1 1 calc(50% - 0.75rem); min-width: 0; }
  .filterbar__field--wide, .filterbar__field--office { flex-basis: 100%; max-width: none; }
  .page-actions { width: 100%; }
  .page-actions .btn { flex: 1; }
  .summary-strip__search { margin-left: 0; width: 100%; }
  .sheet-wrap { max-height: 75vh; }
  .card { padding: 0.9rem; }
  .fld { grid-template-columns: minmax(0, 1fr) 2rem; }
  .fld__order { flex-direction: row; padding-top: 0; grid-column: 1; }
  .fld__main, .fld__more { grid-column: 1 / -1; }
  .fld__wide { grid-column: auto; }
  .fld__remove { grid-column: 2; grid-row: 1; margin-top: 0; }
  .footer { padding: 0.75rem 1rem; }
  .login__card { padding: 1.4rem; }
  .org-toggle__count { margin-left: 0; flex-basis: 100%; }
  .org-office__wing { max-width: 50%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

@media print {
  .gov-strip, .topbar, .sidenav, .footer, .filterbar, .page-actions, .grid-toolbar, .workflow, .toast-region, .tabs, .grid-hint { display: none !important; }
  .shell { display: block; }
  .main { padding: 0; }
  .sheet-wrap { max-height: none; overflow: visible; border: 0; box-shadow: none; }
  .sheet thead, .sheet tfoot { position: static; }
  body { background: #fff; }
  .org-toolbar, .org-toggle, .org-chart__hint { display: none !important; }
  .org-kids[hidden] { display: block !important; }
  .org-branch { break-inside: avoid; }
  .org-office, .org-rank__short { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .org-office { box-shadow: none; }
}
