.tab-bar{display:flex;gap:0;border-bottom:2px solid hsl(var(--border))}.tab-item{padding:8px 18px;font-size:13px;font-weight:500;color:hsl(var(--muted-foreground));text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:color .15s,border-color .15s}.tab-item:hover{color:hsl(var(--foreground))}.tab-item.active{color:hsl(var(--foreground));border-bottom-color:hsl(var(--primary));font-weight:600}.drop-zone{border:2px dashed hsl(var(--border));border-radius:var(--radius);padding:40px 20px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;position:relative}.drop-zone:hover,.drop-zone.dragover{border-color:hsl(var(--primary));background:hsl(var(--primary) / .04)}.drop-zone-file{position:absolute;inset:0;opacity:0;cursor:pointer;z-index:-1}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:8px}.drop-zone-text{font-size:13px;font-weight:500;color:hsl(var(--foreground));margin:0}.drop-zone-hint{font-size:12px;color:hsl(var(--muted-foreground));margin:0}.file-size{font-size:12px;color:hsl(var(--muted-foreground));margin-left:8px}.progress-bar{width:100%;height:6px;background:hsl(var(--muted));border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;background:hsl(var(--primary));border-radius:3px;transition:width .15s;width:0}.progress-text{font-size:12px;color:hsl(var(--muted-foreground));display:inline-block;margin-top:4px}.tool-side .divider{border-top:1px solid hsl(var(--border));margin:4px 0}.tool-side .card-content{display:flex;flex-direction:column;gap:12px}.tool-side .form-row{display:flex;flex-direction:column;gap:8px}.divider{border-top:1px solid hsl(var(--border));margin:4px 0}.sql-editor-layout{height:calc(100vh - 160px);min-height:500px}.split-full{flex:1;min-height:300px}.picture-tool-wrap{display:grid;grid-template-columns:200px 1fr 220px;gap:0;margin:0 -1.5rem -1.5rem;height:calc(100vh - 80px);overflow:hidden}.pt-sidebar{border-right:1px solid hsl(var(--border));overflow-y:auto;background:hsl(var(--card))}.pt-sidebar-header{padding:10px 12px;font-weight:600;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid hsl(var(--border));position:sticky;top:0;background:hsl(var(--card));z-index:1}.pt-tpl-group{padding:8px 10px}.pt-tpl-label{font-weight:600;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:12px}.pt-tpl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.pt-tpl-btn{aspect-ratio:1;border-radius:4px;border:1.5px solid hsl(var(--border));background:hsl(var(--background));cursor:pointer;padding:3px;display:grid;gap:2px;transition:border-color .15s,background .15s}.pt-tpl-btn:hover{border-color:hsl(var(--primary))}.pt-tpl-btn.active{border-color:hsl(var(--primary));background:hsl(var(--primary) / .08)}.pt-tpl-cell{background:hsl(var(--primary) / .3);border-radius:2px}.pt-canvas-area{display:flex;flex-direction:column;align-items:center;padding:16px;overflow-y:auto;gap:14px}.pt-canvas-toolbar{display:flex;gap:8px;align-self:flex-end;flex-shrink:0}.pt-puzzle-wrapper{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;box-shadow:0 2px 20px #0000001f}.pt-puzzle-grid{display:grid;overflow:hidden}.pt-grid-cell{position:relative;overflow:hidden;background:hsla(var(--muted) / .8)}.pt-upload-btn{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;color:hsl(var(--muted-foreground));transition:background .15s,color .15s}.pt-upload-btn:hover{background:hsl(var(--primary) / .07);color:hsl(var(--primary))}.pt-upload-text{font-weight:500}.pt-img-container{width:100%;height:100%;position:relative}.pt-img-container img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.pt-img-overlay{position:absolute;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;gap:8px;opacity:0;transition:opacity .2s}.pt-img-container:hover .pt-img-overlay{opacity:1}.pt-overlay-btn{width:28px;height:28px;border-radius:50%;background:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#374151;transition:all .15s}.pt-overlay-btn:hover{background:hsl(var(--primary));color:#fff}.pt-overlay-btn.del:hover{background:#ef4444}.pt-resize-handle{position:absolute;right:0;bottom:0;width:20px;height:20px;cursor:se-resize;z-index:10}.pt-resize-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:10px;height:10px;border-right:2.5px solid rgba(128,128,128,.5);border-bottom:2.5px solid rgba(128,128,128,.5)}.pt-settings{border-left:1px solid hsl(var(--border));overflow-y:auto;background:hsl(var(--card))}.pt-settings-section{padding:14px;border-bottom:1px solid hsl(var(--border))}.pt-section-title{font-weight:600;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-size:12px}.pt-ratio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:8px}.pt-ratio-btn{padding:5px 0;border-radius:5px;font-weight:500;border:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--foreground));cursor:pointer;transition:all .15s;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1px;line-height:1.1}.pt-ratio-icon{font-size:10px;line-height:1;opacity:.6;transition:opacity .15s}.pt-ratio-btn.active .pt-ratio-icon{opacity:1}.pt-ratio-btn:hover{border-color:hsl(var(--primary))}.pt-ratio-btn.active{border-color:hsl(var(--primary));background:hsl(var(--primary) / .1);color:hsl(var(--primary))}.pt-custom-ratio{display:flex;align-items:center;gap:5px;margin-top:6px}.pt-custom-ratio label{color:hsl(var(--muted-foreground));white-space:nowrap;font-size:12px}.pt-custom-ratio input{flex:1;min-width:0;padding:4px 6px;border:1px solid hsl(var(--border));border-radius:4px;text-align:center;outline:none;background:hsl(var(--background));color:hsl(var(--foreground))}.pt-custom-ratio input:focus{border-color:hsl(var(--primary))}.pt-custom-ratio span{color:hsl(var(--muted-foreground));font-weight:600}.pt-color-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.pt-color-row input[type=color]{width:34px;height:28px;padding:2px;border:1px solid hsl(var(--border));border-radius:4px;cursor:pointer;background:none}.pt-color-row input[type=text]{flex:1;padding:4px 8px;border:1px solid hsl(var(--border));border-radius:4px;outline:none;font-family:var(--font-mono, monospace);background:hsl(var(--background));color:hsl(var(--foreground))}.pt-color-row input[type=text]:focus{border-color:hsl(var(--primary))}.pt-color-palette{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.pt-swatch{aspect-ratio:1;border-radius:3px;cursor:pointer;border:2px solid transparent;transition:all .15s}.pt-swatch:hover{transform:scale(1.12)}.pt-swatch.active{border-color:hsl(var(--primary));box-shadow:0 0 0 1px hsl(var(--primary))}.pt-slider-group label{color:hsl(var(--foreground));display:flex;justify-content:space-between;margin-bottom:5px;font-size:13px}.pt-slider-group input[type=range]{width:100%;accent-color:hsl(var(--primary));margin-bottom:12px}.pt-modal-overlay{display:none;position:fixed;inset:0;background:#000000b3;z-index:300;align-items:center;justify-content:center}.pt-modal-overlay.open{display:flex}.pt-modal{background:#fff;border-radius:10px;max-width:85vw;max-height:88vh;overflow:auto;position:relative}.pt-modal-close{position:absolute;top:8px;right:8px;background:#00000073;border:none;border-radius:50%;width:26px;height:26px;cursor:pointer;color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;z-index:1}.pt-modal img{display:block;max-width:100%;border-radius:10px}@media(max-width:900px){.picture-tool-wrap{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;height:auto;min-height:calc(100vh - 180px)}.pt-sidebar{border-right:none;border-bottom:1px solid hsl(var(--border));max-height:180px;overflow-x:auto;overflow-y:hidden}.pt-sidebar-header{position:static;border-bottom:none;padding:8px 12px}#templateList{display:flex;gap:12px;padding:0 12px 12px;overflow-x:auto;-webkit-overflow-scrolling:touch}#templateList::-webkit-scrollbar{height:4px}.pt-tpl-group{flex-shrink:0;min-width:-moz-max-content;min-width:max-content}.pt-tpl-label{margin-bottom:4px}.pt-tpl-grid{display:flex;gap:6px}.pt-tpl-btn{width:50px;height:50px;aspect-ratio:auto}.pt-canvas-area{min-height:280px;padding:12px}.pt-puzzle-wrapper{max-width:100%}.pt-settings{border-left:none;border-top:1px solid hsl(var(--border));overflow-y:visible}.pt-settings-section{padding:12px}.pt-ratio-grid{grid-template-columns:repeat(6,1fr)}.pt-color-palette{grid-template-columns:repeat(8,1fr)}.pt-slider-group input[type=range]{margin-bottom:8px}}.tool-grid{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:768px){.tool-grid{grid-template-columns:3fr 1fr}}.tool-side{min-width:260px}.tool-side .card-content{display:flex;flex-direction:column;gap:10px}.tool-side .btn-color{height:2.43rem}.divider{border-top:1px solid hsl(var(--border));margin:2px 0}.switch-row{display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.switch-row input{position:absolute;opacity:0;width:0;height:0}.slider{position:relative;width:40px;height:22px;background-color:hsl(var(--muted));border-radius:22px;transition:background-color .2s}.slider:before{position:absolute;content:"";height:16px;width:16px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:transform .2s}.switch-row input:checked+.slider{background-color:hsl(var(--primary))}.switch-row input:checked+.slider:before{transform:translate(18px)}.qr-section-title{font-size:13px}.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start}.qr-preview{display:flex;align-items:center;justify-content:center;min-height:280px;background:hsl(var(--muted));border-radius:var(--radius);padding:20px}#qrContainer{display:flex;align-items:center;justify-content:center}#qrContainer canvas,#qrContainer svg{max-width:100%;height:auto;border-radius:4px}.qr-placeholder{display:flex;align-items:center;justify-content:center;color:hsl(var(--muted-foreground));font-size:13px;font-style:italic;text-align:center;padding:40px 20px}.qr-example-tag{display:inline-flex;align-items:center;padding:2px 10px;font-size:12px;border-radius:9999px;background:hsl(var(--secondary));border:1px solid hsl(var(--border));color:hsl(var(--secondary-foreground));cursor:pointer;transition:all .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.qr-example-tag:hover{background:hsl(var(--accent));border-color:hsl(var(--brand) / .4)}.qr-fullscreen-overlay{position:fixed;inset:0;z-index:100;background:#0009;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center}.qr-fullscreen-content{position:relative;background:hsl(var(--card));border-radius:var(--radius);padding:24px;max-width:90vw;max-height:90vh;overflow:auto;min-width:320px}.qr-fs-close{position:absolute;top:8px;right:8px;z-index:1}@media(max-width:768px){.tool-side{order:-1}}.match-hl{background:#facc1459;color:hsl(var(--foreground));border-radius:2px}.match-hl-0{background:#0da2e759}.match-hl-1{background:#21c45d59}.match-hl-2{background:#7c3bed59}.match-hl-3{background:#eb47af59}.match-idx{color:hsl(var(--muted-foreground));font-size:11px}.bd-icon-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:5px;border:1px solid transparent;background:transparent;cursor:pointer;color:hsl(var(--foreground));transition:background .1s,border-color .1s}.bd-icon-btn:hover{background:hsl(var(--accent))}.bd-icon-btn.active{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}.bd-color-preset{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .1s,border-color .1s}.bd-color-preset:hover{transform:scale(1.15)}.bd-color-preset.active{border-color:hsl(var(--foreground))}.re-result-item{display:flex;align-items:center;gap:8px;padding:5px 16px;border-bottom:1px solid hsl(var(--border) / .5);font-family:JetBrains Mono,monospace;font-size:12.5px;cursor:default;transition:background .1s}.re-result-item:last-child{border-bottom:none}.re-result-item:hover{background:hsl(var(--accent) / .5)}.re-result-idx{color:hsl(var(--muted-foreground));font-size:11px;min-width:28px}.re-result-val{flex:1;word-break:break-all}.re-result-copy{opacity:0;font-size:11px;padding:2px 6px;border-radius:3px;border:1px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--muted-foreground));cursor:pointer;transition:opacity .15s}.re-result-item:hover .re-result-copy{opacity:1}.diff-container{height:calc(100vh - 160px);min-height:500px}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;flex-shrink:0}.format-bar-inner{display:flex;gap:14px;align-items:end;flex-wrap:wrap}.format-bar-inner .form-stack{min-width:120px}.convert-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:stretch}.convert-panel{display:flex;flex-direction:column;min-height:420px}@media(max-width:768px){.convert-layout{grid-template-columns:1fr}.convert-panel{min-height:300px}}#dropZone.drag-over{border-color:hsl(var(--brand));background:hsl(var(--accent))}#btnConvert{position:relative;min-width:100px;transition:opacity .2s}#btnConvert:disabled{opacity:.7;cursor:not-allowed}#btnConvert .btn-loading{display:inline-flex;align-items:center;gap:6px}@keyframes spin{to{transform:rotate(360deg)}}.spinner{animation:spin .8s linear infinite}.md-preview{color:hsl(var(--foreground));font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px;line-height:1.5;word-wrap:break-word}.md-preview h1,.md-preview h2,.md-preview h3,.md-preview h4,.md-preview h5,.md-preview h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25;color:hsl(var(--foreground))}.md-preview h1{font-size:2em;padding-bottom:.3em;border-bottom:1px solid hsl(var(--border))}.md-preview h2{font-size:1.5em;padding-bottom:.3em;border-bottom:1px solid hsl(var(--border))}.md-preview h3{font-size:1.25em}.md-preview h4{font-size:1em}.md-preview h5{font-size:.875em}.md-preview h6{font-size:.85em;color:hsl(var(--muted-foreground))}.md-preview h1:first-child,.md-preview h2:first-child,.md-preview h3:first-child{margin-top:0}.md-preview p{margin-top:0;margin-bottom:16px}.md-preview strong{font-weight:600}.md-preview em{font-style:italic}.md-preview del{text-decoration:line-through}.md-preview a{color:#0969da;text-decoration:none}.md-preview a:hover{text-decoration:underline}:global(.dark) .md-preview a{color:#58a6ff}.md-preview img{max-width:100%;box-sizing:border-box;background-color:hsl(var(--background));border-style:none}.md-preview blockquote{margin:0 0 16px;padding:0 1em;color:hsl(var(--muted-foreground));border-left:.25em solid hsl(var(--border))}.md-preview blockquote>:first-child{margin-top:0}.md-preview blockquote>:last-child{margin-bottom:0}.md-preview code{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:85%;padding:.2em .4em;margin:0;white-space:break-spaces;background-color:#afb8c133;border-radius:6px}.md-preview pre{margin-top:0;margin-bottom:16px;padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:hsl(var(--input));border-radius:6px;word-wrap:normal}.md-preview pre code{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0;border-radius:0;font-size:100%;white-space:pre}.md-preview ul,.md-preview ol{margin-top:0;margin-bottom:16px;padding-left:2em}.md-preview ol{list-style-type:decimal}.md-preview ul{list-style-type:disc}.md-preview li{margin-top:.25em}.md-preview li+li{margin-top:.25em}.md-preview li>p{margin-top:16px}.md-preview li>ul,.md-preview li>ol{margin-top:0;margin-bottom:0}.md-preview ul ul{list-style-type:circle}.md-preview ul ul ul{list-style-type:square}.md-preview input[type=checkbox]{margin:0 .2em .25em -1.4em;vertical-align:middle}.md-preview li:has(>input[type=checkbox]){list-style:none}.md-preview table{border-spacing:0;border-collapse:collapse;display:block;width:-moz-max-content;width:max-content;max-width:100%;overflow:auto;margin-top:0;margin-bottom:16px}.md-preview th{font-weight:600;padding:6px 13px;border:1px solid hsl(var(--border))}.md-preview td{padding:6px 13px;border:1px solid hsl(var(--border))}.md-preview tr{background-color:hsl(var(--background));border-top:1px solid hsl(var(--border))}.md-preview tr:nth-child(2n){background-color:hsl(var(--accent) / .4)}.md-preview hr{height:.25em;padding:0;margin:24px 0;background-color:hsl(var(--border));border:0;border-radius:2px}.md-preview details{margin-bottom:16px}.md-preview details summary{cursor:pointer;font-weight:600}.md-preview kbd{display:inline-block;padding:3px 5px;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;line-height:10px;color:hsl(var(--foreground));vertical-align:middle;background-color:hsl(var(--accent));border:solid 1px hsl(var(--border));border-bottom-color:hsl(var(--border));border-radius:6px;box-shadow:inset 0 -1px hsl(var(--border))}.md-preview .footnotes{font-size:.875em;color:hsl(var(--muted-foreground));border-top:1px solid hsl(var(--border));padding-top:16px;margin-top:32px}.md-preview>*:first-child{margin-top:0!important}.md-preview>*:last-child{margin-bottom:0!important}.split-layout{display:flex;flex-direction:column;gap:16px;height:calc(100vh - 160px);min-height:500px}@media(min-width:768px){.split-layout{flex-direction:row;gap:0}.split-left{flex:1;min-width:200px}.split-resizer{width:8px;background:transparent;cursor:col-resize;position:relative;flex-shrink:0}.split-resizer:before{content:"";position:absolute;left:3px;top:0;bottom:0;width:2px;background:hsl(var(--border, 0 0% 85%));border-radius:1px;transition:background .2s}.split-resizer:hover:before{background:hsl(var(--primary, 200 80% 50%))}.split-right{flex:1;min-width:200px}}.split-left{min-height:300px}.split-right{min-height:500px}.active-tab{background:hsl(var(--brand))!important;color:hsl(var(--brand-fg))!important;border-color:hsl(var(--brand))!important}
