:root{
  --bg:#f4f6f9; --panel:#fff; --ink:#1f2a37; --muted:#6b7280;
  --line:#e5e7eb; --brand:#0f766e; --brand-d:#0b5a54;
  --pos:#15803d; --pos-bg:#ecfdf3; --neg:#b91c1c; --neg-bg:#fef2f2;
  --shadow:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.10);
  --radius:12px;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  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}
h1{font-size:1.6rem; margin:.2em 0 .6em}
h2{font-size:1.15rem; margin:1.6em 0 .6em}

/* Topbar */
.topbar{
  display:flex; align-items:center; gap:24px; padding:0 22px; height:58px;
  background:var(--brand); color:#fff; box-shadow:var(--shadow);
}
.topbar a{color:#fff}
.brand{font-weight:700; font-size:1.05rem}
.topbar nav{display:flex; gap:18px; margin-left:6px}
.topbar nav a{opacity:.92}
.topbar .user{margin-left:auto; display:flex; align-items:center; gap:14px; font-size:.9rem}
.topbar .logout{background:rgba(255,255,255,.16); padding:6px 12px; border-radius:8px}

/* Layout */
.container{max-width:1040px; margin:26px auto; padding:0 18px}
.container--auth{display:flex; min-height:80vh; align-items:center; justify-content:center}
.foot{text-align:center; color:var(--muted); font-size:.82rem; padding:26px 0}

/* Flash */
.flash{
  background:#eef6ff; border:1px solid #bfdbfe; color:#1e40af;
  padding:10px 14px; border-radius:10px; margin-bottom:16px;
}

/* Cards */
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:6px 0 8px}
.card{background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; box-shadow:var(--shadow)}
.card-label{color:var(--muted); font-size:.82rem; text-transform:uppercase; letter-spacing:.03em}
.card-val{font-size:1.7rem; font-weight:700; margin-top:4px}
.card-sub{color:var(--muted); font-size:.82rem; margin-top:4px}
.card.pos{border-top:3px solid var(--pos)} .card.pos .card-val{color:var(--pos)}
.card.neg{border-top:3px solid var(--neg)} .card.neg .card-val{color:var(--neg)}

/* Section head */
.section-head{display:flex; align-items:center; justify-content:space-between}

/* Tables */
.grid{width:100%; border-collapse:separate; border-spacing:0; background:var(--panel);
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow)}
.grid th,.grid td{padding:11px 14px; text-align:left; border-bottom:1px solid var(--line); vertical-align:top}
.grid thead th{background:#fafbfc; color:var(--muted); font-size:.78rem; text-transform:uppercase; letter-spacing:.03em}
.grid tbody tr:last-child td{border-bottom:none}
.grid tbody tr:hover{background:#fafcff}
.num{text-align:right; white-space:nowrap}
.nowrap{white-space:nowrap}
.center{text-align:center}
.pos{color:var(--pos)} .neg{color:var(--neg)}
.muted{color:var(--muted)}
.lnk{font-weight:600}

/* Partner header */
.ph{display:flex; align-items:center; gap:14px}
.ph h1{margin:.2em 0}
.meta{display:flex; gap:18px; color:var(--muted); font-size:.9rem; margin-bottom:6px; flex-wrap:wrap}
.note{background:#fffbeb; border:1px solid #fde68a; padding:10px 14px; border-radius:10px}
.back{display:inline-block; margin-bottom:8px; color:var(--muted)}

/* Two columns */
.row-2{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:6px}
.panel{background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; box-shadow:var(--shadow)}
.panel h2{margin-top:.2em}
.closing{background:#f8fafc; border:1px solid var(--line); padding:8px 12px; border-radius:8px}

/* Forms */
form label{display:block; margin:10px 0; font-size:.88rem; color:#374151; font-weight:600}
input,select,textarea{
  width:100%; margin-top:5px; padding:9px 11px; font:inherit; color:var(--ink);
  border:1px solid #d1d5db; border-radius:8px; background:#fff;
}
input:focus,select:focus,textarea:focus{outline:none; border-color:var(--brand); box-shadow:0 0 0 3px rgba(15,118,110,.12)}
textarea{resize:vertical}
.f-row{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.form-narrow{max-width:560px}

/* Buttons */
button{cursor:pointer; font:inherit}
.btn-primary{background:var(--brand); color:#fff; border:none; padding:10px 18px; border-radius:9px; font-weight:600; margin-top:8px}
.btn-primary:hover{background:var(--brand-d)}
.btn-block{width:100%}
.btn-sm{display:inline-block; background:#fff; border:1px solid #d1d5db; color:var(--ink);
  padding:5px 12px; border-radius:8px; font-size:.85rem; font-weight:600}
.btn-sm:hover{background:#f3f4f6; text-decoration:none}
.btn-link{background:none; border:none; color:var(--brand); padding:0; font-size:.85rem; text-decoration:underline}
.btn-link.danger{color:var(--neg)}

/* Badges */
.badge{display:inline-block; padding:2px 9px; border-radius:999px; font-size:.78rem; background:#f3f4f6; color:var(--muted); border:1px solid var(--line)}
.badge.ok{background:var(--pos-bg); color:var(--pos); border-color:#bbf7d0}

/* Auth */
.auth-card{background:var(--panel); border:1px solid var(--line); border-radius:16px;
  padding:30px 32px; box-shadow:var(--shadow); width:360px; max-width:100%}
.auth-card h1{margin:0; font-size:1.4rem}
.auth-card .muted{margin-top:0}

.legend{color:var(--muted); font-size:.82rem; margin-top:12px}
.legend .pos,.legend .neg{font-weight:700}

@media (max-width:760px){
  .cards,.row-2,.f-row{grid-template-columns:1fr}
  .topbar{gap:12px; padding:0 12px}
  .topbar nav{display:none}
}
