:root{
  --forest:#173f32;
  --green:#1d654d;
  --ink:#243c34;
  --muted:#5a6e62;
  --line:#dce5df;
  --paper:#f3f5f3;
  --soft:#e3ece5}
*{
  box-sizing:border-box}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:16px/1.5 Arial,Helvetica,sans-serif}
a{
  color:var(--green);
  text-underline-offset:3px}
a:hover{
  color:var(--forest)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{
  outline:3px solid #bb9450;
  outline-offset:3px}
.topbar{
  background:#fff;
  border-bottom:1px solid var(--line)}
.topbar-inner{
  max-width:1200px;
  margin:auto;
  padding:22px 28px;
  display:flex;
  gap:24px;
  align-items:center;
  justify-content:space-between}
.brand{
  display:flex;
  align-items:center;
  gap:20px;
  text-decoration:none;
  color:var(--forest);
  font-size:19px;
  letter-spacing:.1em;
  font-weight:700}
.brand img{
  width:130px;
  height:auto}
.account{
  display:flex;
  gap:16px;
  align-items:center;
  font-size:14px}
.account form{
  margin:0}
.shell{
  max-width:1200px;
  margin:auto;
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:30px;
  padding:30px 28px}
.sidebar nav{
  display:flex;
  flex-direction:column;
  gap:4px}
.sidebar h2{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.15em;
  color:var(--muted);
  margin:24px 12px 10px}
.sidebar a{
  padding:11px 12px;
  border-radius:8px;
  text-decoration:none;
  font-size:14px;
  min-height:44px}
.sidebar a:hover,.sidebar a.current{
  background:var(--soft);
  color:var(--forest)}
main{
  min-width:0}
h1{
  font-size:32px;
  line-height:1.2;
  color:var(--forest);
  margin:0 0 12px}
h2{
  font-size:20px;
  color:var(--forest);
  margin:0 0 16px}
h3{
  font-size:17px;
  margin:0 0 6px}
.eyebrow{
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:11px;
  color:var(--muted);
  margin:0 0 10px}
.muted{
  color:var(--muted)}
.intro{
  margin:0 0 28px;
  color:var(--muted);
  max-width:660px}
.card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  padding:24px;
  margin-bottom:22px;
  overflow-wrap:anywhere}
.grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px}
.grid .card{
  margin:0}
.card-link{
  display:block;
  text-decoration:none;
  color:var(--ink)}
.card-link:hover{
  border-color:var(--green)}
.card-link p{
  margin:8px 0 16px;
  color:var(--muted)}
.arrow{
  color:var(--green);
  font-weight:700}
.section-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:30px 0 14px}
.section-heading h2{
  margin:0}
.report-row{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:17px 0;
  border-top:1px solid var(--line);
  text-decoration:none;
  color:var(--ink)}
.report-row:first-of-type{
  border-top:0}
.report-row strong{
  display:block}
.report-row small{
  color:var(--muted)}
.tag{
  display:inline-block;
  background:var(--soft);
  color:var(--forest);
  border-radius:20px;
  padding:4px 10px;
  font-size:12px;
  white-space:nowrap;
  align-self:center}
.empty{
  padding:18px 0;
  color:var(--muted)}
.button,button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 16px;
  min-height:44px;
  border:1px solid var(--green);
  border-radius:7px;
  background:var(--green);
  color:#fff;
  font:600 14px Arial,Helvetica,sans-serif;
  text-decoration:none;
  cursor:pointer}
.button:hover,button:hover{
  background:var(--forest);
  color:white}
.secondary{
  background:#fff;
  color:var(--green);
  border-color:var(--line)}
.secondary:hover{
  background:var(--soft);
  color:var(--forest)}
.actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  margin:20px 0}
.filter{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  align-items:end}
.filter label{
  flex:1 1 160px}
.filter button{
  flex:0 0 auto}
label{
  display:block;
  font-size:14px;
  font-weight:600;
  margin-bottom:16px}
input,select,textarea{
  display:block;
  width:100%;
  margin-top:7px;
  padding:11px 12px;
  border:1px solid #b8c8bf;
  border-radius:7px;
  background:white;
  color:var(--ink);
  font:16px Arial,Helvetica,sans-serif;
  min-height:44px}
