:root{--bg-gradient:linear-gradient(135deg, #0f172a 0%, #1e293b 100%);--bg-panel:#0a0f1e8c;--bg-panel-hover:#1e293ba6;--bg-active:#ffffff2e;--bg-hover:#ffffff26;--border:#ffffff26;--border-light:#ffffff40;--border-highlight:#ffffff59;--bg-primary:#1a1b1e;--bg-secondary:#25262b;--bg-surface:#2c2e33;--bg-selected:#1864ab33;--border-color:#373a40;--border-active:#4dabf7;--text-primary:#e4e5e7;--text-secondary:#909296;--text-muted:#5c5f66;--accent:#4dabf7;--accent-hover:#74c0fc;--success:#51cf66;--warning:#fcc419;--error:#ff6b6b;--shadow:0 2px 8px #0000004d;--radius:8px;--radius-sm:4px;--radius-md:12px;--radius-lg:16px;--transition:.2s ease;--font-mono:"SF Mono", "Cascadia Code", "Consolas", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;background:var(--bg-gradient);justify-content:center;align-items:center;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.5;display:flex;overflow:hidden}@keyframes gradientBG{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.btn{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;transition:all var(--transition);white-space:nowrap;align-items:center;gap:6px;padding:8px 16px;font-size:13px;display:inline-flex}.btn:hover{background:var(--bg-hover);border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-sm{padding:4px 10px;font-size:12px}.config-step{border:1px solid var(--border);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0d;max-width:500px;margin:0 auto;padding:24px;box-shadow:0 10px 30px #0003}.input{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);transition:border-color var(--transition);outline:none;padding:8px 12px;font-size:13px}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-muted)}.app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.setup-page{flex-direction:column;justify-content:center;align-items:center;gap:24px;height:100vh;padding:24px;display:flex}.setup-title{color:var(--text-primary);align-items:center;gap:10px;font-size:22px;font-weight:600;display:flex}.setup-cards{grid-template-columns:1fr 1fr;gap:20px;width:100%;max-width:900px;display:grid}.config-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius);transition:border-color var(--transition);padding:20px}.config-card.ready{border-color:var(--success)}.config-card.partial{border-color:var(--warning)}.config-card.invalid{border-color:var(--error)}.config-card-title{align-items:center;gap:8px;margin-bottom:16px;font-size:16px;font-weight:600;display:flex}.config-field{margin-bottom:12px}.config-field label{color:var(--text-secondary);margin-bottom:4px;font-size:12px;font-weight:500;display:block}.scope-list{margin-top:12px;font-size:12px;list-style:none}.scope-list li{font-family:var(--font-mono);align-items:center;gap:6px;padding:3px 0;display:flex}.scope-granted{color:var(--success)}.scope-missing{color:var(--error)}.status-badge{border-radius:12px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.status-ready{color:var(--success);background:#51cf6620}.status-partial{color:var(--warning);background:#fcc41920}.status-invalid{color:var(--error);background:#ff6b6b20}.status-checking{color:var(--accent);background:#4dabf720}.status-unchecked{background:var(--bg-surface);color:var(--text-muted)}.setup-footer{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius);justify-content:space-between;align-items:center;width:100%;max-width:900px;padding:16px 20px;display:flex}.main-page{border-radius:var(--radius-lg);background:var(--bg-panel);-webkit-backdrop-filter:blur(28px)saturate(180%);z-index:10;border:1px solid #ffffff26;flex-direction:column;width:100%;height:100%;margin:0;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 40px 80px #00000080,inset 0 1px 1px #fff3}.header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border-color);background:#0000004d;justify-content:space-between;align-items:center;min-height:48px;padding:8px 16px;display:flex}.header-side{text-shadow:0 1px 3px #000c;flex:1;align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.header-side .badge{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500}.badge-feishu{color:var(--accent);background:#4dabf720}.badge-lark{color:var(--success);background:#51cf6620}.header-actions{align-items:center;gap:8px;display:flex}.transfer-btn{border-radius:6px;justify-content:center;min-width:100px;padding:6px 16px;font-size:14px;font-weight:600}.header .btn{-webkit-backdrop-filter:blur(12px)saturate(140%);color:#ffffffe6;box-shadow:0 4px 12px #0003,inset 0 1px #ffffff0d;background:#ffffff0d!important;border:1px solid #ffffff14!important}.header .btn:hover:not(:disabled){color:#fff;box-shadow:0 6px 16px #0000004d,inset 0 1px #ffffff1a;background:#ffffff1f!important;border-color:#ffffff2e!important}.header .btn:disabled{opacity:.4;background:#0003!important;border-color:#0000!important}.center-divider{background-color:var(--border-color);width:1px;height:24px;margin:0 4px}.panels{border-bottom:1px solid var(--border-color);background:0 0;flex:2;grid-template-columns:1fr 1fr;min-height:0;display:grid;overflow:hidden}.panel{border-right:1px solid #fff6;flex-direction:column;display:flex;overflow:hidden}.panel:last-child{border-right:none}.panel-toolbar{border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#00000026;align-items:center;gap:4px;min-height:36px;padding:6px 12px;display:flex}.panel-toolbar .nav-btn{width:28px;height:28px;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition);background:0 0;border:none;justify-content:center;align-items:center;font-size:15px;display:flex}.panel-toolbar .nav-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.breadcrumb{color:var(--text-secondary);flex:1;align-items:center;gap:2px;font-size:13px;display:flex;overflow:hidden}.breadcrumb-item{cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition);white-space:nowrap;text-overflow:ellipsis;padding:2px 6px;overflow:hidden}.breadcrumb-item:hover{background:var(--bg-hover);color:var(--text-primary)}.breadcrumb-item.active{color:var(--text-primary);text-shadow:0 1px 3px #000c;font-weight:600}.breadcrumb-sep{color:var(--text-muted);font-size:11px}.file-table{background:0 0;flex:1;overflow:hidden auto}.file-table-header{border-bottom:1px solid var(--border-color);color:var(--text-secondary);z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#00000026;grid-template-columns:24px 28px 1fr 140px 80px;align-items:center;padding:6px 12px;font-size:12px;font-weight:500;display:grid;position:sticky;top:0}.file-row{cursor:pointer;transition:background var(--transition);border-bottom:1px solid #ffffff0d;grid-template-columns:24px 28px 1fr 140px 80px;align-items:center;padding:6px 12px;font-size:13px;display:grid}.file-row:hover{background:var(--bg-hover)}.file-row.selected{background:var(--bg-active)}.file-row .checkbox{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.file-name{align-items:center;gap:8px;display:flex;overflow:hidden}.file-name span{text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 3px #000c;font-weight:500;overflow:hidden}.file-icon{flex-shrink:0;font-size:16px}.file-date{color:var(--text-secondary);font-size:12px}.file-type{color:var(--text-muted);font-size:12px}.transfer-queue{border-top:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0000004d;flex-direction:column;flex:1;min-height:120px;max-height:40vh;display:flex}.queue-header{border-bottom:1px solid var(--border);background:0 0;justify-content:space-between;align-items:center;padding:12px 20px;font-size:13px;font-weight:600;display:flex}.transfer-list{flex:1;overflow-y:auto}.transfer-row{border-bottom:1px solid #ffffff0d;grid-template-columns:1fr 100px 80px 140px 140px 60px;align-items:center;padding:6px 16px;font-size:12px;display:grid}.transfer-status{align-items:center;gap:4px;display:flex}.transfer-status.status-done{color:var(--success)}.transfer-status.status-error{color:var(--error)}.transfer-status.status-pending{color:var(--text-muted)}.transfer-status.status-active{color:var(--accent)}.empty-state{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:40px;font-size:14px;display:flex}.empty-state .icon{opacity:.5;font-size:32px}.loading{color:var(--text-muted);justify-content:center;align-items:center;padding:24px;display:flex}.spinner{border:2px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;margin-right:8px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.setup-page{justify-content:flex-start;gap:20px;padding-top:40px;overflow-y:auto}.wizard-steps{align-items:center;gap:0;margin-bottom:4px;display:flex}.wizard-step{color:var(--text-muted);transition:all var(--transition);border-radius:20px;align-items:center;gap:8px;padding:6px 14px;font-size:13px;display:flex}.wizard-step.active{color:var(--text-primary);background:var(--bg-surface)}.wizard-step.done{color:var(--success)}.wizard-step-num{background:var(--bg-hover);border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:600;display:flex}.wizard-step.active .wizard-step-num{background:var(--accent);color:#fff}.wizard-step.done .wizard-step-num{background:var(--success);color:#fff}.wizard-step-line{background:var(--border-color);width:40px;height:2px;margin:0 4px}.side-tabs{background:var(--bg-secondary);border-radius:var(--radius);border:1px solid var(--border-color);gap:4px;padding:4px;display:flex}.side-tab{color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:8px 24px;font-size:14px;font-weight:500;display:flex}.side-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.side-tab.active{color:var(--text-primary);background:var(--bg-surface)}.tab-badge-ok{background:var(--success);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:inline-flex}.wizard-content{width:100%;max-width:800px}.step-card{background:var(--bg-panel);border:1px solid var(--border-light);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:24px}.step-card h3{border-bottom:1px solid var(--border-color);margin-bottom:16px;padding-bottom:12px;font-size:16px;font-weight:600}.step-instructions{margin-bottom:16px}.instruction-item{align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.instruction-num{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;margin-top:2px;font-size:13px;font-weight:700;display:flex}.instruction-item p{color:var(--text-secondary);font-size:13px;line-height:1.6}.credential-fields{border-radius:var(--radius);border:1px solid var(--border-color);background:#0000001a;grid-template-columns:1fr 1fr;gap:16px;padding:16px;display:grid}.permission-table{border:1px solid var(--border-color);border-radius:var(--radius);margin-top:12px;overflow:hidden}.permission-header{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;background:#00000026;grid-template-columns:1.5fr .8fr 1.5fr .6fr .8fr;padding:8px 12px;font-size:11px;font-weight:600;display:grid}.permission-row{border-top:1px solid #ffffff0d;grid-template-columns:1.5fr .8fr 1.5fr .6fr .8fr;align-items:center;padding:8px 12px;font-size:12px;display:grid}.permission-row code{font-family:var(--font-mono);background:var(--bg-primary);color:var(--accent);border-radius:3px;padding:2px 6px;font-size:11px}.permission-desc{color:var(--text-muted);font-size:11px}.verify-cards{grid-template-columns:1fr 1fr;gap:16px;display:grid}.verify-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius);transition:border-color var(--transition);padding:16px}.verify-card.ready{border-color:var(--success)}.verify-card.partial{border-color:var(--warning)}.verify-card.invalid{border-color:var(--error)}.verify-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:14px;font-weight:600;display:flex}.wizard-footer{background:var(--bg-panel);border:1px solid var(--border-light);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:space-between;align-items:center;width:100%;max-width:800px;margin-bottom:24px;padding:16px 20px;display:flex}.json-import-block{border:1px solid var(--border-color);border-radius:var(--radius);margin-top:8px;overflow:hidden}.json-import-header{border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#00000026;justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;font-weight:500;display:flex}.json-code{background:var(--bg-primary);font-family:var(--font-mono);color:var(--accent);white-space:pre;margin:0;padding:12px 16px;font-size:12px;line-height:1.6;overflow-x:auto}.global-progress{background:var(--bg-secondary);border-top:1px solid var(--border-color);align-items:center;gap:12px;min-height:28px;padding:6px 16px;display:flex}.global-progress-text{color:var(--text-muted);white-space:nowrap;text-align:right;min-width:120px;font-size:11px}.perm-tabs{border:1px solid var(--border-color);border-radius:var(--radius);gap:0;margin-bottom:16px;display:flex;overflow:hidden}.perm-tab{background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);border:none;flex:1;padding:10px 16px;font-size:13px;font-weight:500}.perm-tab:not(:last-child){border-right:1px solid var(--border-color)}.perm-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.perm-tab.active{background:var(--bg-surface);color:var(--text-primary);font-weight:600}.panel-mode-tabs{background:var(--bg-surface);border-bottom:1px solid var(--border-color);gap:0;display:flex}.panel-mode-tab{color:var(--text-muted);cursor:pointer;transition:all var(--transition);background:0 0;border:none;border-bottom:2px solid #0000;padding:6px 16px;font-size:12px;font-weight:500}.panel-mode-tab:hover{color:var(--text-secondary);background:var(--bg-hover)}.panel-mode-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.side-select{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius);cursor:pointer;transition:border-color var(--transition);outline:none;padding:4px 8px;font-size:13px;font-weight:500}.side-select:hover,.side-select:focus{border-color:var(--accent)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0009;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;width:90%;max-width:520px;padding:28px 32px;animation:.3s slideUp}.modal-content h2{margin:0 0 16px;font-size:18px}.modal-body{font-size:14px;line-height:1.7}.modal-body ol{margin:0}.modal-footer{border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-top:20px;padding-top:16px;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.panel-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;min-height:300px;padding:40px;display:flex}.panel-config{flex-direction:column;height:100%;padding:16px;display:flex}.panel-config-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;font-size:14px;font-weight:600;display:flex}.config-step{flex:1}.platform-card{border:2px solid var(--border-color);border-radius:var(--radius);background:var(--bg-primary);cursor:pointer;color:var(--text-primary);transition:all var(--transition);flex-direction:column;flex:1;align-items:center;gap:8px;padding:20px;font-size:15px;font-weight:600;display:flex}.platform-card:hover{border-color:var(--accent);background:var(--bg-hover)}.platform-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:#4f8cff1a}.tree-toggle{-webkit-user-select:none;user-select:none;transition:color var(--transition);flex-shrink:0}.tree-toggle:hover{color:var(--accent)}.lang-toggle{text-align:center;letter-spacing:.5px;min-width:32px;font-size:12px;font-weight:700}.transfer-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#00000059;border-top:1px solid #ffffff1f;flex-direction:column;display:flex;overflow:hidden}.transfer-resize-handle{cursor:ns-resize;background:#ffffff0d;flex-shrink:0;justify-content:center;align-items:center;height:6px;transition:background .2s;display:flex}.transfer-resize-handle:hover,.transfer-resize-handle:active{background:#fff3}.transfer-resize-handle:after{content:"";background:#fff3;border-radius:2px;width:40px;height:3px;transition:background .15s,width .15s}.transfer-resize-handle:hover:after,.transfer-resize-handle.active:after{background:#ffffff80;width:60px}.transfer-header{color:#ffffffd9;text-shadow:0 1px 2px #0009;background:#ffffff08;border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 16px;font-size:13px;font-weight:600;display:flex}.transfer-header-actions .btn{opacity:.7;padding:3px 10px;font-size:11px;transition:opacity .2s}.transfer-header-actions .btn:hover:not(:disabled){opacity:1}.transfer-header-actions .btn:disabled{opacity:.3;cursor:not-allowed}.transfer-list{flex:1;padding:0;overflow-y:auto}.transfer-list .empty-state{text-shadow:0 1px 2px #0009;justify-content:center;align-items:center;padding:16px;display:flex}.transfer-row{border-bottom:1px solid #ffffff0a;grid-template-columns:24px 1.5fr 100px 80px 90px 1fr auto;align-items:center;gap:10px;min-height:34px;padding:7px 16px;font-size:12px;transition:background .15s;display:grid}.transfer-row:hover{background:#ffffff0d}.transfer-status{white-space:nowrap;text-align:center;border-radius:6px;padding:2px 8px;font-size:11px}.status-pending{color:#fff6;background:#ffffff0d}.status-active{color:var(--accent);background:#4fc3f71a}.status-done{color:#4ade80;background:#4ade801a}.status-error{color:#f87171;background:#f871711a}.progress-bar{background:#ffffff1a;border-radius:3px;width:80px;height:6px;overflow:hidden}.progress-bar-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .4s}.global-progress{color:#ffffff80;border-top:1px solid #ffffff0f;align-items:center;gap:10px;padding:4px 14px 6px;font-size:11px;display:flex}.global-progress-bar{background:#ffffff1a;border-radius:2px;flex:1;height:3px;overflow:hidden}.global-progress-fill{background:linear-gradient(90deg, var(--accent), #a78bfa);border-radius:2px;height:100%;transition:width .4s}.global-progress-text{white-space:nowrap}
.scenery-container{z-index:-1;background:#070a1a;width:100vw;height:100vh;position:fixed;top:0;left:0;overflow:hidden}.scenery-container svg{transform:scale(1.02)}.bg-base{width:100%;height:100%;position:absolute;top:0;left:0}.theme-lottie-valley .bg-base{background:#070a1a}
