.pano-viewer[data-v-5dd63dd1]{width:100%;height:100%;position:relative;background:#0d1526;cursor:grab;touch-action:none}.pano-viewer[data-v-5dd63dd1]:active{cursor:grabbing}:root,[data-theme=light]{--bg-grad: radial-gradient(circle at 15% 5%, rgba(59,130,246,.16), transparent 46%), radial-gradient(circle at 85% 15%, rgba(16,185,129,.12), transparent 40%), linear-gradient(165deg, #f6f9ff 0%, #eaf1fb 100%);--card-bg: rgba(255,255,255,.66);--card-bg-strong: rgba(255,255,255,.82);--card-border: rgba(255,255,255,.85);--nav-bg: rgba(255,255,255,.62);--nav-border: rgba(255,255,255,.8);--text: #0f1f38;--text-sub: #51617a;--text-weak: #8a97ad;--accent: #0071e3;--accent-2: #0ea5e9;--accent-grad: linear-gradient(135deg,#0071e3,#38bdf8);--accent-soft: rgba(0,113,227,.1);--shadow: 0 18px 48px rgba(15,40,80,.14);--shadow-sm: 0 8px 24px rgba(15,40,80,.08);--blur: blur(22px) saturate(180%);--radius: 22px;--radius-lg: 30px;--sw-active: rgba(0,113,227,.9);--glass-line: rgba(255,255,255,.5)}[data-theme=dark]{--bg-grad: radial-gradient(circle at 18% 6%, rgba(99,102,241,.26), transparent 46%), radial-gradient(circle at 82% 18%, rgba(56,189,248,.16), transparent 42%), radial-gradient(circle at 50% 98%, rgba(139,92,246,.18), transparent 46%), linear-gradient(165deg, #05070d 0%, #0b1220 100%);--card-bg: rgba(20,28,46,.55);--card-bg-strong: rgba(26,36,58,.72);--card-border: rgba(255,255,255,.14);--nav-bg: rgba(10,14,24,.55);--nav-border: rgba(255,255,255,.12);--text: #eaf0fb;--text-sub: #9db0c9;--text-weak: #6a7c99;--accent: #60a5fa;--accent-2: #818cf8;--accent-grad: linear-gradient(135deg,#60a5fa,#818cf8);--accent-soft: rgba(96,165,250,.14);--shadow: 0 22px 60px rgba(0,0,0,.55);--shadow-sm: 0 10px 30px rgba(0,0,0,.4);--sw-active: rgba(96,165,250,.95);--glass-line: rgba(255,255,255,.12)}[data-theme=blue]{--bg-grad: radial-gradient(circle at 18% 6%, rgba(37,99,235,.28), transparent 46%), radial-gradient(circle at 85% 18%, rgba(56,189,248,.2), transparent 42%), linear-gradient(165deg, #e6f1ff 0%, #d6e7ff 100%);--card-bg: rgba(255,255,255,.62);--card-bg-strong: rgba(255,255,255,.82);--card-border: rgba(255,255,255,.85);--nav-bg: rgba(239,246,255,.62);--nav-border: rgba(255,255,255,.85);--text: #0b2545;--text-sub: #3b5b8c;--text-weak: #6b87b0;--accent: #2563eb;--accent-2: #38bdf8;--accent-grad: linear-gradient(135deg,#2563eb,#38bdf8);--accent-soft: rgba(37,99,235,.12);--sw-active: rgba(37,99,235,.95)}[data-theme=green]{--bg-grad: radial-gradient(circle at 18% 6%, rgba(16,185,129,.26), transparent 46%), radial-gradient(circle at 85% 18%, rgba(132,204,22,.18), transparent 42%), linear-gradient(165deg, #e8faf0 0%, #d3f2e1 100%);--card-bg: rgba(255,255,255,.62);--card-bg-strong: rgba(255,255,255,.82);--card-border: rgba(255,255,255,.85);--nav-bg: rgba(240,253,245,.62);--nav-border: rgba(255,255,255,.85);--text: #07331f;--text-sub: #2f6b4d;--text-weak: #6b987f;--accent: #059669;--accent-2: #34d399;--accent-grad: linear-gradient(135deg,#059669,#34d399);--accent-soft: rgba(5,150,105,.12);--sw-active: rgba(5,150,105,.95)}[data-theme=red]{--bg-grad: radial-gradient(circle at 18% 6%, rgba(239,68,68,.24), transparent 46%), radial-gradient(circle at 85% 18%, rgba(249,115,22,.18), transparent 42%), linear-gradient(165deg, #fdf0f0 0%, #fbe2e4 100%);--card-bg: rgba(255,255,255,.62);--card-bg-strong: rgba(255,255,255,.82);--card-border: rgba(255,255,255,.85);--nav-bg: rgba(255,246,246,.62);--nav-border: rgba(255,255,255,.85);--text: #3a0f18;--text-sub: #7c3f4d;--text-weak: #ad7b85;--accent: #dc2626;--accent-2: #f97316;--accent-grad: linear-gradient(135deg,#dc2626,#f97316);--accent-soft: rgba(220,38,38,.12);--sw-active: rgba(220,38,38,.95)}html,body,#app{margin:0;padding:0;height:100%}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg-grad);background-attachment:fixed;color:var(--text);font-family:-apple-system,SF Pro Display,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}::selection{background:var(--accent-soft)}.wrap{max-width:1240px;margin:0 auto;padding:0 26px}.reveal{opacity:0;transform:translateY(36px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:none}.app-nav{position:fixed;top:0;left:0;right:0;z-index:120;background:var(--nav-bg);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-bottom:1px solid var(--nav-border);transition:box-shadow .3s,background .3s}.app-nav.scrolled{box-shadow:0 10px 34px #0000001a}.nav-inner{max-width:1240px;margin:0 auto;padding:14px 26px;display:flex;align-items:center;gap:26px}.nav-brand{display:flex;align-items:baseline;gap:10px;text-decoration:none}.nav-brand b{font-size:22px;font-weight:800;color:var(--text);letter-spacing:.5px}.nav-brand b span{color:var(--accent)}.nav-brand .brand-en{font-size:11px;font-weight:600;letter-spacing:2.5px;color:var(--text-weak);text-transform:uppercase}.nav-menu{display:flex;align-items:center;gap:4px}.nav-link{padding:8px 14px;border-radius:999px;color:var(--text);text-decoration:none;font-size:15px;font-weight:500;transition:background .2s,color .2s}.nav-link:hover{background:var(--accent-soft);color:var(--accent)}.nav-link.active{color:var(--accent);font-weight:700;background:var(--accent-soft)}.nav-right{margin-left:auto;display:flex;align-items:center;gap:14px}.nav-search{padding:9px 20px;border-radius:999px;border:1px solid var(--card-border);background:var(--card-bg-strong);color:var(--text-sub);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);font-size:13px;min-width:220px;transition:box-shadow .2s}.nav-search:hover{box-shadow:var(--shadow-sm)}.nav-btn{padding:9px 22px;border-radius:999px;border:none;cursor:pointer;background:var(--accent-grad);color:#fff;font-size:14px;font-weight:700;box-shadow:0 8px 22px #0000002e;transition:transform .2s,box-shadow .2s}.nav-btn:hover{transform:translateY(-2px);box-shadow:0 14px 32px #0000003d}.nav-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:10px 4px;margin-left:auto;z-index:2}.nav-toggle span{width:22px;height:2px;background:var(--text);border-radius:2px;transition:transform .3s,opacity .3s}.nav-toggle.on span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle.on span:nth-child(2){opacity:0}.nav-toggle.on span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hero{position:relative;height:100vh;min-height:680px;overflow:hidden}.hero-viewer{position:absolute;top:0;right:0;bottom:0;left:0}.hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at 50% 110%,rgba(0,0,0,.55) 0%,transparent 60%),radial-gradient(ellipse at 50% 0%,rgba(0,0,0,.35) 0%,transparent 55%)}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 24px}.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;border-radius:999px;background:#ffffff24;color:#ffffffeb;border:1px solid rgba(255,255,255,.28);font-size:13px;letter-spacing:3px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin-bottom:30px;text-transform:uppercase}.hero-badge i{width:6px;height:6px;border-radius:50%;background:#34d399;box-shadow:0 0 12px #34d399}.hero-title{margin:0;font-size:clamp(44px,7.5vw,92px);font-weight:800;line-height:1.08;letter-spacing:1px;color:#fff;background:linear-gradient(120deg,#fff 18%,#bfe0ff 55%,#9ecbff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 10px 44px rgba(0,80,200,.35))}.hero-title-en{margin:18px 0 0;font-size:13px;font-weight:600;letter-spacing:6px;color:#fff9;text-transform:uppercase}.hero-sub{margin:26px 0 40px;font-size:18px;color:#ffffffd9;max-width:680px;line-height:1.9;font-weight:300}.hero-sub b{font-weight:700;color:#fff}.hero-cta{display:flex;gap:18px;flex-wrap:wrap;justify-content:center}.cta-primary{padding:16px 46px;border-radius:999px;border:none;cursor:pointer;background:linear-gradient(135deg,#0071e3,#38bdf8);color:#fff;font-size:17px;font-weight:700;letter-spacing:1px;box-shadow:0 14px 40px #0071e380;transition:transform .25s,box-shadow .25s}.cta-primary:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 22px 56px #0071e3a6}.cta-ghost{padding:16px 46px;border-radius:999px;cursor:pointer;background:#ffffff1f;color:#fff;border:1px solid rgba(255,255,255,.4);font-size:17px;font-weight:600;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform .25s,background .25s}.cta-ghost:hover{transform:translateY(-4px);background:#ffffff38}.hero-stats{display:flex;gap:58px;margin-top:64px;padding:22px 40px;border-radius:var(--radius-lg);background:#ffffff1a;border:1px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.stat{text-align:center}.stat b{display:block;font-size:32px;font-weight:800;color:#fff;letter-spacing:.5px}.stat span{font-size:13px;color:#ffffffad;letter-spacing:1px}.hero-scroll{position:absolute;bottom:30px;left:50%;transform:translate(-50%);z-index:3;color:#ffffffbf;font-size:12px;letter-spacing:3px;cursor:pointer;text-transform:uppercase;animation:bob 2.2s infinite ease-in-out}@keyframes bob{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,10px)}}.section{padding:96px 0 40px;position:relative}.section.first{padding-top:84px}.sec-head{text-align:center;margin-bottom:54px}.sec-tag{display:inline-block;padding:6px 16px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700;letter-spacing:3px;text-transform:uppercase;margin-bottom:18px}.sec-head h2{font-size:clamp(30px,4vw,44px);font-weight:800;color:var(--text);margin:0 0 14px}.sec-head p{color:var(--text-sub);margin:0;font-size:16px;font-weight:300}.works-tabs{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:40px}.tab{padding:9px 24px;border-radius:999px;cursor:pointer;border:1px solid var(--card-border);background:var(--card-bg);color:var(--text-sub);font-size:14px;font-weight:600;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);transition:all .25s}.tab:hover{color:var(--accent);border-color:var(--accent)}.tab.on{background:var(--accent-grad);color:#fff;border-color:transparent;box-shadow:0 8px 24px #00000029}.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.work-card{display:block;text-decoration:none;border-radius:var(--radius-lg);overflow:hidden;background:var(--card-bg);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--card-border);box-shadow:var(--shadow-sm);transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s}.work-card:hover{transform:translateY(-10px);box-shadow:var(--shadow)}.work-cover{position:relative;height:230px;overflow:hidden;background-size:cover;background-position:center;background-color:#0b1220}.work-cover:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.65) 100%)}.work-cover img{width:100%;height:100%;object-fit:cover;transform:scale(1.05);transition:transform .6s ease}.work-card:hover .work-cover img{transform:scale(1.14)}.work-cat{position:absolute;top:14px;left:14px;z-index:2;padding:5px 14px;border-radius:999px;font-size:12px;font-weight:600;color:#fff;background:#00000061;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.work-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.6);z-index:2;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#ffffffeb;color:#1f2937;font-size:20px;padding-left:4px;box-shadow:0 10px 30px #0000004d;opacity:0;transition:opacity .3s,transform .3s}.work-card:hover .work-play{opacity:1;transform:translate(-50%,-50%) scale(1)}.work-info{padding:18px 20px 20px}.work-info h3{margin:0 0 12px;font-size:18px;color:var(--text);font-weight:700}.work-meta{display:flex;align-items:center;gap:16px;color:var(--text-sub);font-size:13px}.work-meta .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:5px}.work-meta .dot.b{background:#f59e0b}.work-meta .author{margin-left:auto;font-weight:600;color:var(--text)}.cap-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.cap-card{position:relative;padding:34px 26px;border-radius:var(--radius-lg);overflow:hidden;background:var(--card-bg);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--card-border);box-shadow:var(--shadow-sm);transition:transform .35s,box-shadow .35s}.cap-card:hover{transform:translateY(-8px);box-shadow:var(--shadow)}.cap-card:before{content:"";position:absolute;top:-40%;right:-30%;width:70%;height:90%;background:radial-gradient(circle,var(--accent-soft) 0%,transparent 70%);opacity:0;transition:opacity .4s}.cap-card:hover:before{opacity:1}.cap-ico{width:56px;height:56px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:26px;color:#fff;background:var(--accent-grad);box-shadow:0 10px 26px #0003;margin-bottom:22px;position:relative;z-index:1}.cap-card h3{margin:0 0 10px;font-size:19px;color:var(--text);position:relative;z-index:1}.cap-card p{margin:0;font-size:14px;color:var(--text-sub);line-height:1.8;position:relative;z-index:1}.cap-card .cap-line{position:relative;z-index:1;height:4px;border-radius:4px;margin-top:20px;background:var(--accent-grad);width:40%;transition:width .5s}.cap-card:hover .cap-line{width:100%}.soln-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.soln-card{position:relative;border-radius:var(--radius-lg);overflow:hidden;min-height:230px;display:flex;align-items:flex-end;padding:26px;text-decoration:none;border:1px solid var(--card-border);box-shadow:var(--shadow-sm);transition:transform .35s,box-shadow .35s}.soln-card:hover{transform:translateY(-8px);box-shadow:var(--shadow)}.soln-card .sc-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;transition:transform .6s ease}.soln-card:hover .sc-bg{transform:scale(1.1)}.soln-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 30%,rgba(5,10,22,.86) 100%)}.soln-card .sc-body{position:relative;z-index:2;color:#fff}.soln-card h3{margin:0 0 8px;font-size:20px;font-weight:800}.soln-card p{margin:0;font-size:13px;color:#ffffffc7;line-height:1.7}.soln-card .sc-arrow{position:absolute;top:20px;right:20px;z-index:2;width:34px;height:34px;border-radius:50%;background:#fff3;color:#fff;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .3s}.soln-card:hover .sc-arrow{transform:translate(4px)}.stats-band{margin:80px auto 0;padding:54px 40px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#0071e31f,#38bdf814),var(--card-bg);border:1px solid var(--card-border);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--shadow-sm);display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.sband{text-align:center}.sband b{display:block;font-size:42px;font-weight:800;background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.sband span{font-size:14px;color:var(--text-sub);letter-spacing:1px}.join{padding:60px 0 30px}.join-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:42px 48px;border-radius:var(--radius-lg);color:#fff;background:linear-gradient(135deg,#0071e3,#0ea5e9);box-shadow:0 22px 60px #0071e359;position:relative;overflow:hidden}.join-inner:after{content:"";position:absolute;right:-60px;top:-80px;width:280px;height:280px;background:radial-gradient(circle,rgba(255,255,255,.25) 0%,transparent 70%)}.join-inner h3{margin:0 0 8px;font-size:26px;position:relative;z-index:1}.join-inner p{margin:0;font-size:15px;opacity:.92;position:relative;z-index:1}.join-btn{padding:14px 36px;border-radius:999px;border:none;cursor:pointer;background:#fffffff0;color:#0071e3;font-size:16px;font-weight:800;transition:transform .2s,box-shadow .2s;position:relative;z-index:1}.join-btn:hover{transform:translateY(-3px);box-shadow:0 12px 30px #0000002e}.footer{margin-top:60px;padding:60px 26px 40px;background:var(--card-bg-strong);border-top:1px solid var(--card-border);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}.foot-grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px}.foot-brand b{font-size:20px;font-weight:800;color:var(--text)}.foot-brand b span{color:var(--accent)}.foot-brand p{font-size:13px;color:var(--text-sub);line-height:1.8;margin:12px 0 0;max-width:320px}.foot-col h4{font-size:14px;font-weight:700;color:var(--text);margin:0 0 18px;letter-spacing:1px}.foot-col a{display:block;font-size:13px;color:var(--text-sub);text-decoration:none;margin-bottom:12px;transition:color .2s}.foot-col a:hover{color:var(--accent)}.foot-copy{max-width:1240px;margin:44px auto 0;padding-top:26px;border-top:1px solid var(--card-border);text-align:center;font-size:12px;color:var(--text-weak);line-height:2}.foot-copy .lang{letter-spacing:2px;text-transform:uppercase}.theme-switch{position:fixed;right:24px;bottom:28px;z-index:200;display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--card-bg-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--card-border);border-radius:999px;box-shadow:var(--shadow)}.ts-label{font-size:12px;color:var(--text-sub);white-space:nowrap;letter-spacing:1px}.ts-btn{width:26px;height:26px;border-radius:50%;border:2px solid rgba(255,255,255,.7);cursor:pointer;padding:0;box-shadow:0 2px 8px #0000002e;transition:transform .25s}.ts-btn:hover{transform:scale(1.18)}.ts-btn.on{box-shadow:0 0 0 3px var(--sw-active),0 4px 12px #0003;transform:scale(1.12)}@media (max-width: 1024px){.cap-grid,.soln-grid,.stats-band{grid-template-columns:repeat(2,1fr)}.foot-grid{grid-template-columns:1fr 1fr}.nav-menu{display:none}.nav-toggle{display:flex}.nav-menu.show{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:2px;padding:14px 26px 22px;background:var(--nav-bg);border-bottom:1px solid var(--nav-border);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--shadow-sm)}.nav-menu.show .nav-link{padding:14px 10px;border-radius:14px;font-size:16px}.nav-menu.show .nav-link:hover{background:var(--accent-soft)}}@media (max-width: 768px){.work-grid{grid-template-columns:repeat(2,1fr)}.nav-search{display:none}.nav-brand b{font-size:20px}.nav-brand .brand-en{display:none}.hero-title{font-size:clamp(34px,9vw,52px)}.hero-sub{font-size:16px;margin:20px 0 30px}.hero-cta .cta-primary,.hero-cta .cta-ghost{padding:13px 32px;font-size:15px}.hero-stats{gap:26px;padding:16px 20px;flex-wrap:wrap;justify-content:center;margin-top:44px}.stat b{font-size:24px}.hero-scroll{display:none}.section{padding:64px 0 20px}.theme-switch{right:14px;bottom:18px;padding:8px 12px}.ts-label{display:none}.join-inner{padding:30px 26px}.stats-band{padding:40px 24px}.sband b{font-size:32px}.wrap{padding:0 18px}}@media (max-width: 560px){.work-grid,.cap-grid,.soln-grid{grid-template-columns:1fr}.stats-band{grid-template-columns:1fr 1fr;gap:20px;padding:30px 18px}.foot-grid{grid-template-columns:1fr}.hero-stats{gap:18px}.hero-title-en{font-size:11px;letter-spacing:4px}.nav-inner{padding:12px 16px;gap:14px}.nav-btn{padding:8px 16px;font-size:13px}}.login-page{position:relative;min-height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:24px}.login-bg.orb{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;pointer-events:none;z-index:0}.login-bg.orb-a{width:380px;height:380px;top:-90px;left:-80px;background:var(--accent-soft)}.login-bg.orb-b{width:340px;height:340px;bottom:-100px;right:-70px;background:var(--accent-soft);opacity:.4}.login-card{position:relative;z-index:1;width:100%;max-width:430px;background:var(--card-bg);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:36px 34px 28px}.login-back{display:inline-block;font-size:13px;color:var(--text-weak);text-decoration:none;margin-bottom:22px;transition:color .2s}.login-back:hover{color:var(--accent)}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:20px}.login-logo{width:52px;height:52px;border-radius:16px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;color:#fff;background:var(--accent-grad);box-shadow:0 10px 26px #0003}.login-brand h1{margin:0;font-size:20px;font-weight:800;color:var(--text)}.login-brand p{margin:4px 0 0;font-size:12px;color:var(--text-weak);letter-spacing:.5px}.login-demo-tip{padding:10px 14px;border-radius:12px;font-size:13px;color:var(--accent);background:var(--accent-soft);margin-bottom:20px;line-height:1.6}.login-demo-tip b{font-weight:800}.login-form{display:flex;flex-direction:column;gap:16px}.login-field{display:flex;flex-direction:column;gap:7px}.login-field span{font-size:13px;font-weight:600;color:var(--text-sub)}.login-field input{height:46px;padding:0 16px;border-radius:14px;font-size:15px;border:1px solid var(--card-border);background:var(--card-bg-strong);color:var(--text);outline:none;transition:border-color .2s,box-shadow .2s}.login-field input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.login-error{padding:10px 14px;border-radius:12px;font-size:13px;color:#fff;background:linear-gradient(135deg,#ef4444,#f97316)}.login-submit{height:48px;border:none;border-radius:14px;cursor:pointer;margin-top:4px;background:var(--accent-grad);color:#fff;font-size:16px;font-weight:800;letter-spacing:4px;box-shadow:0 12px 30px #0003;transition:transform .2s,box-shadow .2s,opacity .2s}.login-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 18px 40px #00000042}.login-submit:disabled{opacity:.6;cursor:not-allowed}.login-themes{display:flex;align-items:center;gap:9px;margin-top:24px;justify-content:center}.lt-label{font-size:12px;color:var(--text-weak);margin-right:4px}.lt-dot{width:24px;height:24px;border-radius:50%;border:2px solid rgba(255,255,255,.7);cursor:pointer;padding:0;box-shadow:0 2px 8px #00000029;transition:transform .2s}.lt-dot:hover{transform:scale(1.15)}.lt-dot.on{box-shadow:0 0 0 3px var(--sw-active),0 4px 12px #0003;transform:scale(1.1)}.admin-shell{display:flex;min-height:100vh}.admin-side{width:250px;flex:0 0 auto;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:22px 16px;background:var(--nav-bg);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-right:1px solid var(--card-border);z-index:60}.admin-side-brand{display:flex;align-items:center;gap:11px;padding:6px 10px 20px}.admin-side-brand .asb-logo{width:40px;height:40px;border-radius:12px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;background:var(--accent-grad)}.admin-side-brand b{font-size:16px;font-weight:800;color:var(--text);display:block}.admin-side-brand span{font-size:11px;color:var(--text-weak);letter-spacing:1px}.admin-nav{flex:1;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.admin-nav .an-title{font-size:11px;color:var(--text-weak);letter-spacing:2px;padding:14px 12px 6px}.admin-nav a{display:flex;align-items:center;gap:11px;padding:11px 14px;border-radius:13px;color:var(--text-sub);text-decoration:none;font-size:14px;font-weight:600;transition:background .2s,color .2s}.admin-nav a .ico{width:20px;text-align:center}.admin-nav a:hover{background:var(--accent-soft);color:var(--accent)}.admin-nav a.router-link-active{background:var(--accent-grad);color:#fff;box-shadow:0 8px 20px #00000029}.admin-side-foot{display:flex;flex-direction:column;gap:8px;padding-top:14px;border-top:1px solid var(--card-border)}.admin-side-foot button{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;cursor:pointer;border:1px solid var(--card-border);background:var(--card-bg);color:var(--text-sub);font-size:13px;font-weight:600;transition:all .2s}.admin-side-foot button:hover{border-color:var(--accent);color:var(--accent)}.admin-side-foot button.danger:hover{border-color:#ef4444;color:#ef4444}.admin-main{flex:1;min-width:0;display:flex;flex-direction:column}.admin-topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:14px;padding:14px 26px;background:var(--nav-bg);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border-bottom:1px solid var(--card-border)}.admin-burger{display:none;width:42px;height:42px;border-radius:12px;cursor:pointer;border:1px solid var(--card-border);background:var(--card-bg);color:var(--text);align-items:center;justify-content:center;font-size:18px}.admin-topbar h2{margin:0;font-size:18px;font-weight:800;color:var(--text)}.admin-topbar .at-sub{font-size:12px;color:var(--text-weak);margin-top:2px}.admin-topbar .at-right{margin-left:auto;display:flex;align-items:center;gap:10px}.admin-themes{display:flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;background:var(--card-bg);border:1px solid var(--card-border)}.admin-themes .at-dot{width:20px;height:20px;border-radius:50%;border:2px solid rgba(255,255,255,.7);cursor:pointer;padding:0}.admin-themes .at-dot.on{box-shadow:0 0 0 3px var(--sw-active);transform:scale(1.1)}.admin-content{padding:26px;flex:1}.admin-overlay{display:none}.a-card{background:var(--card-bg);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--card-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:22px}.a-grid{display:grid;gap:18px}.a-grid.cols-4{grid-template-columns:repeat(4,1fr)}.a-grid.cols-2{grid-template-columns:repeat(2,1fr)}.demo-note{font-size:12px;color:var(--text-weak);margin:0 0 16px;padding:8px 14px;border-radius:10px;background:var(--accent-soft);display:inline-block}.btn{padding:9px 18px;border-radius:11px;cursor:pointer;font-size:13px;font-weight:600;border:1px solid var(--card-border);background:var(--card-bg);color:var(--text-sub);transition:all .2s}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn-primary{background:var(--accent-grad);color:#fff;border:none;box-shadow:0 8px 20px #00000029}.btn-primary:hover{color:#fff;transform:translateY(-1px)}.btn-danger{color:#ef4444}.btn-danger:hover{border-color:#ef4444;color:#ef4444}.btn.sm{padding:6px 12px;font-size:12px}.a-input,.a-select,.a-textarea{padding:10px 13px;border-radius:11px;font-size:14px;color:var(--text);border:1px solid var(--card-border);background:var(--card-bg-strong);outline:none;width:100%;transition:border-color .2s,box-shadow .2s}.a-input:focus,.a-select:focus,.a-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.a-table-wrap{overflow-x:auto;border-radius:var(--radius)}.a-table{width:100%;border-collapse:collapse;min-width:640px}.a-table th,.a-table td{text-align:left;padding:13px 14px;font-size:14px;border-bottom:1px solid var(--card-border)}.a-table th{color:var(--text-weak);font-size:12px;font-weight:700;letter-spacing:1px}.a-table td{color:var(--text)}.a-table tr:last-child td{border-bottom:none}.a-table .ops{display:flex;gap:8px;flex-wrap:wrap}.badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:700}.badge.on{background:var(--accent-soft);color:var(--accent)}.badge.off{background:#8c96aa29;color:var(--text-weak)}.a-switch{position:relative;display:inline-block;width:46px;height:26px;flex:0 0 auto}.a-switch input{opacity:0;width:0;height:0}.a-switch .slider{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;cursor:pointer;background:#8c96aa59;transition:background .25s}.a-switch .slider:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:#fff;transition:transform .25s;box-shadow:0 2px 6px #00000040}.a-switch input:checked+.slider{background:var(--sw-active)}.a-switch input:checked+.slider:before{transform:translate(20px)}.stat-card .sc-top{display:flex;align-items:center;justify-content:space-between}.stat-card .sc-label{font-size:13px;color:var(--text-sub)}.stat-card .sc-value{font-size:30px;font-weight:800;color:var(--text);margin:10px 0 6px}.stat-card .sc-delta{font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px}.sc-delta.up{background:#10b98124;color:#10b981}.sc-delta.down{background:#ef444424;color:#ef4444}.bar-chart{display:flex;align-items:flex-end;gap:10px;height:220px;padding-top:10px}.bar-chart .bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;justify-content:flex-end}.bar-chart .bar{width:100%;max-width:34px;border-radius:8px 8px 4px 4px;min-height:4px;background:var(--accent-grad);transition:height .6s cubic-bezier(.2,.7,.2,1)}.bar-chart .bar-lab{font-size:11px;color:var(--text-weak)}.donut{position:relative;width:168px;height:168px;border-radius:50%}.donut:after{content:"";position:absolute;top:26px;right:26px;bottom:26px;left:26px;border-radius:50%;background:var(--card-bg-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}.donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1}.donut-center b{font-size:24px;font-weight:800;color:var(--text)}.donut-center span{font-size:11px;color:var(--text-weak)}.legend{display:flex;flex-direction:column;gap:10px}.legend .lg-row{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--text-sub)}.legend .lg-dot{width:12px;height:12px;border-radius:4px;flex:0 0 auto}.legend .lg-row b{margin-left:auto;color:var(--text)}.feed-item{display:flex;gap:13px;padding:13px 0;border-bottom:1px solid var(--card-border)}.feed-item:last-child{border-bottom:none}.feed-item .fi-dot{width:34px;height:34px;border-radius:11px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:15px;background:var(--accent-soft)}.feed-item p{margin:0;font-size:13px;color:var(--text);line-height:1.5}.feed-item time{font-size:11px;color:var(--text-weak)}.scene-item{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--radius);border:1px solid var(--card-border);background:var(--card-bg);margin-bottom:12px;cursor:pointer;transition:border-color .2s,box-shadow .2s}.scene-item.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.scene-thumb{width:56px;height:40px;border-radius:9px;flex:0 0 auto;background:var(--accent-grad);opacity:.85}.scene-item .si-info{flex:1;min-width:0}.scene-item .si-info b{font-size:14px;color:var(--text);display:block}.scene-item .si-info span{font-size:12px;color:var(--text-weak)}.set-row{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--card-border)}.set-row:last-child{border-bottom:none}.set-row .sr-info{flex:1;min-width:0}.set-row .sr-info b{font-size:14px;color:var(--text);display:block}.set-row .sr-info span{font-size:12px;color:var(--text-weak)}.a-toast{position:fixed;left:50%;bottom:34px;transform:translate(-50%);z-index:300;padding:12px 22px;border-radius:999px;font-size:14px;font-weight:600;color:#fff;background:var(--accent-grad);box-shadow:0 14px 36px #00000047;animation:toastIn .3s cubic-bezier(.2,.8,.2,1)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%)}}.page-head{display:flex;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:wrap}.page-head h3{margin:0;font-size:19px;color:var(--text)}.page-head .btn{margin-left:auto}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#00000059;display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:100%;max-width:460px;background:var(--card-bg-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:26px}.modal h4{margin:0 0 18px;font-size:17px;color:var(--text)}.modal .m-field{margin-bottom:14px;display:flex;flex-direction:column;gap:6px}.modal .m-field span{font-size:12px;color:var(--text-sub);font-weight:600}.modal .m-ops{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}@media (max-width: 1024px){.a-grid.cols-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 900px){.admin-side{position:fixed;top:0;left:0;transform:translate(-100%);transition:transform .3s ease;box-shadow:var(--shadow)}.admin-side.open{transform:translate(0)}.admin-overlay.show{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#00000059}.admin-burger{display:flex}}@media (max-width: 640px){.a-grid.cols-4,.a-grid.cols-2{grid-template-columns:1fr}.admin-content{padding:16px}.admin-topbar{padding:12px 16px}.admin-themes .at-dot{width:18px;height:18px}.login-card{padding:26px 20px}}
