:root{
  --bg:#05060a;
  --text:rgba(255,255,255,.96);
  --muted:rgba(255,255,255,.78);
  --line:rgba(255,255,255,.22);
  --glass:rgba(8,11,19,.66);
  --glass2:rgba(11,15,24,.74);
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bot: env(safe-area-inset-bottom, 0px);
  --safe-l: env(safe-area-inset-left, 0px);
  --safe-r: env(safe-area-inset-right, 0px);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  background:
    radial-gradient(900px 620px at 18% -10%, rgba(255,255,255,.10), transparent 60%),
    radial-gradient(900px 700px at 86% 12%, rgba(255,255,255,.07), transparent 60%),
    linear-gradient(180deg, #05060a 0%, #06070c 100%),
    var(--bg);
  color:var(--text);
  font: 16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif;
  letter-spacing:.12px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x:hidden;
}
a{color:inherit; text-decoration:none}
button{font:inherit}
:focus-visible{outline:2px solid rgba(255,255,255,.35); outline-offset:3px; border-radius:12px}

.stage{
  min-height:100svh;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding:
    calc(14px + var(--safe-top))
    calc(14px + var(--safe-r))
    calc(18px + var(--safe-bot))
    calc(14px + var(--safe-l));
}

.auth-stage{display:flex; flex-direction:column; align-items:stretch;}
.auth-wrap{
  position:relative;
  z-index:2;
  width:100%;
  padding: 12px 4px calc(12px + var(--safe-bot));
  display:flex;
  flex-direction:column;
  gap:18px;
  flex:1;
  min-height:0;
}
body.auth-page .stage{
  min-height:100dvh;
  height:100dvh;
}
body.auth-page .auth-stage{
  overflow:hidden;
}
body.lk-page{
  overflow-x:hidden;
}
body.lk-page .stage{
  min-height:100dvh;
  height:100dvh;
}
body.about-page .stage{
  min-height:100dvh;
  height:100dvh;
}
body.lk-page .auth-stage{
  overflow:hidden;
}
body.about-page .auth-stage{
  overflow:hidden;
}
body.lk-page .auth-wrap,
body.about-page .auth-wrap,
body.auth-page .auth-wrap{
  padding:0;
}
body.lk-page .auth-wrap{
  overflow-y:auto;
}
body.about-page .auth-wrap{
  overflow-y:auto;
}
body.auth-page .auth-wrap{
  overflow-y:auto;
}
.auth-wrap > .footer{margin-top:auto;}
.auth-wrap > .top,
.auth-wrap > .footer{
  width:100%;
}

canvas#stars{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  opacity:.82;
}

.vignette{
  position:absolute;
  inset:0;
  pointer-events:none;
  background: radial-gradient(1100px 700px at 50% 50%, transparent 46%, rgba(0,0,0,.76) 100%);
  z-index:1;
}

.noise{
  position:absolute;
  inset:-20%;
  pointer-events:none;
  opacity:.055;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
  animation: noiseMove 10s linear infinite;
  z-index:2;
}
@keyframes noiseMove{
  from{transform: translate3d(0,0,0)}
  to{transform: translate3d(-6%, 4%, 0)}
}

.top{
  position:sticky;
  top:0;
  z-index:30;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding: 8px 24px;
  flex-wrap:wrap;
  width:100%;
  background: rgba(8,10,16,.72);
  border:1px solid rgba(255,255,255,.18);
  border-radius:14px;
  backdrop-filter: blur(10px);
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  user-select:none;
}
.mark{
  width:30px; height:30px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.20);
  display:grid;
  place-items:center;
  flex:0 0 auto;
  backdrop-filter: blur(10px);
}
.mark img{
  width:18px;
  height:18px;
  display:block;
  border-radius:4px;
}
.wordmark{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  white-space:nowrap;
  font-size:13px;
  letter-spacing:.22px;
  font-weight: 300;
  color: rgba(255,255,255,.86);
}
.dot{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.55);display:inline-block}

