/* 折光 v3 · 控制台登录弹窗（移植自 v1 main.css 280-317，色变量转 v3/shadcn） */
.cmodal{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;background:rgba(10,10,9,.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:20px;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .22s ease,visibility 0s linear .22s}
.cmodal.open{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .22s ease}
.cm-card{position:relative;width:100%;max-width:400px;background:var(--background);border:1px solid var(--border);border-radius:18px;box-shadow:0 24px 60px -20px rgba(0,0,0,.35);padding:34px 30px 28px;max-height:88vh;overflow-y:auto;transform:translateY(14px) scale(.97);transition:transform .26s cubic-bezier(.22,1,.36,1)}
.cmodal.open .cm-card{transform:none}
.cm-card,.cm-tabs button,.cm-submit,.cm-close{-webkit-tap-highlight-color:transparent}
.cm-tabs button{-webkit-user-select:none;user-select:none}
.cm-close{position:absolute;top:14px;right:14px;width:34px;height:34px;border:none;background:var(--muted);border-radius:10px;font-size:18px;color:var(--muted-foreground);cursor:pointer;line-height:1}
.cm-tabs{display:flex;gap:6px;background:var(--muted);border-radius:10px;padding:4px;margin-bottom:16px}
.cm-tabs button{flex:1;border:none;background:none;font-size:14px;font-weight:500;color:var(--muted-foreground);padding:9px 0;border-radius:8px;cursor:pointer;transition:.2s}
.cm-tabs button.on{background:var(--background);color:#b0532f;box-shadow:0 1px 4px rgba(0,0,0,.08)}
#cmForm{display:flex;flex-direction:column;gap:13px}
#cmForm label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;color:var(--foreground)}
#cmForm input{font-size:15px;color:var(--foreground);background:var(--muted);border:1px solid var(--border);border-radius:10px;padding:11px 13px;outline:none;transition:.2s;width:100%}
#cmForm input:focus{border-color:#c96442;box-shadow:0 0 0 3px rgba(201,100,66,.14)}
.pwd-wrap{position:relative;display:block}
.pwd-wrap input{padding-right:44px}
.pwd-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:none;background:transparent;font-size:16px;line-height:1;cursor:pointer;color:var(--muted-foreground);opacity:.75;padding:0}
.pwd-eye:hover{opacity:1}
.cm-submit{margin-top:4px;border:none;cursor:pointer;font-size:15px;font-weight:600;color:#fff;background:#c96442;border-radius:10px;padding:12px 0;transition:.2s;box-shadow:0 6px 16px rgba(201,100,66,.35)}
.cm-submit:hover{background:#b0532f}
.cm-submit:disabled{opacity:.6;cursor:wait}
.cm-direct{display:block;margin-top:10px;text-align:center;font-size:13px;color:#c96442;text-decoration:none}
.cm-direct:hover{text-decoration:underline}
.cm-toast{margin-top:14px;background:var(--muted);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:13px;color:#b0532f;text-align:center;opacity:0;transform:translateY(4px);transition:.25s;pointer-events:none}
.cm-toast.show{opacity:1;transform:none}
.cm-overline{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;letter-spacing:2px;color:#c96442;font-weight:600}
.cm-title{font-size:26px;font-weight:700;margin:8px 0 6px;color:var(--foreground)}
.cm-sub{font-size:14px;color:var(--muted-foreground);line-height:1.6;margin-bottom:14px}
.cm-beta{background:var(--muted);border:1px dashed var(--border);border-radius:10px;padding:9px 12px;font-size:12.5px;color:var(--muted-foreground);line-height:1.55;margin-bottom:16px}
@media (max-width:480px){.cm-card{padding:26px 20px 22px}}
/* 全局轻 toast（语言切换等占位提示） */
.rf-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,12px);z-index:120;background:var(--foreground);color:var(--background);font-size:13px;padding:10px 18px;border-radius:999px;opacity:0;pointer-events:none;transition:.25s;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.rf-toast.show{opacity:1;transform:translate(-50%,0)}
