:root{
  --bg:#f4f6f9; --card:#ffffff; --ink:#1f2733; --muted:#6b7787;
  --line:#e3e8ef; --brand:#1d6f42; --brand-dark:#155233; --accent:#b3261e;
  --blue:#1e5fa4; --green:#1d7a46; --red:#b3261e; --amber:#9a6b00;
  --radius:10px; --shadow:0 1px 3px rgba(20,30,50,.08),0 1px 2px rgba(20,30,50,.04);
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  background:var(--bg);color:var(--ink);line-height:1.5;font-size:15px}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}

/* Topbar */
.topbar{display:flex;align-items:center;gap:1.25rem;background:var(--brand);
  color:#fff;padding:.6rem 1.25rem;box-shadow:var(--shadow);flex-wrap:wrap}
.topbar .brand a{color:#fff;font-weight:700;font-size:1.05rem}
.mainnav{display:flex;gap:.25rem;flex:1;flex-wrap:wrap}
.mainnav a{color:#dff0e6;padding:.35rem .7rem;border-radius:6px}
.mainnav a:hover{background:rgba(255,255,255,.12);text-decoration:none}
.mainnav a.is-active{background:rgba(255,255,255,.2);color:#fff;font-weight:600}
.userbox{display:flex;align-items:center;gap:.6rem}
.uname{font-size:.85rem;color:#eaf4ee;display:flex;flex-direction:column;line-height:1.15;text-align:right}
.urole{font-size:.7rem;color:#bfe0cd}

/* Layout */
.container{max-width:1040px;margin:1.5rem auto;padding:0 1.25rem}
.footer{max-width:1040px;margin:2rem auto;padding:1rem 1.25rem;color:var(--muted);font-size:.8rem;text-align:center}
.pagehead{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1.1rem;flex-wrap:wrap}
.pagehead h1{font-size:1.4rem;margin:0}
.subtle{color:var(--muted)}
.muted{color:var(--muted)}

/* Cards & grid */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:1.1rem 1.2rem;margin-bottom:1.1rem}
.card h2{margin:.1rem 0 .8rem;font-size:1.05rem}
.grid{display:grid;gap:1rem}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}

/* Dashboard tiles */
.tiles{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:1.2rem}
.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.1rem;box-shadow:var(--shadow)}
.tile .num{font-size:2rem;font-weight:700;line-height:1}
.tile .lbl{color:var(--muted);font-size:.85rem;margin-top:.25rem}

/* Buttons */
.btn{display:inline-block;border:1px solid var(--brand);background:var(--brand);color:#fff;
  padding:.5rem .9rem;border-radius:8px;font-size:.9rem;cursor:pointer;font-weight:600;line-height:1.1}
.btn:hover{background:var(--brand-dark);border-color:var(--brand-dark);text-decoration:none;color:#fff}
.btn-sm{padding:.3rem .6rem;font-size:.82rem}
.btn-ghost{background:transparent;border-color:rgba(255,255,255,.5);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.15);border-color:#fff}
.btn-secondary{background:#fff;color:var(--ink);border-color:var(--line)}
.btn-secondary:hover{background:#f3f5f8;color:var(--ink)}
.btn-danger{background:var(--red);border-color:var(--red)}
.btn-danger:hover{background:#8f1e17;border-color:#8f1e17}
.btn-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}

/* Tables */
table.list{width:100%;border-collapse:collapse;background:var(--card);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
table.list th,table.list td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--line);vertical-align:top}
table.list th{background:#f7f9fb;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
table.list tr:last-child td{border-bottom:none}
table.list tbody tr:hover{background:#f8fafc}
.right{text-align:right}
.nowrap{white-space:nowrap}

/* Forms */
form .field{margin-bottom:.9rem}
label{display:block;font-weight:600;font-size:.85rem;margin-bottom:.25rem}
input[type=text],input[type=email],input[type=tel],input[type=password],
input[type=date],input[type=number],select,textarea{
  width:100%;padding:.5rem .6rem;border:1px solid var(--line);border-radius:8px;
  font:inherit;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid #bcd9c7;border-color:var(--brand)}
textarea{min-height:80px;resize:vertical}
.check{display:flex;align-items:center;gap:.5rem;font-weight:500}
.check input{width:auto}
.hint{color:var(--muted);font-size:.8rem;margin-top:.2rem}
fieldset{border:1px solid var(--line);border-radius:8px;padding:.9rem 1rem;margin:0 0 1rem}
legend{font-weight:700;padding:0 .4rem;color:var(--brand)}

/* Badges */
.badge{display:inline-block;padding:.12rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600}
.badge-blue{background:#e3effa;color:var(--blue)}
.badge-green{background:#e2f3ea;color:var(--green)}
.badge-red{background:#fbe6e4;color:var(--red)}
.badge-gray{background:#eceff3;color:var(--muted)}
.badge-amber{background:#fbf1d8;color:var(--amber)}

/* Flash */
.flash{padding:.7rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem;border:1px solid}
.flash-ok{background:#e7f6ee;border-color:#bfe3cd;color:#155233}
.flash-err{background:#fbe9e7;border-color:#f1c4bf;color:#8f1e17}
.flash-info{background:#e8f0fb;border-color:#c6dbf2;color:#194e87}

/* Login */
.login-wrap{max-width:380px;margin:5vh auto;padding:0 1rem}
.login-wrap .card{padding:1.6rem}
.login-logo{text-align:center;font-size:1.4rem;font-weight:700;color:var(--brand);margin-bottom:1.2rem}

/* Detail rows */
.deflist{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem;font-size:.92rem}
.deflist dt{color:var(--muted)}
.deflist dd{margin:0}
.fee-box{background:#f7f9fb;border:1px solid var(--line);border-radius:8px;padding:.8rem 1rem;font-size:.9rem}
.fee-box .total{font-size:1.15rem;font-weight:700;color:var(--brand)}
.toolbar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem}
.toolbar form{display:flex;gap:.5rem;flex:1;min-width:200px}
.empty{text-align:center;color:var(--muted);padding:2rem 1rem}
