:root{--bg:#eaf4ef;--panel:#ffffff;--text:#0f1a14;--muted:#5e7466;--accent:#4D927C;--accent-2:#2e7d67;--danger:#ff6b6b;--radius:10px;--shadow:0 6px 18px rgba(0,0,0,.1)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,Segoe UI,Roboto,Arial,sans-serif;line-height:1.5}
.container{max-width:1080px;margin:24px auto;padding:0 16px}
.card{background:var(--panel);border:1px solid #d7e5dd;border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
h1,h2{margin:0 0 12px}
h1{font-weight:700;letter-spacing:.2px}
h2{font-weight:600;color:#21352d}
input,select,button{border-radius:8px;border:1px solid #cfe3d9;background:#ffffff;color:var(--text);padding:10px 12px;transition:border-color .15s,box-shadow .15s,filter .15s}
input:focus,select:focus,button:focus{outline:1px solid #2a8f6b;border-color:#2a8f6b;box-shadow:0 0 0 2px rgba(77,146,124,.25)}
button.btn{background:var(--accent);border:0;color:#ffffff;cursor:pointer}
button.btn:hover{filter:brightness(1.08)}
.btn-secondary{background:#eef7f3;color:var(--text)}
.btn-danger{background:var(--danger);color:#ffffff}
.btn-primary{background:#3ea76a;border:0;color:#ffffff;cursor:pointer}
.btn-primary:hover{filter:brightness(1.05)}
.nav{position:sticky;top:0;background:#ffffff;border-bottom:1px solid #dbe7e0;z-index:10;backdrop-filter:saturate(140%) blur(6px)}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 16px}
.nav .links{display:flex;flex-wrap:wrap;gap:10px 14px}
.nav .links a{color:var(--text);text-decoration:none;padding:6px 10px;border-radius:8px;opacity:.9}
.nav .links a:not(:first-child){border-left:1px solid #dbe7e0;padding-left:14px;margin-left:2px}
.nav .links a:hover{opacity:1}
.nav .brand img.logo{height:28px;vertical-align:middle;margin-right:8px}
.nav .user{margin-right:8px;color:var(--muted);font-size:12px}
.logo-hero{height:96px; width:auto}
.help-note{font-size:12px;color:var(--muted);margin:10px 16px}
.glow{animation:glowPulse 900ms ease-in-out 0s 1}
@keyframes glowPulse{0%{box-shadow:0 0 0 0 rgba(80,176,255,0)}50%{box-shadow:0 0 0 6px rgba(80,176,255,.25)}100%{box-shadow:0 0 0 0 rgba(80,176,255,0)}}
.nav .links a.active{color:var(--accent);opacity:1}
.form-grid{display:grid;grid-template-columns:1fr;gap:10px}
.row{display:flex;gap:10px;align-items:center}
label{min-width:110px;color:var(--muted)}
.notice{color:var(--muted);font-size:14px}
.table thead th{position:sticky;top:0;background:#f4fbf8;z-index:1}
.table th,.table td{padding:8px 10px;text-align:center}
.table td.money,.table th.money{ text-align:right }
.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.table tr:hover{background:#eef7f3}
.table tbody tr:nth-child(even){background:#f9fcfb}
.btn{margin:0 4px}

/* small form helper */
.help-note{font-size:12px;color:var(--muted);margin:10px 16px}

/* tag/badge */
.badge{display:inline-block;padding:2px 8px;border-radius:999px;background:#e9f4ee;color:#21352d;font-size:12px}
.badge.success{background:var(--accent);color:#ffffff}
.badge.warn{background:#fbbf24;color:#0b0f14}
.table{width:100%;border-collapse:separate;border-spacing:0}
.table th,.table td{padding:8px 10px;border-bottom:1px solid #dfeae4;text-align:center}
.table thead th{position:sticky;top:0;background:#f4fbf8;z-index:1}

/* Sticky first column for wide grids */
.sticky-grid th:first-child,
.sticky-grid td:first-child{
  position:sticky;
  left:0;
  z-index:2;
  background:#ffffff;
}
.sticky-grid thead th:first-child{
  z-index:3;
}
/* ширини колонок для кращого горизонтального скролу */
.sticky-grid th,.sticky-grid td{ min-width:56px }
.sticky-grid th:first-child,.sticky-grid td:first-child{ min-width:220px; text-align:left }
.sticky-grid td > input.cell{ width:54px }
/* легка тінь розділення липкої колонки */
.sticky-grid th:first-child,
.sticky-grid td:first-child{ box-shadow: 2px 0 0 0 #dfeae4 }
/* підсвітка редагованих клітинок у розкладі (яскраво-зелений) */
.sticky-grid td.edited{ background:#b2ff59 !important } /* light green A200 */
.sticky-grid td.edited > input.cell{ background:#b2ff59 !important }