/* ===================================================================
   CERTIFICA VITÓRIA — Formação AGR
   Design tokens — palette sampled directly from certificavitoria.com
   Color:  --navy (#0a3d62) headings/nav text · --gold (#5fa1bc) the
           site's signature topbar teal, reused here as the primary
           accent/CTA colour · --paper (#f7f9fb) light page background
           --ok (#079992) teal-green success accent (site's cart badge)
   Type:   Poppins (display, rounded geometric — matches the site's
           headings) · Inter (UI/body) · IBM Plex Mono (data/codes)
   Signature: the "corrente de confiança" — a chain of 14 linked seals
   that lock shut, in brand teal, as each module is completed.
=================================================================== */

:root{
  /* Palette sampled directly from certificavitoria.com (topbar teal,
     dark-navy headings, light background, teal-green success accent) */
  --navy:#0a3d62;
  --navy-2:#0e4c78;
  --navy-3:#125a8c;
  --gold:#5fa1bc;      /* primary brand teal — used for CTAs / accent / "done" states */
  --gold-2:#7fb8cf;    /* lighter hover teal */
  --teal:#0a3d62;      /* secondary label accent reuses the brand navy for consistency */
  --paper:#f7f9fb;
  --paper-2:#eef2f5;
  --ink:#233240;
  --ink-soft:#747c91;
  --line:#e1e7ec;
  --danger:#b3423f;
  --danger-bg:#fbecec;
  --ok:#079992;
  --ok-bg:#e6f5f3;
  --radius:14px;
  --serif:'Poppins', 'Inter', sans-serif;
  --sans:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --mono:'IBM Plex Mono', ui-monospace, monospace;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--sans);
  background:var(--paper);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
button{font-family:inherit;cursor:pointer;}
::selection{background:var(--gold-2); color:var(--navy);}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}

