:root{
  --green:#1F9D45;
  --green-light:#86C425;
  --teal:#106661;
  --indigo:#1D1450;
  --indigo-2:#120B33;
  --paper:#F6F7F2;
  --paper-2:#EEF1E9;
  --ink:#14171C;
  --ink-soft:#4B5259;
  --line:#DFE3D8;
  --danger:#B23A2E;
  --danger-bg:#FBE9E7;
  --success-bg:#E9F6EA;
  --warning-bg:#FDF3D9;
  --warning:#96690B;
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:'Inter',Arial,sans-serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.5;
}
a{color:var(--teal);}
h1,h2,h3{font-family:'Space Grotesk','Inter',sans-serif;margin:0;color:var(--indigo);}

/* Top bar (dashboard) */
.topbar{
  background:var(--indigo);
  color:#fff;
  padding:16px 24px;
  display:flex;align-items:center;justify-content:space-between;
}
.topbar a.brand{color:#fff;text-decoration:none;font-weight:700;font-family:'Space Grotesk',sans-serif;}
.topbar-user{display:flex;align-items:center;gap:12px;font-size:14px;}
.avatar{
  width:38px;height:38px;border-radius:50%;
  background:var(--green-light);color:var(--indigo-2);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;
}
.btn-logout{
  background:rgba(255,255,255,.12);color:#fff;border:none;
  padding:8px 14px;border-radius:8px;font-size:13px;cursor:pointer;
}
.btn-logout:hover{background:rgba(255,255,255,.2);}

/* Login card */
.login-wrap{
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;
}
.login-card{
  background:#fff;border:1px solid var(--line);border-radius:16px;
  padding:40px 36px;max-width:380px;width:100%;
  box-shadow:0 20px 50px -30px rgba(20,23,28,.3);
}
.login-card h1{font-size:22px;margin-bottom:6px;}
.login-card p.sub{color:var(--ink-soft);font-size:14px;margin-bottom:26px;}

.field{margin-bottom:16px;}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;}
.field input, .field select{
  width:100%;padding:11px 13px;border-radius:9px;
  border:1.5px solid var(--line);font-size:14.5px;font-family:inherit;
}
.field input:focus, .field select:focus{outline:none;border-color:var(--teal);}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  width:100%;padding:12px 20px;border-radius:999px;border:none;
  font-weight:600;font-size:15px;cursor:pointer;
  background:linear-gradient(100deg,var(--green) 0%, var(--teal) 60%, var(--indigo) 130%);
  color:#fff;
}
.btn:hover{opacity:.92;}
.btn-secondary{background:var(--paper-2);color:var(--ink);border:1px solid var(--line);}

.link-btn{background:none;border:none;color:var(--teal);font-size:13px;cursor:pointer;padding:0;text-decoration:underline;}

.msg{font-size:13.5px;padding:10px 12px;border-radius:8px;margin-top:14px;display:none;}
.msg.show{display:block;}
.msg.ok{background:var(--success-bg);color:var(--green);}
.msg.err{background:var(--danger-bg);color:var(--danger);}

/* Dashboard */
.dash-wrap{max-width:900px;margin:0 auto;padding:32px 24px 80px;}
.dash-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px;}
.stat-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;}
.stat-card .label{font-size:12.5px;color:var(--ink-soft);margin-bottom:4px;}
.stat-card .val{font-family:'Space Grotesk',sans-serif;font-size:22px;font-weight:600;}

.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 22px;margin-bottom:20px;}
.panel h2{font-size:16px;margin-bottom:14px;}

.row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid var(--line);}
.row:first-of-type{border-top:none;}
.badge{font-size:12px;padding:3px 11px;border-radius:999px;font-weight:600;}
.badge.ok{background:var(--success-bg);color:var(--green);}
.badge.warn{background:var(--warning-bg);color:var(--warning);}
.badge.danger{background:var(--danger-bg);color:var(--danger);}
.badge.pending{background:var(--paper-2);color:var(--ink-soft);}

.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.comment{font-size:12.5px;color:var(--ink-soft);font-style:italic;margin-top:4px;}
.empty{color:var(--ink-soft);font-size:14px;padding:8px 0;}
.loading{color:var(--ink-soft);font-size:14px;text-align:center;padding:40px 0;}