.nav{display:flex; align-items:center; gap:10px;}
.pill{
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.12);
  color: rgba(255,255,255,.92);
  font-size:12.5px;
  letter-spacing:.16px;
  font-weight: 300;
  transition: .15s ease;
  backdrop-filter: blur(10px);
  white-space:nowrap;
}
.pill:hover{background: rgba(255,255,255,.18); transform: translateY(-1px)}
.pill:active{transform: translateY(0)}
.pill.primary{
  background: rgba(255,255,255,.92);
  color: rgba(0,0,0,.88);
  border-color: rgba(255,255,255,.92);
  font-weight: 400;
}
.arrow{display:inline-block; transform: translateY(1px); margin-left:8px; opacity:.9}

.menu{position:relative; display:none;}
.iconbtn{
  width:44px; height:44px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  backdrop-filter: blur(12px);
  color: rgba(255,255,255,.86);
  display:grid;
  place-items:center;
  cursor:pointer;
  -webkit-tap-highlight-color: transparent;
}
.iconbtn:active{transform: translateY(0.5px)}
.panel{
  position:absolute;
  right:0;
  top: calc(44px + 10px);
  width: min(260px, calc(100vw - 28px));
  border-radius: 18px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(10,12,18,.72);
  backdrop-filter: blur(16px);
  box-shadow: 0 18px 60px rgba(0,0,0,.55);
  padding: 10px;
  display:none;
  transform-origin: top right;
  animation: pop .16s ease both;
}
@keyframes pop{from{opacity:0; transform: translateY(-6px) scale(.98)} to{opacity:1; transform: translateY(0) scale(1)}}
.panel a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 12px 12px;
  border-radius: 14px;
  color: rgba(255,255,255,.86);
  font-size: 13px;
  font-weight: 300;
  letter-spacing: .16px;
}
.panel a:hover{background: rgba(255,255,255,.07)}
.panel .sep{height:1px; background: rgba(255,255,255,.10); margin: 6px 6px;}

.center{
  position:relative;
  z-index:2;
  display:grid;
  place-items:center;
  text-align:center;
  padding:
    calc(98px + var(--safe-top))
    calc(16px + var(--safe-r))
    calc(92px + var(--safe-bot))
    calc(16px + var(--safe-l));
  flex:1;
  width:100%;
}
.headline{
  margin:0;
  font-size: clamp(34px, 7.4vw, 92px);
  line-height: 0.95;
  letter-spacing: -1.4px;
  font-weight: 200;
  text-transform: uppercase;
  color: rgba(255,255,255,.90);
  text-shadow: 0 0 40px rgba(255,255,255,.06);
  animation: in 900ms ease both;
  text-wrap: balance;
}
@keyframes in{from{opacity:0; transform: translateY(10px); filter: blur(4px)} to{opacity:1; transform: translateY(0); filter: blur(0)}}
.submark{
  margin-top:16px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.22);
  color: rgba(255,255,255,.72);
  font-size:13px;
  letter-spacing:.18px;
  font-weight: 300;
  backdrop-filter: blur(10px);
  animation: float 6s ease-in-out infinite;
  max-width: 92vw;
}
@keyframes float{0%,100%{transform: translateY(0)}50%{transform: translateY(-6px)}}
.tiny{margin-top:10px; font-size:12.5px; letter-spacing:.16px; font-weight: 300; color: rgba(255,255,255,.50);}

.mobile-cta{
  position:absolute;
  left: calc(14px + var(--safe-l));
  right: calc(14px + var(--safe-r));
  bottom: calc(14px + var(--safe-bot));
  z-index:3;
  display:none;
}
.cta-wide{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 16px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.92);
  color: rgba(0,0,0,.88);
  font-size:13.5px;
  font-weight: 400;
  letter-spacing:.18px;
  box-shadow: 0 18px 50px rgba(0,0,0,.35);
  -webkit-tap-highlight-color: transparent;
}

.hero{position:relative; z-index:2; margin: 26px 0 14px; max-width: 780px;}
.hero h1{margin:0; font-size: clamp(32px, 5vw, 68px); line-height:1; letter-spacing:-1px; font-weight:300; text-transform:uppercase; color:rgba(255,255,255,.92);}
.hero .lead{margin:12px 0 0; color:var(--muted); font-size:16px; line-height:1.65;}
.chips{display:flex; gap:8px; flex-wrap:wrap; margin-top:14px;}
.chip{padding:8px 12px; border-radius:999px; border:1px solid var(--line); background: var(--glass2); color:var(--muted); font-size:12px; letter-spacing:.12px;}

