:root[data-theme=candy]{--theme-color: #d946ef;--c-primary: #d946ef;--c-primary-2: #f472b6;--c-accent: #fb7185;--grad: linear-gradient(135deg, #d946ef 0%, #f472b6 55%, #fb7185 100%);--grad-soft: linear-gradient(135deg, rgba(217, 70, 239, .12), rgba(244, 114, 182, .12));--bg: #fdf4fe;--bg-soft: #fae8fc;--card: #ffffff;--card-hover: #fdf0fc;--header-bg: rgba(253, 244, 254, .85);--text: #3b2547;--text-muted: #8d6b9e;--text-faint: #bda0cd;--border: #f2d9f5;--chip-bg: #f9defa;--chip-text: #c026d3;--shadow: 0 6px 24px rgba(217, 70, 239, .12);--shadow-lg: 0 12px 40px rgba(217, 70, 239, .18);--radius: 20px}:root[data-theme=forest]{--theme-color: #16a34a;--c-primary: #16a34a;--c-primary-2: #4ade80;--c-accent: #0d9488;--grad: linear-gradient(135deg, #16a34a 0%, #0d9488 100%);--grad-soft: linear-gradient(135deg, rgba(22, 163, 74, .12), rgba(13, 148, 136, .1));--bg: #f4faf5;--bg-soft: #e7f4ea;--card: #ffffff;--card-hover: #f1faf3;--header-bg: rgba(244, 250, 245, .85);--text: #24382c;--text-muted: #64806f;--text-faint: #97b0a0;--border: #d7e9dc;--chip-bg: #ddf0e1;--chip-text: #15803d;--shadow: 0 6px 24px rgba(22, 163, 74, .1);--shadow-lg: 0 12px 40px rgba(22, 163, 74, .14);--radius: 16px}:root[data-theme=gold]{--theme-color: #d4a94e;--c-primary: #d4a94e;--c-primary-2: #e8c87e;--c-accent: #b8862f;--grad: linear-gradient(135deg, #d4a94e 0%, #b8862f 100%);--grad-soft: linear-gradient(135deg, rgba(212, 169, 78, .14), rgba(184, 134, 47, .1));--bg: #14120d;--bg-soft: #1b1810;--card: #201c13;--card-hover: #2a2418;--header-bg: rgba(20, 18, 13, .85);--text: #f3ead6;--text-muted: #b3a480;--text-faint: #7d7154;--border: #352e1e;--chip-bg: rgba(212, 169, 78, .16);--chip-text: #e8c87e;--shadow: 0 6px 24px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 40px rgba(212, 169, 78, .18);--radius: 12px}:root[data-theme=midnight]{--theme-color: #8b5cf6;--c-primary: #8b5cf6;--c-primary-2: #6366f1;--c-accent: #ec4899;--grad: linear-gradient(135deg, #8b5cf6 0%, #ec4899 100%);--grad-soft: linear-gradient(135deg, rgba(139, 92, 246, .18), rgba(236, 72, 153, .14));--bg: #0f0e1a;--bg-soft: #16142a;--card: #1c1a33;--card-hover: #241f42;--header-bg: rgba(15, 14, 26, .82);--text: #eae7f7;--text-muted: #a29cc4;--text-faint: #6f6896;--border: #2d2a4d;--chip-bg: rgba(139, 92, 246, .18);--chip-text: #c4b5fd;--shadow: 0 6px 24px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 40px rgba(139, 92, 246, .25);--radius: 16px}:root[data-theme=ocean]{--theme-color: #0ea5e9;--c-primary: #0ea5e9;--c-primary-2: #22d3ee;--c-accent: #6366f1;--grad: linear-gradient(135deg, #0ea5e9 0%, #22d3ee 100%);--grad-soft: linear-gradient(135deg, rgba(14, 165, 233, .12), rgba(34, 211, 238, .12));--bg: #f2f9fc;--bg-soft: #e3f2f9;--card: #ffffff;--card-hover: #f0faff;--header-bg: rgba(242, 249, 252, .85);--text: #1e3a4a;--text-muted: #5f7f92;--text-faint: #93b0bf;--border: #d4e9f2;--chip-bg: #d9f0fa;--chip-text: #0284c7;--shadow: 0 6px 24px rgba(14, 165, 233, .1);--shadow-lg: 0 12px 40px rgba(14, 165, 233, .16);--radius: 16px}:root[data-theme=rose]{--theme-color: #e8567f;--c-primary: #e8567f;--c-primary-2: #f78fb3;--c-accent: #ff9e7d;--grad: linear-gradient(135deg, #e8567f 0%, #ff9e7d 100%);--grad-soft: linear-gradient(135deg, rgba(232, 86, 127, .12), rgba(255, 158, 125, .12));--bg: #fdf6f8;--bg-soft: #fbeef2;--card: #ffffff;--card-hover: #fff5f8;--header-bg: rgba(253, 246, 248, .85);--text: #3d2b33;--text-muted: #8a6b77;--text-faint: #b99aa6;--border: #f3dce4;--chip-bg: #fbe3ea;--chip-text: #c2456e;--shadow: 0 6px 24px rgba(232, 86, 127, .1);--shadow-lg: 0 12px 40px rgba(232, 86, 127, .16);--radius: 16px}.site-main{min-height:calc(100vh - 56px)}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;transition:background .3s ease,color .3s ease}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font-family:inherit;cursor:pointer;border:none;background:none}input,select,textarea{font-family:inherit;font-size:16px}.container{width:100%;max-width:1080px;margin:0 auto;padding:0 16px}.site-header{position:sticky;top:0;z-index:100;background:var(--header-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.site-header .inner{display:flex;align-items:center;justify-content:space-between;height:56px;gap:12px}.brand{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:800;letter-spacing:.5px;flex-shrink:0}.brand .logo{width:30px;height:30px;border-radius:9px;background:var(--grad);display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;font-weight:900}.brand .en{font-size:12px;font-weight:500;color:var(--text-muted);margin-left:2px}.nav-links{display:none;gap:4px}.nav-links a{padding:8px 14px;border-radius:999px;font-size:14px;color:var(--text-muted);transition:all .2s}.nav-links a:hover{color:var(--c-primary);background:var(--chip-bg)}.nav-links a.active{color:var(--c-primary);background:var(--chip-bg);font-weight:600}@media(min-width:768px){.nav-links{display:flex}.site-header .inner{height:64px}}.hero{position:relative;overflow:hidden;padding:36px 0 28px;background:var(--grad-soft)}.hero:before{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:var(--grad);opacity:.14;top:-120px;right:-80px;filter:blur(10px)}.hero h1{font-size:26px;font-weight:800;line-height:1.3;position:relative}.hero h1 .grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.hero p{margin-top:10px;color:var(--text-muted);font-size:14px;position:relative}@media(min-width:768px){.hero{padding:56px 0 44px}.hero h1{font-size:38px}.hero p{font-size:16px;max-width:560px}}.chips{display:flex;gap:8px;overflow-x:auto;padding:14px 0 4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex-shrink:0;padding:7px 16px;border-radius:999px;background:var(--card);border:1px solid var(--border);font-size:13px;color:var(--text-muted);transition:all .2s}.chip.active{background:var(--grad);color:#fff;border-color:transparent;font-weight:600;box-shadow:var(--shadow)}.section{padding:20px 0}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.section-head h2{font-size:18px;font-weight:800;display:flex;align-items:center;gap:8px}.section-head h2:before{content:"";width:4px;height:18px;border-radius:2px;background:var(--grad)}.section-head a{font-size:13px;color:var(--text-muted)}.section-head a:hover{color:var(--c-primary)}@media(min-width:768px){.section{padding:28px 0}.section-head h2{font-size:20px}}.article-grid{display:grid;grid-template-columns:1fr;gap:14px}@media(min-width:600px){.article-grid{grid-template-columns:repeat(2,1fr);gap:16px}}@media(min-width:960px){.article-grid{grid-template-columns:repeat(3,1fr)}}.article-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform .25s ease,box-shadow .25s ease;display:flex;flex-direction:column}.article-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.article-card .cover{aspect-ratio:16 / 9;background:var(--grad);position:relative;overflow:hidden}.article-card .cover img{width:100%;height:100%;object-fit:cover}.article-card .cover .cat-tag{position:absolute;top:10px;left:10px;padding:3px 10px;border-radius:999px;background:#00000073;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-size:11px;font-weight:600}.article-card .hot-badge{position:absolute;top:10px;right:10px;padding:3px 10px;border-radius:999px;background:var(--grad);color:#fff;font-size:11px;font-weight:700}.article-card .body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1}.article-card h3{font-size:15px;font-weight:700;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.article-card h3:hover{color:var(--c-primary)}.article-card .summary{font-size:13px;color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}.article-card .meta{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-faint)}.article-card .meta .views{display:flex;align-items:center;gap:4px}.link-list{display:grid;grid-template-columns:1fr;gap:10px}@media(min-width:768px){.link-list{grid-template-columns:repeat(2,1fr)}}.link-card{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:all .2s;position:relative;overflow:hidden}.link-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--grad);opacity:0;transition:opacity .2s}.link-card:hover{transform:translate(4px);box-shadow:var(--shadow)}.link-card:hover:before{opacity:1}.link-card .rank{width:30px;height:30px;border-radius:9px;background:var(--chip-bg);color:var(--chip-text);font-weight:800;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.link-card .rank.top{background:var(--grad);color:#fff}.link-card .info{flex:1;min-width:0}.link-card .info .t{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.link-card .info .d{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.article-page{padding:20px 0 40px}.article-page .back{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);margin-bottom:16px;padding:8px 14px;border-radius:999px;background:var(--card);border:1px solid var(--border);transition:all .2s}.article-page .back:hover{color:var(--c-primary);border-color:var(--c-primary)}.article-hero{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px 18px;margin-bottom:16px}.article-hero .cat{display:inline-block;padding:4px 12px;border-radius:999px;background:var(--chip-bg);color:var(--chip-text);font-size:12px;font-weight:600;margin-bottom:12px}.article-hero h1{font-size:22px;font-weight:800;line-height:1.4}.article-hero .meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px;font-size:12px;color:var(--text-faint)}.article-hero .meta span{display:inline-flex;align-items:center;gap:4px}.article-cover-wrap{aspect-ratio:16 / 9;background:var(--grad);border-radius:var(--radius);margin-bottom:16px;overflow:hidden}.article-cover{display:block;width:100%;height:100%;object-fit:cover}.article-content{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px 18px 28px;font-size:15px;line-height:1.85;word-break:break-word}.article-content h2{font-size:18px;font-weight:800;margin:26px 0 12px;padding-left:12px;border-left:4px solid var(--c-primary);line-height:1.4}.article-content h2:first-child{margin-top:0}.article-content p{margin-bottom:14px;color:var(--text)}.article-content ul,.article-content ol{margin:0 0 14px 20px}.article-content li{margin-bottom:6px}.article-content strong{color:var(--c-primary);font-weight:700}.article-content a{color:var(--c-primary);text-decoration:underline}.article-content img{border-radius:12px;margin:14px 0}.article-content blockquote{margin:14px 0;padding:12px 16px;background:var(--grad-soft);border-radius:12px;color:var(--text-muted)}.article-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;padding-top:16px;border-top:1px dashed var(--border)}.article-tags .tag{padding:5px 12px;border-radius:999px;background:var(--chip-bg);color:var(--chip-text);font-size:12px}@media(min-width:768px){.article-page{padding:28px 0 60px}.article-hero{padding:28px}.article-hero h1{font-size:30px}.article-content{padding:32px 36px 40px;font-size:16px}.article-content h2{font-size:20px}}.pagination{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:24px;flex-wrap:wrap}.pagination button{min-width:38px;height:38px;padding:0 12px;border-radius:12px;background:var(--card);border:1px solid var(--border);color:var(--text-muted);font-size:14px;transition:all .2s}.pagination button:hover:not(:disabled){border-color:var(--c-primary);color:var(--c-primary)}.pagination button.active{background:var(--grad);color:#fff;border-color:transparent;font-weight:700}.pagination button:disabled{opacity:.4;cursor:not-allowed}.empty{text-align:center;padding:60px 20px;color:var(--text-faint);font-size:14px}.empty .icon{font-size:40px;margin-bottom:12px}.loading{display:flex;justify-content:center;padding:50px 0}.spinner{width:30px;height:30px;border:3px solid var(--border);border-top-color:var(--c-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.site-footer{margin-top:40px;border-top:1px solid var(--border);background:var(--bg-soft);padding:28px 0 32px}.site-footer .inner{display:flex;flex-direction:column;gap:12px;align-items:center;text-align:center}.site-footer .f-brand{font-weight:800;font-size:16px}.site-footer .f-links{display:flex;gap:16px;font-size:13px;color:var(--text-muted);flex-wrap:wrap;justify-content:center}.site-footer .f-links a:hover{color:var(--c-primary)}.site-footer .copy{font-size:12px;color:var(--text-faint)}@media(min-width:768px){.site-footer .inner{flex-direction:row;justify-content:space-between;text-align:left}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border-radius:999px;font-size:14px;font-weight:600;transition:all .2s}.btn-primary{background:var(--grad);color:#fff;box-shadow:var(--shadow)}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn-ghost{background:var(--card);border:1px solid var(--border);color:var(--text-muted)}.btn-ghost:hover{border-color:var(--c-primary);color:var(--c-primary)}.skeleton{background:linear-gradient(90deg,var(--bg-soft) 25%,var(--card) 50%,var(--bg-soft) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius)}@keyframes shimmer{to{background-position:-200% 0}}.skeleton-card{height:220px}.link-card .go{font-size:16px;color:var(--text-faint);flex-shrink:0}.admin-app{display:flex;min-height:100vh;background:var(--bg)}.admin-sidebar{width:220px;flex-shrink:0;background:#17151f;color:#cfcbe0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.admin-sidebar .side-brand{display:flex;align-items:center;gap:10px;padding:20px 18px;font-size:16px;font-weight:800;color:#fff;border-bottom:1px solid rgba(255,255,255,.06)}.admin-sidebar .side-brand .logo{width:32px;height:32px;border-radius:9px;background:var(--grad);display:flex;align-items:center;justify-content:center;font-size:15px;color:#fff}.admin-nav{flex:1;padding:14px 10px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.admin-nav a{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;font-size:14px;color:#a29cc0;transition:all .15s}.admin-nav a:hover{background:#ffffff0f;color:#fff}.admin-nav a.active{background:var(--grad);color:#fff;font-weight:600;box-shadow:0 4px 14px #00000040}.admin-nav .nav-icon{font-size:16px;width:20px;text-align:center}.admin-sidebar .side-foot{padding:14px 18px;border-top:1px solid rgba(255,255,255,.06);font-size:12px;color:#6f6896}.admin-sidebar .side-foot a{color:#a29cc0}.admin-sidebar .side-foot a:hover{color:#fff}@media(max-width:1024px){.admin-sidebar{width:180px}.admin-sidebar .side-brand span.txt{display:none}}.admin-main{flex:1;min-width:0;display:flex;flex-direction:column}.admin-topbar{height:60px;background:var(--card);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:50}.admin-topbar .page-title{font-size:17px;font-weight:800}.admin-topbar .user{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-muted)}.admin-topbar .avatar{width:32px;height:32px;border-radius:999px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.admin-topbar .user-wrap{position:relative}.admin-topbar .user{cursor:pointer;padding:6px 10px;border-radius:10px;transition:background .15s}.admin-topbar .user:hover{background:var(--bg-soft)}.admin-topbar .user .caret{font-size:10px;color:var(--text-faint)}.user-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:150px;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;display:flex;flex-direction:column;gap:2px;z-index:100}.user-menu button{display:flex;align-items:center;gap:8px;padding:9px 12px;border:none;background:none;border-radius:8px;font-size:13px;color:var(--text);cursor:pointer;text-align:left}.user-menu button:hover{background:var(--bg-soft)}.user-menu button.danger{color:var(--c-primary)}.user-menu button.danger:hover{background:var(--chip-bg)}.admin-content{padding:24px;flex:1}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}@media(max-width:1200px){.stat-grid{grid-template-columns:repeat(2,1fr)}}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px 20px;position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;right:-20px;top:-20px;width:90px;height:90px;border-radius:50%;background:var(--grad);opacity:.08}.stat-card .label{font-size:13px;color:var(--text-muted)}.stat-card .value{font-size:28px;font-weight:800;margin-top:6px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.panel{background:var(--card);border:1px solid var(--border);border-radius:14px;margin-bottom:20px;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border);flex-wrap:wrap}.panel-head h3{font-size:15px;font-weight:800}.panel-head .actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.panel-body{padding:20px}.panel-body.flush{padding:0}.table-wrap{overflow-x:auto}table.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{text-align:left;padding:12px 16px;background:var(--bg-soft);color:var(--text-muted);font-weight:600;white-space:nowrap}.data-table td{padding:12px 16px;border-top:1px solid var(--border);color:var(--text);vertical-align:middle}.data-table tr:hover td{background:var(--card-hover)}.data-table .cell-title{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.data-table .cell-sub{font-size:12px;color:var(--text-faint);margin-top:2px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700}.badge-green{background:#22c55e24;color:#16a34a}.badge-gray{background:var(--bg-soft);color:var(--text-muted)}.badge-primary{background:var(--chip-bg);color:var(--chip-text)}.badge-red{background:#ef44441f;color:#dc2626}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 20px}.form-grid .full{grid-column:1 / -1}@media(max-width:900px){.form-grid{grid-template-columns:1fr}}.field label{display:block;font-size:13px;font-weight:600;color:var(--text-muted);margin-bottom:6px}.field label .req{color:#dc2626;margin-left:2px}.field input,.field select,.field textarea{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);font-size:14px;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-primary) 15%,transparent)}.field textarea{resize:vertical;min-height:90px}.field .hint{font-size:12px;color:var(--text-faint);margin-top:4px}.rte{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--bg)}.rte .rte-toolbar{display:flex;gap:4px;padding:8px;background:var(--bg-soft);border-bottom:1px solid var(--border);flex-wrap:wrap}.rte .rte-toolbar button{min-width:32px;height:30px;padding:0 8px;border-radius:7px;font-size:13px;color:var(--text-muted);transition:all .15s}.rte .rte-toolbar button:hover{background:var(--chip-bg);color:var(--chip-text)}.rte .rte-body{min-height:320px;max-height:520px;overflow-y:auto;padding:14px 16px;font-size:14px;line-height:1.8;outline:none}.rte .rte-body:empty:before{content:attr(data-placeholder);color:var(--text-faint)}.rte .rte-body h2{font-size:17px;margin:14px 0 8px}.rte .rte-body p{margin-bottom:8px}.rte .rte-body ul{margin-left:20px}.btn-sm{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:9px;font-size:13px;font-weight:600;transition:all .15s}.btn-sm.primary{background:var(--grad);color:#fff}.btn-sm.primary:hover{opacity:.9}.btn-sm.ghost{background:var(--card);border:1px solid var(--border);color:var(--text-muted)}.btn-sm.ghost:hover{border-color:var(--c-primary);color:var(--c-primary)}.btn-sm.danger{background:#ef44441a;color:#dc2626}.btn-sm.danger:hover{background:#ef44442e}.stat-card .sub{font-size:12px;color:var(--text-faint);margin-top:4px}.trend-chart{display:flex;align-items:flex-end;gap:6px;height:200px;padding:10px 4px 0}.trend-chart .bar-group{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}.trend-chart .bars{display:flex;align-items:flex-end;gap:2px;height:100%;width:100%;justify-content:center}.trend-chart .bar{width:10px;border-radius:4px 4px 0 0;min-height:2px;transition:height .4s ease;position:relative}.trend-chart .bar.pc{background:var(--c-primary);opacity:.9}.trend-chart .bar.mobile{background:var(--c-accent);opacity:.85}.trend-chart .bar.tablet{background:var(--c-primary-2);opacity:.7}.trend-chart .bar:hover:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#17151f;color:#fff;font-size:11px;padding:4px 8px;border-radius:6px;white-space:nowrap;z-index:10}.trend-chart .bar-label{font-size:10px;color:var(--text-faint);white-space:nowrap}.chart-legend{display:flex;gap:16px;font-size:12px;color:var(--text-muted)}.chart-legend .dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px}.type-bars{display:flex;flex-direction:column;gap:14px}.type-bar .tb-head{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}.type-bar .tb-head .num{color:var(--text-muted)}.type-bar .track{height:10px;border-radius:999px;background:var(--bg-soft);overflow:hidden}.type-bar .fill{height:100%;border-radius:999px;background:var(--grad);transition:width .5s ease}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0e1a80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:300;padding:20px}.modal{background:var(--card);border:1px solid var(--border);border-radius:16px;width:100%;max-width:480px;max-height:86vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:modal-in .2s ease}@keyframes modal-in{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}.modal .modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--border)}.modal .modal-head h3{font-size:15px;font-weight:800}.modal .modal-head .close{width:30px;height:30px;border-radius:8px;color:var(--text-muted);font-size:18px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;cursor:pointer}.toast-wrap{position:fixed;top:18px;left:50%;transform:translate(-50%);z-index:500;display:flex;flex-direction:column;gap:8px;align-items:center}.toast{padding:10px 20px;border-radius:999px;font-size:13px;font-weight:600;color:#fff;box-shadow:var(--shadow-lg);animation:toast-in .25s ease}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}.toast.ok{background:#16a34a}.toast.err{background:#dc2626}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:20px;position:relative;overflow:hidden}.login-page:before{content:"";position:absolute;width:500px;height:500px;border-radius:50%;background:var(--grad);opacity:.12;top:-180px;left:-140px}.login-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--border);border-radius:20px;padding:36px 32px;box-shadow:var(--shadow-lg);position:relative}.login-card .l-brand{display:flex;align-items:center;gap:10px;margin-bottom:24px;font-size:20px;font-weight:800}.login-card .l-brand .logo{width:38px;height:38px;border-radius:11px;background:var(--grad);display:flex;align-items:center;justify-content:center;color:#fff;font-size:17px}.login-card .l-sub{font-size:13px;color:var(--text-muted);margin-bottom:20px}.login-card .field{margin-bottom:14px}.login-card .btn-login{width:100%;padding:12px;border-radius:12px;background:var(--grad);color:#fff;font-size:15px;font-weight:700;margin-top:8px;transition:opacity .15s}.login-card .btn-login:hover{opacity:.9}.login-card .btn-login:disabled{opacity:.6;cursor:not-allowed}.admin-pager{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-top:1px solid var(--border);font-size:13px;color:var(--text-muted)}.admin-pager .pager-btns{display:flex;gap:6px}.admin-pager button{min-width:32px;height:32px;border-radius:8px;border:1px solid var(--border);background:var(--card);color:var(--text-muted);font-size:13px}.admin-pager button:hover:not(:disabled){border-color:var(--c-primary);color:var(--c-primary)}.admin-pager button.active{background:var(--grad);color:#fff;border-color:transparent}.admin-pager button:disabled{opacity:.4}.admin-mobile-tip{display:none}@media(max-width:767px){.admin-mobile-tip{display:flex;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:999;align-items:center;justify-content:center;text-align:center;padding:30px;font-size:14px;color:var(--text-muted)}.admin-mobile-tip .icon{font-size:44px;margin-bottom:14px}}.modal .modal-head .close:hover{background:var(--bg-soft)}.modal .modal-body{padding:20px}.modal .modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--border)}.upload-btn{display:inline-flex;align-items:center;gap:4px;cursor:pointer}.upload-btn:has(input:disabled){opacity:.6;cursor:wait}.attach-filters{display:flex;gap:8px;margin-bottom:14px}.filter-tab{padding:5px 16px;font-size:13px;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--text-muted);cursor:pointer;transition:all .15s}.filter-tab:hover{border-color:var(--c-primary);color:var(--c-primary)}.filter-tab.active{background:var(--c-primary);border-color:var(--c-primary);color:#fff}.attach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.attach-card{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--card);transition:box-shadow .2s,transform .2s}.attach-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.attach-card .thumb{position:relative;height:140px;background:var(--bg-soft);cursor:zoom-in;overflow:hidden;display:flex;align-items:center;justify-content:center}.attach-card .thumb img{width:100%;height:100%;object-fit:cover}.attach-card .thumb img.broken{opacity:.3}.attach-card .thumb video{width:100%;height:100%;object-fit:cover;background:#000}.attach-card .thumb .play{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:26px;color:#fff;background:#00000040;text-shadow:0 1px 4px rgba(0,0,0,.6);pointer-events:none}.attach-card:hover .thumb .play{background:#0006}.attach-card .thumb .duration{position:absolute;right:8px;bottom:8px;padding:1px 8px;font-size:11px;font-weight:600;color:#fff;background:#0009;border-radius:999px;pointer-events:none}.attach-card .info{padding:10px 12px}.attach-card .name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attach-card .meta{font-size:12px;color:var(--text-muted);margin:2px 0 8px}.type-badge{display:inline-block;flex:none;margin-right:6px;padding:0 6px;font-size:11px;font-weight:600;border-radius:6px;vertical-align:1px}.type-badge.image{background:var(--chip-bg);color:var(--chip-text)}.type-badge.video{background:#3b82f624;color:#2563eb}.attach-card .ops{display:flex;gap:6px}.attach-card .op{flex:1;font-size:12px;padding:4px 0;border-radius:8px;background:var(--chip-bg);color:var(--chip-text);transition:all .15s}.attach-card .op:hover{background:var(--c-primary);color:#fff}.attach-card .op.danger:hover{background:#e5484d}.attach-empty{text-align:center;padding:48px 0;color:var(--text-faint)}.attach-empty .icon{font-size:40px;margin-bottom:8px}.preview-modal{max-width:720px;width:calc(100% - 32px)}.preview-img-wrap{background:var(--bg-soft);border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:center;max-height:56vh}.preview-img-wrap img{max-width:100%;max-height:56vh;object-fit:contain}.preview-video-wrap{background:#000;border-radius:10px;overflow:hidden}.preview-video-wrap video{display:block;width:100%;max-height:60vh}.preview-meta{margin-top:14px;font-size:13px;color:var(--text-muted);display:grid;gap:6px}.preview-meta .url-row{display:flex;align-items:center;gap:8px;margin-top:4px}.preview-meta .url{flex:1;min-width:0;font-size:12px;background:var(--bg-soft);border:1px solid var(--border);border-radius:8px;padding:6px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-form{display:grid;gap:16px;max-width:560px}.settings-preview{margin-top:24px;max-width:560px;border:1px dashed var(--border);border-radius:12px;padding:14px 16px;background:var(--bg-soft)}.settings-preview .preview-title{font-size:12px;color:var(--text-faint);margin-bottom:10px}.settings-preview .preview-header{display:flex;align-items:center;gap:8px;font-weight:800;font-size:16px}.settings-preview .preview-header .p-logo{width:28px;height:28px;border-radius:8px;background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:900}.settings-preview .preview-header .p-en{font-size:12px;font-weight:500;color:var(--text-muted)}.settings-preview .preview-footer{margin-top:12px;padding-top:10px;border-top:1px solid var(--border);font-size:12px;color:var(--text-faint)}
