@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,500;0,9..144,600;1,9..144,400&family=Work+Sans:wght@400;500;600&display=swap');

:root{
  --bg:#FFFFFF;
  --surface:#FAFAFA;
  --ink:#111111;
  --muted:#6B6B6B;
  --line:#E1E1E1;
  --line-strong:#B8B8B8;
  --serif:'Fraunces', serif;
  --sans:'Work Sans', sans-serif;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{background:var(--bg); color:var(--ink); font-family:var(--sans); line-height:1.55;}
a{color:inherit; text-decoration:none;}

.eyebrow{
  text-transform:uppercase; letter-spacing:.2em; font-size:.7rem; color:var(--muted); font-weight:600;
}

.brand{display:flex; align-items:center; gap:.6rem; font-family:var(--serif); font-weight:600; font-size:1.15rem;}
.brand img{height:32px; width:auto; display:block;}
.brand em{font-style:italic; font-weight:400;}

/* buttons */
button, .btn{
  font-family:var(--sans); font-size:.84rem; letter-spacing:.01em; padding:.75rem 1.3rem;
  border:1px solid var(--ink); background:var(--ink); color:#fff; border-radius:2px; cursor:pointer;
  transition:all .18s ease; display:inline-block; text-align:center;
}
button.secondary, .btn.secondary{background:transparent; color:var(--ink);}
button.danger{background:#fff; color:var(--ink); border-color:var(--line-strong);}
button.danger:hover{background:var(--ink); color:#fff; border-color:var(--ink);}
button:hover, .btn:hover{background:#fff; color:var(--ink);}
button.secondary:hover, .btn.secondary:hover{background:var(--ink); color:#fff;}
button:disabled{opacity:.4; cursor:not-allowed;}

/* inputs */
input[type=text], input[type=email], input[type=password], input[type=number], input[type=date]{
  font-family:var(--sans); font-size:.92rem; padding:.75rem .95rem; border:1px solid var(--line-strong);
  border-radius:2px; background:#fff; color:var(--ink); width:100%;
}
input:focus{outline:2px solid var(--ink); outline-offset:1px;}
label{font-size:.72rem; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); display:block; margin-bottom:.35rem;}
.field{display:flex; flex-direction:column; gap:.3rem;}

/* cards / surfaces */
.card{background:var(--surface); border:1px solid var(--line); padding:1.6rem;}
.status-msg{font-size:.83rem; color:var(--muted); min-height:1.2em; margin-top:.6rem;}
.status-msg.error{color:var(--ink); font-weight:600;}

/* layout helpers */
.page-header{
  padding:1.6rem 5vw; border-bottom:1px solid var(--line); display:flex; align-items:center;
  justify-content:space-between; flex-wrap:wrap; gap:1rem;
}
.page-main{padding:2.4rem 5vw; max-width:1200px; margin:0 auto;}
.center-screen{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:6vh 6vw;}