.top .chips{
  margin-top:0;
  align-items:center;
}

.auth-hero{margin: 22px auto 4px; text-align:center; max-width: 820px;}
.auth-hero h1{font-size: clamp(36px, 6vw, 66px);}
.auth-hero .lead{font-size:15.5px;}
.auth-hero .chips{justify-content:center;}

body.lk-page .auth-hero{
  margin: 14px auto 2px;
}
body.lk-page .auth-hero h1{
  font-size: clamp(28px, 4.2vw, 44px);
  letter-spacing: -.6px;
}
body.lk-page .auth-hero .lead{
  font-size: 14.5px;
}

.content{position:relative; z-index:2; margin:20px auto 0; max-width:760px; width:100%;}
.card{background: rgba(8,11,19,.76); border:1px solid rgba(255,255,255,.20); border-radius:18px; padding:18px 18px 16px; box-shadow: 0 16px 60px rgba(0,0,0,.35); backdrop-filter: blur(14px);}
.card h3{margin:0 0 6px; font-size:18px; letter-spacing:-0.1px; font-weight:500;}
.card p{margin:0 0 12px; color:var(--muted); line-height:1.55; font-size:14px;}
.auth-grid{display:grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap:10px;}
.input{
  width:100%;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.24);
  background: rgba(0,0,0,.34);
  color: var(--text);
  font-size:14px;
  outline:none;
}
.input:focus{border-color: rgba(255,255,255,.35); box-shadow: 0 0 0 3px rgba(255,255,255,.08);}
.input.input-invalid{
  border-color: rgba(255, 120, 120, .8);
  box-shadow: 0 0 0 3px rgba(255, 120, 120, .18);
}
.input.input-regex-ok{
  border-color: rgba(255, 205, 96, .82);
  box-shadow: 0 0 0 3px rgba(255, 205, 96, .18);
}
.input.input-verified{
  border-color: rgba(98, 226, 154, .88);
  box-shadow: 0 0 0 3px rgba(98, 226, 154, .18);
}
label{display:block; font-size:12.5px; color:rgba(255,255,255,.88); margin: 4px 0 6px;}
.field-error{
  min-height:18px;
  margin:6px 0 0;
  color: rgba(255, 152, 152, .96);
  font-size:12px;
  line-height:1.35;
  opacity:0;
  transition: opacity .16s ease;
}
.field-error.visible{opacity:1;}
.auth-btn{display:flex; align-items:center; gap:10px; width:100%; padding:12px 14px; border-radius:12px; border:1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.10); color: var(--text); cursor:pointer; transition: all .15s ease;}
.auth-btn{padding:14px 16px; border-radius:14px; font-size:14px; font-weight:500;}
.auth-btn:hover{border-color: rgba(255,255,255,.24); box-shadow:0 10px 26px rgba(0,0,0,.30); transform: translateY(-1px)}
.auth-btn .logo{width:30px; height:30px; border-radius:9px; background: rgba(255,255,255,.12); display:grid; place-items:center;}
.auth-btn .logo svg{width:20px; height:20px; display:block;}
.auth-card{max-width:760px; margin:0 auto; padding:20px;}
.auth-content{display:flex; justify-content:center;}

.lk-shell{
  position:relative;
  z-index:2;
  width:100%;
  max-width:1120px;
  margin:10px auto 0;
  display:grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap:16px;
  align-items:start;
}
.lk-side{
  position:sticky;
  top: calc(var(--lk-header-h, 72px) + 16px);
  z-index: 12;
}
.lk-nav{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:10px;
}

