:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:var(--lightningcss-light,#fff)var(--lightningcss-dark,#0e0f12);--bg-2:var(--lightningcss-light,#f6f6f7)var(--lightningcss-dark,#15171b);--bg-3:var(--lightningcss-light,#ebebee)var(--lightningcss-dark,#1d2026);--fg:var(--lightningcss-light,#151619)var(--lightningcss-dark,#e6e6ea);--fg-2:var(--lightningcss-light,#6f7378)var(--lightningcss-dark,#8a8f99);--line:var(--lightningcss-light,#e4e5e9)var(--lightningcss-dark,#262a31);--accent:var(--lightningcss-light,#e8590c)var(--lightningcss-dark,#ff8a3d);--accent-bg:var(--lightningcss-light,#fff1e8)var(--lightningcss-dark,#2b1d12);--sel:var(--lightningcss-light,#dce9ff)var(--lightningcss-dark,#1d3557);--ok:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#56d364);--bad:var(--lightningcss-light,#cf222e)var(--lightningcss-dark,#ff7b72);--warn:var(--lightningcss-light,#9a6700)var(--lightningcss-dark,#e3b341);--key:var(--lightningcss-light,#8250df)var(--lightningcss-dark,#c8a5ff);--str:var(--lightningcss-light,#0a7b3e)var(--lightningcss-dark,#7ee2a8);--num:var(--lightningcss-light,#0550ae)var(--lightningcss-dark,#79b8ff);--bool:var(--lightningcss-light,#cf222e)var(--lightningcss-dark,#ff7b72);--mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}html,body,#app{height:100%}body{background:var(--bg);color:var(--fg);font:14px/1.45 var(--sans);-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}a{color:inherit}button{font:inherit;color:var(--fg);background:var(--bg-2);border:1px solid var(--line);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:3px 9px;display:inline-flex}button:hover{background:var(--bg-3)}button:focus-visible,a:focus-visible,[tabindex]:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input,textarea{font:13px var(--mono);color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:4px 8px}kbd{font:11px var(--mono);color:var(--fg-2);background:var(--bg-3);border:1px solid var(--line);white-space:nowrap;border-bottom-width:2px;border-radius:4px;padding:0 5px;line-height:16px}.muted{color:var(--fg-2)}.small{font-size:12px}.spacer{flex:1}.ok{color:var(--ok)}.bad{color:var(--bad)}.warn{color:var(--warn)}.landing{max-width:680px;height:100%;margin:0 auto;padding:14vh 20px 40px;overflow:auto}.brand-big{font:700 30px/1 var(--mono);letter-spacing:-.03em;margin:0 0 14px}.brand-big:after,.brand:after{content:".";color:var(--accent)}.lede{color:var(--fg-2);max-width:54ch;margin:0 0 40px}.tool-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.tool-list li{border-bottom:1px solid var(--line)}.tool-list a{border-radius:8px;grid-template-columns:30px 28px 72px 1fr auto;align-items:baseline;gap:14px;padding:16px 10px;text-decoration:none;display:grid}.tool-list a:hover,.tool-list a:focus-visible{background:var(--bg-2);outline:none}.tool-list a:focus-visible .name{color:var(--accent)}.tool-list .name{font:600 16px var(--mono)}.tool-list .icon,.choice-list .icon{font-size:18px;line-height:1}.topbar .icon{font-size:14px}.tool-list .tag{color:var(--fg-2)}.tool-list .ext{font:12px var(--mono);color:var(--fg-2)}.landing-foot{gap:10px;margin-top:32px;display:flex}.tool{flex-direction:column;height:100%;display:flex}.topbar{border-bottom:1px solid var(--line);font-family:var(--mono);align-items:center;gap:10px;min-height:40px;padding:6px 12px;font-size:13px;display:flex}.topbar .brand{font-weight:700;text-decoration:none}.topbar .sep{color:var(--fg-2)}.topbar .input-label{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;max-width:45vw;margin-left:12px;overflow:hidden}.tool-body,.csv,.json{flex-direction:column;flex:1;min-height:0;display:flex}.empty{border:2px dashed var(--line);text-align:center;cursor:pointer;color:var(--fg-2);border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;margin:24px;padding:20px;display:flex}.empty:hover,.empty:focus-visible{border-color:var(--accent)}.empty.error{cursor:default;border-style:solid;border-color:var(--bad)}.empty-hint{color:var(--fg);margin:0 0 6px;font-size:16px}.empty p{margin:4px 0}.snippet{font:12px/1.5 var(--mono);background:var(--bg-2);border:1px solid var(--line);white-space:pre-wrap;word-break:break-all;text-align:left;max-width:80ch;color:var(--fg);border-radius:6px;margin:8px 0 0;padding:10px 12px}.statusbar{border-top:1px solid var(--line);background:var(--bg-2);height:30px;font:12px var(--mono);white-space:nowrap;align-items:center;gap:14px;padding:0 10px;display:flex;overflow:hidden}.statusbar .cell-peek{text-overflow:ellipsis;max-width:60vw;overflow:hidden}.inline-form{align-items:center;gap:8px;display:flex}.inline-form label{color:var(--fg-2)}.inline-form input{width:220px;height:22px;padding:0 6px;font-size:12px}.inline-form input[type=number]{width:110px}.toolbar{border-bottom:1px solid var(--line);background:var(--bg-2);font:12px var(--mono);align-items:center;gap:8px;padding:6px 10px;display:flex}.toolbar .col-select{font:12px var(--mono);border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:6px;max-width:180px;padding:4px 6px}.toolbar .search{width:min(440px,50vw);height:28px;padding:0 10px}.toolbar .search-hint{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.grid{min-height:0;font:12.5px var(--mono);background:var(--bg);contain:strict;outline:none;flex:1;position:relative;overflow:auto}.g-spacer{position:relative}.g-header{z-index:3;background:var(--bg-2);border-bottom:1px solid var(--line);height:28px;position:sticky;top:0}.g-head{white-space:nowrap;text-overflow:ellipsis;border-right:1px solid var(--line);-webkit-user-select:none;user-select:none;cursor:default;height:28px;padding:0 8px;font-weight:600;line-height:27px;position:absolute;top:0;overflow:hidden}.g-head.sel,.g-head.sorted{color:var(--accent)}.g-sort{font-size:10px}.accent{color:var(--accent)}.inline-form.wide input{width:380px}.g-resize{cursor:col-resize;z-index:1;width:7px;height:100%;position:absolute;top:0;right:-3px}.g-resize:hover{background:var(--accent);opacity:.6}.g-row{contain:layout style;height:26px;position:absolute;left:0}.g-row.loading .g-cell{color:#0000}.g-rn{text-align:right;height:26px;color:var(--fg-2);background:var(--bg-2);border-right:1px solid var(--line);border-bottom:1px solid var(--line);z-index:2;-webkit-user-select:none;user-select:none;padding:0 8px;line-height:26px;position:sticky;left:0}.g-rn.sel{color:var(--fg);background:var(--bg-3)}.g-corner{border-bottom:none;height:28px}.g-cell{white-space:nowrap;text-overflow:ellipsis;border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:default;height:26px;padding:0 8px;line-height:25px;position:absolute;top:0;overflow:hidden}.g-cell.sel{background:var(--sel)}.grid:focus .g-cell.sel{box-shadow:inset 0 0 0 2px var(--accent)}.jcode{min-height:0;font:12.5px var(--mono);contain:strict;outline:none;flex:1;position:relative;overflow:auto}.jcode.static{contain:none;flex:none;overflow:visible}.j-line{white-space:pre;text-overflow:ellipsis;cursor:default;height:22px;line-height:22px;position:absolute;left:0;right:0;overflow:hidden}.jcode.static .j-line{position:relative}.j-line.cur{background:var(--sel)}.jcode:focus .j-line.cur{box-shadow:inset 2px 0 0 var(--accent)}.j-fold{width:14px;color:var(--fg-2);cursor:pointer;text-align:center;-webkit-user-select:none;user-select:none;position:absolute;left:8px}.j-fold:hover{color:var(--accent)}.j-fold-hint{color:var(--fg-2)}.j-comment{color:var(--fg-2);font-style:italic}.j-p{color:var(--fg-2)}.j-key{color:var(--key)}.j-str{color:var(--str)}.j-num{color:var(--num)}.j-bool{color:var(--bool)}.j-null{color:var(--fg-2);font-style:italic}.j-path{text-overflow:ellipsis;max-width:40vw;overflow:hidden}.jwt{flex:1;grid-template-columns:minmax(360px,1fr) minmax(360px,1fr);gap:0;min-height:0;display:grid;overflow:hidden}.jwt-col{padding:16px 20px 40px;overflow:auto}.jwt-json{border-right:1px solid var(--line)}.jwt h2{font:600 12px var(--sans);text-transform:uppercase;letter-spacing:.07em;color:var(--fg-2);align-items:center;gap:10px;margin:0 0 8px;display:flex}.jwt-json h2{margin-top:18px}.jwt-json h2:first-child{margin-top:0}.jwt h2 .muted{text-transform:none;letter-spacing:0;font-weight:400}.jwt-json .jcode{border:1px solid var(--line);background:var(--bg-2);border-radius:8px;padding:6px 0}.snippet.sig{word-break:break-all;margin:0}.jwt-status{font:600 13px var(--mono);background:var(--bg-2);border:1px solid var(--line);border-radius:6px;margin-bottom:20px;padding:4px 10px;display:inline-block}.jwt-part{margin-bottom:26px}.claims{border-collapse:collapse;width:100%;font:13px var(--mono)}.claims td{border-bottom:1px solid var(--line);vertical-align:top;padding:6px 10px}.claims tr:first-child td{border-top:1px solid var(--line)}.claim-key{white-space:nowrap;width:210px;color:var(--key)}.claim-val{white-space:pre-wrap;word-break:break-all}.claim-val .muted{margin-top:2px;font-size:12px}.verify{flex-direction:column;gap:8px;display:flex}.verify textarea{resize:vertical;width:100%}.verify-row{align-items:center;gap:12px;display:flex}.check{color:var(--fg-2);align-items:center;gap:6px;display:flex}.verify p{margin:0}@media (max-width:800px){.jwt{grid-template-columns:1fr;overflow:auto}.jwt-col{overflow:visible}.jwt-json{border-right:none;border-bottom:1px solid var(--line)}}.backdrop{z-index:50;background:var(--lightningcss-light,#fff9)var(--lightningcss-dark,#0000008c);justify-content:center;align-items:flex-start;padding-top:18vh;display:flex;position:fixed;inset:0}.modal{background:var(--bg);border:1px solid var(--line);border-radius:12px;outline:none;width:min(560px,92vw);max-height:70vh;padding:16px 18px;overflow:auto;box-shadow:0 20px 60px #00000040}.modal-title{font:600 12px var(--sans);text-transform:uppercase;letter-spacing:.07em;color:var(--fg-2);margin:0 0 10px}.modal-title+.modal-title,.shortcuts+.modal-title{margin-top:18px}.choice-list{margin:0 0 10px;padding:0;list-style:none}.choice-list button{text-align:left;background:0 0;border:none;border-radius:8px;grid-template-columns:30px 28px 72px 1fr;align-items:baseline;gap:12px;width:100%;padding:10px;display:grid}.choice-list button.active{background:var(--bg-2)}.choice-list button.active .name{color:var(--accent)}.choice-list .name{font:600 15px var(--mono)}.choice-list .tag{color:var(--fg-2);font-size:13px}.shortcuts{border-collapse:collapse;width:100%}.shortcuts td{border-bottom:1px solid var(--line);padding:5px 6px;font-size:13px}.shortcuts td:first-child{width:160px}.drop-overlay{z-index:60;pointer-events:none;background:var(--lightningcss-light,#ffffffbf)var(--lightningcss-dark,#0e0f12cc);padding:24px;position:fixed;inset:0}.drop-box{border:3px dashed var(--accent);height:100%;font:600 24px var(--mono);color:var(--accent);border-radius:16px;justify-content:center;align-items:center;display:flex}.toast{background:var(--fg);color:var(--bg);font:13px var(--mono);z-index:70;pointer-events:none;border-radius:8px;padding:6px 14px;position:fixed;bottom:48px;left:50%;transform:translate(-50%)}@media (max-width:600px){.tool-list a{grid-template-columns:26px 28px 1fr}.tool-list .tag,.tool-list .ext{grid-column:3}.landing{padding-top:8vh}}.image{outline:none;flex:1;min-height:0;display:flex}.img-thumbs{border-right:1px solid var(--line);flex-direction:column;flex:none;gap:6px;width:150px;padding:8px;display:flex;overflow:auto}.thumb{text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:stretch;gap:4px;padding:6px;display:flex}.thumb img{object-fit:contain;background:var(--bg-2);border-radius:4px;width:100%;height:80px}.thumb span{font:11px var(--mono);color:var(--fg-2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.thumb.active{border-color:var(--accent);background:var(--bg-2)}.thumb.active span{color:var(--fg)}.img-main{flex-direction:column;flex:1;min-width:0;display:flex}.img-stage{flex:1;justify-content:center;align-items:center;min-height:0;padding:16px;display:flex;overflow:hidden}.img-stage img{object-fit:contain;max-width:100%;max-height:100%;display:block}.checker{background-color:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1a1c21);background-image:linear-gradient(45deg,var(--lightningcss-light,#e8e8ec)var(--lightningcss-dark,#2a2d34) 25%,#0000 25%),linear-gradient(-45deg,var(--lightningcss-light,#e8e8ec)var(--lightningcss-dark,#2a2d34) 25%,#0000 25%),linear-gradient(45deg,#0000 75%,var(--lightningcss-light,#e8e8ec)var(--lightningcss-dark,#2a2d34) 75%),linear-gradient(-45deg,#0000 75%,var(--lightningcss-light,#e8e8ec)var(--lightningcss-dark,#2a2d34) 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.img-name{text-overflow:ellipsis;max-width:30vw;overflow:hidden}.img-panel{border-left:1px solid var(--line);flex-direction:column;flex:none;width:320px;min-height:0;display:flex}.tabs{border-bottom:1px solid var(--line);display:flex}.tabs button{font:600 12px var(--sans);text-transform:uppercase;letter-spacing:.07em;color:var(--fg-2);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex:1;justify-content:center;padding:9px 10px}.tabs button.active{color:var(--fg);border-bottom-color:var(--accent)}.panel-body{flex-direction:column;gap:16px;padding:14px;display:flex;overflow:auto}.field>label{font:600 11px var(--sans);text-transform:uppercase;letter-spacing:.07em;color:var(--fg-2);margin-bottom:6px;display:block}.row{flex-wrap:nowrap;align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.row+.row{margin-top:8px}.row input[type=number]{width:84px}.row input[type=range]{flex:1}.row select{font:12px var(--mono);border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:6px;padding:3px 6px}.mono{font-family:var(--mono);font-size:12px}.small-btns button{padding:2px 8px;font-size:12px}button.icon{padding:2px 7px}button.icon.on{border-color:var(--accent)}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.primary:hover{filter:brightness(1.08)}button.primary kbd{color:#fff;background:#fff3;border-color:#ffffff4d}button.link{color:var(--accent);font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.seg{border:1px solid var(--line);border-radius:6px;display:inline-flex;overflow:hidden}.seg button{background:0 0;border:none;border-radius:0;padding:4px 10px;font-size:13px}.seg button+button{border-left:1px solid var(--line)}.seg button.active{background:var(--fg);color:var(--bg)}.swatch{border:1px solid var(--line);border-radius:6px;width:26px;height:26px;padding:0}.swatch.active{outline:2px solid var(--accent);outline-offset:1px}.swatch.checker{background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px}input[type=color]{border-radius:6px;width:30px;height:26px;padding:1px 2px}.field.export p{margin:8px 0 0}.exif{border-collapse:collapse;width:100%;font:12px var(--mono)}.exif td{border-bottom:1px solid var(--line);vertical-align:middle;padding:4px}.exif-name{color:var(--key);white-space:nowrap;text-overflow:ellipsis;max-width:120px;overflow:hidden}.exif-val{max-width:140px}.exif-val span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.exif-val input{width:100%;padding:2px 5px;font-size:12px}@media (max-width:900px){.image{flex-direction:column;overflow:auto}.img-thumbs{border-right:none;border-bottom:1px solid var(--line);flex-direction:row;width:auto}.thumb{flex:none;width:110px}.img-panel{border-left:none;border-top:1px solid var(--line);width:auto}.img-stage{min-height:40vh}}
