@font-face{font-family:Chelsea Market;src:url(./ChelseaMarket-Regular-Dg5P9Kdj.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--bg: #ffffff;--bg-secondary: #f7f7f7;--bg-card: #eeeeee;--text: #1d1d1f;--text-muted: #6b6b6f;--text-dim: #9a9a9e;--border: #e5e5e7;--accent: #2383e2;--accent-hover: #1a6fc7;--accent-bg: rgba(35, 131, 226, .08);--accent-glass: rgba(35, 131, 226, .04);--green: #0f9d58;--green-bg: rgba(15, 157, 88, .1);--yellow: #e8a838;--yellow-bg: rgba(232, 168, 56, .1);--red: #e03e3e;--red-bg: rgba(224, 62, 62, .1);--radius: 6px;--radius-sm: 4px;--shadow: 0 1px 4px rgba(0,0,0,.06);--glow: none;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace}[data-theme=dark]{--bg: #1a1a1e;--bg-secondary: #222226;--bg-card: #2c2c30;--text: #eaeaec;--text-muted: #88888e;--text-dim: #66666c;--border: #3a3a3e;--accent: #5b9cf5;--accent-hover: #7ab0ff;--accent-bg: rgba(91, 156, 245, .1);--accent-glass: rgba(91, 156, 245, .05);--green: #34d080;--green-bg: rgba(52, 208, 128, .1);--yellow: #f0c040;--yellow-bg: rgba(240, 192, 64, .1);--red: #f06060;--red-bg: rgba(240, 96, 96, .1);--shadow: 0 1px 4px rgba(0,0,0,.2);--glow: none}*{margin:0;padding:0;box-sizing:border-box}body{overflow:hidden;font-family:Chelsea Market,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans TC,sans-serif;font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}#root{display:flex;height:100vh;width:100vw}button{cursor:pointer;border:none;background:none;color:inherit;font:inherit}input{font:inherit;color:inherit}:root{--tl-color: #6d5df4;--tl-rounded: 9999px;--tl-bullet-size: 28px;--tl-line-width: 2px;--tl-offset: calc(var(--tl-bullet-size) / 2 + var(--tl-line-width) + 6px)}.sidebar{width:300px;min-width:300px;background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:20px 16px 16px;border-bottom:1px solid var(--border)}.logo{font-size:22px;font-weight:700;color:var(--text);letter-spacing:-.5px}.logo span{color:var(--accent)}.subtitle{font-size:12px;color:var(--text-dim);margin-top:4px}.device-list{flex:1;overflow-y:auto;padding:8px 0}.list-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-dim);padding:8px 16px}.device-card{display:flex;align-items:center;gap:12px;padding:10px 16px;cursor:pointer;transition:background .15s}.device-card:hover{background:var(--bg-card)}.device-card.selected{background:var(--accent-bg);border-left:3px solid var(--accent)}.device-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;flex-shrink:0}.device-info{flex:1;min-width:0}.device-name{font-weight:500;font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-status{font-size:12px;color:var(--text-dim);display:flex;align-items:center;gap:6px;margin-top:2px}.dot{width:7px;height:7px;border-radius:50%;background:var(--text-dim)}.dot.online{background:var(--green)}.main{flex:1;display:flex;flex-direction:column;overflow:hidden}.main-header{padding:16px 20px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px}.main-header h2{font-size:16px;font-weight:600;color:var(--text)}.peer-hint{font-size:12px;color:var(--accent);background:var(--accent-bg);padding:2px 10px;border-radius:20px}.drop-zone{margin:12px 20px;border:2px dashed var(--border);border-radius:var(--radius);padding:16px;text-align:center;transition:all .2s}.drop-zone.dragging{border-color:var(--accent);background:var(--accent-bg)}.drop-zone.no-peer{opacity:.4}.drop-hint{color:var(--text-dim);font-size:13px}.drop-hint.active{color:var(--accent);font-weight:500}.main-upload{display:flex;justify-content:center;align-items:center;flex-direction:column;padding:12px 0;min-height:180px}.dual-timeline{flex:1;display:flex;overflow:hidden}.tl-pane{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.tl-pane-header{display:flex;align-items:center;gap:6px;padding:10px 16px;font-size:13px;font-weight:600;color:var(--text-muted);border-bottom:1px solid var(--border);flex-shrink:0}.tl-pane-header svg{color:var(--accent)}.tl-pane-count{margin-left:auto;font-size:11px;background:var(--bg-card);padding:1px 8px;border-radius:10px;color:var(--text-dim)}.tl-clear-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:12px;padding:0 4px;margin-left:4px;opacity:.4;transition:opacity .15s}.tl-clear-btn:hover{opacity:1;color:var(--red)}.tl-pane-body{flex:1;overflow-y:auto;padding:12px 16px 40px}.tl-divider{width:1px;background:var(--border);flex-shrink:0}.tl-item{position:relative;text-align:left;padding-left:var(--tl-offset);padding-bottom:16px}.tl-item:not(:last-of-type):before{content:"";position:absolute;pointer-events:none;top:calc(var(--tl-bullet-size) + 4px);left:calc(var(--tl-bullet-size) / 2 + var(--tl-line-width) / 2 - var(--tl-line-width) / 2);bottom:0;width:var(--tl-line-width);display:block;border-inline-start:var(--tl-line-width) var(--tli-border-style, solid) var(--border);transform:translate(-50%)}.tl-item[data-line-active]:before{border-color:var(--tl-color)}.tl-bullet{position:absolute;top:0;left:0;width:var(--tl-bullet-size);height:var(--tl-bullet-size);border-radius:var(--tl-rounded);background:var(--bg-secondary);border:var(--tl-line-width) solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1;transition:border-color .3s}.tl-active .tl-bullet{border-color:var(--tl-color)}.tl-done .tl-bullet{border-color:var(--green)}.tl-icon{font-size:14px;line-height:1}.tl-body{position:relative}.tl-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.tl-title{font-size:13px;font-weight:600;font-family:var(--font-mono);color:#38bdf8;line-height:1.2}.tl-peer{font-size:12px;color:var(--text-dim);font-family:var(--font-mono)}.tl-file-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.tl-filename{font-size:13px;color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-size{font-size:11px;color:var(--text-dim);font-family:var(--font-mono);flex-shrink:0}.tl-content{font-size:13px;color:var(--text-muted);transition:max-height .2s;overflow:hidden}.tl-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2}.tl-progress{display:flex;align-items:center;gap:8px;margin-bottom:4px}.tl-progress-bar{flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.tl-progress-fill{height:100%;background:var(--tl-color);border-radius:2px;transition:width .3s ease}.tl-speed{font-size:11px;color:var(--text-dim);font-family:var(--font-mono);flex-shrink:0}.tl-status{margin-bottom:2px}.tl-badge{font-size:12px;color:var(--text-dim);font-family:var(--font-mono)}.badge-done{color:var(--green)}.badge-fail{color:var(--red)}.tl-expand{font-size:12px;color:#38bdf8;background:none;border:none;font-family:var(--font-mono);cursor:pointer;padding:0;margin-top:2px}.tl-expand:hover{text-decoration:underline}.tl-actions{display:flex;gap:6px;margin-top:6px}.tl-time{display:block;font-size:12px;color:var(--text-dim);font-family:var(--font-mono);margin-top:6px}.btn{padding:5px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;transition:background .15s,opacity .15s;cursor:pointer;border:none;font-family:inherit}.btn-accept{background:var(--accent);color:#fff}.btn-accept:hover{opacity:.85}.btn-reject{background:transparent;border:1px solid var(--border);color:var(--text-dim)}.btn-reject:hover{background:var(--red-bg);border-color:var(--red);color:var(--red)}.empty{color:var(--text-dim);text-align:center;padding:40px 16px;font-size:13px}.dcard{--w: 260px;--h: 180px;--perf: 10px;position:relative;display:grid;grid-template-rows:auto auto auto auto;gap:.2rem;grid-template-areas:"header" "body" "ip" "footer";width:var(--w);height:var(--h);margin:10px auto;padding:var(--perf) 0;font-family:Inter,sans-serif;font-size:.85rem;-webkit-user-select:none;user-select:none;overflow:hidden;border-radius:10px;filter:drop-shadow(0 1px 1px #0003) drop-shadow(0 2px 2px #0003) drop-shadow(0 4px 4px #0003) drop-shadow(0 8px 8px #0003);cursor:pointer;transition:filter .3s,transform .3s,outline .15s;outline:2px solid transparent;outline-offset:2px}.dcard:hover{filter:drop-shadow(0 2px 2px #0002) drop-shadow(0 4px 4px #0002) drop-shadow(0 8px 8px #0002) drop-shadow(0 16px 16px #0002);transform:translateY(-4px) scale(1.02)}.dcard-sel{outline-color:var(--accent)}.dcard-filter{position:absolute;width:0;height:0}.dcard-bg{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background-color:#fff;filter:url(#bump);mask:radial-gradient(circle at 50% 0,#0000 calc(var(--perf) - 4px),#000 calc(var(--perf) - 3px)),radial-gradient(circle at 50% 100%,#0000 calc(var(--perf) - 4px),#000 calc(var(--perf) - 3px)),radial-gradient(circle 6px at left center,#000 98%,#0000 100%),radial-gradient(circle 6px at right center,#000 98%,#0000 100%),repeating-linear-gradient(90deg,#000 8px,#000 12px,#0000 13px,#0000 20px);-webkit-mask-repeat:repeat-x,repeat-x,no-repeat,no-repeat,repeat-x;mask-repeat:repeat-x,repeat-x,no-repeat,no-repeat,repeat-x;-webkit-mask-size:calc(var(--perf) * 2) 100%,calc(var(--perf) * 2) 100%,12px 12px,12px 12px,8px 2px;mask-size:calc(var(--perf) * 2) 100%,calc(var(--perf) * 2) 100%,12px 12px,12px 12px,8px 2px;-webkit-mask-position:calc(.5 * var(--perf)) top,calc(.5 * var(--perf)) bottom,left 50px,right 50px,0 57px;mask-position:calc(.5 * var(--perf)) top,calc(.5 * var(--perf)) bottom,left 50px,right 50px,0 57px;-webkit-mask-composite:source-in,xor,source-over,source-over;mask-composite:intersect,exclude,add,add}.dcard-holo{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background-image:linear-gradient(to bottom,#fff5,90%,#0002),conic-gradient(at 60% 50%,#ccc,#ff6bfe,#00f9f8,#ddd,#0081fd,#eef0bc,#0081fd,#ff6bfe,#0002,#0081fd,#ddd,#01fefb,#ccc)}.dcard-holo:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:radial-gradient(circle at 70% 20%,#f0f,#0000),repeating-radial-gradient(circle at 30% 80%,#fff,#f4a 38px,#eee 120px);mix-blend-mode:color-burn}.dcard-holo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(to bottom,#f205,red,#0f0,#f205);mix-blend-mode:difference;animation:dcard-bgpos 3s ease-in-out infinite alternate;background-position:0 0;background-size:100% 300%;background-repeat:repeat}@keyframes dcard-bgpos{to{background-position:0 400px}}.dcard-name{position:relative;grid-area:header;text-align:center;z-index:1;font-family:Inter,Segoe UI,sans-serif;font-size:1.1rem;font-weight:700;letter-spacing:.5px;color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#ffffff80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:2px 8px;border-radius:6px;display:inline-block;width:fit-content;margin:6px auto 0}.dcard-meta{grid-area:body;display:flex;align-items:center;justify-content:center;gap:6px;font-size:.8rem;font-weight:600;color:#222;margin:2px 0;z-index:1}.dcard-ip{grid-area:ip;text-align:center;font-size:.7rem;font-family:var(--font-mono);color:#444;font-weight:500;z-index:1;background:#ffffff4d;padding:1px 6px;border-radius:4px;width:fit-content;margin:0 auto}.dcard-dot{width:6px;height:6px;border-radius:50%;background:#999}.dcard-dot.on{background:var(--green)}.dcard-host{font-size:.7rem;color:#666;font-family:var(--font-mono)}.dcard-footer{grid-area:footer;z-index:1;margin:0 .8em .2em}.dcard-number{margin-bottom:.4rem;text-align:center;border-radius:999px 0;color:#000;font-weight:200;font-size:.75rem}.dcard-bold{font-weight:600}.dcard-barcode{justify-self:center;width:0;height:26px;box-shadow:0 0 0 1px #000,4px 0 0 1px #000,6px 0 0 1px #000,9px 0 0 1px #000,12px 0 0 1px #000,13px 0 0 1px #000,18px 0 0 1px #000,22px 0 0 1px #000,24px 0 0 1px #000,28px 0 0 1px #000,29px 0 0 1px #000,32px 0 0 1px #000,35px 0 0 1px #000,38px 0 0 1px #000,40px 0 0 1px #000,44px 0 0 1px #000,47px 0 0 1px #000,48px 0 0 1px #000,52px 0 0 1px #000,56px 0 0 1px #000,57px 0 0 1px #000,60px 0 0 1px #000;transform:translate(calc(var(--w) / 2 - 60px))}.dcard-symbol{position:absolute;top:1em;right:4px;rotate:185deg;font-size:.7em;color:#fff;line-height:.5;opacity:.15;z-index:1;pointer-events:none}.dcard-notes{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;font-size:3.5rem;color:#e7e7e7;mix-blend-mode:color-burn;transform:translateY(20%);z-index:1;pointer-events:none}.dcard-notes:nth-of-type(2){transform:translateY(40%)}.dcard-notes:nth-of-type(3){transform:translateY(60%)}.device-list{flex:1;overflow-y:auto;padding:4px 0 20px;display:flex;flex-direction:column;align-items:center}.ncard{--folder-W: 120px;--folder-H: 80px;--transition: .35s;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:10px;background:linear-gradient(135deg,#f162ba,#ed45ae);border-radius:15px;box-shadow:0 15px 30px #0003;height:calc(var(--folder-H) * 1.7);width:180px;position:relative;margin:8px auto;cursor:pointer;transition:opacity .3s,filter .3s;-webkit-tap-highlight-color:transparent}.ncard-disabled{opacity:.4;pointer-events:none}.ncard-dragging{filter:drop-shadow(0 0 20px rgba(109,93,244,.6))}.ncard-counter{position:absolute;top:-12px;right:-12px;background:#a18cd1;color:#fff;font-size:12px;font-weight:700;padding:2px 8px;border-radius:20px;display:flex;align-items:center;gap:5px;box-shadow:0 4px 12px #0000004d;z-index:10}.ncard-dot{width:6px;height:6px;background:#34d399;border-radius:50%;box-shadow:0 0 6px #34d399}.nfolder{position:absolute;top:-20px;left:calc(50% - 60px);animation:nfloat 2.5s infinite ease-in-out;transition:transform var(--transition) ease;transform-style:preserve-3d;perspective:800px}.nfolder:hover,.nfolder-dragging{animation-play-state:paused}@keyframes nfloat{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.nback{position:absolute;width:var(--folder-W);height:var(--folder-H);border-radius:15px;background:#fff;opacity:.5;transform-origin:bottom center;transition:transform var(--transition)}.nback-1,.nback-2{z-index:0}.ncard:hover .nback-1{transform:rotateX(-5deg) skew(5deg)}.ncard:hover .nback-2{transform:rotateX(-15deg) skew(12deg)}.nfront{position:relative;z-index:1;transform-origin:bottom center;transition:transform var(--transition)}.ncard:hover .nfront{transform:rotateX(-40deg) skew(15deg)}.ntip{background:linear-gradient(135deg,#ff9a56,#ff6f56);width:80px;height:20px;border-radius:12px 12px 0 0;box-shadow:0 5px 15px #0003;position:relative;top:2px;z-index:2}.ncover{background:linear-gradient(135deg,#ffe563,#ffc663);width:var(--folder-W);height:var(--folder-H);box-shadow:0 15px 30px #0000004d;border-radius:10px}.nupload{display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;color:#fff;background:#fff3;border:none;border-radius:10px;padding:10px 20px;width:100%;cursor:pointer;transition:background var(--transition) ease;position:relative;z-index:5}.nupload:hover{background:#fff6}.topbar{position:fixed;top:0;left:0;right:0;height:36px;background:var(--bg-secondary);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 12px;z-index:200;-webkit-user-select:none;user-select:none}.topbar-left{display:flex;align-items:center;gap:10px}.topbar-right{display:flex;align-items:center;gap:4px}.topbar-center{display:flex;align-items:center;gap:12px;flex:1;justify-content:center;min-width:0}.webapp-ws-status{font-size:11px;color:var(--text-dim);display:flex;align-items:center;gap:5px}.webapp-ws-status .status-dot-indicator{width:7px;height:7px}.webapp-topbar-peers{font-size:11px;color:var(--accent);display:flex;align-items:center;gap:5px;font-family:var(--font-mono);letter-spacing:.5px}.webapp-topbar-peers .status-dot-indicator{width:7px;height:7px;background:var(--green)}.topbar-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;color:var(--text-dim);transition:background .15s,color .15s}.topbar-btn:hover{background:var(--bg-card);color:var(--text)}.topbar-btn:disabled{pointer-events:none}.status-dot-indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0;transition:background .3s,box-shadow .3s}.status-dot-indicator.green{background:var(--green);box-shadow:0 0 6px var(--green)}.status-dot-indicator.yellow{background:var(--yellow);box-shadow:0 0 6px var(--yellow);animation:pulse-dot 1.5s ease-in-out infinite}.status-dot-indicator.red{background:var(--red);box-shadow:0 0 6px var(--red)}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.device-id-badge{font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:6px;font-family:var(--font-mono)}.os-icon{font-size:13px}.os-name{font-size:10px;color:var(--text-dim);padding:1px 5px;border-radius:4px;background:var(--bg-card)}.sidebar{padding-top:36px}.sidebar.web{padding-top:68px}.main{padding-top:36px}.main.web{padding-top:68px}.security-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:var(--green);background:var(--green-bg);padding:2px 8px;border-radius:20px;margin-top:6px;font-weight:500}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:300;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-dialog{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:24px;min-width:320px;max-width:400px;text-align:center;animation:slideUp .25s ease}.modal-narrow{min-width:280px}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-icon{width:48px;height:48px;border-radius:50%;background:var(--accent-bg);display:flex;align-items:center;justify-content:center;margin:0 auto 12px;color:var(--accent)}.modal-dialog h3{font-size:16px;font-weight:600;margin-bottom:8px}.modal-peer{font-size:13px;color:var(--text-muted);margin-bottom:12px}.modal-file-info{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;background:var(--bg-card);border-radius:var(--radius-sm);margin-bottom:16px}.modal-filename{font-size:13px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.modal-filesize{font-size:11px;color:var(--text-dim);font-family:var(--font-mono);flex-shrink:0}.modal-actions{display:flex;gap:8px;justify-content:center}.modal-btn{display:flex;align-items:center;gap:6px;padding:8px 20px!important;font-size:13px!important}.text-share-input{width:100%;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px;color:var(--text);resize:vertical;font-size:13px;margin:12px 0 16px;outline:none;transition:border-color .15s}.text-share-input:focus{border-color:var(--accent)}.tl-progress-info{display:flex;align-items:center;gap:8px}.tl-eta{font-size:11px;color:var(--text-dim);font-family:var(--font-mono)}.app-footer{padding:10px 20px;border-top:1px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;color:var(--text-dim);text-align:center}.footer-legal{font-weight:500;color:var(--text-muted)}.footer-links{display:flex;align-items:center;gap:6px}.footer-links a{color:var(--accent);text-decoration:none}.footer-links a:hover{text-decoration:underline}.footer-sep{color:var(--border)}.footer-disclaimer{font-size:10px;color:var(--text-dim)}.tl-just-done .tl-bullet{animation:pop-check .4s cubic-bezier(.34,1.56,.64,1)}@keyframes pop-check{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.tl-failed .tl-bullet{animation:shake-x .4s ease}@keyframes shake-x{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.tl-icon-check{color:var(--green)}.tl-icon-x{color:var(--red)}.tl-bullet-fail{border-color:var(--red)!important}.tl-done .tl-body:after{content:"檔案已儲存至 download/ 目錄";display:block;font-size:10px;color:var(--text-dim);margin-top:4px;opacity:.7}@media(max-width:768px){.sidebar{width:220px;min-width:220px}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.download-page{width:100%;height:100vh;overflow-y:auto;background:var(--bg);color:var(--text);display:flex;flex-direction:column;align-items:center}.download-topbar{position:fixed;top:12px;right:12px;z-index:100}.download-hero{text-align:center;padding:80px 20px 40px}.download-logo{font-family:Chelsea Market,cursive;font-size:48px;font-weight:400;letter-spacing:-1px;margin-bottom:12px}.download-logo span{color:var(--accent)}.download-tagline{font-size:16px;color:var(--text-dim);margin-bottom:20px}.feature-bar{display:flex;justify-content:center;gap:0;margin-top:24px}.feature-item{font-size:13px;font-weight:700;padding:10px 20px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3);letter-spacing:.5px}.feature-e2e{background:#ff6b6b;border-radius:8px 0 0 8px}.feature-stream{background:#ffa502}.feature-auto{background:#2ed573;border-radius:0 8px 8px 0}.download-section{max-width:560px;width:100%;padding:0 20px 40px}.download-section h2{font-size:22px;font-weight:600;margin-bottom:6px}.download-sub{font-size:14px;color:var(--text-dim);margin-bottom:24px}.download-loading{text-align:center;padding:40px;color:var(--text-dim)}.download-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:16px}.download-web-card{border-color:var(--accent);border-style:dashed}.download-btn-web{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}.download-btn-web:hover{opacity:.9}.download-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.download-version{font-size:16px;font-weight:600}.download-date{font-size:12px;color:var(--text-dim)}.download-card-body{margin-bottom:16px}.download-note{font-size:13px;color:var(--text-muted);line-height:1.6;margin:0}.download-assets{display:flex;flex-direction:column;gap:8px}.download-btn{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:8px;background:var(--bg-card);border:1px solid var(--border);text-decoration:none;color:var(--text);transition:background .15s,border-color .15s}.download-btn:hover{background:var(--accent-bg);border-color:var(--accent)}.download-btn-icon{font-size:20px;width:36px;height:36px;border-radius:8px;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.download-btn-text{flex:1;font-size:14px;font-weight:500;display:flex;justify-content:space-between;align-items:center;gap:8px}.download-btn-size{font-size:12px;color:var(--text-dim);font-family:var(--font-mono);flex-shrink:0}.download-bottom{text-align:center;padding:20px}.download-gh-link{font-size:14px;color:var(--accent);text-decoration:none}.download-gh-link:hover{text-decoration:underline}.download-footer{text-align:center;padding:20px;font-size:12px;color:var(--text-dim);display:flex;flex-direction:column;gap:4px}.download-footer-links{font-size:12px}.download-footer-links a{color:var(--accent);text-decoration:none}.download-footer-links a:hover{text-decoration:underline}.download-footer-sep{margin:0 6px;color:var(--border)}.privacy-group{display:flex;flex-direction:column;gap:4px;margin:12px 0}.privacy-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;cursor:pointer;border-bottom:1px solid var(--border);gap:12px}.privacy-row span{display:flex;flex-direction:column;gap:2px;min-width:0}.privacy-row strong{font-size:13px;font-weight:500;color:var(--text)}.privacy-row small{font-size:11px;color:var(--text-dim)}.privacy-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);flex-shrink:0}.privacy-row input[type=checkbox]:disabled{opacity:.3}.privacy-note{font-size:12px;color:var(--text-dim);text-align:center;margin:12px 0;line-height:1.5}.web-banner{position:fixed;top:36px;left:0;right:0;height:28px;background:linear-gradient(135deg,#6d5df4,#f162ba);display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;color:#fff;z-index:199;font-weight:500;cursor:pointer;transition:opacity .15s}.web-banner:hover{opacity:.9}.cookie-banner{position:fixed;bottom:0;left:0;right:0;background:var(--bg-secondary);border-top:1px solid var(--border);padding:12px 20px;display:flex;align-items:center;justify-content:center;gap:12px;z-index:500;font-size:13px;color:var(--text-muted);flex-wrap:wrap;text-align:center}.cookie-banner .btn{flex-shrink:0}.guide-dialog{max-width:440px;text-align:left}.guide-steps{list-style:decimal;padding:0 0 0 20px;margin:12px 0;display:flex;flex-direction:column;gap:10px}.guide-steps li{font-size:13px;color:var(--text-muted);line-height:1.4}.guide-steps li strong{display:block;font-size:14px;color:var(--text);margin-bottom:2px}.guide-steps li span{font-size:12px;color:var(--text-dim)}.guide-extra{font-size:12px;color:var(--green);background:var(--green-bg);padding:8px 12px;border-radius:var(--radius-sm);margin:8px 0 12px}.guide-extra p{margin:0}.guide-actions{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.guide-dont-show{font-size:12px;color:var(--text-dim);display:flex;align-items:center;gap:6px;cursor:pointer}.guide-dont-show input{accent-color:var(--accent)}.qrcode-wrapper{display:flex;justify-content:center;margin:16px 0}.qrcode-wrapper canvas{border-radius:8px}.qrcode-label{font-size:13px;color:var(--text-muted);text-align:center;font-family:var(--font-mono);margin-bottom:12px}.qrcode-error{font-size:14px;color:var(--text-dim);text-align:center;padding:40px 20px}.webapp-root{min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font-family:var(--font-body, ui-sans-serif, system-ui, sans-serif)}.webapp-wordmark{font-size:18px;font-weight:700;letter-spacing:-.5px;font-family:var(--font-mono)}.webapp-wordmark span{color:var(--accent)}.webapp-tag{font-size:10px;padding:2px 7px;border-radius:999px;background:var(--accent);color:var(--bg);font-weight:600;letter-spacing:.3px;margin-left:6px;vertical-align:middle}.webapp-layout{display:flex;flex:1;min-height:0}.webapp-panel{width:340px;flex-shrink:0;border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;background:var(--bg-secondary)}.webapp-section{padding:16px 18px;border-bottom:1px solid var(--border)}.webapp-section:last-child{border-bottom:none;flex:1}.webapp-section-label{font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:10px;display:flex;align-items:center;gap:6px}.webapp-myid{font-size:28px;font-weight:700;font-family:var(--font-mono);letter-spacing:4px;color:var(--accent);margin-bottom:12px;word-break:break-all}.webapp-id-btns{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.webapp-idbtn{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text);cursor:pointer;transition:border-color .15s,background .15s;font-family:inherit}.webapp-idbtn:hover{border-color:var(--accent);background:var(--accent-bg)}.webapp-copy-toast{font-size:12px;color:var(--accent);margin-bottom:6px;font-weight:600}.webapp-id-hint{font-size:12px;color:var(--text-dim);line-height:1.5;margin:0}.webapp-id-loading{font-size:13px;color:var(--text-muted);padding:8px 0}.webapp-muted{color:var(--text-muted)}.webapp-err{font-size:12px;color:var(--red);margin-top:8px}.webapp-ble-status{font-size:12px;color:var(--text);margin-top:8px;padding:6px 10px;border-radius:6px;background:var(--bg-card);line-height:1.4}.webapp-ble-unavail{padding:8px 0}.webapp-connect-form{display:flex;flex-direction:column;gap:8px}.webapp-input{width:100%;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:14px;font-family:var(--font-mono);letter-spacing:3px;box-sizing:border-box;transition:border-color .15s}.webapp-input:focus{outline:none;border-color:var(--accent)}.webapp-input:disabled{opacity:.5}.webapp-connect-btn{padding:8px 16px;border-radius:var(--radius-sm);border:none;background:var(--accent);color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s;font-family:inherit}.webapp-connect-btn:disabled{opacity:.35;cursor:not-allowed}.webapp-connect-btn:hover:not(:disabled){background:var(--accent-hover)}.webapp-connected-box{display:flex;flex-direction:column;gap:10px}.webapp-connected-row{display:flex;align-items:center;gap:8px;font-size:15px;font-family:var(--font-mono);font-weight:600;letter-spacing:2px}.webapp-connected-id{color:var(--accent)}.webapp-disc-btn{padding:5px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-dim);font-size:12px;cursor:pointer;font-family:inherit;transition:color .15s,border-color .15s,background .15s;align-self:flex-start}.webapp-disc-btn:hover{color:var(--red);border-color:var(--red);background:var(--red-bg)}.webapp-how{background:transparent}.webapp-steps{margin:0 0 14px;padding-left:20px;font-size:13px;color:var(--text-muted);line-height:1.9}.webapp-steps li{margin-bottom:2px}.webapp-e2e-note{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--text-dim);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:5px 9px}.webapp-bg{position:fixed;left:340px;right:0;top:0;bottom:0;overflow:hidden;pointer-events:none;z-index:0;background-image:repeating-linear-gradient(0deg,transparent,transparent 19px,rgba(75,85,99,.08) 19px,rgba(75,85,99,.08) 20px,transparent 20px,transparent 39px,rgba(75,85,99,.08) 39px,rgba(75,85,99,.08) 40px),repeating-linear-gradient(90deg,transparent,transparent 19px,rgba(75,85,99,.08) 19px,rgba(75,85,99,.08) 20px,transparent 20px,transparent 39px,rgba(75,85,99,.08) 39px,rgba(75,85,99,.08) 40px),radial-gradient(circle at 20px 20px,rgba(55,65,81,.12) 2px,transparent 2px),radial-gradient(circle at 40px 40px,rgba(55,65,81,.12) 2px,transparent 2px);background-size:40px 40px,40px 40px,40px 40px,40px 40px;background-color:transparent}.webapp-main{flex:1;display:flex;flex-direction:column;position:relative;min-height:0;background:transparent}.webapp-main-scroll{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow-y:auto;padding:20px 32px;position:relative;z-index:1;min-height:0}.webapp-main-center{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:16px}.webapp-mlogo{display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:4px;-webkit-user-select:none;user-select:none;text-shadow:0 0 20px rgba(255,255,255,.8)}.webapp-mlogo-main{font-family:Chelsea Market,cursive;font-size:36px;font-weight:400;color:var(--accent);letter-spacing:-.5px;line-height:1}.webapp-mlogo-sub{font-size:12px;color:var(--text-dim);letter-spacing:2px}.webapp-mstatus{display:flex;align-items:center;gap:8px;padding:6px 14px;background:var(--bg-secondary);border-radius:999px;font-size:12px;color:var(--text-muted);margin-bottom:8px}.webapp-dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:44px 24px;display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer;transition:border-color .2s,background .2s;text-align:center;width:100%;box-sizing:border-box}.webapp-dropzone:hover:not(.dz-disabled){border-color:var(--accent);background:var(--accent-bg)}.webapp-dropzone.dz-over{border-color:var(--accent);background:var(--accent-bg);border-style:solid}.webapp-dropzone.dz-enabled{background:linear-gradient(135deg,var(--accent-bg) 0%,transparent 100%)}.webapp-dropzone.dz-disabled{cursor:default}.dz-icon{color:var(--accent)}.dz-icon-dim{color:var(--text-dim);opacity:.35}.dz-label{font-size:15px;font-weight:500;color:var(--text)}.dz-label-dim{color:var(--text-dim);opacity:.4}.dz-hint{font-size:13px;color:var(--text-dim)}.dz-hint-dim{opacity:.3}.dz-text-btn{display:inline-flex;align-items:center;gap:5px;margin-top:4px;padding:6px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:12px;cursor:pointer;font-family:inherit;transition:border-color .15s,background .15s}.dz-text-btn:hover{border-color:var(--accent);background:var(--accent-bg)}.webapp-history{flex:1}.webapp-history-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 6px;font-size:12px;font-weight:600}.webapp-history-clear{background:none;border:none;color:var(--text-dim);font-size:11px;cursor:pointer;padding:2px 6px;border-radius:4px;transition:color .15s,background .15s}.webapp-history-clear:hover{color:var(--red);background:var(--red-bg)}.webapp-history-col{display:flex;flex-direction:column;gap:8px}.webapp-col-title{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--text-dim);margin-bottom:4px}.webapp-col-count{background:var(--bg-secondary);border-radius:999px;padding:1px 6px;font-size:10px;font-weight:600}.webapp-col-empty{font-size:12px;color:var(--text-muted);padding:12px;border:1px dashed var(--border);border-radius:8px;text-align:center}.webapp-tx{background:var(--bg-secondary);border-radius:var(--radius-sm);padding:10px 14px;display:flex;flex-direction:column;gap:6px;transition:background .15s}.webapp-tx:hover{background:var(--bg-card)}.webapp-tx.done{border-left:3px solid var(--green)}.webapp-tx.error{border-left:3px solid var(--red)}.webapp-tx-row{display:flex;align-items:center;gap:10px}.webapp-tx-icon{width:28px;height:28px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0}.webapp-tx-icon.file-blue{background:#3b82f6}.webapp-tx-icon.file-green{background:#22c55e}.webapp-tx-icon.file-purple{background:#a855f7}.webapp-tx-icon.file-orange{background:#f97316}.webapp-tx-icon.file-yellow{background:#eab308}.webapp-tx-icon.file-indigo{background:#6366f1}.webapp-tx-icon.file-red{background:#ef4444}.webapp-tx-icon.file-sky{background:#06b6d4}.webapp-tx-icon.file-gray{background:#6b7280}.webapp-tx-body{flex:1;min-width:0}.webapp-tx-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.webapp-tx-meta{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-dim)}.webapp-tx-badge{padding:1px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:500}.webapp-tx-badge.transferring{background:var(--accent-bg);color:var(--accent)}.webapp-tx-badge.done{background:var(--green-bg);color:var(--green)}.webapp-tx-badge.error{background:var(--red-bg);color:var(--red)}.webapp-tx-bar{height:4px;border-radius:2px;background:var(--border);overflow:hidden}.webapp-tx-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .2s}.webapp-dl-btn{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--accent);text-decoration:none;font-weight:600}.webapp-dl-btn:hover{text-decoration:underline}.webapp-tx-err{font-size:11px;color:#f87171}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.green{background:#4ade80}.status-dot.yellow{background:#facc15}.status-dot.red{background:#f87171}.webapp-history-section{width:100%;margin-top:8px}.webapp-history-inner{display:grid;grid-template-columns:1fr 1fr;gap:16px}.status-dot-indicator{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-dot-indicator.green{background:#4ade80;box-shadow:0 0 4px #4ade80}.status-dot-indicator.yellow{background:#facc15;box-shadow:0 0 4px #facc15}.main-toggle{position:relative;display:block;width:90px;height:40px;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.main-checkbox{display:none}.main-track{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#2ecc71;border:4px solid #000000;box-sizing:border-box;box-shadow:inset 2px 2px #0000001a;transition:background-color .3s ease}.main-knob{position:absolute;top:50%;left:0;transform:translate(-4px,-50%);width:40px;height:46px;background:#fff;border:4px solid #000000;box-shadow:3px 3px #000;display:flex;align-items:center;justify-content:center;z-index:2;transition:transform .3s cubic-bezier(.7,-.4,.4,1.4)}.main-toggle:active .main-knob{box-shadow:1px 1px #000;margin-top:2px;margin-left:2px}.main-knob:after{content:":)";font-weight:900;font-size:24px;color:#000;transform:rotate(90deg)}.main-checkbox:checked+.main-track{background-color:#e74c3c}.main-checkbox:checked~.main-knob{transform:translate(50px,-50%)}.main-checkbox:checked~.main-knob:after{content:":("}.ble-btn-wrapper{position:relative;transform-style:preserve-3d;transition:transform .2s ease;padding:8px 0;display:flex;justify-content:center}.ble-spiderverse-btn{position:relative;padding:8px 20px;font-size:16px;font-weight:900;border:none;border-radius:50px;cursor:pointer;background:#fff;color:#000;text-transform:uppercase;letter-spacing:3px;transform-style:preserve-3d;transition:all .15s ease;font-family:Arial,sans-serif}.ble-glitch-text{position:relative;display:inline-block}.ble-glitch-layers{position:absolute;top:0;left:0;width:100%;height:100%}.ble-glitch-layer{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:50px;opacity:0;transition:all .15s ease;pointer-events:none;mix-blend-mode:screen}.ble-layer-1{color:#0ff;transform-origin:center}.ble-layer-2{color:#f0f;transform-origin:center}.ble-btn-wrapper:hover .ble-layer-1{opacity:1;animation:bleGlitchLayer1 .4s steps(2) infinite}.ble-btn-wrapper:hover .ble-layer-2{opacity:1;animation:bleGlitchLayer2 .4s steps(2) infinite}.ble-btn-wrapper:hover .ble-spiderverse-btn{animation:bleButtonGlitch .3s steps(2) infinite;box-shadow:0 0 20px #ffffff80,0 0 30px #00ffff80,0 0 40px #ff00ff80}.ble-noise{position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:48px;background:repeating-radial-gradient(circle at 50% 50%,transparent 0,rgba(0,0,0,.06) 1px,transparent 2px);pointer-events:none;opacity:0;transition:opacity .3s;animation:bleNoise .2s steps(2) infinite}.ble-btn-wrapper:hover .ble-noise{opacity:1}@keyframes bleButtonGlitch{0%{transform:translate(0) scale(1.1)}25%{transform:translate(-10px,5px) scale(1.15) skew(-5deg)}50%{transform:translate(10px,-5px) scale(1.1) skew(5deg)}75%{transform:translate(-15px,-5px) scale(1.05) skew(-3deg)}to{transform:translate(0) scale(1.1)}}@keyframes bleGlitchLayer1{0%{transform:translate(-20px,-10px) scale(1.1) skew(-10deg);clip-path:polygon(0 20%,100% 20%,100% 50%,0 50%)}25%{transform:translate(20px,10px) scale(1.2) skew(10deg);clip-path:polygon(0 30%,100% 30%,100% 60%,0 60%)}50%{transform:translate(-15px,5px) scale(.9) skew(-5deg);clip-path:polygon(0 10%,100% 10%,100% 40%,0 40%)}75%{transform:translate(15px,-5px) scale(1.3) skew(5deg);clip-path:polygon(0 40%,100% 40%,100% 70%,0 70%)}to{transform:translate(-20px,-10px) scale(1.1) skew(-10deg);clip-path:polygon(0 20%,100% 20%,100% 50%,0 50%)}}@keyframes bleGlitchLayer2{0%{transform:translate(20px,10px) scale(1.1) skew(10deg);clip-path:polygon(0 50%,100% 50%,100% 80%,0 80%)}25%{transform:translate(-20px,-10px) scale(1.2) skew(-10deg);clip-path:polygon(0 60%,100% 60%,100% 90%,0 90%)}50%{transform:translate(15px,-5px) scale(.9) skew(5deg);clip-path:polygon(0 40%,100% 40%,100% 70%,0 70%)}75%{transform:translate(-15px,5px) scale(1.3) skew(-5deg);clip-path:polygon(0 70%,100% 70%,100% 100%,0 100%)}to{transform:translate(20px,10px) scale(1.1) skew(10deg);clip-path:polygon(0 50%,100% 50%,100% 80%,0 80%)}}@keyframes bleNoise{0%{transform:translate(0)}10%{transform:translate(-5%,-5%)}20%{transform:translate(10%,5%)}30%{transform:translate(-5%,10%)}40%{transform:translate(15%,-5%)}50%{transform:translate(-10%,15%)}60%{transform:translate(5%,-10%)}70%{transform:translate(-15%,5%)}80%{transform:translate(10%,10%)}90%{transform:translate(-5%,15%)}to{transform:translate(0)}}@media(max-width:640px){.webapp-layout{flex-direction:column}.webapp-panel{width:100%;max-width:none;border-right:none;border-bottom:1px solid var(--border)}.webapp-history-row{grid-template-columns:1fr}.webapp-main{padding:16px}}.webapp-static-root{min-height:100vh}.webapp-static-body{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:48px 24px;text-align:center;min-height:calc(100vh - 56px);gap:16px}.webapp-static-icon{color:var(--text-dim);opacity:.4;margin-bottom:8px}.webapp-static-title{font-size:22px;font-weight:700;margin:0;color:var(--text)}.webapp-static-desc{font-size:14px;color:var(--text-muted);line-height:1.7;max-width:420px;margin:0}.webapp-static-btns{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:8px}.webapp-static-btn-primary{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:8px;background:var(--accent);color:var(--bg);font-size:14px;font-weight:700;text-decoration:none;transition:opacity .15s}.webapp-static-btn-primary:hover{opacity:.85}.webapp-static-btn-ghost{display:inline-flex;align-items:center;padding:10px 20px;border-radius:8px;border:1px solid var(--border);color:var(--text-dim);font-size:14px;text-decoration:none;transition:border-color .15s,color .15s}.webapp-static-btn-ghost:hover{border-color:var(--accent);color:var(--text)}.modal-wide{min-width:420px;max-width:560px}.text-preview{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;font-size:13px;line-height:1.6;color:var(--text);white-space:pre-wrap;word-break:break-all;overflow-wrap:break-word;max-height:300px;overflow-y:auto;text-align:left;margin:12px 0 16px;font-family:var(--font-mono)}.dz-text-btn{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:6px 14px;border-radius:8px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text);font-size:13px;cursor:pointer;transition:border-color .15s,background .15s;font-family:inherit}.dz-text-btn:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.webapp-bt-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}.webapp-bt-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);padding:8px 10px;background:var(--bg-secondary);border-radius:var(--radius-sm);transition:background .15s}.webapp-bt-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.webapp-bt-name{font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.webapp-bt-peer{font-size:11px;color:var(--accent);font-family:var(--font-mono);letter-spacing:1px;font-weight:600}.webapp-bt-connect-btn{flex-shrink:0;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text);font-size:11px;cursor:pointer;font-family:inherit;transition:border-color .15s,background .15s}.webapp-bt-connect-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-bg)}.webapp-bt-connect-btn:disabled{opacity:.4;cursor:default}.webapp-bt-remove{flex-shrink:0;width:20px;height:20px;border-radius:4px;border:none;background:transparent;color:var(--text-dim);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center}.webapp-bt-remove:hover{background:var(--red-bg);color:var(--red)}.webapp-bt-item.online-peer{cursor:pointer;transition:border-color .15s,background .15s}.webapp-footer{border-top:1px solid var(--border);padding:10px 18px;flex-shrink:0;background:var(--bg-secondary)}.webapp-footer-inner{display:flex;align-items:center;gap:12px;font-size:11px;color:var(--text-dim);max-width:900px;margin:0 auto}.webapp-footer-brand{font-weight:600;font-family:var(--font-mono);color:var(--text)}.webapp-footer-brand span{color:var(--accent)}.webapp-footer-ver{font-weight:400;color:var(--text-dim);font-size:10px}.webapp-footer-tag{color:var(--text-dim)}.webapp-footer-links{margin-left:auto;display:flex;gap:6px}.webapp-footer-links a{color:var(--text-dim);text-decoration:none}.webapp-footer-links a:hover{color:var(--accent);text-decoration:underline}.webapp-footer-sep{color:var(--border)}.webapp-bt-item.online-peer:hover{border-color:var(--accent);background:var(--accent-bg)}.webapp-bt-connected-tag{flex-shrink:0;font-size:10px;color:var(--green);font-weight:600;background:var(--green-bg);padding:2px 8px;border-radius:999px}