/* Defensive: never show Admin tab for non-admin users */
body.lk-page #adminNavBtn{display:none;}
body.lk-page.is-admin #adminNavBtn{display:flex;}
body.lk-page:not(.is-admin) #adminCard{display:none !important;}
.lk-nav-link{
  width:100%;
  min-height:44px;
  justify-content:flex-start;
  display:flex;
  align-items:center;
  gap:8px;
  position:relative;
  border-radius:12px;
  font-size:13px;
  cursor:pointer;
  text-align:left;
}
.lk-role-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-left:8px;
  padding:3px 8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  font-size:11px;
  line-height:1;
  color: rgba(255,255,255,.90);
  white-space:nowrap;
  transform: translateY(-1px);
}
.lk-nav-lock{
  width:1.2em;
  flex:0 0 1.2em;
  text-align:center;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-left:8px;
  opacity:.92;
  pointer-events:none;
  font-size:13px;
  line-height:1;
}
.lk-nav-link:hover{
  background: rgba(255,255,255,.20);
}
.lk-nav-link.is-active{
  background: rgba(255,255,255,.26);
  border-color: rgba(255,255,255,.44);
  color: rgba(255,255,255,.98);
}
.lk-side-note{
  margin:12px 0 0;
  color:rgba(255,255,255,.56);
  font-size:12px;
  line-height:1.5;
}
.lk-main{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:16px;
  min-height: calc(100dvh - var(--lk-header-h, 72px) - var(--lk-footer-h, 74px) - 210px);
}
.lk-tab-panel[hidden]{
  display:none;
}

/* Report (web) */
.lk-kpi-grid{
  display:grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap:16px;
}
.lk-kpi{
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  border-radius:14px;
  padding:12px 12px;
  min-height:84px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.lk-kpi-label{font-size:12px;}
.lk-kpi-value{
  margin-top:6px;
  font-size:15.5px;
  font-weight:600;
  letter-spacing:.2px;
  color: rgba(255,255,255,.96);
}
.lk-report-statusbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  padding:12px 12px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  border-radius:14px;
}
.lk-report-statusleft{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.lk-report-times{
  color: rgba(255,255,255,.78);
  font-size:12.5px;
  line-height:1.35;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.lk-state-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.08);
  font-size:11.5px;
  line-height:1;
  letter-spacing:.2px;
  user-select:none;
}
.lk-state-badge.is-ok{border-color: rgba(98,226,154,.52); color: rgba(98,226,154,.98);}
.lk-state-badge.is-running{border-color: rgba(255,205,96,.55); color: rgba(255,205,96,.98);}
.lk-state-badge.is-error{border-color: rgba(255,152,152,.52); color: rgba(255,152,152,.98);}
.lk-report-error{
  margin-top:10px;
  font-size:12.5px;
  color: rgba(255,152,152,.92);
}
#reportRefreshBtn{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.lk-report-charthead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.lk-report-period{
  color: rgba(255,255,255,.78);
  font-size:12.5px;
}
.lk-seg{
  display:inline-flex;
  align-items:center;
  border:1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  border-radius:999px;
  overflow:hidden;
}
.lk-seg-btn{
  appearance:none;
  border:none;
  background: transparent;
  color: rgba(255,255,255,.86);
  font-size:12.5px;
  letter-spacing:.12px;
  padding:8px 10px;
  cursor:pointer;
}
.lk-seg-btn:hover{background: rgba(255,255,255,.08);}
.lk-seg-btn.is-active{
  background: rgba(255,255,255,.22);
  color: rgba(255,255,255,.96);
}
.lk-seg-btn:focus-visible{outline:none; box-shadow: inset 0 0 0 2px rgba(255,255,255,.35);}

.lk-secondary{font-size:12.5px; color: rgba(255,255,255,.72);}
.lk-chart{
  width:100%;
  height:180px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.05);
  border-radius:14px;
  overflow:hidden;
}
.lk-chart svg{width:100%; height:100%; display:block;}

.input-with-toggle{
  display:flex;
  align-items:center;
  gap:8px;
}
.input-with-toggle .input{
  min-width:0;
}
.lk-toggle-token{
  padding:8px 10px;
  min-height:38px;
  flex:0 0 auto;
}
.lk-card{
  max-width:none;
  width:100%;
  margin:0;
}

