/* FreeCoding 控制台认证页（登录 / 注册 / 忘记密码 / 重置 / 邮箱验证 / 第三方回调）：和纸灯作坊。
   表单本身是一盏从内部发光的纸灯，居中挂在和纸墙上；顶上一根竹骨电线，墨燕停在线的右端。
   深色模式 = 作坊熄灯后：墙变成暗褐，只有这盏灯亮着。全部规则挂在 html.fc-auth 下。 */
@font-face{
  font-family:"FC Sans";
  src:url("/fc/fonts/fc-sans.woff2") format("woff2");
  font-weight:300 500;
  font-display:swap;
}
html.fc-auth{
  --fc-wall:     #f6efe1;
  --fc-wall-2:   #eee3cf;
  --fc-glow:     #fff8e3;
  --fc-lamp:     #ffe9b8;
  --fc-rib:      #c9a36b;
  --fc-rib-soft: #dcc59a;
  --fc-ink:      #2a2a2a;
  --fc-ink-2:    #5f5a51;
  --fc-seal:     #cc3a2e;
  --fc-field:    #fffdf6;
  --fc-field-line:#b9a27c;    /* 输入框边界，对灯面 ≥ 3:1 */
  --fc-wall-ink: #2a2a2a;     /* 墙上的字（灯外面的） */
  --fc-wall-ink-2:#5f5a51;
  --fc-btn:      #2a2a2a;
  --fc-btn-hover:#111;
  --fc-amber:    rgba(233,185,106,.55);
  --fc-sans:"FC Sans","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",-apple-system,"Segoe UI",sans-serif;
  --fc-ease:cubic-bezier(.22,1,.36,1);
  accent-color:var(--fc-ink);
  caret-color:var(--fc-ink);
  background:var(--fc-wall);
}
html.fc-auth.dark{
  --fc-wall:     #1e1811;
  --fc-wall-2:   #2a2219;
  --fc-rib:      #8f7447;
  --fc-rib-soft: #5a4a30;
  --fc-wall-ink: #efe6d4;
  --fc-wall-ink-2:#bfb19a;
  --fc-amber:    rgba(233,185,106,.4);
}
html.fc-auth body{background:var(--fc-wall);color:var(--fc-wall-ink);font-family:var(--fc-sans)}
html.fc-auth body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='400' height='400'><filter id='p'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' seed='7' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .78  0 0 0 0 .70  0 0 0 0 .56  0 0 0 .16 0'/></filter><rect width='400' height='400' filter='url(%23p)'/></svg>")}
html.fc-auth.dark body::before{opacity:.25}
html.fc-auth ::selection{background:#f3d9a0;color:#2a2a2a}
html.fc-auth .navigation-progress-bar{background:var(--fc-rib)!important}

/* ---------- 墙面装饰（#app 之外） ---------- */
#fc-auth-wall{display:none}
html.fc-auth #fc-auth-wall{display:block;position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;color:var(--fc-rib)}
.fc-wire{position:absolute;left:-4vw;right:-4vw;top:calc(env(safe-area-inset-top,0px) + 34px);height:90px;width:108vw}
.fc-wire path{fill:none;stroke:currentColor;stroke-width:1.3;vector-effect:non-scaling-stroke}
.fc-swallow{position:absolute;left:0;top:0;width:clamp(76px,6.5vw,100px);height:auto;transform:translate(-66.2%,-55.2%);
  filter:drop-shadow(0 10px 14px rgba(60,40,10,.12))}
html.fc-auth.dark .fc-swallow{filter:brightness(0) invert(.9) sepia(.3);opacity:.8}
.fc-brand{position:absolute;left:clamp(16px,4vw,48px);top:calc(env(safe-area-inset-top,0px) + 18px);display:inline-flex;align-items:center;gap:.6rem;
  pointer-events:auto;text-decoration:none;color:var(--fc-wall-ink);font-weight:400;font-size:1.1rem;letter-spacing:.14em;border-radius:4px}
.fc-brand img{width:30px;height:31px}
.fc-brand:focus-visible{outline:2px solid var(--fc-wall-ink);outline-offset:4px}

/* ---------- 认证布局本体 ---------- */
html.fc-auth #app{position:relative;z-index:1}
html.fc-auth #app > .min-h-screen{background:transparent;min-height:100vh;min-height:100dvh;
  padding:calc(env(safe-area-inset-top,0px) + 7rem) 1.25rem 4rem}
html.fc-auth #app > .min-h-screen > .absolute.inset-0,
html.fc-auth #app > .min-h-screen > .pointer-events-none.absolute{display:none}
html.fc-auth #app > .min-h-screen > .relative.z-10{max-width:440px}

