.identity-page{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--market-text,#f4f1fb)}*{box-sizing:border-box}.identity-page{margin:0;min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 50% 0,var(--market-control,#32204d),transparent 65%),var(--market-deep,#100b1d)}.identity-card{width:min(420px,100%);padding:28px;background:var(--market-panel,#1b1529);border:1px solid var(--market-control,#493859);border-radius:20px;box-shadow:0 20px 70px #0005}.identity-wide{width:min(650px,100%)}.identity-logo{width:64px;height:auto}.identity-card h1{font-size:26px;margin:20px 0 8px}.identity-card p{color:var(--market-soft,#c8bdd7);font-size:14px;line-height:1.6}.identity-card form{display:flex;flex-direction:column;gap:16px;margin:24px 0}.identity-card label{font-size:14px;display:flex;flex-direction:column;gap:8px}.identity-card input,.identity-card textarea{font-family:inherit;font-size:16px;line-height:1.5;padding:12px;border:1px solid var(--market-border,#574668);border-radius:10px;background:var(--market-deep,#110c1c);color:var(--market-text,#f4f1fb);max-width:100%;width:100%}.identity-card button{min-height:46px;border:0;border-radius:10px;background:#d8ff00;color:#162000;font-size:15px;font-weight:600;cursor:pointer}.identity-card button:disabled{opacity:.5;cursor:wait}.identity-card a{color:#d8ff00;font-size:14px}.identity-error{color:#ff9eaa!important}.key-guide{background:var(--market-panel,#241b33);padding:16px;border-radius:12px}.key-guide h2{font-size:17px;margin:0 0 12px}.key-settings-image{width:100%;height:auto;border-radius:8px;margin-top:12px}.key-guide summary{cursor:pointer;color:#d8ff00}.connection-counts{display:flex;flex-wrap:wrap;gap:16px;padding:16px;background:#252f1a;border-radius:10px}.admin-form,.admin-grant{display:flex;gap:16px;flex-wrap:wrap;align-items:end}.admin-user{padding:20px 0;border-top:1px solid var(--market-control,#493859)}.admin-grant{margin:12px 0}
.sidebar-identity{display:flex;align-items:center;gap:8px;padding:0 4px 12px;font-size:11px;color:var(--market-soft,#cec7dc)}.sidebar-identity form{margin-left:auto}.sidebar-identity button{border:0;background:transparent;color:var(--market-soft,#cec7dc);font-size:11px;padding:4px;cursor:pointer}.sidebar-identity a{color:#d8ff00}.shop-editor details img{max-width:100%;height:auto}
/* Remembered login is opt-in; never stretch its checkbox like a text field. */
.identity-card .identity-remember{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:400}
.identity-card .identity-remember input{width:18px;height:18px;min-height:18px;margin:0;accent-color:#d1fe17;flex:none}
/* Screenshot attribution: original vector geometry, monochrome with a cut-out 8.
   Paint only; no element, focus target, animation, request or layout shift.
   Native modal dialogs need their own copy in the browser's top layer. */
body[data-page-kind]::after,
.identity-page::after,
body[data-page-kind] dialog:modal::after,
.identity-page dialog:modal::after{
  content:"";
  position:fixed;
  inset:50% auto auto 50%;
  width:50vw;
  height:19.047619vw;
  max-height:45vh;
  transform:translate(-50%,-50%);
  z-index:2147483646;
  pointer-events:none;
  user-select:none;
  opacity:.004;
  background:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 126 48'%3E%3Cdefs%3E%3Cmask id='eight'%3E%3Crect width='48' height='48' rx='14' fill='white'/%3E%3Cpath transform='translate(24 24) skewX(-9) rotate(-90) translate(-24 -24)' fill='none' stroke='black' stroke-width='4.5' stroke-linecap='round' stroke-linejoin='round' d='M8 24C8 16 17 16 24 24S40 32 40 24S31 16 24 24S8 32 8 24Z'/%3E%3C/mask%3E%3C/defs%3E%3Crect width='48' height='48' fill='white' mask='url(%23eight)'/%3E%3Cg fill='white' transform='skewX(-9)'%3E%3Ccircle cx='69' cy='11' r='4'/%3E%3Cpath d='M65 21h8v21h-8zM82 10h10l9 23-5 9h-2zM104 27h10l-11 15h-8zM116 10h10l-9 13h-10z'/%3E%3C/g%3E%3C/svg%3E");
}
/* Avoid doubling the mark through a translucent modal backdrop. */
body[data-page-kind]:has(dialog:modal)::after,
.identity-page:has(dialog:modal)::after{content:none}