/* LK access (blocked/expired) */
.lk-tab-panel[data-panel="access"]{
  width:100%;
  max-width: 920px;
  margin:0 auto;
}
.lk-access{
  min-height: 320px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.lk-access-inner{
  width:100%;
  max-width: 620px;
  margin:0 auto;
  text-align:center;
}
.lk-access-icon{
  width:60px;
  height:60px;
  margin:0 auto 14px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  display:grid;
  place-items:center;
}
.lk-access-icon-emoji{font-size:22px; line-height:1;}
.lk-access-title{margin:0 0 6px;}
.lk-access-lead{margin:0;}
.lk-access-details{
  margin-top:16px;
  text-align:left;
  padding:14px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  border-radius:16px;
}
.lk-access-kicker{font-size:12px; margin-bottom:6px;}
.lk-access-cols{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px;
}
.lk-access-col{min-width:0;}
.lk-access-accordion{display:none;}
.lk-access-accordion-summary{
  cursor:pointer;
  list-style:none;
  user-select:none;
  font-size:13px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.92);
}
.lk-access-accordion-summary::-webkit-details-marker{display:none;}
.lk-access-accordion-body{margin-top:12px; display:grid; gap:12px;}
#accessMicrocopy{margin-top:10px; font-size:12.5px; color: rgba(255,255,255,.70);}
#accessLastChecked{margin-top:8px; font-size:12.5px; color: rgba(255,255,255,.70);}
.lk-access-cta{margin-top:16px; display:grid; gap:10px; justify-items:stretch;}
.lk-access-cta .pill{width:100%; justify-content:center;}
.lk-access-copy{
  width:100%;
  background: transparent;
  border: none;
  padding:8px 0;
  min-height: auto;
  color: var(--muted);
  font-size:12.5px;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor:pointer;
}
.lk-access-copy:hover{color: rgba(255,255,255,.90);}
.lk-access-copy:active{transform: translateY(0)}

/* Admin */
.admin-shell{grid-template-columns: 1fr;}
body.admin-page .admin-shell{width: 96vw; max-width: 1600px;}
.admin-card{padding:20px;}
.admin-head{display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;}

.admin-controls{display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end;}
.admin-controls .admin-field{min-width:220px; flex: 1 1 240px;}
.admin-controls .admin-field.small{min-width:160px; flex: 0 1 180px;}
.admin-controls .pill{min-height:40px;}
.admin-controls label{margin:0 0 6px;}

.admin-badge{display:inline-flex; align-items:center; justify-content:center; padding:4px 10px; border-radius:999px; border:1px solid rgba(255,255,255,.20); background: rgba(255,255,255,.08); font-size:11.5px; line-height:1; white-space:nowrap;}
.admin-badge.ok{border-color: rgba(98,226,154,.52); color: rgba(98,226,154,.98);}
.admin-badge.err{border-color: rgba(255,152,152,.52); color: rgba(255,152,152,.98);}
.admin-badge.warn{border-color: rgba(255,205,96,.55); color: rgba(255,205,96,.98);}
.admin-badge.neutral{border-color: rgba(255,255,255,.22); color: rgba(255,255,255,.86);}

.admin-table-wrap{width:100%; overflow:auto; border-radius:14px; border:1px solid rgba(255,255,255,.14); background: rgba(0,0,0,.18); max-height: calc(100dvh - 270px);}
table.admin-table{width:100%; border-collapse: collapse; font-size:12.5px;}
table.admin-table th, table.admin-table td{padding:10px 10px; border-bottom:1px solid rgba(255,255,255,.10); vertical-align:top;}
table.admin-table th{position:sticky; top:0; z-index:2; text-align:left; font-weight:500; color: rgba(255,255,255,.92); background: rgba(8,11,19,.92); backdrop-filter: blur(10px);}
table.admin-table tbody tr{cursor:pointer;}
table.admin-table tbody tr td:last-child{cursor: default;}
table.admin-table tr:hover td{background: rgba(255,255,255,.05);}