input[type=checkbox]{
  display:inline-block;
  width:20px;
  min-height:20px;
  margin:0 8px 0 0;
  vertical-align:middle}
.error{
  padding:14px 16px;
  border:1px solid #e0b7ad;
  background:#fff2ed;
  border-radius:7px;
  color:#793c2b;
  margin:16px 0}
.login-shell{
  max-width:460px;
  margin:8vh auto;
  padding:28px}
.login-shell .logo{
  display:block;
  width:190px;
  margin:0 auto 28px}
.login-shell .card{
  padding:28px}
.login-shell h1{
  font-size:27px}
.login-shell button{
  width:100%}
.login-shell .muted{
  font-size:14px}
.table-wrap{
  overflow-x:auto}
table{
  width:100%;
  border-collapse:collapse;
  font-size:14px}
th{
  text-align:left;
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--muted);
  padding:10px 12px;
  border-bottom:1px solid var(--line)}
td{
  padding:14px 12px;
  border-bottom:1px solid var(--line);
  vertical-align:top}
tr:last-child td{
  border-bottom:0}
.snapshot{
  width:100%;
  height:1100px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--paper)}
details{
  margin-top:24px}
summary{
  cursor:pointer;
  color:var(--green);
  font-weight:600;
  min-height:44px}
.permission-row{
  display:grid;
  grid-template-columns:1fr 200px;
  align-items:center;
  gap:20px;
  padding:12px 0;
  border-bottom:1px solid var(--line)}
.permission-row label{
  margin:0}
.permission-row select{
  margin:0}
.permission-section{
  margin-top:24px}
.field-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 20px}
.data-list{
  display:grid;
  grid-template-columns:minmax(140px,1fr) 2fr;
  gap:12px 24px;
  margin:0}
.data-list dt{
  font-size:14px;
  color:var(--muted)}
.data-list dd{
  margin:0;
  overflow-wrap:anywhere}
.notes{
  white-space:pre-wrap}
.footer{
  color:var(--muted);
  font-size:12px;
  margin-top:32px}
.pagination{
  display:flex;
  justify-content:space-between;
  gap:16px;
  margin-top:22px}
@media(max-width:800px){
  .shell{
  grid-template-columns:1fr;
  padding:24px 20px;
  gap:24px}
.sidebar nav{
  flex-direction:row;
  flex-wrap:wrap;
  gap:4px}
.sidebar h2{
  flex-basis:100%;
  margin:14px 0 4px}
.sidebar a{
  padding:10px;
  font-size:13px}
.topbar-inner{
  padding:18px 20px;
  flex-wrap:wrap}
.brand{
  font-size:16px}
.brand img{
  width:110px}
.account{
  margin-left:auto}
.snapshot{
  height:1150px}
}
@media(max-width:520px){
  .grid,.field-grid{
  grid-template-columns:1fr}
.card{
  padding:20px}
.topbar-inner{
  gap:14px}
.account{
  width:100%;
  justify-content:space-between}
.shell{
  padding:20px 14px}
h1{
  font-size:28px}
.permission-row{
  grid-template-columns:1fr;
  gap:8px}
.data-list{
  grid-template-columns:1fr;
  gap:4px}
.data-list dd{
  margin-bottom:12px}
.report-row{
  align-items:start}
.report-row .tag{
  align-self:start}
.login-shell{
  margin:4vh auto;
  padding:18px}
.snapshot{
  height:1300px}
}
@media print{
  .topbar,.sidebar,.actions,.filter,.pagination,.footer{
  display:none!important}
.shell{
  display:block;
  padding:0;
  margin:0;
  max-width:none}
body{
  background:white;
  font-size:11pt}
.card{
  border:0;
  padding:8px;
  margin:8px 0;
  break-inside:avoid;
  page-break-inside:avoid}
h1{
  font-size:20pt}
a{
  color:inherit;
  text-decoration:none}
table{
  font-size:10pt}
tr{
  break-inside:avoid}
}
