:root{font-family:Inter,Arial,sans-serif;color:#16332c;background:#f8faf9}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}.login-banner{margin:22px 24px 0;padding:42px 24px;background:radial-gradient(ellipse at center,#183e32,#102e27);border-radius:30px;text-align:center;color:white}.login-banner h1{font-size:clamp(42px,7vw,76px);font-weight:600;letter-spacing:-3px;margin:0 0 12px}.login-banner h1 span{color:#86a67b}.login-banner p{color:#c0cdc6;font-size:clamp(16px,2vw,23px);margin:0}.login-main{display:flex;justify-content:center;padding:64px 20px}.login-card{width:380px;max-width:100%}h2{font-size:22px;font-weight:500;margin:0 0 30px}label{display:block;font-size:14px;margin:18px 0}input,select{display:block;width:100%;padding:13px;border:1px solid #d6e0da;border-radius:8px;background:white;margin-top:8px;color:#16332c}input:focus,select:focus{outline:2px solid #7f9e78;outline-offset:1px}.password-wrap{position:relative}.password-wrap input{padding-right:90px}.password-wrap button{position:absolute;right:8px;top:8px;border:0;background:none;font-size:12px;padding:7px;color:#536b60}.primary{display:block;width:100%;padding:14px;background:#163d2d;color:white;border:0;border-radius:8px;margin-top:22px}.login-card small{display:block;text-align:center;color:#8b9c92;font-size:12px;margin-top:20px}#error{color:#a83f37;min-height:18px;font-size:14px}.admin{max-width:1100px;margin:auto;padding:30px 22px}.admin header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.admin a{color:#2d684d}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px}.admin form,.admin article{background:#fff;border:1px solid #e2e9e4;border-radius:12px;padding:24px}.user-row{border-bottom:1px solid #edf1ee;padding:15px 0;display:flex;align-items:center;justify-content:space-between;gap:14px}.user-row small{display:block;color:#7b8c83;margin-top:5px}.user-row button,.secondary{border:1px solid #d2ded6;background:#fff;border-radius:6px;padding:8px 12px}.permissions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.permissions label{display:flex;align-items:center;gap:8px;margin:4px 0}.permissions input,input[type=checkbox]{width:auto;display:inline;margin:0}.admin-message{min-height:22px;color:#a83f37}.audit{margin-top:30px;font-size:13px;line-height:1.8;overflow:auto}input:disabled{opacity:.7}@media(max-width:700px){.login-banner{margin:12px;padding:32px 12px;border-radius:20px}.login-main{padding-top:45px}.admin-grid{grid-template-columns:1fr}.permissions{grid-template-columns:1fr}}

/* Full-screen REZERV login. Admin styles remain scoped separately. */
.login-page {
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  color-scheme: dark;
  color: #f3f5ed;
  background: radial-gradient(ellipse at 50% 10%, #1c4535 0%, #102f27 68%);
}
.login-page .login-banner {
  margin: 0;
  padding: 76px 24px 0;
  border-radius: 0;
  background: transparent;
}
.login-page .login-banner h1 {
  margin: 0;
  font-size: clamp(44px, 6vw, 72px);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -3.5px;
  color: #f3f5ed;
}
.login-page .login-banner h1 span { color: #8eaa7e; }
.login-page .login-banner p {
  margin-top: 18px;
  font-size: 17px;
  line-height: 1.5;
  color: #b6c8b8;
}
.login-page .login-main {
  flex: 1;
  align-items: flex-start;
  padding: 70px 24px 80px;
}
.login-page .login-card { width: 360px; }
.login-page .login-card label {
  margin: 0 0 22px;
  color: #b6c8b8;
  font-size: 13px;
  line-height: 1.5;
}
.login-page .login-card input {
  height: 48px;
  padding: 0 14px;
  border: 1px solid #486552;
  border-radius: 7px;
  color: #f3f5ed;
  background: #204336;
  font-size: 16px;
}
.login-page .login-card input::placeholder { color: #96ad9b; opacity: 1; font-size: 14px; }
.login-page .login-card input:focus { outline: 2px solid #a5b991; outline-offset: 2px; }
.login-page .password-wrap input { padding-right: 88px; }
.login-page .password-wrap button { top: 7px; color: #c3d2bf; }
.login-page .login-card .primary {
  height: 48px;
  margin-top: 18px;
  border-radius: 7px;
  color: #142f23;
  background: #a5b991;
  font-size: 15px;
  font-weight: 500;
}
.login-page .login-card .primary:hover { background: #bacba8; }
.login-page .login-card small { color: #a5bba8; }
.login-page #error { margin: 0; color: #f5b9a6; }
@media (max-width: 480px) {
  .login-page .login-banner { padding: 60px 24px 0; }
  .login-page .login-banner h1 { letter-spacing: -2px; }
  .login-page .login-banner p { font-size: 14px; margin-top: 16px; }
  .login-page .login-main { padding: 64px 26px 60px; }
}