.admin-actions{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.input.input-compact{padding:8px 10px; font-size:12.5px; border-radius:10px;}
.admin-link{padding:8px 10px; min-height:34px;}
.admin-mono{font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size:12px;}

.admin-drawer-backdrop{position:fixed; inset:0; background: rgba(0,0,0,.55); z-index:80;}
.admin-drawer{position:fixed; top:0; right:0; height:100dvh; width: min(560px, 92vw); z-index:81; border-left:1px solid rgba(255,255,255,.16); background: rgba(8,11,19,.92); backdrop-filter: blur(16px); display:flex; flex-direction:column;}
.admin-drawer-head{padding:14px 14px; display:flex; align-items:flex-start; justify-content:space-between; gap:10px; border-bottom:1px solid rgba(255,255,255,.12);}
.admin-drawer-title{font-size:14px; font-weight:500; color: rgba(255,255,255,.96);}
.admin-drawer-sub{font-size:12.5px; margin-top:2px;}
.admin-drawer-body{padding:14px 14px 18px; overflow:auto;}
.admin-kv{display:grid; grid-template-columns: 150px minmax(0, 1fr); gap:10px; align-items:start; font-size:13px;}
.admin-kv + .admin-kv{margin-top:8px;}
.admin-kv .k{color: rgba(255,255,255,.70);}
.admin-kv .v{color: rgba(255,255,255,.92); word-break: break-word;}
.admin-actions-row{margin-top:14px; display:flex; flex-wrap:wrap; gap:10px;}
.admin-divider{margin:14px 0; height:1px; background: rgba(255,255,255,.12);}

.admin-user-head{display:flex; align-items:center; gap:12px;}
.admin-user-avatar{
  width:48px;
  height:48px;
  border-radius:999px;
  object-fit:cover;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.06);
  flex: 0 0 auto;
}
.admin-user-head-meta{min-width:0;}
.admin-user-head-name{color: rgba(255,255,255,.96); font-weight:500; font-size:14px; line-height:1.2;}
.admin-user-head-sub{margin-top:2px; font-size:12.5px; word-break: break-word;}
.lk-group + .lk-group{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.12);
}
.lk-step{
  border:none;
  border-radius:0;
  padding:0;
  background: transparent;
}
.lk-step-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.lk-step-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.20);
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.88);
  font-size:11.5px;
  line-height:1;
}
.lk-step-badge.is-ok{border-color: rgba(98,226,154,.52); color: rgba(98,226,154,.98);}
.lk-step-badge.is-error{border-color: rgba(255,152,152,.52); color: rgba(255,152,152,.98);}
.lk-step-badge.is-skipped{border-color: rgba(255,255,255,.26); color: rgba(255,255,255,.72);}
.lk-step-badge.is-not-checked{border-color: rgba(255,255,255,.26); color: rgba(255,255,255,.76);}
.lk-step-badge.is-disabled{border-color: rgba(255,255,255,.20); color: rgba(255,255,255,.64);}
.lk-step-badge.is-running{border-color: rgba(255,205,96,.55); color: rgba(255,205,96,.98);}
.lk-title-row{
  display:flex;
  align-items:center;
  gap:10px;
}
.lk-title-row h3{
  margin:0;
}
.lk-help-toggle{
  width:28px;
  height:28px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.26);
  background: rgba(255,255,255,.10);
  color:rgba(255,255,255,.94);
  display:grid;
  place-items:center;
  font-size:14px;
  line-height:1;
  cursor:pointer;
}
.lk-help-toggle:hover{
  background: rgba(255,255,255,.18);
}
.lk-inline-help{
  margin:10px 0 2px;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background: rgba(255,255,255,.04);
}
.lk-inline-help-title{
  margin:0 0 6px;
  color:rgba(255,255,255,.92);
  font-size:13px;
}
.lk-group h4{
  margin:4px 0 4px;
  font-size:14px;
  font-weight:500;
  color:rgba(255,255,255,.88);
}
.lk-required{color: rgba(255, 205, 96, .96);}
.lk-optional{color: rgba(255,255,255,.62);}
.lk-hint{
  margin:8px 0 0;
  color:var(--muted);
  font-size:12.5px;
  line-height:1.45;
}
.lk-checkbox{
  margin-top:8px;
  display:flex;
  align-items:center;
  gap:8px;
  color:rgba(255,255,255,.9);
  font-size:13px;
}
.lk-checkbox input{
  width:16px;
  height:16px;
}
.lk-generate-primary{
  min-height:46px;
  padding:12px 18px;
  font-size:14px;
  font-weight:600;
}

