/*
 * ログインポップアップ(partials/login-popup.blade.php)の見た目。
 * overview / info / help などのヘッダーと、sns-support など、ポップアップを使うすべてのページで共有する。
 *
 * 1. リセットとユーティリティ: resources/css/utilities.css のうち、ポップアップが使う分だけを、
 *    ポップアップの中にだけ効くよう :where(...) で範囲を絞って写したもの(詳細度は元のまま)。
 *    utilities.css を読み込まないページ(単独の LP など)でも、ポップアップが同じ見た目になる。
 * 2. ポップアップ固有の見た目(.login-popup-* / .referral-*)。
 */

:where(#loginPopup, #referralErrorPopup),
:where(#loginPopup, #referralErrorPopup) *,
:where(#loginPopup, #referralErrorPopup) ::before,
:where(#loginPopup, #referralErrorPopup) ::after {
  --tw-border-spacing-x: 0;
    --tw-border-spacing-y: 0;
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-pan-x:  ;
    --tw-pan-y:  ;
    --tw-pinch-zoom:  ;
    --tw-scroll-snap-strictness: proximity;
    --tw-gradient-from-position:  ;
    --tw-gradient-via-position:  ;
    --tw-gradient-to-position:  ;
    --tw-ordinal:  ;
    --tw-slashed-zero:  ;
    --tw-numeric-figure:  ;
    --tw-numeric-spacing:  ;
    --tw-numeric-fraction:  ;
    --tw-ring-inset:  ;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgb(59 130 246 / 0.5);
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-colored: 0 0 #0000;
    --tw-blur:  ;
    --tw-brightness:  ;
    --tw-contrast:  ;
    --tw-grayscale:  ;
    --tw-hue-rotate:  ;
    --tw-invert:  ;
    --tw-saturate:  ;
    --tw-sepia:  ;
    --tw-drop-shadow:  ;
    --tw-backdrop-blur:  ;
    --tw-backdrop-brightness:  ;
    --tw-backdrop-contrast:  ;
    --tw-backdrop-grayscale:  ;
    --tw-backdrop-hue-rotate:  ;
    --tw-backdrop-invert:  ;
    --tw-backdrop-opacity:  ;
    --tw-backdrop-saturate:  ;
    --tw-backdrop-sepia:  ;
    --tw-contain-size:  ;
    --tw-contain-layout:  ;
    --tw-contain-paint:  ;
    --tw-contain-style:  ;
}

:where(#loginPopup, #referralErrorPopup),
:where(#loginPopup, #referralErrorPopup) *,
:where(#loginPopup, #referralErrorPopup) ::before,
:where(#loginPopup, #referralErrorPopup) ::after {
  box-sizing: border-box;
    
    border-width: 0;
    
    border-style: solid;
    
    border-color: #e5e7eb;
}

:where(#loginPopup, #referralErrorPopup) ::before,
:where(#loginPopup, #referralErrorPopup) ::after {
  --tw-content: '';
}

:where(#loginPopup, #referralErrorPopup) hr {
  height: 0;
    
    color: inherit;
    
    border-top-width: 1px;
}

:where(#loginPopup, #referralErrorPopup) abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
            text-decoration: underline dotted;
}

:where(#loginPopup, #referralErrorPopup) h1,
:where(#loginPopup, #referralErrorPopup) h2,
:where(#loginPopup, #referralErrorPopup) h3,
:where(#loginPopup, #referralErrorPopup) h4,
:where(#loginPopup, #referralErrorPopup) h5,
:where(#loginPopup, #referralErrorPopup) h6 {
  font-size: inherit;
    font-weight: inherit;
}

:where(#loginPopup, #referralErrorPopup) a {
  color: inherit;
    text-decoration: inherit;
}

:where(#loginPopup, #referralErrorPopup) b,
:where(#loginPopup, #referralErrorPopup) strong {
  font-weight: bolder;
}

:where(#loginPopup, #referralErrorPopup) code,
:where(#loginPopup, #referralErrorPopup) kbd,
:where(#loginPopup, #referralErrorPopup) samp,
:where(#loginPopup, #referralErrorPopup) pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    
    font-feature-settings: normal;
    
    font-variation-settings: normal;
    
    font-size: 1em;
}

:where(#loginPopup, #referralErrorPopup) small {
  font-size: 80%;
}

:where(#loginPopup, #referralErrorPopup) sub,
:where(#loginPopup, #referralErrorPopup) sup {
  font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

:where(#loginPopup, #referralErrorPopup) sub {
  bottom: -0.25em;
}

:where(#loginPopup, #referralErrorPopup) sup {
  top: -0.5em;
}

:where(#loginPopup, #referralErrorPopup) table {
  text-indent: 0;
    
    border-color: inherit;
    
    border-collapse: collapse;
}

:where(#loginPopup, #referralErrorPopup) button,
:where(#loginPopup, #referralErrorPopup) input,
:where(#loginPopup, #referralErrorPopup) optgroup,
:where(#loginPopup, #referralErrorPopup) select,
:where(#loginPopup, #referralErrorPopup) textarea {
  font-family: inherit;
    
    font-feature-settings: inherit;
    
    font-variation-settings: inherit;
    
    font-size: 100%;
    
    font-weight: inherit;
    
    line-height: inherit;
    
    letter-spacing: inherit;
    
    color: inherit;
    
    margin: 0;
    
    padding: 0;
}

:where(#loginPopup, #referralErrorPopup) button,
:where(#loginPopup, #referralErrorPopup) select {
  text-transform: none;
}

:where(#loginPopup, #referralErrorPopup) button,
:where(#loginPopup, #referralErrorPopup) input:where([type='button']),
:where(#loginPopup, #referralErrorPopup) input:where([type='reset']),
:where(#loginPopup, #referralErrorPopup) input:where([type='submit']) {
  -webkit-appearance: button;
    
    background-color: transparent;
    
    background-image: none;
}

:where(#loginPopup, #referralErrorPopup) :-moz-focusring {
  outline: auto;
}

:where(#loginPopup, #referralErrorPopup) :-moz-ui-invalid {
  box-shadow: none;
}

:where(#loginPopup, #referralErrorPopup) progress {
  vertical-align: baseline;
}

:where(#loginPopup, #referralErrorPopup) ::-webkit-inner-spin-button,
:where(#loginPopup, #referralErrorPopup) ::-webkit-outer-spin-button {
  height: auto;
}

:where(#loginPopup, #referralErrorPopup)[type='search'],
:where(#loginPopup, #referralErrorPopup) [type='search'] {
  -webkit-appearance: textfield;
    
    outline-offset: -2px;
}

:where(#loginPopup, #referralErrorPopup) ::-webkit-search-decoration {
  -webkit-appearance: none;
}

:where(#loginPopup, #referralErrorPopup) ::-webkit-file-upload-button {
  -webkit-appearance: button;
    
    font: inherit;
}

:where(#loginPopup, #referralErrorPopup) summary {
  display: list-item;
}

:where(#loginPopup, #referralErrorPopup) blockquote,
:where(#loginPopup, #referralErrorPopup) dl,
:where(#loginPopup, #referralErrorPopup) dd,
:where(#loginPopup, #referralErrorPopup) h1,
:where(#loginPopup, #referralErrorPopup) h2,
:where(#loginPopup, #referralErrorPopup) h3,
:where(#loginPopup, #referralErrorPopup) h4,
:where(#loginPopup, #referralErrorPopup) h5,
:where(#loginPopup, #referralErrorPopup) h6,
:where(#loginPopup, #referralErrorPopup) hr,
:where(#loginPopup, #referralErrorPopup) figure,
:where(#loginPopup, #referralErrorPopup) p,
:where(#loginPopup, #referralErrorPopup) pre {
  margin: 0;
}

:where(#loginPopup, #referralErrorPopup) fieldset {
  margin: 0;
    padding: 0;
}

:where(#loginPopup, #referralErrorPopup) legend {
  padding: 0;
}

:where(#loginPopup, #referralErrorPopup) ol,
:where(#loginPopup, #referralErrorPopup) ul,
:where(#loginPopup, #referralErrorPopup) menu {
  list-style: none;
    margin: 0;
    padding: 0;
}

:where(#loginPopup, #referralErrorPopup) dialog {
  padding: 0;
}

:where(#loginPopup, #referralErrorPopup) textarea {
  resize: vertical;
}

:where(#loginPopup, #referralErrorPopup) input::-moz-placeholder,
:where(#loginPopup, #referralErrorPopup) textarea::-moz-placeholder {
  opacity: 1;
    
    color: #9ca3af;
}

:where(#loginPopup, #referralErrorPopup) input::placeholder,
:where(#loginPopup, #referralErrorPopup) textarea::placeholder {
  opacity: 1;
    
    color: #9ca3af;
}

:where(#loginPopup, #referralErrorPopup) button,
:where(#loginPopup, #referralErrorPopup)[role="button"],
:where(#loginPopup, #referralErrorPopup) [role="button"] {
  cursor: pointer;
}

:where(#loginPopup, #referralErrorPopup) :disabled {
  cursor: default;
}

:where(#loginPopup, #referralErrorPopup) img,
:where(#loginPopup, #referralErrorPopup) svg,
:where(#loginPopup, #referralErrorPopup) video,
:where(#loginPopup, #referralErrorPopup) canvas,
:where(#loginPopup, #referralErrorPopup) audio,
:where(#loginPopup, #referralErrorPopup) iframe,
:where(#loginPopup, #referralErrorPopup) embed,
:where(#loginPopup, #referralErrorPopup) object {
  display: block;
    
    vertical-align: middle;
}

:where(#loginPopup, #referralErrorPopup) img,
:where(#loginPopup, #referralErrorPopup) video {
  max-width: 100%;
    height: auto;
}

:where(#loginPopup, #referralErrorPopup)[hidden]:where(:not([hidden="until-found"])),
:where(#loginPopup, #referralErrorPopup) [hidden]:where(:not([hidden="until-found"])) {
  display: none;
}

:where(#loginPopup, #referralErrorPopup).sr-only,
:where(#loginPopup, #referralErrorPopup) .sr-only {
  position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

:where(#loginPopup, #referralErrorPopup).fixed,
:where(#loginPopup, #referralErrorPopup) .fixed {
  position: fixed;
}

:where(#loginPopup, #referralErrorPopup).absolute,
:where(#loginPopup, #referralErrorPopup) .absolute {
  position: absolute;
}

:where(#loginPopup, #referralErrorPopup).relative,
:where(#loginPopup, #referralErrorPopup) .relative {
  position: relative;
}

:where(#loginPopup, #referralErrorPopup).inset-0,
:where(#loginPopup, #referralErrorPopup) .inset-0 {
  inset: 0px;
}

:where(#loginPopup, #referralErrorPopup).z-\[100\],
:where(#loginPopup, #referralErrorPopup) .z-\[100\] {
  z-index: 100;
}

:where(#loginPopup, #referralErrorPopup).mx-4,
:where(#loginPopup, #referralErrorPopup) .mx-4 {
  margin-left: 1rem;
    margin-right: 1rem;
}

:where(#loginPopup, #referralErrorPopup).mx-auto,
:where(#loginPopup, #referralErrorPopup) .mx-auto {
  margin-left: auto;
    margin-right: auto;
}

:where(#loginPopup, #referralErrorPopup).mb-4,
:where(#loginPopup, #referralErrorPopup) .mb-4 {
  margin-bottom: 1rem;
}

:where(#loginPopup, #referralErrorPopup).mb-6,
:where(#loginPopup, #referralErrorPopup) .mb-6 {
  margin-bottom: 1.5rem;
}

:where(#loginPopup, #referralErrorPopup).mb-8,
:where(#loginPopup, #referralErrorPopup) .mb-8 {
  margin-bottom: 2rem;
}

:where(#loginPopup, #referralErrorPopup).mt-2,
:where(#loginPopup, #referralErrorPopup) .mt-2 {
  margin-top: 0.5rem;
}

:where(#loginPopup, #referralErrorPopup).mt-4,
:where(#loginPopup, #referralErrorPopup) .mt-4 {
  margin-top: 1rem;
}

:where(#loginPopup, #referralErrorPopup).mt-6,
:where(#loginPopup, #referralErrorPopup) .mt-6 {
  margin-top: 1.5rem;
}

:where(#loginPopup, #referralErrorPopup).flex,
:where(#loginPopup, #referralErrorPopup) .flex {
  display: flex;
}

:where(#loginPopup, #referralErrorPopup).hidden,
:where(#loginPopup, #referralErrorPopup) .hidden {
  display: none;
}

:where(#loginPopup, #referralErrorPopup).h-16,
:where(#loginPopup, #referralErrorPopup) .h-16 {
  height: 4rem;
}

:where(#loginPopup, #referralErrorPopup).h-5,
:where(#loginPopup, #referralErrorPopup) .h-5 {
  height: 1.25rem;
}

:where(#loginPopup, #referralErrorPopup).h-6,
:where(#loginPopup, #referralErrorPopup) .h-6 {
  height: 1.5rem;
}

:where(#loginPopup, #referralErrorPopup).h-8,
:where(#loginPopup, #referralErrorPopup) .h-8 {
  height: 2rem;
}

:where(#loginPopup, #referralErrorPopup).w-16,
:where(#loginPopup, #referralErrorPopup) .w-16 {
  width: 4rem;
}

:where(#loginPopup, #referralErrorPopup).w-5,
:where(#loginPopup, #referralErrorPopup) .w-5 {
  width: 1.25rem;
}

:where(#loginPopup, #referralErrorPopup).w-6,
:where(#loginPopup, #referralErrorPopup) .w-6 {
  width: 1.5rem;
}

:where(#loginPopup, #referralErrorPopup).w-auto,
:where(#loginPopup, #referralErrorPopup) .w-auto {
  width: auto;
}

:where(#loginPopup, #referralErrorPopup).w-full,
:where(#loginPopup, #referralErrorPopup) .w-full {
  width: 100%;
}

:where(#loginPopup, #referralErrorPopup).max-w-lg,
:where(#loginPopup, #referralErrorPopup) .max-w-lg {
  max-width: 32rem;
}

:where(#loginPopup, #referralErrorPopup).max-w-md,
:where(#loginPopup, #referralErrorPopup) .max-w-md {
  max-width: 28rem;
}

:where(#loginPopup, #referralErrorPopup).transform,
:where(#loginPopup, #referralErrorPopup) .transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

:where(#loginPopup, #referralErrorPopup).select-none,
:where(#loginPopup, #referralErrorPopup) .select-none {
  -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
}

:where(#loginPopup, #referralErrorPopup).select-text,
:where(#loginPopup, #referralErrorPopup) .select-text {
  -webkit-user-select: text;
       -moz-user-select: text;
            user-select: text;
}

:where(#loginPopup, #referralErrorPopup).items-center,
:where(#loginPopup, #referralErrorPopup) .items-center {
  align-items: center;
}

:where(#loginPopup, #referralErrorPopup).justify-center,
:where(#loginPopup, #referralErrorPopup) .justify-center {
  justify-content: center;
}

:where(#loginPopup, #referralErrorPopup).gap-2,
:where(#loginPopup, #referralErrorPopup) .gap-2 {
  gap: 0.5rem;
}

:where(#loginPopup, #referralErrorPopup).gap-3,
:where(#loginPopup, #referralErrorPopup) .gap-3 {
  gap: 0.75rem;
}

:where(#loginPopup, #referralErrorPopup).space-y-4 > :not([hidden]) ~ :not([hidden]),
:where(#loginPopup, #referralErrorPopup) .space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
    margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}

:where(#loginPopup, #referralErrorPopup).rounded-2xl,
:where(#loginPopup, #referralErrorPopup) .rounded-2xl {
  border-radius: 1rem;
}

:where(#loginPopup, #referralErrorPopup).rounded-xl,
:where(#loginPopup, #referralErrorPopup) .rounded-xl {
  border-radius: 0.75rem;
}

:where(#loginPopup, #referralErrorPopup).border,
:where(#loginPopup, #referralErrorPopup) .border {
  border-width: 1px;
}

:where(#loginPopup, #referralErrorPopup).border-t,
:where(#loginPopup, #referralErrorPopup) .border-t {
  border-top-width: 1px;
}

:where(#loginPopup, #referralErrorPopup).bg-black\/70,
:where(#loginPopup, #referralErrorPopup) .bg-black\/70 {
  background-color: rgb(0 0 0 / 0.7);
}

:where(#loginPopup, #referralErrorPopup).bg-white,
:where(#loginPopup, #referralErrorPopup) .bg-white {
  --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

:where(#loginPopup, #referralErrorPopup).p-4,
:where(#loginPopup, #referralErrorPopup) .p-4 {
  padding: 1rem;
}

:where(#loginPopup, #referralErrorPopup).px-3,
:where(#loginPopup, #referralErrorPopup) .px-3 {
  padding-left: 0.75rem;
    padding-right: 0.75rem;
}

:where(#loginPopup, #referralErrorPopup).px-4,
:where(#loginPopup, #referralErrorPopup) .px-4 {
  padding-left: 1rem;
    padding-right: 1rem;
}

:where(#loginPopup, #referralErrorPopup).px-8,
:where(#loginPopup, #referralErrorPopup) .px-8 {
  padding-left: 2rem;
    padding-right: 2rem;
}

:where(#loginPopup, #referralErrorPopup).py-3,
:where(#loginPopup, #referralErrorPopup) .py-3 {
  padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

:where(#loginPopup, #referralErrorPopup).py-8,
:where(#loginPopup, #referralErrorPopup) .py-8 {
  padding-top: 2rem;
    padding-bottom: 2rem;
}

:where(#loginPopup, #referralErrorPopup).pb-8,
:where(#loginPopup, #referralErrorPopup) .pb-8 {
  padding-bottom: 2rem;
}

:where(#loginPopup, #referralErrorPopup).text-center,
:where(#loginPopup, #referralErrorPopup) .text-center {
  text-align: center;
}

:where(#loginPopup, #referralErrorPopup).text-sm,
:where(#loginPopup, #referralErrorPopup) .text-sm {
  font-size: 0.875rem;
    line-height: 1.25rem;
}

:where(#loginPopup, #referralErrorPopup).text-xl,
:where(#loginPopup, #referralErrorPopup) .text-xl {
  font-size: 1.25rem;
    line-height: 1.75rem;
}

:where(#loginPopup, #referralErrorPopup).text-xs,
:where(#loginPopup, #referralErrorPopup) .text-xs {
  font-size: 0.75rem;
    line-height: 1rem;
}

:where(#loginPopup, #referralErrorPopup).font-bold,
:where(#loginPopup, #referralErrorPopup) .font-bold {
  font-weight: 700;
}

:where(#loginPopup, #referralErrorPopup).font-extrabold,
:where(#loginPopup, #referralErrorPopup) .font-extrabold {
  font-weight: 800;
}

:where(#loginPopup, #referralErrorPopup).tracking-tighter,
:where(#loginPopup, #referralErrorPopup) .tracking-tighter {
  letter-spacing: -0.05em;
}

:where(#loginPopup, #referralErrorPopup).text-gray-900,
:where(#loginPopup, #referralErrorPopup) .text-gray-900 {
  --tw-text-opacity: 1;
    color: rgb(17 24 39 / var(--tw-text-opacity, 1));
}

:where(#loginPopup, #referralErrorPopup).text-green-500,
:where(#loginPopup, #referralErrorPopup) .text-green-500 {
  --tw-text-opacity: 1;
    color: rgb(34 197 94 / var(--tw-text-opacity, 1));
}

:where(#loginPopup, #referralErrorPopup).text-red-500,
:where(#loginPopup, #referralErrorPopup) .text-red-500 {
  --tw-text-opacity: 1;
    color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}

:where(#loginPopup, #referralErrorPopup).underline,
:where(#loginPopup, #referralErrorPopup) .underline {
  text-decoration-line: underline;
}

:where(#loginPopup, #referralErrorPopup).no-underline,
:where(#loginPopup, #referralErrorPopup) .no-underline {
  text-decoration-line: none;
}

:where(#loginPopup, #referralErrorPopup).underline-offset-2,
:where(#loginPopup, #referralErrorPopup) .underline-offset-2 {
  text-underline-offset: 2px;
}

:where(#loginPopup, #referralErrorPopup).opacity-80,
:where(#loginPopup, #referralErrorPopup) .opacity-80 {
  opacity: 0.8;
}

:where(#loginPopup, #referralErrorPopup).shadow-2xl,
:where(#loginPopup, #referralErrorPopup) .shadow-2xl {
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
    --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

:where(#loginPopup, #referralErrorPopup).shadow-lg,
:where(#loginPopup, #referralErrorPopup) .shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

:where(#loginPopup, #referralErrorPopup).backdrop-blur-sm,
:where(#loginPopup, #referralErrorPopup) .backdrop-blur-sm {
  --tw-backdrop-blur: blur(4px);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

:where(#loginPopup, #referralErrorPopup).backdrop-blur-xl,
:where(#loginPopup, #referralErrorPopup) .backdrop-blur-xl {
  --tw-backdrop-blur: blur(24px);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

:where(#loginPopup, #referralErrorPopup).transition-all,
:where(#loginPopup, #referralErrorPopup) .transition-all {
  transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

:where(#loginPopup, #referralErrorPopup).transition-colors,
:where(#loginPopup, #referralErrorPopup) .transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

:where(#loginPopup, #referralErrorPopup).transition-opacity,
:where(#loginPopup, #referralErrorPopup) .transition-opacity {
  transition-property: opacity;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

:where(#loginPopup, #referralErrorPopup).hover\:opacity-100:hover,
:where(#loginPopup, #referralErrorPopup) .hover\:opacity-100:hover {
  opacity: 1;
}

:where(#loginPopup, #referralErrorPopup).focus\:border-current:focus,
:where(#loginPopup, #referralErrorPopup) .focus\:border-current:focus {
  border-color: currentColor;
}

:where(#loginPopup, #referralErrorPopup).focus\:outline-none:focus,
:where(#loginPopup, #referralErrorPopup) .focus\:outline-none:focus {
  outline: 2px solid transparent;
    outline-offset: 2px;
}

:where(#loginPopup, #referralErrorPopup).focus\:ring-0:focus,
:where(#loginPopup, #referralErrorPopup) .focus\:ring-0:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

/* ログインポップアップ */
.login-popup-content {
    background-color: #1a1a1a;
    border-color: rgba(255, 255, 255, 0.1);
    max-height: calc(100vh - 48px);
    overflow-y: auto;
}
:root[data-theme="light"] .login-popup-content {
    background-color: #f6f4f9;
    border-color: rgba(0, 0, 0, 0.1);
}
.login-popup-close {
    color: #9ca3af;
}
.login-popup-close:hover {
    color: #ffffff;
}
:root[data-theme="light"] .login-popup-close {
    color: #6b7280;
}
:root[data-theme="light"] .login-popup-close:hover {
    color: #030712;
}
/* RTL対応: 閉じるボタンを反対側の角に移動 */
[dir="rtl"] .login-popup-close {
    right: auto !important;
    left: 10px !important;
}
.login-popup-brand {
    color: #ffffff;
}
:root[data-theme="light"] .login-popup-brand {
    color: #030712;
}
.login-popup-divider-line {
    border-color: #374151;
}
:root[data-theme="light"] .login-popup-divider-line {
    border-color: #d1d5db;
}
.login-popup-divider-text {
    background-color: #1a1a1a;
    color: #9ca3af;
}
:root[data-theme="light"] .login-popup-divider-text {
    background-color: #f6f4f9;
    color: #6b7280;
}
.login-popup-input {
    background-color: rgba(17, 24, 39, 0.5);
    border-color: #4b5563;
    color: #ffffff;
}
.login-popup-input::placeholder {
    color: #6b7280;
}
.login-popup-input:-webkit-autofill,
.login-popup-input:-webkit-autofill:hover,
.login-popup-input:-webkit-autofill:focus,
.login-popup-input:-webkit-autofill:active {
    -webkit-text-fill-color: #ffffff;
    caret-color: #ffffff;
    box-shadow: 0 0 0px 1000px rgba(17, 24, 39, 0.5) inset;
    transition: background-color 9999s ease-in-out 0s;
}
:root[data-theme="light"] .login-popup-input {
    background-color: #f9fafb;
    border-color: #d1d5db;
    color: #030712;
}
:root[data-theme="light"] .login-popup-input::placeholder {
    color: #9ca3af;
}
:root[data-theme="light"] .login-popup-input:-webkit-autofill,
:root[data-theme="light"] .login-popup-input:-webkit-autofill:hover,
:root[data-theme="light"] .login-popup-input:-webkit-autofill:focus,
:root[data-theme="light"] .login-popup-input:-webkit-autofill:active {
    -webkit-text-fill-color: #030712;
    caret-color: #030712;
    box-shadow: 0 0 0px 1000px #f9fafb inset;
    transition: background-color 9999s ease-in-out 0s;
}
.login-popup-button {
    background-color: #000000;
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.login-popup-button .login-spinner {
    width: 18px;
    height: 18px;
    margin-right: 8px;
    animation: la-spin 1s linear infinite;
    flex-shrink: 0;
}
:root[data-theme="light"] .login-popup-button {
    background-color: #030712;
    color: #ffffff;
}
.login-popup-terms {
    color: #ffffff;
}
:root[data-theme="light"] .login-popup-terms {
    color: #030712;
}
.login-popup-link {
    color: #ffffff;
}
.login-popup-link:hover {
    color: #d1d5db;
}
:root[data-theme="light"] .login-popup-link {
    color: #030712;
}
:root[data-theme="light"] .login-popup-link:hover {
    color: #4b5563;
}
.login-popup-success-title {
    color: #ffffff;
}
:root[data-theme="light"] .login-popup-success-title {
    color: #030712;
}
.login-popup-success-subtitle {
    color: #9ca3af;
}
:root[data-theme="light"] .login-popup-success-subtitle {
    color: #6b7280;
}
.login-popup-email-display {
    background-color: rgba(17, 24, 39, 0.5);
    border-color: #4b5563;
    color: #ffffff;
}
.login-popup-email-display:hover {
    background-color: rgba(17, 24, 39, 0.7);
}
:root[data-theme="light"] .login-popup-email-display {
    background-color: #f9fafb;
    border-color: #d1d5db;
    color: #030712;
}
:root[data-theme="light"] .login-popup-email-display:hover {
    background-color: #e5e7eb;
}
/* 友達紹介必須ノーティス */
.referral-notice-box {
    background: rgba(251, 146, 60, 0.08);
    border: 1px solid rgba(251, 146, 60, 0.3);
    border-radius: 12px;
    padding: 20px 16px;
    text-align: center;
    margin-bottom: 20px;
}
:root[data-theme="light"] .referral-notice-box {
    background: rgba(251, 146, 60, 0.06);
    border-color: rgba(251, 146, 60, 0.35);
}
.referral-notice-icon {
    color: #f97316;
    width: 36px;
    height: 36px;
    margin: 0 auto 10px;
    display: block;
}
.referral-notice-title {
    font-size: 15px;
    font-weight: 600;
    color: #ffffff;
    margin: 0 0 6px;
}
:root[data-theme="light"] .referral-notice-title { color: #030712; }
.referral-notice-desc {
    font-size: 12px;
    color: #9ca3af;
    line-height: 1.65;
    margin: 0;
}
:root[data-theme="light"] .referral-notice-desc { color: #6b7280; }
.referral-login-divider {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 16px;
}
.referral-login-divider-line {
    flex: 1;
    height: 1px;
    background: rgba(255, 255, 255, 0.12);
}
:root[data-theme="light"] .referral-login-divider-line { background: rgba(0, 0, 0, 0.1); }
.referral-login-divider-text {
    font-size: 11px;
    color: #9ca3af;
    white-space: nowrap;
}
:root[data-theme="light"] .referral-login-divider-text { color: #6b7280; }

@media (max-width: 480px) {
    #loginPopup { padding: 0 !important; align-items: flex-start !important; }
    .login-popup-content { max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; margin-top: 24px !important; margin-bottom: 24px !important; max-height: calc(100vh - 48px) !important; overflow-y: auto !important; }
    #referral-required-section .referral-notice-box { width: 100% !important; }
}