/* ---------------------------- TOP BAR ---------------------------- */
.topbar{
  position:sticky; top:0; z-index:40;
  display:flex; align-items:center; gap:14px;
  height:64px; padding:0 18px;
  background:var(--navy);
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.menu-btn{
  display:none; flex-direction:column; justify-content:center; gap:4px;
  width:34px; height:34px; background:none; border:none; padding:6px;
  border-radius:8px;
}
.menu-btn span{display:block; width:20px; height:2px; background:#fff; border-radius:2px;}
.menu-btn:hover{background:rgba(255,255,255,0.08);}

.brand{display:flex; align-items:center; gap:11px;}
.brand-logo{height:34px; width:auto;}
.brand-text{display:flex; flex-direction:column; line-height:1.15; color:#fff;}
.brand-text strong{font-family:var(--serif); font-size:16.5px; font-weight:700; letter-spacing:.2px;}
.brand-text span{font-size:11px; color:#b7c6d4; letter-spacing:.4px; text-transform:uppercase;}

.topbar-right{margin-left:auto; display:flex; align-items:center; gap:10px;}
.icon-btn{
  width:36px; height:36px; border-radius:10px; border:1px solid rgba(255,255,255,0.14);
  background:rgba(255,255,255,0.04); color:#dfe7ee; display:flex; align-items:center; justify-content:center;
}
.icon-btn:hover{background:rgba(255,255,255,0.12);}

.chain-mini{display:flex; align-items:center; gap:3px;}
.chain-mini i{
  width:9px; height:9px; border-radius:50%;
  background:rgba(255,255,255,0.18); border:1px solid rgba(255,255,255,0.25);
  transition:.25s;
}
.chain-mini i.on{background:var(--gold); border-color:var(--gold-2); box-shadow:0 0 6px rgba(221,143,46,.8);}

/* ---------------------------- SEARCH ---------------------------- */
.search-overlay{
  position:fixed; inset:0; background:rgba(10,20,32,0.55); backdrop-filter:blur(2px);
  z-index:100; display:none; align-items:flex-start; justify-content:center; padding-top:9vh;
}
.search-overlay.open{display:flex;}
.search-box{
  width:min(640px, 92vw); background:#fff; border-radius:16px; box-shadow:0 30px 60px rgba(0,0,0,.35);
  padding:18px; max-height:76vh; display:flex; flex-direction:column;
}
#searchInput{
  width:100%; padding:13px 14px; font-size:16px; border-radius:10px; border:1.5px solid var(--line);
  font-family:var(--sans); outline:none;
}
#searchInput:focus{border-color:var(--gold);}
.search-results{margin-top:10px; overflow-y:auto;}
.search-result{
  padding:11px 12px; border-radius:10px; cursor:pointer; border:1px solid transparent;
}
.search-result:hover{background:var(--paper); border-color:var(--line);}
.search-result b{color:var(--navy);}
.search-result .sr-mod{font-size:11.5px; color:var(--teal); font-weight:700; text-transform:uppercase; letter-spacing:.3px;}
.search-result .sr-snippet{font-size:13.5px; color:var(--ink-soft); margin-top:2px;}
.search-close{
  margin-top:10px; align-self:flex-end; background:none; border:none; color:var(--ink-soft); font-size:13px;
}

/* ---------------------------- LAYOUT ---------------------------- */
.app-shell{display:flex; min-height:calc(100vh - 64px);}
.sidebar{
  width:296px; flex-shrink:0; background:var(--navy);
  display:flex; flex-direction:column; justify-content:space-between;
  position:sticky; top:64px; height:calc(100vh - 64px);
}
.sidebar-scroll{overflow-y:auto; padding:16px 12px 8px;}
.sidebar-backdrop{display:none;}

.nav-section-label{
  font-size:11px; letter-spacing:.7px; text-transform:uppercase; color:#7f93a6;
  margin:20px 10px 8px; font-weight:700;
}
.nav-item{
  width:100%; text-align:left; display:flex; align-items:center; gap:10px;
  padding:10px 11px; border-radius:10px; background:none; border:none;
  color:#d7e1ea; font-size:13.6px; font-weight:500; line-height:1.3;
}
.nav-item:hover{background:rgba(255,255,255,0.06);}
.nav-item.active{background:rgba(221,143,46,0.16); color:#fff;}
.nav-item.active .nav-dot{background:var(--gold); border-color:var(--gold-2);}
.nav-dot{
  width:9px; height:9px; border-radius:50%; flex-shrink:0;
  background:rgba(255,255,255,0.2); border:1px solid rgba(255,255,255,0.3);
}
.nav-dot.done{background:var(--gold); border-color:var(--gold-2); box-shadow:0 0 5px rgba(221,143,46,.7);}
.nav-dot--home{background:var(--teal); border-color:#7fb3c0;}
.nav-dot--flash{background:#9b7fd1; border-color:#b79fe3;}
.nav-dot--glossary{background:#5fa8d3; border-color:#8bc4e5;}
.nav-dot--exam{background:var(--danger); border-color:#c96363;}
.nav-item .nav-num{
  font-family:var(--mono); font-size:11px; color:#8ea2b4; width:16px; flex-shrink:0;
}
.nav-item.active .nav-num{color:var(--gold-2);}

.sidebar-footer{padding:14px 18px 18px; border-top:1px solid rgba(255,255,255,0.08);}
.progress-line{height:6px; border-radius:4px; background:rgba(255,255,255,0.12); overflow:hidden;}
.progress-line-fill{height:100%; width:0%; background:linear-gradient(90deg,var(--gold),var(--gold-2)); transition:width .4s;}
#sidebarProgressText{display:block; margin-top:7px; font-size:11.5px; color:#9db0c1;}

.content{flex:1; min-width:0; padding:36px 44px 90px; max-width:920px; margin:0 auto;}

/* ---------------------------- HERO / HOME ---------------------------- */
.hero{
  background:linear-gradient(135deg,var(--navy) 0%, var(--navy-3) 100%);
  border-radius:20px; padding:42px 38px; color:#fff; position:relative; overflow:hidden;
}
.hero::after{
  content:""; position:absolute; right:-60px; top:-60px; width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle at 30% 30%, rgba(221,143,46,.35), transparent 70%);
}
.eyebrow{
  font-size:12px; letter-spacing:1.2px; text-transform:uppercase; color:var(--gold-2); font-weight:700;
}
.hero h1{font-family:var(--serif); font-size:clamp(28px,4vw,40px); margin:10px 0 8px; line-height:1.15;}
.hero p.lede{color:#c6d3de; font-size:15.5px; max-width:56ch; line-height:1.55; margin:0 0 22px;}
.hero-cta{
  display:inline-flex; align-items:center; gap:8px; background:var(--gold); color:var(--navy);
  font-weight:700; padding:12px 20px; border-radius:11px; border:none; font-size:14.5px;
}
.hero-cta:hover{background:var(--gold-2);}

/* Trust-chain visual (signature element) */
.trust-chain{
  display:flex; align-items:center; gap:2px; margin-top:30px; flex-wrap:wrap;
}
.chain-link{
  width:34px; height:34px; border-radius:50%;
  border:2px solid rgba(255,255,255,0.28);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--mono); font-size:11px; font-weight:600; color:#c6d3de;
  background:rgba(255,255,255,0.04); position:relative; flex-shrink:0;
  transition:.3s;
}
.chain-link.done{
  background:var(--gold); border-color:var(--gold-2); color:var(--navy); font-weight:700;
  box-shadow:0 0 0 4px rgba(221,143,46,.18);
}
.chain-rope{width:14px; height:2px; background:rgba(255,255,255,0.22); flex-shrink:0;}
.chain-rope.done{background:var(--gold-2);}

.stat-row{display:flex; gap:34px; margin-top:26px; flex-wrap:wrap;}
.stat-row .stat b{display:block; font-family:var(--serif); font-size:26px; color:#fff;}
.stat-row .stat span{font-size:12px; color:#9db0c1;}

.home-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:26px;}
@media (max-width:720px){.home-grid{grid-template-columns:1fr;}}
.card{
  background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px 22px;
}
.card h3{font-family:var(--serif); margin:0 0 6px; font-size:17px; color:var(--navy);}
.card p{margin:0 0 12px; font-size:13.8px; color:var(--ink-soft); line-height:1.5;}
.mini-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px;}
.mini-list li{
  display:flex; align-items:center; gap:9px; font-size:13.4px; padding:8px 10px; border-radius:9px;
  background:var(--paper); cursor:pointer; border:1px solid transparent;
}
.mini-list li:hover{border-color:var(--line);}
.mini-list .mnum{font-family:var(--mono); font-size:11px; color:var(--teal); width:20px;}

/* ---------------------------- MODULE VIEW ---------------------------- */
.module-header{margin-bottom:26px;}
.crumb{font-size:11.5px; color:var(--teal); font-weight:700; text-transform:uppercase; letter-spacing:.5px;}
.module-title{font-family:var(--serif); font-size:clamp(24px,3.4vw,32px); color:var(--navy); margin:6px 0 8px; line-height:1.2;}
.module-sub{color:var(--ink-soft); font-size:15px; line-height:1.5; max-width:70ch;}

.section-block{
  background:#fff; border:1px solid var(--line); border-radius:16px; padding:24px 26px; margin-bottom:18px;
}
.section-block h2{
  font-family:var(--serif); font-size:19px; color:var(--navy); margin:0 0 12px; display:flex; align-items:center; gap:9px;
}
.section-block h2 .sec-tag{
  font-family:var(--mono); font-size:11px; background:var(--paper-2); color:var(--navy); padding:2px 8px;
  border-radius:6px; font-weight:600;
}
.section-block p, .section-block li{font-size:14.6px; line-height:1.68; color:var(--ink);}
.section-block ul{margin:8px 0 4px; padding-left:20px;}
.section-block li{margin-bottom:6px;}
.section-block b{color:var(--navy);}

.callout{
  border-radius:12px; padding:15px 17px; margin:14px 0; font-size:14px; line-height:1.6;
  display:flex; gap:11px; align-items:flex-start;
}
.callout .co-icon{font-size:17px; line-height:1; flex-shrink:0; margin-top:1px;}
.callout .co-label{font-weight:700; display:block; margin-bottom:2px; font-size:12px; letter-spacing:.3px; text-transform:uppercase;}
.callout.tip{background:#eef5f2; border:1px solid #cfe6dd;}
.callout.tip .co-label{color:var(--ok);}
.callout.warn{background:var(--danger-bg); border:1px solid #edc9c8;}
.callout.warn .co-label{color:var(--danger);}
.callout.trap{background:#fdf3e3; border:1px solid #f0dcac;}
.callout.trap .co-label{color:#8a5a12;}

.quickcheck{
  background:var(--paper); border:1px dashed #c9bfa2; border-radius:12px; padding:16px 18px; margin-top:16px;
}
.quickcheck .qc-q{font-weight:600; font-size:14px; margin-bottom:10px; color:var(--navy);}
.qc-opts{display:flex; flex-direction:column; gap:7px;}
.qc-opt{
  text-align:left; padding:9px 12px; border-radius:9px; border:1.5px solid var(--line); background:#fff;
  font-size:13.6px; color:var(--ink);
}
.qc-opt:hover{border-color:var(--teal);}
.qc-opt.correct{background:var(--ok-bg); border-color:var(--ok); color:var(--ok);}
.qc-opt.wrong{background:var(--danger-bg); border-color:var(--danger); color:var(--danger);}
.qc-feedback{margin-top:9px; font-size:13.2px; color:var(--ink-soft); display:none;}
.qc-feedback.show{display:block;}

.module-nav-buttons{display:flex; justify-content:space-between; align-items:center; margin-top:30px; gap:12px;}
.btn{
  display:inline-flex; align-items:center; gap:8px; padding:12px 20px; border-radius:11px; border:none;
  font-weight:700; font-size:14px;
}
.btn-primary{background:var(--navy); color:#fff;}
.btn-primary:hover{background:var(--navy-3);}
.btn-gold{background:var(--gold); color:var(--navy);}
.btn-gold:hover{background:var(--gold-2);}
.btn-ghost{background:none; color:var(--navy); border:1.5px solid var(--line);}
.btn-ghost:hover{border-color:var(--navy);}
.btn:disabled{opacity:.4; cursor:not-allowed;}

/* ---------------------------- QUIZ ---------------------------- */
.quiz-wrap{background:#fff; border:1px solid var(--line); border-radius:18px; padding:30px 30px 34px;}
.quiz-progress{display:flex; gap:5px; margin-bottom:22px;}
.quiz-progress i{flex:1; height:5px; border-radius:4px; background:var(--paper-2);}
.quiz-progress i.on{background:var(--gold);}
.quiz-q{font-family:var(--serif); font-size:20px; color:var(--navy); line-height:1.4; margin-bottom:18px;}
.quiz-opts{display:flex; flex-direction:column; gap:10px;}
.quiz-opt{
  text-align:left; padding:14px 16px; border-radius:12px; border:1.5px solid var(--line); background:#fff; font-size:14.6px;
  display:flex; gap:10px; align-items:flex-start;
}
.quiz-opt .letter{
  font-family:var(--mono); font-weight:700; color:var(--teal); flex-shrink:0;
}
.quiz-opt:hover:not(:disabled){border-color:var(--teal);}
.quiz-opt.correct{background:var(--ok-bg); border-color:var(--ok);}
.quiz-opt.correct .letter{color:var(--ok);}
.quiz-opt.wrong{background:var(--danger-bg); border-color:var(--danger);}
.quiz-opt.wrong .letter{color:var(--danger);}
.quiz-explain{
  margin-top:16px; padding:14px 16px; border-radius:12px; background:var(--paper); font-size:13.8px; line-height:1.6; display:none;
}
.quiz-explain.show{display:block;}
.quiz-explain b{color:var(--navy);}
.quiz-footer{display:flex; justify-content:space-between; align-items:center; margin-top:24px;}
.quiz-score-badge{font-family:var(--mono); font-size:13px; color:var(--ink-soft);}

.quiz-result{text-align:center; padding:20px 0;}
.quiz-result .seal{
  width:96px; height:96px; margin:0 auto 18px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:26px; font-weight:700; color:#fff;
}
.quiz-result .seal.pass{background:linear-gradient(135deg,var(--gold),var(--gold-2)); box-shadow:0 10px 26px rgba(221,143,46,.35);}
.quiz-result .seal.fail{background:linear-gradient(135deg,#8b98a4,#aab4bd);}
.quiz-result h2{font-family:var(--serif); color:var(--navy); font-size:24px; margin:0 0 8px;}
.quiz-result p{color:var(--ink-soft); font-size:14.5px; max-width:46ch; margin:0 auto 20px;}

/* ---------------------------- FLASHCARDS ---------------------------- */
.flash-toolbar{display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; flex-wrap:wrap; gap:10px;}
.flash-select{padding:9px 12px; border-radius:10px; border:1.5px solid var(--line); font-family:inherit; font-size:13.5px; background:#fff;}
.flash-stage{display:flex; flex-direction:column; align-items:center;}
.flashcard{
  width:min(560px,100%); min-height:230px; border-radius:20px; cursor:pointer;
  background:linear-gradient(135deg,var(--navy),var(--navy-3)); color:#fff;
  display:flex; align-items:center; justify-content:center; text-align:center; padding:34px;
  box-shadow:0 18px 40px rgba(12,39,64,.22); position:relative;
}
.flashcard .fc-tag{position:absolute; top:16px; left:20px; font-size:11px; letter-spacing:.4px; text-transform:uppercase; color:var(--gold-2); font-weight:700;}
.flashcard .fc-text{font-family:var(--serif); font-size:19px; line-height:1.45;}
.flashcard.back{background:linear-gradient(135deg,#f7f9fb,#eef2f5); color:var(--ink);}
.flashcard.back .fc-tag{color:var(--teal);}
.flashcard.back .fc-text{font-family:var(--sans); font-size:15.5px; font-weight:500;}
.flash-hint{font-size:12.5px; color:var(--ink-soft); margin-top:14px;}
.flash-controls{display:flex; gap:10px; margin-top:20px;}
.flash-count{font-family:var(--mono); font-size:12.5px; color:var(--ink-soft); margin-top:10px;}

/* ---------------------------- GLOSSARY ---------------------------- */
.glossary-grid{display:flex; flex-direction:column; gap:10px; margin-top:20px;}
.gloss-item{background:#fff; border:1px solid var(--line); border-radius:13px; padding:16px 18px;}
.gloss-item dt{font-family:var(--serif); font-weight:700; color:var(--navy); font-size:15.5px;}
.gloss-item dd{margin:5px 0 0; font-size:13.8px; color:var(--ink-soft); line-height:1.55;}
.gloss-filter{padding:11px 14px; border-radius:11px; border:1.5px solid var(--line); width:100%; font-size:14px; margin-top:16px;}

/* ---------------------------- TOAST ---------------------------- */
.toast{
  position:fixed; bottom:26px; left:50%; transform:translateX(-50%) translateY(20px);
  background:var(--navy); color:#fff; padding:12px 20px; border-radius:12px; font-size:13.5px;
  opacity:0; pointer-events:none; transition:.3s; z-index:200; box-shadow:0 12px 30px rgba(0,0,0,.25);
  display:flex; align-items:center; gap:8px;
}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

/* ---------------------------- RESPONSIVE ---------------------------- */
@media (max-width:920px){
  .content{padding:26px 20px 80px;}
}
@media (max-width:860px){
  .menu-btn{display:flex;}
  .sidebar{
    position:fixed; left:0; top:64px; height:calc(100vh - 64px); z-index:60;
    transform:translateX(-104%); transition:.28s; width:82vw; max-width:320px;
    box-shadow:20px 0 40px rgba(0,0,0,.25);
  }
  .sidebar.open{transform:translateX(0);}
  .sidebar-backdrop{
    display:none; position:fixed; inset:64px 0 0 0; background:rgba(0,0,0,.4); z-index:50;
  }
  .sidebar-backdrop.open{display:block;}
  .home-grid{grid-template-columns:1fr;}
}
@media (max-width:520px){
  .hero{padding:28px 22px;}
  .section-block{padding:18px 18px;}
}

/* ---------------------------- USER CHIP (topbar) ---------------------------- */
.user-chip{display:flex; align-items:center; gap:10px; padding-left:10px; margin-left:2px; border-left:1px solid rgba(255,255,255,0.14);}
.user-chip .uc-info{display:flex; flex-direction:column; line-height:1.15; text-align:right;}
.user-chip .uc-name{font-size:12.5px; font-weight:700; color:#fff;}
.user-chip .uc-role{font-size:10.5px; color:#bcd6e2; text-transform:uppercase; letter-spacing:.4px;}
.user-chip .uc-avatar{
  width:32px; height:32px; border-radius:50%; background:var(--gold); color:var(--navy);
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:13px; flex-shrink:0;
}
.user-chip a.uc-admin{
  font-size:11.5px; font-weight:700; color:var(--gold-2); border:1px solid rgba(255,255,255,0.2);
  padding:6px 10px; border-radius:8px; text-decoration:none; white-space:nowrap;
}
.user-chip a.uc-admin:hover{background:rgba(255,255,255,0.08);}
.user-chip button.uc-logout{
  background:none; border:none; color:#bcd6e2; font-size:12px; text-decoration:underline; padding:4px;
}
.user-chip button.uc-logout:hover{color:#fff;}

/* ---------------------------- AUTH SCREENS (login / change password) ---------------------------- */
.auth-page{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg, var(--navy) 0%, var(--navy-3) 60%, var(--gold) 160%);
  padding:24px;
}
.auth-card{
  width:min(420px, 100%); background:#fff; border-radius:20px; padding:40px 36px;
  box-shadow:0 30px 70px rgba(10,61,98,.35);
}
.auth-logo{display:flex; align-items:center; gap:10px; margin-bottom:22px;}
.auth-logo img{height:36px;}
.auth-logo span{font-family:var(--serif); font-weight:700; color:var(--navy); font-size:16px;}
.auth-card h1{font-family:var(--serif); font-size:22px; color:var(--navy); margin:0 0 6px;}
.auth-card p.auth-sub{color:var(--ink-soft); font-size:13.6px; margin:0 0 24px; line-height:1.5;}
.auth-field{margin-bottom:16px;}
.auth-field label{display:block; font-size:12.5px; font-weight:700; color:var(--navy); margin-bottom:6px;}
.auth-field input{
  width:100%; padding:12px 14px; border-radius:10px; border:1.5px solid var(--line); font-size:14.5px; font-family:inherit;
}
.auth-field input:focus{outline:none; border-color:var(--gold);}
.auth-error{
  background:var(--danger-bg); color:var(--danger); border:1px solid #ecc; border-radius:10px; padding:10px 12px;
  font-size:13px; margin-bottom:16px; display:none;
}
.auth-error.show{display:block;}
.auth-submit{
  width:100%; padding:13px; border:none; border-radius:11px; background:var(--gold); color:var(--navy);
  font-weight:800; font-size:14.5px; margin-top:6px;
}
.auth-submit:hover{background:var(--gold-2);}
.auth-submit:disabled{opacity:.6;}
.auth-foot{margin-top:20px; text-align:center; font-size:12px; color:var(--ink-soft);}

/* ---------------------------- ADMIN DASHBOARD ---------------------------- */
.admin-shell{max-width:1080px; margin:0 auto; padding:36px 24px 80px;}
.admin-topbar{display:flex; align-items:center; justify-content:space-between; margin-bottom:26px; flex-wrap:wrap; gap:12px;}
.admin-topbar h1{font-family:var(--serif); color:var(--navy); font-size:26px; margin:0;}
.admin-panel{background:#fff; border:1px solid var(--line); border-radius:16px; padding:24px; margin-bottom:22px;}
.admin-panel h2{font-family:var(--serif); font-size:17px; color:var(--navy); margin:0 0 16px;}
.admin-form-row{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:12px;}
.admin-form-row input, .admin-form-row select{
  flex:1; min-width:150px; padding:10px 12px; border-radius:9px; border:1.5px solid var(--line); font-family:inherit; font-size:13.6px;
}
table.admin-table{width:100%; border-collapse:collapse; font-size:13.6px;}
table.admin-table th{text-align:left; padding:10px 12px; color:var(--ink-soft); font-size:11.5px; text-transform:uppercase; letter-spacing:.3px; border-bottom:2px solid var(--paper-2);}
table.admin-table td{padding:11px 12px; border-bottom:1px solid var(--paper-2); vertical-align:middle;}
.badge{display:inline-block; padding:3px 9px; border-radius:20px; font-size:11px; font-weight:700;}
.badge.admin{background:#fde9d0; color:#8a5a12;}
.badge.agr{background:var(--paper-2); color:var(--navy);}
.badge.active{background:var(--ok-bg); color:var(--ok);}
.badge.inactive{background:var(--danger-bg); color:var(--danger);}
.row-actions{display:flex; gap:6px; flex-wrap:wrap;}
.row-actions button{
  font-size:11.5px; padding:6px 9px; border-radius:7px; border:1px solid var(--line); background:#fff; color:var(--navy); font-weight:600;
}
.row-actions button:hover{border-color:var(--gold);}
.admin-msg{font-size:13px; padding:10px 12px; border-radius:9px; margin-bottom:14px; display:none;}
.admin-msg.ok{display:block; background:var(--ok-bg); color:var(--ok);}
.admin-msg.err{display:block; background:var(--danger-bg); color:var(--danger);}

/* focus visibility for a11y */
a:focus-visible, button:focus-visible, input:focus-visible{
  outline:3px solid var(--teal); outline-offset:2px;
}