/* 顶部的站名块：logo 留着，站名改成细体，副标题淡墨 */
html.fc-auth #app > .min-h-screen > .relative.z-10 > .mb-8.text-center:first-child{margin-bottom:1.6rem}
html.fc-auth #app > .min-h-screen > .relative.z-10 > .mb-8.text-center:first-child > div{box-shadow:none;border-radius:8px;height:52px;width:52px;margin-bottom:.9rem}
/* 站点 logo 换成朱砂「燕」印（后台那张青绿 logo 不属于这个世界） */
html.fc-auth #app > .min-h-screen > .relative.z-10 > .mb-8.text-center:first-child > div{background:url(/fc/img/seal-yan.png) center/contain no-repeat!important}
html.fc-auth #app > .min-h-screen > .relative.z-10 > .mb-8.text-center:first-child > div img{opacity:0}
html.fc-auth #app > .min-h-screen > .relative.z-10 > .mb-8.text-center:first-child h1{background:none!important;-webkit-text-fill-color:currentColor!important;
  color:var(--fc-wall-ink);font-weight:300;letter-spacing:.16em;font-size:1.7rem}
html.fc-auth #app > .min-h-screen > .relative.z-10 > .mb-8.text-center:first-child p{color:var(--fc-wall-ink-2)!important;letter-spacing:.06em}

