/* Aces of the Diamond admin area. Builds on /css/style.css variables. */
body.admin{background:#eef1f5;min-height:100vh}
[hidden]{display:none!important}
.admin-top{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  background:var(--navy);border-bottom:3px solid var(--red);padding:.55rem 1.2rem;min-height:60px}
.admin-top .brand img{width:44px}
.admin-top .brand span{font-size:1.4rem}
.admin-top-right{display:flex;align-items:center;gap:.6rem}
.admin-signout{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.45);border-radius:999px;padding:.4rem 1rem;font:600 .85rem var(--font-body);cursor:pointer}
.admin-signout:hover{background:rgba(255,255,255,.12)}
.admin-nav-toggle{display:none}

.admin-login{display:flex;justify-content:center;align-items:flex-start;padding:3rem 1rem}
.login-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);border-top:5px solid var(--red);padding:2rem 1.8rem;width:min(400px,100%);display:flex;flex-direction:column;gap:.6rem}
.login-card img{width:120px;margin:0 auto}
.login-card h1{font-family:var(--font-display);font-weight:400;color:var(--navy);text-align:center;font-size:2.2rem;margin:.2rem 0 .4rem;letter-spacing:.03em}
.login-card label{font-weight:700;font-size:.9rem}
.login-card input{font:inherit;padding:.75rem .9rem;border:2px solid var(--silver);border-radius:10px}
.login-card input:focus{outline:none;border-color:var(--navy-3)}
.login-card .btn{margin-top:.4rem}
.login-err{color:var(--red);font-weight:600;min-height:1.3em;font-size:.9rem}
.login-foot{text-align:center;font-size:.85rem;margin:.4rem 0 0}

.admin-shell{display:grid;grid-template-columns:210px 1fr;min-height:calc(100vh - 63px)}
.admin-nav{background:#fff;border-right:1px solid #dde2ea;padding:1rem .6rem;display:flex;flex-direction:column;gap:.2rem}
.admin-nav a{display:flex;align-items:center;gap:.55rem;padding:.6rem .8rem;border-radius:10px;color:var(--ink);text-decoration:none;font-weight:600}
.admin-nav a:hover{background:var(--silver-2)}
.admin-nav a[aria-current=page]{background:var(--navy);color:#fff}
.admin-nav .nav-sep{border-top:1px solid #e3e7ee;margin:.6rem 0}
.admin-nav .nav-ext{font-size:.85rem;color:var(--muted);font-weight:500}
.admin-main{padding:1.4rem clamp(1rem,2.5vw,2rem) 3rem;min-width:0}
.admin-main h1{font-family:var(--font-display);font-weight:400;color:var(--navy);font-size:2.4rem;margin:0;letter-spacing:.03em;line-height:1}
.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.6rem 1rem;margin-bottom:1.1rem}
.updated{color:var(--muted);font-size:.88rem}
.updated b{color:var(--ink)}
.btn-sm{padding:.45rem 1rem;font-size:.78rem;box-shadow:none}

.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-bottom:1rem}
.stat{background:#fff;border-radius:12px;padding:.9rem 1rem;box-shadow:0 2px 10px rgba(11,31,69,.07);border-left:5px solid var(--navy)}
.stat.red{border-left-color:var(--red)}
.stat .v{font-family:var(--font-display);font-size:2.3rem;line-height:1;color:var(--navy)}
.stat .l{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.stat .s{font-size:.8rem;color:var(--muted)}
.divs-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;margin-bottom:1.3rem}
.divc{background:#fff;border-radius:10px;text-align:center;padding:.55rem .3rem;box-shadow:0 2px 8px rgba(11,31,69,.06);cursor:pointer;border:2px solid transparent;font:inherit}
.divc[aria-pressed=true]{border-color:var(--red)}
.divc b{display:block;font-family:var(--font-display);font-size:1.5rem;color:var(--navy);line-height:1;font-weight:400}
.divc span{font-size:.75rem;color:var(--muted)}
.divc .n{font-size:1.3rem;font-weight:800;color:var(--ink)}

.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.7rem;align-items:center}
.filters input,.filters select{font:inherit;font-size:.9rem;padding:.5rem .7rem;border:2px solid var(--silver);border-radius:9px;background:#fff}
.filters input,.filters select{width:auto;margin:0}
.filters input[type=search]{flex:1 1 260px;min-width:0}
.filters input[type=checkbox]{width:auto;padding:0}
.filters label{margin:0;font-weight:600;font-size:.85rem;display:flex;align-items:center;gap:.35rem}
.count{font-size:.85rem;color:var(--muted);margin-left:auto}

.tbl-wrap{background:#fff;border-radius:12px;box-shadow:0 2px 10px rgba(11,31,69,.07);overflow:auto;max-height:75vh}
table.reg{border-collapse:separate;border-spacing:0;width:100%;font-size:.85rem}
table.reg th{position:sticky;top:0;background:var(--navy);color:#fff;text-align:left;padding:.6rem .7rem;white-space:nowrap;font-weight:700;cursor:pointer;user-select:none;z-index:1}
table.reg th[aria-sort=ascending]::after{content:" \25B2";font-size:.7em}
table.reg th[aria-sort=descending]::after{content:" \25BC";font-size:.7em}
table.reg td{padding:.55rem .7rem;border-bottom:1px solid #e7ebf1;vertical-align:top}
table.reg tr:nth-child(even) td{background:#f8f9fb}
table.reg tr.dup td{background:#fff4f5}
table.reg td small{display:block;color:var(--muted)}
table.reg td a{color:var(--navy-3)}
.nowrap{white-space:nowrap}
.pill{display:inline-block;font-size:.72rem;font-weight:800;padding:.12rem .55rem;border-radius:999px;background:#e7ebf1;color:var(--ink);white-space:nowrap}
.pill.yes{background:#dcf3e3;color:#11632f}
.pill.no{background:#f1f2f4;color:#6a7282}
.pill.warn{background:#ffe1e5;color:#a10c25}
.notes{min-width:180px;max-width:300px}
table.reg td:first-child{min-width:150px}
.empty{padding:2rem;text-align:center;color:var(--muted)}
.admin-loading{padding:3rem;text-align:center;color:var(--muted)}
.notice-err{background:#fff;border-left:5px solid var(--red);padding:1rem 1.2rem;border-radius:10px}

@media (max-width:900px){
  .admin-shell{grid-template-columns:1fr}
  .admin-nav-toggle{display:block}
  .admin-nav{display:none;position:sticky;top:63px;z-index:30;border-right:0;border-bottom:1px solid #dde2ea;box-shadow:0 6px 14px rgba(11,31,69,.12)}
  .admin-nav.open{display:flex}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .divs-row{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:480px){
  .admin-top .brand small{display:none}
  .stat .v{font-size:1.9rem}
  .count{margin-left:0;width:100%}
  .filters select{flex:1 1 45%}
}
