/* Palette lives in theme.css, which every page loads first. */
*{margin:0;padding:0;box-sizing:border-box;}
body{
  background:var(--bg);
  color:var(--fg);
  font-family:'Inter','Helvetica Neue',Helvetica,Arial,sans-serif;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
::selection{background:var(--accent);color:var(--bg);}

nav{
  position:sticky;top:0;z-index:50;
  height:72px;display:flex;align-items:center;justify-content:space-between;
  padding:0 48px;border-bottom:1px solid var(--line);
  background:var(--nav-bg);backdrop-filter:blur(8px);
}
@media (max-width:700px){nav{padding:0 22px;}}
.logo{display:flex;align-items:center;gap:.6rem;font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;text-decoration:none;}
.logo .dot{width:6px;height:6px;background:var(--accent);}
nav .links{display:flex;gap:2.4rem;}
nav .links a{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;text-decoration:none;color:var(--muted);}
nav .links a:hover{color:var(--fg);}
@media (max-width:700px){nav .links{display:none;}}

main{padding:9vh 48px;max-width:900px;}
@media (max-width:700px){main{padding:6vh 22px;}}

.kicker{
  display:flex;align-items:center;gap:.8rem;font-size:12px;letter-spacing:.18em;
  text-transform:uppercase;font-weight:600;color:var(--accent);margin-bottom:1.4rem;
}
.kicker::before{content:"";width:24px;height:1px;background:var(--accent);}

h1{font-size:clamp(32px,5vw,52px);font-weight:800;letter-spacing:-.02em;line-height:1;margin-bottom:1.2rem;}
.lede{font-size:16px;line-height:1.6;color:var(--muted);max-width:60ch;margin-bottom:3rem;}

.btn{
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;
  padding:14px 30px;text-decoration:none;border-radius:0;border:none;
  transition:background-color 220ms ease,color 220ms ease,border-color 220ms ease;
}
.btn-primary{background:var(--fg);color:var(--bg);border:1px solid var(--fg);}
.btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff;}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;}
.btn-secondary{background:transparent;color:var(--fg);border:1px solid var(--line);}
.btn-secondary:hover{border-color:var(--accent);color:var(--accent);}

.field{margin-bottom:1.4rem;}
.field label{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem;}
.field input[type=text],.field input[type=email],.field input[type=password],.field textarea,.field input[type=file]{
  width:100%;background:var(--bg-2);border:1px solid var(--line);color:var(--fg);
  padding:.9rem 1rem;font-family:inherit;font-size:14px;border-radius:0;
}
.field textarea{min-height:100px;resize:vertical;}
.field input:focus,.field textarea:focus{outline:1px solid var(--accent);border-color:var(--accent);}

.folder-block{border-top:1px solid var(--line);padding:1.6rem 0;}
.folder-block h3{font-size:16px;font-weight:700;margin-bottom:1.2rem;}
.check-row{display:flex;align-items:center;gap:.8rem;padding:.5rem 0;font-size:14px;color:var(--muted);}
.check-row input{accent-color:var(--accent);width:16px;height:16px;}
.check-row label{cursor:pointer;}

.cert-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);
}
.cert-card{
  display:block;background:var(--bg-2);cursor:pointer;
  transition:background-color 220ms ease;
}
.cert-card:hover{background:var(--bg-3);}
.cert-card.is-selected{background:var(--bg-3);box-shadow:inset 0 0 0 1px var(--accent);}
.cert-thumb{position:relative;height:180px;overflow:hidden;background:var(--thumb-bg);}
.cert-thumb img{width:100%;height:100%;object-fit:cover;display:block;filter:blur(1px);}
.cert-thumb-fallback{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);
  background:repeating-linear-gradient(135deg, var(--hatch) 0 2px, transparent 2px 12px);
}
.cert-overlay{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:var(--overlay);color:var(--fg);font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;text-align:center;padding:0 1rem;opacity:0;
  transition:opacity 220ms ease;
}
.cert-card:hover .cert-overlay, .cert-card.is-selected .cert-overlay{opacity:1;}
.cert-card-body{
  display:flex;align-items:center;gap:.7rem;padding:1rem;font-size:13px;color:var(--fg);
}
.cert-card-body input{accent-color:var(--accent);width:16px;height:16px;flex-shrink:0;}

.spec-table{border-top:1px solid var(--line);}
.spec-row{display:flex;justify-content:space-between;gap:2rem;padding:1rem 0;border-bottom:1px solid var(--line);align-items:center;}
.spec-row .k{font-size:14px;color:var(--fg);}
.spec-row .v{font-size:12px;color:var(--muted);text-align:right;}

.request-list{border-top:1px solid var(--line);}
.request-item{padding:1.6rem 0;border-bottom:1px solid var(--line);}
.request-item .top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem;margin-bottom:.6rem;}
.request-item .who{font-size:15px;font-weight:700;}
.request-item .email{font-size:12px;color:var(--muted);}
.request-item .items{font-size:13px;color:var(--muted);margin:.4rem 0;}
.request-item .msg{font-size:13px;color:var(--muted);font-style:italic;margin-bottom:.8rem;}
.request-item .actions{display:flex;gap:.8rem;}
.status-tag{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);padding:.3rem .6rem;}
.status-tag.approved{color:var(--accent);border-color:var(--accent);}
.status-tag.denied{color:var(--muted);opacity:.75;}

.notice{padding:1rem 1.2rem;border:1px solid var(--line);font-size:13.5px;color:var(--muted);margin-bottom:1.6rem;}
.notice.error{border-color:var(--accent);color:var(--accent);}
.notice.success{border-color:var(--fg);color:var(--fg);}

footer{
  padding:2.4rem 48px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  border-top:1px solid var(--line);
}
@media (max-width:700px){footer{padding:2rem 22px;}}