.lk-step3-running{
  margin-top:10px;
  display:flex;
  align-items:center;
  gap:8px;
  color:rgba(255,255,255,.92);
  font-size:13px;
}
.lk-spinner{
  width:14px;
  height:14px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.22);
  border-top-color: rgba(255,255,255,.92);
  animation: lkSpin .8s linear infinite;
}
@keyframes lkSpin {to{transform: rotate(360deg);}}

.lk-report-result{
  margin-top:12px;
  border-top:1px solid rgba(255,255,255,.12);
  padding-top:12px;
}
.lk-report-link-line{
  margin:0 0 10px;
  color:rgba(255,255,255,.9);
}
.lk-report-link-line a{
  color:rgba(255,255,255,.98);
  text-decoration:underline;
}
.lk-report-subtitle{
  color:rgba(255,255,255,.82);
  font-size:13px;
  margin:8px 0 6px;
}
.lk-summary{
  margin:2px 0 10px;
}
.lk-list{
  margin:0;
  padding-left:18px;
  color:var(--muted);
  font-size:13.5px;
  line-height:1.55;
}
.lk-list li + li{
  margin-top:6px;
}
.lk-list code{
  color:rgba(255,255,255,.88);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:12.5px;
}
.lk-progress{
  margin-top:10px;
}
.lk-progress-track{
  height:8px;
  width:100%;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  overflow:hidden;
}
.lk-progress-bar{
  height:100%;
  width:0;
  border-radius:999px;
  background: linear-gradient(90deg, rgba(255,205,96,.9), rgba(98,226,154,.92));
  transition: width .22s ease;
}
#saveKeysBtn[disabled]{
  opacity:.72;
  cursor:not-allowed;
}

.status{margin-top:8px; font-size:13px; color:var(--muted); min-height:20px; white-space:pre-wrap;}
.status.status-ok{color: rgba(98, 226, 154, .96);}
.status.status-error{color: rgba(255, 152, 152, .96);}
.hidden{display:none;}

.pill:disabled{
  opacity:.58;
  cursor:not-allowed;
  transform:none !important;
}

.lk-profile-subtitle{
  margin:2px 0 8px;
  color:var(--muted);
  font-size:14px;
}

.about-card{
  width:min(92vw, 920px);
  max-width:920px;
  padding:30px 34px;
  background: rgba(6,9,16,.84);
  border-color: rgba(255,255,255,.24);
  backdrop-filter: blur(16px);
}
.about-intro{
  margin:0 0 18px;
  line-height:1.82;
  font-size:17px;
  color:rgba(255,255,255,.92);
}
.about-steps{
  margin:0;
  padding-left:22px;
  line-height:1.94;
  color:var(--text);
  font-size:16px;
  list-style: decimal;
}
.about-steps li::marker{color: rgba(255,255,255,.82);}
.about-steps li + li{margin-top:7px;}
.about-principle{
  margin:18px 0 0;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.12);
  display:flex;
  gap:8px;
  align-items:flex-start;
  line-height:1.7;
  font-size:16px;
}
.about-principle-label{
  color:rgba(255,255,255,.92);
  font-weight:600;
}
.about-principle-text{
  color:var(--text);
}
.about-cta{
  margin-top:18px;
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px;
}
.about-cta .pill{
  min-height:44px;
  padding:11px 16px;
  font-size:13.5px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  border-radius:12px;
  white-space:normal;
}
.about-cta-secondary{
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.18);
  color: rgba(255,255,255,.72);
}
.about-cta-secondary:hover{
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.86);
}
.about-footnote{
  margin:16px 0 0;
  font-size:13px;
  line-height:1.6;
  color:rgba(255,255,255,.62);
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.about-footnote a{
  color:rgba(255,255,255,.78);
  text-decoration:none;
}
.about-footnote,
.about-footnote:hover,
.about-footnote:focus-visible{
  text-decoration:none;
}
.about-footnote span{color:rgba(255,255,255,.74);}

.admin-avatar-cell{
  width:40px;
  padding-left:12px;
  padding-right:6px;
}
.admin-avatar{
  width:28px;
  height:28px;
  border-radius:999px;
  object-fit:cover;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.06);
  display:block;
}

