.react-grid-layout{transition:height .2s;position:relative}.react-grid-item{transition:left .2s,top .2s,width .2s,height .2s}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{z-index:1;will-change:width, height;transition:none}.react-grid-item.react-draggable-dragging{z-index:3;will-change:transform;transition:none}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{opacity:.2;z-index:2;-webkit-user-select:none;user-select:none;background:red;transition-duration:.1s}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{opacity:0;width:20px;height:20px;position:absolute}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";border-bottom:2px solid #0006;border-right:2px solid #0006;width:5px;height:5px;position:absolute;bottom:3px;right:3px}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{cursor:sw-resize;bottom:0;left:0;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{cursor:nw-resize;top:0;left:0;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{cursor:ne-resize;top:0;right:0;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{cursor:ew-resize;margin-top:-10px;top:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{cursor:ns-resize;margin-left:-10px;left:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:100% 100%;background-repeat:no-repeat;background-origin:content-box;width:20px;height:20px;padding:0 3px 3px 0;position:absolute}.react-resizable-handle-sw{cursor:sw-resize;bottom:0;left:0;transform:rotate(90deg)}.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-resizable-handle-nw{cursor:nw-resize;top:0;left:0;transform:rotate(180deg)}.react-resizable-handle-ne{cursor:ne-resize;top:0;right:0;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{cursor:ew-resize;margin-top:-10px;top:50%}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{cursor:ns-resize;margin-left:-10px;left:50%}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}:root{--bg:#eee;--bg-elevated:#fff;--bg-hover:#f5f5f5;--border:#ddd;--text:#333;--text-dim:#777;--primary:#4a90e2;--primary-soft:#4a90e21a;--danger:#d9534f;--radius:.06rem;--shadow:0 .01rem .03rem #00000014}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#c1c1c1 transparent}::-webkit-scrollbar{width:.08rem;height:.08rem}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#c1c1c1 padding-box content-box;border:.02rem solid #0000;border-radius:.04rem}::-webkit-scrollbar-thumb:hover{background:#a1a1a1 padding-box content-box}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-button{width:0;height:0;display:none}html,body,#root{background:var(--bg);min-height:100%;color:var(--text);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:.14rem;line-height:1.5}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}.app{flex-direction:column;min-height:100vh;display:flex}.app__header{background:var(--bg-elevated);border-bottom:.01rem solid var(--border);z-index:100;align-items:center;gap:.24rem;height:.56rem;padding:0 .24rem;font-size:.18rem;display:flex;position:sticky;top:0}.app__logo{color:var(--primary);align-items:center;gap:.08rem;font-weight:600;display:flex}.app__nav{gap:.04rem;display:flex}.app__nav a{color:var(--text-dim);border-radius:.06rem;padding:.06rem .12rem;transition:all .15s}.app__nav a:hover{color:var(--text);background:var(--bg-hover)}.app__nav a.active{color:var(--primary);background:var(--primary-soft)}.app__main{flex-direction:column;flex:1;width:100%;margin:0 auto;display:flex}.app__actions{align-items:center;gap:.08rem;margin-left:auto;display:flex}.dashboard{position:relative}.btn{border:.01rem solid var(--border);background:var(--bg-elevated);color:var(--text);cursor:pointer;border-radius:.08rem;align-items:center;gap:.06rem;padding:.07rem .14rem;font-size:.14rem;transition:transform 80ms,filter .15s,background .15s,box-shadow .15s;display:inline-flex}.btn:hover{background:var(--bg-hover)}.btn:active{filter:brightness(.95);transform:scale(.96)}.btn--primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn--primary:hover{filter:brightness(1.1)}.btn--primary:active{filter:brightness(.9)}.btn--ghost{background:0 0}.rgl-card{width:100%;height:100%;position:relative}.rgl-card__remove{border:.01rem solid var(--border);width:.2rem;height:.2rem;color:var(--text-dim);z-index:5;background:#fff;border-radius:.04rem;justify-content:center;align-items:center;display:none;position:absolute;top:.06rem;right:.06rem}.rgl-card__remove:hover{background:var(--danger);border-color:var(--danger);color:#fff}.rgl-card:hover .rgl-card__remove{display:flex}.dashboard .mini-tool__header{cursor:move}.mini-tool{background:var(--bg-elevated);border:.01rem solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.08rem;height:100%;padding:.1rem .12rem;display:flex;overflow:hidden}.mini-tool__header{flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.mini-tool__title{color:var(--text);align-items:center;gap:.06rem;font-size:.14rem;font-weight:600;display:flex}.mini-tool__expand{color:var(--text-dim);border-radius:.04rem;padding:.02rem;display:flex}.mini-tool__expand:hover{color:var(--primary);background:var(--primary-soft)}.mini-tool__input{border:.01rem solid var(--border);min-height:.4rem;color:var(--text);resize:none;background:#fafafa;border-radius:.04rem;flex:1;padding:.08rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.14rem}.mini-tool__input:focus{border-color:var(--primary);outline:none}.mini-tool__bar{align-items:center;gap:.08rem;display:flex}.mini-tool__bar button{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:.04rem;padding:.04rem .12rem;font-size:.14rem;transition:transform 80ms,filter .15s}.mini-tool__bar button:hover{filter:brightness(1.1)}.mini-tool__bar button:active{filter:brightness(.9);transform:scale(.95)}.mini-tool__error{color:var(--danger);font-size:.11rem}.mini-tool__output{border:.01rem solid var(--border);min-height:.4rem;color:var(--text);resize:none;background:#fafafa;border-radius:.04rem;flex:1;margin:0;padding:.08rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.14rem;overflow:auto}.mini-tool__output:focus{border-color:var(--primary);outline:none}.mini-tool__placeholder{color:var(--text-dim);flex-direction:column;flex:1;justify-content:center;gap:.04rem;font-size:.14rem;display:flex}.mini-tool__placeholder p{margin:0}.mini-tool__soon{opacity:.6;font-size:.11rem}.tool-card{background:var(--bg-elevated);border:.01rem solid var(--border);border-radius:var(--radius);align-items:center;gap:.14rem;height:100%;padding:.18rem;transition:all .15s;display:flex}.tool-card:hover{border-color:var(--primary);box-shadow:var(--shadow);transform:translateY(-.02rem)}.tool-card__icon{background:var(--primary-soft);width:.42rem;height:.42rem;color:var(--primary);border-radius:.1rem;flex-shrink:0;justify-content:center;align-items:center;display:flex}.tool-card__body{flex:1;min-width:0}.tool-card__body h3{margin:0 0 .04rem;font-size:.14rem;font-weight:600}.tool-card__body p{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.14rem;overflow:hidden}.diff-inputs{flex:1;grid-template-rows:1fr;grid-template-columns:1fr .14rem 1fr;gap:0;min-height:0;display:grid}.diff-inputs .diff-rail{border-radius:0}.diff-inputs .diff-rail__thumb{border-radius:.06rem;left:.03rem;right:.03rem}.diff-pane{border:.01rem solid var(--border);background:var(--bg-elevated);border-radius:.08rem;min-height:3.2rem;position:relative;overflow:hidden}.diff-pane__pre,.diff-pane__ta{white-space:pre-wrap;word-break:break-all;box-sizing:border-box;margin:0;padding:.14rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.14rem;line-height:1.6}.diff-pane__pre{color:var(--text);pointer-events:none;position:absolute;inset:0;overflow:hidden}.diff-pane__ta{resize:none;color:#0000;-webkit-text-fill-color:transparent;width:100%;height:100%;caret-color:var(--primary);scrollbar-width:none;background:0 0;border:none;outline:none;position:absolute;inset:0;overflow:auto}.diff-pane__ta::-webkit-scrollbar{width:0;height:0}.diff-pane__ta::placeholder{color:var(--text-dim);-webkit-text-fill-color:var(--text-dim)}.diff-pane__ln{min-height:1.6em;display:block}.diff-pane__ln--del,.diff-pane__ln--chg{color:#cf222e;background:#ffebe9}.diff-pane__ln--add{color:#1a7f37;background:#e6ffec}.diff-pane--compact{border-radius:.04rem;min-height:0}.diff-pane--compact .diff-pane__pre,.diff-pane--compact .diff-pane__ta{padding:.08rem;font-size:.12rem;line-height:1.5}.diff-pane--compact .diff-pane__ln{min-height:1.5em}.diff-page{flex-direction:column;flex:1;min-height:0;padding-bottom:.16rem;display:flex}.diff-rail{cursor:pointer;touch-action:none;background:#ececec;border-radius:.06rem;position:relative}.diff-rail__thumb{background:#bdbdbd;border-radius:.06rem;transition:background .15s;position:absolute;top:0;left:.02rem;right:.02rem}.diff-rail__thumb:hover{background:#9e9e9e}.qr-preview{border:.01rem solid var(--border);background:#fafafa;border-radius:.04rem;flex:1;justify-content:center;align-items:center;min-height:.6rem;padding:.08rem;display:flex;overflow:hidden}.qr-preview img{max-width:100%;max-height:100%;image-rendering:pixelated}.qr-card__input{border:.01rem solid var(--border);height:.32rem;color:var(--text);background:#fafafa;border-radius:.04rem;outline:none;flex-shrink:0;padding:0 .1rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.12rem}.qr-card__input:focus{border-color:var(--primary)}.qr-card__body{flex:1;grid-template-columns:auto 1fr;gap:.08rem;min-height:0;display:grid;overflow:hidden}.qr-card__preview{border:.01rem solid var(--border);background:#fafafa;border-radius:.04rem;justify-content:center;align-items:center;min-width:.8rem;min-height:.8rem;padding:.06rem;display:flex}.qr-card__preview img{max-width:100%;max-height:100%;image-rendering:pixelated}.qr-card__history{border:.01rem solid var(--border);background:#fafafa;border-radius:.04rem;flex-direction:column;min-width:0;display:flex;overflow:hidden}.qr-card__history-empty{color:var(--text-dim);text-align:center;padding:.08rem;font-size:.11rem}.qr-card__history-list{flex:1;margin:0;padding:.04rem;list-style:none;overflow-y:auto}.qr-card__history-item{color:var(--text);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:.03rem;padding:.04rem .06rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.11rem;transition:background .15s;overflow:hidden}.qr-card__history-item:hover{background:var(--bg-elevated)}.qr-card__history-item.active{background:var(--primary);color:#fff}.qr-page__input{border:.01rem solid var(--border);height:.4rem;color:var(--text);background:#fafafa;border-radius:.08rem;outline:none;flex-shrink:0;padding:0 .14rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.14rem}.qr-page__input:focus{border-color:var(--primary)}.qr-page__body{flex:1;grid-template-columns:3.6rem 1fr;gap:.16rem;min-height:0;margin-top:.16rem;display:grid}.qr-page__preview{border:.01rem solid var(--border);background:#fafafa;border-radius:.08rem;justify-content:center;align-items:center;min-width:0;padding:.16rem;display:flex}.qr-page__preview img{max-width:100%;max-height:100%;image-rendering:pixelated}.qr-page__history{border:.01rem solid var(--border);background:#fafafa;border-radius:.08rem;flex-direction:column;min-width:0;display:flex;overflow:hidden}.qr-page__history-empty{color:var(--text-dim);text-align:center;padding:.16rem;font-size:.13rem}.qr-page__history-list{flex:1;margin:0;padding:.08rem;list-style:none;overflow-y:auto}.qr-page__history-item{color:var(--text);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:.06rem;padding:.08rem .1rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.13rem;overflow:hidden}.qr-page__history-item:hover{background:var(--bg-elevated)}.qr-page__history-item.active{background:var(--primary);color:#fff}.qr-tabs{background:var(--bg-elevated);border:.01rem solid var(--border);border-radius:.06rem;margin-bottom:.2rem;padding:.03rem;display:inline-flex}.qr-tabs button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:.04rem;padding:.06rem .16rem;font-size:.13rem}.qr-tabs button.active{background:var(--primary);color:#fff}.qr-gen{flex-direction:column;gap:.2rem;display:flex}.qr-gen__form{flex-direction:column;gap:.12rem;display:flex}.qr-gen__input{background:var(--bg-elevated);border:.01rem solid var(--border);color:var(--text);border-radius:.04rem;outline:none;padding:.1rem .12rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.13rem;transition:border-color .2s}.qr-gen__input:focus{border-color:var(--primary)}.qr-gen__row{flex-wrap:wrap;align-items:center;gap:.2rem;display:flex}.qr-gen__row label{color:var(--text-dim);align-items:center;gap:.08rem;font-size:.13rem;display:flex}.qr-gen__row input[type=color]{border:.01rem solid var(--border);cursor:pointer;border-radius:.04rem;width:.36rem;height:.28rem;padding:.02rem}.qr-gen__row input[type=range]{width:1.2rem}.qr-gen__row-label{flex:1;min-width:1.8rem}.qr-gen__download{margin-left:auto}.qr-gen__content{grid-template-columns:1fr 2.6rem;align-items:start;gap:.2rem;display:grid}.qr-gen__preview{background:var(--bg-elevated);border:.01rem solid var(--border);border-radius:.04rem;justify-content:center;align-items:center;min-height:3.2rem;padding:.2rem;display:flex}.qr-gen__preview img{max-width:100%;max-height:4rem;image-rendering:pixelated}.qr-gen__history{border:.01rem solid var(--border);background:var(--bg-elevated);border-radius:.04rem;flex-direction:column;max-height:3.6rem;display:flex}.qr-gen__history-header{color:var(--text);border-bottom:.01rem solid var(--border);background:var(--bg);border-radius:.04rem .04rem 0 0;padding:.1rem .14rem;font-size:.13rem;font-weight:600}.qr-gen__history-empty{color:var(--text-dim);text-align:center;padding:.24rem .14rem;font-size:.12rem}.qr-gen__history-list{flex:1;margin:0;padding:.04rem;list-style:none;overflow-y:auto}.qr-gen__history-item{cursor:pointer;border-radius:.04rem;flex-direction:column;gap:.02rem;padding:.08rem .1rem;transition:background .15s;display:flex}.qr-gen__history-item:hover{background:var(--bg)}.qr-gen__history-item.active{background:var(--primary);color:#fff}.qr-gen__history-item.active .qr-gen__history-time{opacity:.8}.qr-gen__history-text{white-space:nowrap;text-overflow:ellipsis;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.12rem;overflow:hidden}.qr-gen__history-time{color:var(--text-dim);opacity:.7;font-size:.11rem}.qr-decode{flex-direction:column;gap:.16rem;display:flex}.qr-decode__result{flex-direction:column;gap:.08rem;display:flex}.qr-decode__result textarea{background:var(--bg-elevated);border:.01rem solid var(--border);color:var(--text);border-radius:.04rem;padding:.1rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.13rem}.add-panel{background:var(--bg-elevated);border-left:.01rem solid var(--border);z-index:90;width:2.8rem;padding:.2rem;position:fixed;top:.56rem;bottom:0;right:0;overflow-y:auto}.add-panel h3{margin:0 0 .04rem}.add-panel__hint{color:var(--text-dim);margin:0 0 .16rem;font-size:.14rem}.add-panel__list{flex-direction:column;gap:.08rem;margin:0;padding:0;list-style:none;display:flex}.add-panel__item{background:var(--bg);border:.01rem solid var(--border);cursor:grab;border-radius:.08rem;align-items:center;gap:.1rem;padding:.1rem;display:flex}.add-panel__item:active{cursor:grabbing}.add-panel__item.is-added{opacity:.5;cursor:default}.add-panel__icon{color:var(--primary);flex-shrink:0}.add-panel__meta{flex-direction:column;flex:1;min-width:0;display:flex}.add-panel__meta strong{font-size:.14rem}.add-panel__meta span{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:.11rem;overflow:hidden}.add-panel__item button{border:.01rem solid var(--border);background:var(--bg-elevated);width:.24rem;height:.24rem;color:var(--text);border-radius:.06rem;justify-content:center;align-items:center;display:flex}.add-panel__item button:disabled{opacity:.4;cursor:not-allowed}.tool-page{max-width:11rem;margin:0 auto}.tool-page__header{margin-bottom:.24rem}.tool-page__header h1{margin:0 0 .06rem;font-size:.22rem}.tool-page__desc{color:var(--text-dim);margin:0}.tool-page__grid{grid-template-columns:1fr 1fr;gap:.16rem;display:grid}.tool-page__col{flex-direction:column;gap:.08rem;display:flex}.tool-page__col>textarea{background:var(--bg-elevated);border:.01rem solid var(--border);min-height:3.2rem;color:var(--text);resize:vertical;border-radius:.08rem;padding:.14rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.14rem}.tool-page__col>textarea:focus{border-color:var(--primary);outline:none}.tool-page__actions{gap:.08rem;margin-top:.16rem;display:flex}.tool-page__actions button{background:var(--primary);color:#fff;border:none;border-radius:.08rem;padding:.08rem .18rem}.tool-page__actions button:hover{filter:brightness(1.1)}.tool-page__error{border:.01rem solid var(--danger);color:var(--danger);background:#d9534f14;border-radius:.08rem;margin-top:.16rem;padding:.1rem .14rem;font-size:.14rem}.gallery{padding:.1rem}.gallery__header{margin-bottom:.24rem}.gallery__header h1{margin:0 0 .04rem}.gallery__header p{color:var(--text-dim);margin:0}.gallery__group{margin-bottom:.24rem}.gallery__group h2{color:var(--text-dim);margin:0 0 .12rem;font-size:.14rem;font-weight:500}.gallery__grid{grid-template-columns:repeat(auto-fill,minmax(2.8rem,1fr));gap:.12rem;display:grid}.gallery-page{flex:1;min-height:0;display:flex}.gallery-side{border-right:.01rem solid var(--border);flex-shrink:0;width:2.2rem;padding:.16rem .1rem;overflow-y:auto}.gallery-side__title{padding:.04rem .1rem .12rem;font-size:.15rem;font-weight:600}.gallery-side__group{margin-bottom:.16rem}.gallery-side__group-label{color:var(--text-dim);padding:0 .1rem .06rem;font-size:.12rem}.gallery-side__link{color:var(--text);border-radius:.06rem;align-items:center;gap:.08rem;padding:.07rem .1rem;font-size:.13rem;text-decoration:none;display:flex}.gallery-side__link:hover{background:var(--bg-elevated)}.gallery-side__link.active{background:var(--primary-soft);color:var(--primary);font-weight:500}.gallery-main{flex:1;min-width:0;padding:.2rem .24rem;overflow-y:auto}.gallery-empty{height:100%;color:var(--text-dim);justify-content:center;align-items:center;font-size:.14rem;display:flex}
