:root{
  --bg-deep:#1c1830;
  --bg-panel:#221d3a;
  --bg-panel2:#282246;
  --ink:#f3eee3;
  --ink-dim:#c6bfd6;
  --ink-faint:#8f87a3;
  --amber:#e8a94c;
  --amber-soft:#3a2f26;
  --teal:#6fa8a0;
  --teal-soft:#22322f;
  --rose:#d9827a;
  --rose-soft:#3a2626;
  --line:rgba(243,238,227,0.14);
  --line-strong:rgba(243,238,227,0.28);
  --radius:14px;
}
*{box-sizing:border-box;}
body{
  margin:0; background:var(--bg-deep); color:var(--ink);
  font-family:'Inter', system-ui, sans-serif; font-size:15px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
button, input, textarea, select{font-family:inherit;}
.display{font-family:'Fraunces', serif;}
.mono{font-family:'JetBrains Mono', monospace;}
.wrap{max-width:920px; margin:0 auto; padding:0 24px;}

nav.top{
  border-bottom:1px solid var(--line); background:rgba(21,18,37,0.8); backdrop-filter:blur(10px);
  position:sticky; top:0; z-index:10;
}
nav.top .wrap{display:flex; align-items:center; justify-content:space-between; padding:16px 24px;}
.wordmark{font-family:'Fraunces', serif; font-weight:600; font-size:18px;}
.wordmark span{color:var(--ink-faint); font-family:'JetBrains Mono', monospace; font-size:10.5px; margin-left:10px; letter-spacing:0.08em; text-transform:uppercase;}
nav.top .navlinks{display:flex; align-items:center; gap:20px; font-size:13px;}
nav.top .navlinks a{text-decoration:none; color:var(--ink-dim);}
nav.top .navlinks a:hover{color:var(--ink);}

main.wrap{padding-top:48px; padding-bottom:70px;}
h1.display{font-size:clamp(26px,4vw,36px); font-weight:500; margin:0 0 12px;}
p.lead{color:var(--ink-dim); font-size:15.5px; max-width:640px; margin:0 0 36px;}

.card{background:var(--bg-panel); border:1px solid var(--line); border-radius:var(--radius); padding:22px 24px;}
.card + .card{margin-top:16px;}
.card h3{margin:0 0 10px; font-size:15px; font-weight:600;}

label{display:block; font-size:12.5px; color:var(--ink-faint); margin:0 0 6px; text-transform:uppercase; letter-spacing:0.04em;}
input[type=text], textarea, select{
  width:100%; background:var(--bg-panel2); border:1px solid var(--line-strong); color:var(--ink);
  border-radius:9px; padding:10px 12px; font-size:14px; margin-bottom:16px;
}
textarea{resize:vertical; min-height:80px;}

.btn{
  font-family:'JetBrains Mono', monospace; font-size:11.5px; letter-spacing:0.05em; text-transform:uppercase;
  padding:10px 18px; border-radius:100px; border:none; cursor:pointer; transition:transform .12s, opacity .15s;
  display:inline-block; text-decoration:none;
}
.btn.primary{background:var(--amber); color:#2b1c05;}
.btn.primary:hover{transform:translateY(-1px);}
.btn.ghost{background:none; border:1px solid var(--line-strong); color:var(--ink-dim);}
.btn.ghost:hover{color:var(--ink); border-color:var(--ink);}
.btn.small{padding:7px 13px; font-size:10px;}
.btn:disabled{opacity:0.5; cursor:not-allowed; transform:none;}

.project-row{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 0; border-bottom:1px solid var(--line);}
.project-row:last-child{border-bottom:none;}
.project-row .pname{font-weight:600; font-size:15px;}
.project-row .ptag{font-size:12.5px; color:var(--ink-faint); margin-top:2px;}
.status-pill{
  font-family:'JetBrains Mono', monospace; font-size:10px; letter-spacing:0.05em; text-transform:uppercase;
  padding:4px 10px; border-radius:100px; border:1px solid var(--line-strong); color:var(--ink-faint);
}
.status-pill.granted{color:var(--teal); border-color:rgba(111,168,160,0.45); background:var(--teal-soft);}
.status-pill.pending{color:var(--amber); border-color:rgba(232,169,76,0.45); background:var(--amber-soft);}
.status-pill.denied{color:var(--rose); border-color:rgba(217,130,122,0.45); background:var(--rose-soft);}

.empty{color:var(--ink-faint); font-size:13.5px; padding:20px 0;}
.toast{font-size:12.5px; color:var(--teal); margin-top:10px; min-height:16px;}
.toast.error{color:var(--rose);}

#sign-in{max-width:400px; margin:0 auto;}
[hidden]{display:none !important;}