@media (max-width: 820px){
  .about-card{
    width:100%;
    padding:20px;
  }
  .about-intro,
  .about-steps,
  .about-claim{
    font-size:15px;
    line-height:1.72;
  }
  .about-cta{
    grid-template-columns: 1fr;
  }
}

.footer{
  position:relative;
  z-index:20;
  margin-top:auto;
  margin-bottom:0;
  width:100%;
  padding:16px 24px calc(14px + var(--safe-bot));
  color:var(--muted);
  font-size:12.5px;
  border-top:1px solid rgba(255,255,255,.08);
}
.footer .bar{
  max-width:1040px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.footer .brandline{
  display:flex;
  align-items:center;
  gap:8px;
  color:rgba(255,255,255,.80);
}
.footer .dot{background:rgba(255,255,255,.55);}
.footer .muted{color:var(--muted);}

@media (max-width: 820px){
  .nav{display:none;}
  .menu{display:block;}
  .mobile-cta{display:block;}
  .mobile-cta{
    bottom: calc(84px + var(--safe-bot));
  }
  .center{
    padding:
      calc(106px + var(--safe-top))
      calc(16px + var(--safe-r))
      calc(120px + var(--safe-bot))
      calc(16px + var(--safe-l));
  }
  .auth-wrap{width:100%; padding: 8px 2px calc(28px + var(--safe-bot));}
  .auth-card{padding:16px;}
  .auth-hero{margin-top:14px;}
}

@media (max-width: 768px){
  body.lk-page .auth-hero h1{font-size: clamp(24px, 7vw, 34px);}
  body.lk-page .auth-hero .lead{font-size: 14px;}

  .lk-shell{grid-template-columns: 1fr; gap:12px;}
  .lk-side{position:relative; top:0;}
  .lk-side h3{display:none;}

  /* Tabs on top (horizontal) */
  .lk-nav{
    display:grid;
    grid-template-columns: repeat(var(--lk-nav-cols, 3), minmax(0, 1fr));
    gap:8px;
    width:100%;
    margin-top:0;
    overflow:visible;
    white-space:normal;
    padding-bottom:0;
  }
  .lk-nav-link{
    width:100%;
    min-height:42px;
    justify-content:center;
    text-align:center;
    padding-left:12px;
    padding-right:12px;
    white-space:normal;
  }
  .lk-nav-link[data-tab="keys"] .lk-nav-label{
    flex:1;
    text-align:center;
    padding-right:24px;
  }
  .lk-nav-lock{
    position:absolute;
    right:12px;
    top:50%;
    transform: translateY(-50%);
    margin-left:0;
  }

  .lk-kpi-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lk-nav-link:disabled,
  .lk-nav-link[aria-disabled="true"]{
    opacity:.62;
    cursor:not-allowed;
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.18);
    transform:none;
  }
  .lk-nav-link:disabled:hover,
  .lk-nav-link[aria-disabled="true"]:hover{
    background: rgba(255,255,255,.08);
    transform:none;
  }
  .lk-main{min-height:auto;}

  /* Access screen mobile UX */
  .lk-tab-panel[data-panel="access"]{max-width: 720px;}
  .lk-access-inner{max-width: 560px;}
  .lk-access{min-height: 280px;}
  .lk-access-icon{width:54px; height:54px; margin-bottom:12px; border-radius:16px;}
  .lk-access-icon-emoji{font-size:20px;}
  .lk-access-title{font-size:16px;}
  .lk-access-details{padding:16px; border-radius:16px;}
  .lk-access-cols{display:none;}
  .lk-access-accordion{display:block;}

  .lk-access-cta{
    align-items:stretch;
  }
}

@media (max-width: 720px){
  .top{gap:8px;}
}

@media (prefers-reduced-motion: reduce){
  .headline, .submark, .noise{animation:none !important}
  canvas#stars{opacity:.85}
}