/* 卡片 = 纸灯 */
html.fc-auth .card-glass{background:
    repeating-linear-gradient(180deg, rgba(201,163,107,.13) 0 1px, transparent 1px 22px),
    radial-gradient(ellipse 80% 60% at 50% 40%, var(--fc-lamp) 0%, var(--fc-glow) 55%, #f9efd9 100%)!important;
  border:1px solid var(--fc-rib-soft)!important;border-radius:10px!important;padding:2rem 1.9rem!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  box-shadow:inset 0 0 30px rgba(255,236,190,.95),0 24px 60px -24px rgba(233,185,106,.9),0 0 90px -10px var(--fc-amber)!important;
  color:var(--fc-ink)}
html.fc-auth.dark .card-glass{border-color:#7a6440!important}
html.fc-auth .card-glass > .space-y-6 > .text-center:first-child{text-align:left}
html.fc-auth .card-glass h2{font-weight:300;font-size:1.9rem;letter-spacing:.08em;line-height:1.25;color:var(--fc-ink)!important}
html.fc-auth .card-glass h2 + p{margin-top:.5rem;font-size:.95rem;color:var(--fc-ink-2)!important;text-wrap:pretty}
html.fc-auth .card-glass .space-y-6 > :not([hidden]) ~ :not([hidden]){margin-top:1.8rem}

/* 字段 */
html.fc-auth .input-label{font-size:.86rem;font-weight:400;letter-spacing:.1em;color:var(--fc-ink)!important;margin-bottom:.45rem}
html.fc-auth .input-label .text-gray-400{color:var(--fc-ink-2)!important}
html.fc-auth .input{height:3rem;padding-top:0;padding-bottom:0;font-size:.97rem;color:var(--fc-ink)!important;
  background:var(--fc-field)!important;border:1px solid var(--fc-field-line)!important;border-radius:4px!important;box-shadow:none!important;
  transition:border-color .2s,box-shadow .25s var(--fc-ease)}
html.fc-auth .input::placeholder{color:var(--fc-ink-2)!important;opacity:.85}
html.fc-auth .input:hover{border-color:var(--fc-ink)!important}
html.fc-auth .input:focus,html.fc-auth .input:focus-visible{outline:none;border-color:var(--fc-ink)!important;box-shadow:0 0 0 3px rgba(233,185,106,.45)!important}
html.fc-auth .input:disabled{background:#f1e8d4!important;color:var(--fc-ink-2)!important;cursor:not-allowed;opacity:1}
html.fc-auth .input:-webkit-autofill{-webkit-text-fill-color:var(--fc-ink);-webkit-box-shadow:0 0 0 1000px var(--fc-field) inset}
html.fc-auth form .pointer-events-none.absolute svg,
html.fc-auth form .relative > button.absolute{color:var(--fc-ink-2)!important}
html.fc-auth form .relative > button.absolute:hover{color:var(--fc-ink)!important}
html.fc-auth .input-hint{font-size:.82rem;color:var(--fc-ink-2)!important;margin-top:.4rem;text-wrap:pretty}

/* 主按钮：炭墨 */
html.fc-auth .btn-primary{background-image:none!important;background-color:var(--fc-btn)!important;color:#fff8e3!important;
  border:0;height:3.1rem;border-radius:4px;font-weight:400;font-size:.98rem;letter-spacing:.14em;
  box-shadow:0 12px 24px -16px rgba(42,42,42,.9);transition:background-color .25s,transform .2s var(--fc-ease)}
html.fc-auth .btn-primary:hover:not(:disabled){background-color:var(--fc-btn-hover)!important}
html.fc-auth .btn-primary:active:not(:disabled){transform:translateY(1px)}
html.fc-auth .btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
html.fc-auth .btn-primary:focus-visible{outline:2px solid var(--fc-ink);outline-offset:3px}
html.fc-auth .card-glass .btn-secondary,html.fc-auth .card-glass .btn-outline{background:var(--fc-field)!important;color:var(--fc-ink)!important;border:1px solid var(--fc-rib)!important;border-radius:4px;box-shadow:none}
html.fc-auth .card-glass .btn-secondary:hover,html.fc-auth .card-glass .btn-outline:hover{border-color:var(--fc-ink)!important}

/* 「先同意条款」提示条：一张便签 */
html.fc-auth form .rounded-lg.border{background:#fff3d6!important;border-color:var(--fc-rib-soft)!important;color:var(--fc-ink)!important;border-radius:4px}
html.fc-auth form .rounded-lg.border p{color:var(--fc-ink)!important}
html.fc-auth form .rounded-lg.border p + p{color:var(--fc-ink-2)!important}
html.fc-auth form .rounded-lg.border svg{color:var(--fc-rib)!important}

/* sub2api 的青绿主色在认证页换成炭墨 / 竹色 */
html.fc-auth .bg-primary-600{background-color:var(--fc-btn)!important}
html.fc-auth .hover\:bg-primary-700:hover,html.fc-auth .hover\:bg-primary-500:hover{background-color:var(--fc-btn-hover)!important}
html.fc-auth .text-primary-600,html.fc-auth .text-primary-500,html.fc-auth .text-primary-400,html.fc-auth .text-primary-700{color:var(--fc-ink)!important}
html.fc-auth .bg-primary-50{background-color:#fff3d6!important}
html.fc-auth [class*="ring-primary"]{--tw-ring-color:var(--fc-rib-soft)!important}
html.fc-auth [class*="shadow-primary"]{--tw-shadow-color:transparent!important}
html.fc-auth .card-glass a:not(.btn){color:var(--fc-ink);text-decoration-color:var(--fc-rib);text-underline-offset:3px}
html.fc-auth .card-glass a:not(.btn):hover{color:var(--fc-seal)}

/* 灯外面的字：在墙上 */
html.fc-auth #app > .min-h-screen > .relative.z-10 > .mt-6{margin-top:1.5rem}
html.fc-auth #app > .min-h-screen > .relative.z-10 > .mt-6 p{color:var(--fc-wall-ink-2)!important;font-size:.93rem;letter-spacing:.04em}
html.fc-auth #app > .min-h-screen > .relative.z-10 > .mt-6 a{color:var(--fc-wall-ink)!important;font-weight:400;text-decoration:underline;
  text-decoration-color:var(--fc-rib);text-decoration-thickness:1px;text-underline-offset:4px;margin-left:.15rem}
html.fc-auth #app > .min-h-screen > .relative.z-10 > .mt-6 a:hover{color:var(--fc-seal)!important}
html.fc-auth #app > .min-h-screen > .relative.z-10 > .mt-8{margin-top:2.6rem;color:var(--fc-wall-ink-2)!important;font-size:.76rem;letter-spacing:.06em;opacity:.85}

/* 右上角提示（toast）与条款弹窗 */
html.fc-auth body > div.fixed.right-4.top-4 > div{border-left-width:1px!important;border-color:var(--fc-rib-soft)!important;background:var(--fc-glow)!important;
  border-radius:6px!important;box-shadow:0 18px 40px -22px rgba(60,40,10,.5)!important}
html.fc-auth body > div.fixed.right-4.top-4 > div p{color:var(--fc-ink)!important}
html.fc-auth body > div.fixed.right-4.top-4 > div button{color:var(--fc-ink-2)!important}
html.fc-auth body > div.fixed.right-4.top-4 > div > .h-1{background:#f1e8d4!important}
html.fc-auth body > div.fixed.right-4.top-4 .toast-progress{background:var(--fc-rib)!important}
html.fc-auth body > div.fixed.right-4.top-4 svg.text-red-500{color:var(--fc-ink)!important}
html.fc-auth body > .fixed.inset-0{background:rgba(30,24,17,.62)!important}
html.fc-auth body > .fixed.inset-0 > div{border-radius:10px!important;box-shadow:0 30px 70px -28px rgba(30,24,17,.8)!important}
html.fc-auth body > .fixed.inset-0 h2{font-weight:300;letter-spacing:.06em}
html.fc-auth body > .fixed.inset-0 a.group:hover{border-color:var(--fc-rib)!important}

/* 动效：灯被光撑开；默认可见 */
@media (prefers-reduced-motion: no-preference){
  html.fc-auth .card-glass{animation:fc-inflate 1.1s var(--fc-ease) both}
  @keyframes fc-inflate{from{transform:scale(.985) translateY(6px)}to{transform:none}}
  html.fc-auth .fc-swallow{animation:fc-glide 2s var(--fc-ease) both}
  @keyframes fc-glide{from{opacity:.001}to{opacity:1}}
}

@media (max-width: 720px){
  .fc-wire{top:calc(env(safe-area-inset-top,0px) + 30px);height:60px}
  .fc-swallow{width:70px}
  .fc-brand span{display:none}
  html.fc-auth #app > .min-h-screen{padding:calc(env(safe-area-inset-top,0px) + 5.5rem) 1rem 3rem;align-items:flex-start}
  html.fc-auth .card-glass{padding:1.5rem 1.2rem!important}
  html.fc-auth .card-glass h2{font-size:1.6rem}
}
