/* NYE Registry — Shared Admin Styles */

:root{
  --ink:#1A1F2B; --green:#1E7B3F; --green-deep:#145C2D; --blue:#1C4E9C; --blue-dark:#14396E;
  --gold:#C79A3D; --clay:#C8262C; --paper:#FFFFFF; --paper-2:#F3F5F8; --slate:#5A6472; --line:#E1E5EC;
  --black-card:#1A1A1A;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{background:var(--paper); color:var(--ink); font-family:'Inter',sans-serif; -webkit-font-smoothing:antialiased;}
.mono{font-family:'IBM Plex Mono',monospace;}
.display{font-family:'Fraunces',serif;}
a{color:inherit;}

.shell{display:flex; min-height:100vh;}
.rail{width:210px; background:var(--blue-dark); color:#EFEAE0; padding:26px 18px; flex-shrink:0;}
.rail .brand{display:flex; align-items:center; gap:10px; margin-bottom:30px;}
.rail .brand .mark{width:32px; height:32px; border-radius:50%; border:1.5px solid var(--gold); display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace; font-size:9px; font-weight:600; color:var(--gold);}
.rail .brand .name{font-family:'Fraunces',serif; font-weight:600; font-size:14px;}
.rail .brand .sub{font-size:9px; color:#9FB4D6; text-transform:uppercase; letter-spacing:.08em;}
.quad-dots{display:flex; gap:3px; margin-top:5px;}
.quad-dots span{width:6px; height:6px; border-radius:50%; display:block;}
.quad-dots .q1{background:#C8262C;} .quad-dots .q2{background:#14396E;} .quad-dots .q3{background:#1E7B3F;} .quad-dots .q4{background:#2B2B2B;}
.rail nav{display:flex; flex-direction:column; gap:2px;}
.rail nav a{color:#C9D6EA; text-decoration:none; font-size:12.5px; padding:8px 9px; border-radius:4px; display:flex; align-items:center; gap:9px;}
.rail nav a.current{background:rgba(255,255,255,.08); color:#fff; font-weight:500;}
.rail nav .divider{height:1px; background:rgba(255,255,255,.1); margin:12px 0;}
.rail nav .label{font-size:9px; text-transform:uppercase; letter-spacing:.08em; color:#7C93B8; padding:5px 9px 1px;}
.rail .logout{margin-top:22px; display:block; font-size:11.5px; color:#9FB4D6; text-decoration:none;}

.main{flex:1; padding:30px 38px; max-width:1180px;}
.pagehead{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:24px; flex-wrap:wrap; gap:10px;}
.pagehead h1{font-family:'Fraunces',serif; font-size:23px; font-weight:600;}
.eyebrow{font-size:10.5px; text-transform:uppercase; letter-spacing:.1em; color:var(--slate); margin-bottom:4px;}
.btn{background:var(--blue); color:#fff; border:none; padding:9px 16px; font-size:12.5px; font-weight:600; border-radius:3px; cursor:pointer; font-family:'Inter',sans-serif; text-decoration:none; display:inline-block;}
.btn.ghost{background:transparent; border:1px solid var(--line); color:var(--ink);}
.btn.sm{padding:6px 11px; font-size:11px;}
.btn.danger{color:var(--clay); border-color:var(--clay); background:transparent; border:1px solid var(--clay);}

.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:24px;}
@media(max-width:760px){.stats{grid-template-columns:1fr 1fr;}}
.folio{background:#fff; border:1px solid var(--line); border-radius:4px; padding:16px 18px;}
.folio .num{font-family:'Fraunces',serif; font-size:27px; font-weight:600; line-height:1;}
.folio .lbl{font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--slate); margin-top:6px;}
.folio.active .num{color:var(--green);} .folio.expiring .num{color:var(--clay);} .folio.expired .num{color:#97A0AC;}

.table-folio{background:#fff; border:1px solid var(--line); border-radius:4px; overflow:hidden; margin-bottom:20px;}
.table-folio .head{display:flex; justify-content:space-between; align-items:center; padding:13px 18px; border-bottom:1px solid var(--line); flex-wrap:wrap; gap:8px;}
.table-folio .head h3{font-family:'Fraunces',serif; font-size:15px; font-weight:600;}
.search{border:1px solid var(--line); border-radius:3px; padding:7px 11px; font-size:12px; font-family:'Inter',sans-serif; width:200px; background:var(--paper);}
table{width:100%; border-collapse:collapse;}
th{text-align:left; font-size:9.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--slate); padding:9px 18px; border-bottom:1px solid var(--line); font-weight:600;}
td{padding:12px 18px; border-bottom:1px solid #EDEFF3; font-size:12.5px;}
tr:last-child td{border-bottom:none;}
.empty-row td{text-align:center; color:var(--slate); padding:24px;}

.seal{width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace; font-size:7.5px; font-weight:600; flex-shrink:0; border:2px solid var(--gold); color:var(--blue-dark); background:#FBF3E2; text-align:center; line-height:1.2;}
.seal.expiring{border-color:var(--clay); background:#FCE7E8;}
.seal.expired{border-color:#97A0AC; background:#F0F1F3; color:#97A0AC;}
.seal.black{border-color:var(--gold); background:var(--black-card); color:var(--gold);}
.member-cell{display:flex; align-items:center; gap:11px;}
.member-cell .info .name{font-weight:600; font-size:12.5px;}
.member-cell .info .id{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--slate);}

.pill{font-size:9.5px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; padding:4px 9px; border-radius:20px; display:inline-block;}
.pill.active{background:#E3F3E8; color:var(--green);}
.pill.expiring{background:#FBE3E4; color:var(--clay);}
.pill.expired,.pill.deactivated{background:#EEF0F3; color:var(--slate);}
.pill.pending{background:#FBF0DC; color:var(--gold);}
.pill.black{background:#1A1A1A; color:var(--gold);}

/* Member Profile */
.profile-head{display:flex; gap:18px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:4px; padding:22px 26px; margin-bottom:18px; flex-wrap:wrap;}
.profile-head h2{font-family:'Fraunces',serif; font-size:20px; font-weight:600;}
.profile-head .meta{color:var(--slate); font-size:12.5px; margin-top:4px;}
.seal.lg{width:72px; height:72px; font-size:12px; border-width:3px; flex-direction:column; gap:1px;}
.seal.lg .code{font-size:12px; font-weight:600;}
.profile-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
@media(max-width:760px){.profile-grid{grid-template-columns:1fr;}}
.kv{display:flex; justify-content:space-between; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid #EDEFF3; font-size:12.5px;}
.kv:last-child{border-bottom:none;}
.kv .k{color:var(--slate); flex-shrink:0;}
.kv .v{font-weight:500; text-align:right;}

/* Login screen */
.login-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--paper-2);}
.login-card{background:#fff; border:1px solid var(--line); border-radius:6px; padding:36px 34px; width:340px;}
.login-card .brand{display:flex; align-items:center; gap:10px; margin-bottom:24px;}
.login-card .brand .mark{width:38px; height:38px; border-radius:50%; border:1.5px solid var(--gold); display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:600; color:var(--blue-dark);}
.login-card .brand .name{font-family:'Fraunces',serif; font-weight:600; font-size:16px;}
.login-card .brand .sub{font-size:9.5px; color:var(--slate); text-transform:uppercase; letter-spacing:.08em;}
.fgroup{margin-bottom:14px;}
.fgroup label{display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--slate); margin-bottom:5px; font-weight:600;}
.fgroup input, .fgroup select{width:100%; border:1px solid var(--line); border-radius:3px; padding:9px 11px; font-size:13px; font-family:'Inter',sans-serif; background:var(--paper);}
.alert{padding:10px 13px; border-radius:4px; font-size:12.5px; margin-bottom:16px;}
.alert.error{background:#FBE3E4; color:var(--clay); border:1px solid var(--clay);}
.alert.success{background:#E3F3E8; color:var(--green-deep); border:1px solid var(--green);}
