/* SnianCloud: cosmetic additions only; original forms and handlers are retained. */
:root {--sn-bg:#f8f8fc;--sn-card:#fff;--sn-ink:#292536;--sn-muted:#8e879d;--sn-line:#ebe7f2;--sn-purple:#7660db;--sn-soft:#eee9fa}
html.dark{--sn-bg:#17151f;--sn-card:#24202f;--sn-ink:#eee9f8;--sn-muted:#afa5c1;--sn-line:#393142;--sn-purple:#b4a0ff;--sn-soft:#393049}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;background:var(--sn-bg);color:var(--sn-ink)}
[hidden]{display:none!important}body.snian-home{overflow:auto!important;height:auto!important}#snian-landing{display:block;min-height:100vh}#app:empty{padding:30px}
#app .n-layout,#app .n-layout-scroll-container,#app article>section,#app section.cus-scroll-y{background:var(--sn-bg)!important;background-image:none!important}
#app .n-layout-sider{background:var(--sn-card)!important;border-right:1px solid var(--sn-line)!important}
#app .n-layout-sider .n-layout-scroll-container{background:var(--sn-card)!important}
#app article>header{background:var(--sn-card)!important;border-bottom:1px solid var(--sn-line);padding:0 25px!important;min-height:72px;gap:12px}
#app section.cus-scroll-y{padding:28px!important}
#app .n-card{border:1px solid var(--sn-line)!important;border-radius:20px!important;background:var(--sn-card)!important;box-shadow:0 8px 32px #30204d04;color:var(--sn-ink)!important}
/* Page cards must retain their content height in the original column flex layout. */
#app section.cus-scroll-y>.n-card{flex-shrink:0}
#app .n-card>.n-card-header{padding:24px 26px 15px!important}
#app .n-card>.n-card-header .n-card-header__main{font-size:16px!important;font-weight:650;color:var(--sn-ink)}
#app .n-card>.n-card__content{padding:22px 26px!important}
#app .n-menu{padding:14px 10px!important}
#app .n-menu-item{margin:6px 0!important}
#app .n-menu-item-content{border-radius:12px!important;min-height:45px}
#app .n-menu-item-content::before{border-radius:12px!important;left:4px!important;right:4px!important}
#app .n-menu-item-content--selected::before{background:var(--sn-soft)!important}
#app .n-menu-item-content--selected .n-menu-item-content-header,#app .n-menu-item-content--selected .n-icon{color:var(--sn-purple)!important}
#app .n-menu-item-group-title{color:var(--sn-muted)!important;font-size:11px!important;letter-spacing:.5px;padding-top:15px!important}
#app .n-button{border-radius:11px!important}
#app .n-button--primary-type{--n-color:#7660db!important;--n-color-hover:#8872e5!important;--n-color-pressed:#6550c9!important;--n-border:1px solid #7660db!important;--n-border-hover:1px solid #8872e5!important;--n-border-pressed:1px solid #6550c9!important}
#app .n-input,#app .n-base-selection{border-radius:11px!important;--n-border-focus:1px solid #9e88e7!important;--n-box-shadow-focus:0 0 0 3px #a38ce61a!important}
#app .n-input .n-input__border,#app .n-input .n-input__state-border{border-radius:11px!important}
#app .n-data-table{--n-th-color:var(--sn-bg)!important;--n-td-color:var(--sn-card)!important;--n-border-color:var(--sn-line)!important;border-radius:14px;overflow:hidden}
#app .n-list{background:var(--sn-card)!important}
#app .n-list-item{border-color:var(--sn-line)!important}
#app .text-gray-500{color:var(--sn-muted)!important}
#app .n-layout-sider a{color:var(--sn-purple)}
#app .snian-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:24px;align-content:start;max-width:1350px;margin:0 auto}
#app .snian-dashboard-grid>*{grid-column:1/-1;min-width:0}
#app .snian-dashboard-grid>.snian-subscription{grid-column:1;margin-top:0!important;background:linear-gradient(125deg,var(--sn-soft),var(--sn-card))!important;align-self:start;min-height:300px}
#app .snian-dashboard-grid>.snian-shortcuts{grid-column:2;margin-top:0!important}
#app .snian-shortcuts>.n-card__content{padding:0!important}
#app .snian-shortcuts .n-list-item{padding:19px 25px!important}
#app .snian-shortcuts .n-list-item .text-base{font-size:14px!important;font-weight:600}
#app .snian-shortcuts .n-list-item .text-sm{font-size:11px!important;margin-top:5px}
#app .snian-shortcuts svg{color:var(--sn-purple);font-size:23px}
#app .snian-subscription .text-block{font-size:25px!important;margin-bottom:20px!important;padding-top:0!important}
#app .snian-subscription .n-progress{margin:25px 0 18px}
body[data-snian-page="login"] #app img,body[data-snian-page="register"] #app img,body[data-snian-page="forgetpassword"] #app img{max-height:70px;width:auto;margin:0 auto 20px}
.snian-welcome{padding:8px 0 4px}.snian-welcome h1{font-size:27px;font-weight:750;letter-spacing:-1px;margin:0 0 10px;color:var(--sn-ink)}.snian-welcome p{font-size:12px;color:var(--sn-muted);margin:0}.snian-home-link{white-space:nowrap;color:var(--sn-purple);font-size:11px;border:1px solid var(--sn-line);border-radius:9px;padding:7px 10px;margin-left:10px}
body[data-snian-page="login"] #app,body[data-snian-page="register"] #app,body[data-snian-page="forgetpassword"] #app{background:radial-gradient(ellipse at 20% 25%,#e7dbf8,transparent 55%),var(--sn-bg)}
body[data-snian-page="login"] #app .n-card,body[data-snian-page="register"] #app .n-card,body[data-snian-page="forgetpassword"] #app .n-card{box-shadow:0 20px 80px #5c3d8215}
a:focus-visible,button:focus-visible{outline:3px solid #b7a7ee;outline-offset:3px}
@media(max-width:1100px){#app .snian-dashboard-grid{grid-template-columns:1fr}#app .snian-dashboard-grid>.snian-subscription,#app .snian-dashboard-grid>.snian-shortcuts{grid-column:1}}
@media(max-width:600px){#app section.cus-scroll-y{padding:16px!important}#app article>header{padding:0 12px!important;min-height:62px}.snian-home-link{font-size:10px;margin-left:0;padding:6px}#app .n-card>.n-card-header{padding:21px 19px 12px!important}#app .n-card>.n-card__content{padding:18px 19px!important}.snian-welcome h1{font-size:23px}#app .snian-dashboard-grid{gap:18px}#app .snian-subscription{min-height:250px!important}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Wallpaper and readable frosted panels, including the card-height fix. */
body:not(.snian-home){background:#c899df url('./images/snian-wallpaper.png') center center/cover fixed no-repeat}
#app .n-layout,#app .n-layout-scroll-container,#app article>section,#app section.cus-scroll-y{background:transparent!important}
#app .n-layout-sider,#app article>header{background:rgba(255,255,255,.80)!important;backdrop-filter:blur(16px)}
#app .n-layout-sider .n-layout-scroll-container{background:transparent!important}
#app .n-card,#app .snian-dashboard-grid>.snian-subscription,.snian-telegram{background:rgba(255,255,255,.83)!important;backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.65)!important;box-shadow:0 8px 32px #51356f0a}
#app .n-card{overflow:visible}
#app section.cus-scroll-y>.n-card{flex-shrink:0}
#app .n-list{background:transparent!important}
.snian-welcome{background:rgba(255,255,255,.84);padding:22px 26px;border-radius:20px;backdrop-filter:blur(14px)}
.snian-welcome p{color:#62586f}
#app .snian-dashboard-grid>.snian-telegram{grid-column:1;max-width:440px;padding:26px;border-radius:20px;color:var(--sn-ink)}
.snian-telegram-icon{display:inline-grid;place-items:center;width:38px;height:38px;background:#7660db;color:white;border-radius:12px;font-size:23px}
.snian-telegram h2{font-size:19px;font-weight:700;margin:16px 0 8px}
.snian-telegram p{font-size:14px;line-height:1.8;color:#62586f;margin:0 0 22px}
.snian-telegram a{display:inline-block;background:#7056cd;color:white;text-decoration:none;padding:11px 20px;border-radius:11px;font-size:14px;font-weight:600}
.snian-telegram a:hover{background:#6047b9}
html.dark #app .n-layout-sider,html.dark #app article>header,html.dark #app .n-card,html.dark #app .snian-dashboard-grid>.snian-subscription,html.dark .snian-telegram,html.dark .snian-welcome{background:rgba(30,25,43,.87)!important;border-color:#554465!important}
html.dark .snian-telegram p,html.dark .snian-welcome p{color:#d5c9e4}
body[data-snian-page="login"] #app,body[data-snian-page="register"] #app,body[data-snian-page="forgetpassword"] #app{background:transparent}
@media(max-width:600px){#app .snian-dashboard-grid>.snian-telegram{max-width:none;padding:22px}.snian-welcome{padding:20px}.snian-telegram a{min-height:44px;box-sizing:border-box}}

/* Keep user-requested white glass surfaces even when the app selects dark mode. */
html.dark{--sn-bg:#f8f8fc;--sn-card:#fff;--sn-ink:#292536;--sn-muted:#62586f;--sn-line:#ebe7f2;--sn-purple:#7660db;--sn-soft:#eee9fa}
#app .snian-welcome{display:none!important}
#app .n-card,html.dark #app .n-card,#app .snian-dashboard-grid>.snian-subscription,html.dark #app .snian-dashboard-grid>.snian-subscription,#app .snian-telegram,html.dark #app .snian-telegram{background:rgba(255,255,255,.68)!important;border-color:rgba(255,255,255,.7)!important;backdrop-filter:blur(12px);color:#292536!important}
#app .n-layout-sider,#app article>header,html.dark #app .n-layout-sider,html.dark #app article>header{background:rgba(255,255,255,.72)!important;border-color:rgba(255,255,255,.6)!important;color:#292536!important}
html.dark #app .n-card__content,html.dark #app .n-list-item,html.dark #app .n-card-header__main,html.dark #app .n-menu-item-content-header,html.dark #app .n-menu-item-content .n-icon,html.dark #app article>header{color:#292536!important}
html.dark #app .n-card .text-gray-500,html.dark .snian-telegram p{color:#62586f!important}
#app .snian-dashboard-grid>.snian-subscription{grid-column:1;grid-row:1}
#app .snian-dashboard-grid>.snian-shortcuts{grid-column:2;grid-row:1 / span 2}
#app .snian-dashboard-grid>.snian-telegram{grid-column:1;grid-row:2;max-width:none;align-self:start}
@media(max-width:1100px){#app .snian-dashboard-grid>.snian-subscription{grid-column:1;grid-row:1}#app .snian-dashboard-grid>.snian-telegram{grid-column:1;grid-row:2}#app .snian-dashboard-grid>.snian-shortcuts{grid-column:1;grid-row:3}}
html.dark #app article>header *,html.dark #app .n-progress-text,html.dark #app .n-progress .n-progress-text__content{color:#292536!important}
html.dark #app .n-card .n-form-item-label,html.dark #app .n-card .n-statistic-value{color:#292536!important}

#app .snian-original-subscribe{display:none!important}
#app .snian-subscribe-button{display:inline-flex;align-items:center;justify-content:center;margin-top:24px;min-height:44px;padding:12px 22px;border:0;border-radius:12px;background:#7056cd;color:#fff;font:600 14px system-ui;cursor:pointer}
#app .snian-subscribe-button:hover{background:#6047b9}
#app .snian-subscription>.n-card__content{display:flex;flex-direction:column}
#app .snian-subscribe-button{order:10;align-self:flex-start}

.snian-snow{position:fixed;inset:0;overflow:hidden;pointer-events:none!important;z-index:20;contain:strict}
.snian-snow i{position:absolute;top:-12px;width:var(--size);height:var(--size);border-radius:50%;background:#fff;box-shadow:0 0 3px #a794bc55;pointer-events:none;animation:snian-snowfall linear infinite}
@keyframes snian-snowfall{from{transform:translate3d(0,-15px,0)}to{transform:translate3d(var(--drift),calc(100vh + 30px),0)}}
.snian-snow.is-paused i{animation-play-state:paused}
@media(max-width:600px){.snian-snow i:nth-child(n+19){display:none}}
@media(prefers-reduced-motion:reduce){.snian-snow{display:none}}
