@layer tool{.tool-head .crumbs{margin-top:-8px}.tool-title{display:flex;align-items:center;gap:14px;margin-top:4px}.tool-title h1{margin-top:0}.tool-tile{display:none;place-items:center;flex:none;width:48px;height:48px;border-radius:var(--r-lg);background:var(--accent);color:var(--brand-ink)}.tool-tile svg{width:28px;height:28px}.trust{list-style:none;display:flex;flex-wrap:wrap;gap:6px 14px;margin:12px 0 0;padding:0;font-size:var(--fs-13);font-weight:600;color:var(--fg-2)}.trust li{display:inline-flex;align-items:center;gap:6px}.trust svg{width:16px;height:16px;flex:none;color:var(--accent-ink)}@media(max-width:599px){.tool-head .lead{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}}@media(min-width:600px){.tool-tile{display:grid}}.tool-app{display:grid;gap:12px;padding-top:12px;padding-bottom:32px;grid-template-columns:minmax(0,1fr)}@media(min-width:600px){.tool-app{gap:20px;padding-top:16px;padding-bottom:40px}}@media(min-width:900px){.tool-app.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.tool-app .sticky,.app-side{position:sticky;top:calc(var(--header-h) + 16px)}.app-side{display:grid;gap:16px;align-content:start;min-width:0}}.panel{min-width:0;padding:var(--panel-pad);border-radius:var(--r-xl);background:var(--surface-1);box-shadow:var(--e-1)}.panel>h2,.panel-head h2{font-size:var(--fs-20);font-weight:700;letter-spacing:-.01em;line-height:1.3;margin-bottom:12px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.panel-head h2{margin:0}.panel-head p{margin:4px 0 0;font-size:var(--fs-14);color:var(--fg-2)}.group{display:grid;gap:12px;padding:14px;border-radius:var(--r-lg);background:var(--surface-2)}.sub{border-radius:var(--r-lg);background:var(--surface-2)}.tabs{display:flex;gap:4px;overflow-x:auto;margin-bottom:16px;padding:0;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:0 0 auto;min-height:var(--ctl-md);padding:0 16px;border:0;border-radius:var(--r-pill);background:transparent;color:var(--fg-2);font:600 var(--fs-14)/1 var(--font-sans);white-space:nowrap;cursor:pointer;scroll-snap-align:start;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2),transform var(--dur-1) var(--ease-out)}.tab svg{width:18px;height:18px;flex:none}.tab:active{transform:scale(.97)}.tab[aria-selected=true]{background:var(--fg);color:var(--canvas)}@media(hover:hover){.tab:not([aria-selected=true]):hover{background:var(--surface-2);color:var(--fg)}}.tab:focus-visible,.seg button:focus-visible{outline-offset:-2px}.tab[aria-selected=true]:focus-visible{outline-color:var(--canvas);outline-offset:-4px}@media(max-width:759px){.tabs{--rail-pad:var(--gutter);margin-inline:calc(var(--rail-pad) * -1);padding-inline:var(--rail-pad);scroll-padding-inline:var(--rail-pad);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--rail-pad),#000 calc(100% - var(--rail-pad)),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 var(--rail-pad),#000 calc(100% - var(--rail-pad)),transparent)}.panel .tabs{--rail-pad:var(--panel-pad)}}fieldset{display:grid;gap:12px;min-width:0;margin:0;padding:0;border:0}fieldset+fieldset{margin-top:var(--stack)}legend{float:left;width:100%;margin:0 0 10px;padding:0;font-size:var(--fs-12);font-weight:700;letter-spacing:.04em;line-height:1.35;text-transform:uppercase;color:var(--fg-2)}legend+*{clear:both}.field{display:grid;gap:6px;min-width:0;font-size:var(--fs-14);font-weight:600;line-height:1.4}.field>span .muted,.field>span.muted,.field label .muted{font-weight:400;font-size:var(--fs-13)}.field output{font-weight:600;font-variant-numeric:tabular-nums}.field input:not([type=color]):not([type=range]):not([type=checkbox]):not([type=radio]):not([type=file]):not(.sr),.field textarea,.field select{width:100%;min-height:var(--field-h);padding:11px 14px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--field-bg);color:var(--fg);font:400 var(--fs-16)/1.4 var(--font-sans);box-shadow:none;transition:border-color var(--dur-2),box-shadow var(--dur-2)}.field input::placeholder,.field textarea::placeholder{color:var(--fg-3);opacity:1}.field textarea{min-height:120px;resize:vertical;font-family:var(--font-mono);font-size:var(--fs-14);line-height:1.5;tab-size:2}.field select{-webkit-appearance:none;appearance:none;padding-right:40px;background-image:var(--i-select);background-repeat:no-repeat;background-position:right 14px center;background-size:18px 18px;cursor:pointer}@media(hover:hover){.field input:not([type=color]):not([type=range]):not([type=checkbox]):not([type=radio]):hover:not(:focus):not(:disabled),.field textarea:hover:not(:focus):not(:disabled),.field select:hover:not(:focus):not(:disabled){border-color:var(--fg-2)}}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--fg);box-shadow:0 0 0 1px var(--fg),0 0 0 5px var(--brand-soft)}.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible{outline:none}.field [aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}.field textarea[readonly]{background:var(--surface-2);border-color:transparent}.field input[type=color]{width:100%;height:var(--field-h);padding:4px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--field-bg);cursor:pointer}.field input[type=color]::-webkit-color-swatch-wrapper{padding:0}.field input[type=color]::-webkit-color-swatch{border:0;border-radius:var(--r-sm)}.field input[type=color]::-moz-color-swatch{border:0;border-radius:var(--r-sm)}.field input[type=range]{width:100%;min-height:32px;margin:0;accent-color:var(--fg);cursor:pointer}.field :disabled{background-color:var(--surface-2);color:var(--fg-3);border-color:var(--line);cursor:not-allowed;opacity:1}.row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr))}.check{display:flex;align-items:center;gap:10px;min-height:44px;font-size:var(--fs-14);font-weight:400;line-height:1.4;cursor:pointer}.check input{flex:none;width:20px;height:20px;margin:0;accent-color:var(--fg);cursor:pointer}@media(pointer:coarse){.field input[type=range]{min-height:44px}}.seg{display:flex;gap:2px;width:fit-content;max-width:100%;padding:3px;overflow-x:auto;border-radius:var(--r-pill);background:var(--surface-2);scrollbar-width:none}.seg::-webkit-scrollbar{display:none}.seg button{flex:1 0 auto;min-height:calc(var(--ctl-sm) - 6px);padding:0 14px;border:0;border-radius:var(--r-pill);background:transparent;color:var(--fg-2);font:600 var(--fs-14)/1 var(--font-sans);white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2),box-shadow var(--dur-2)}.seg button[aria-pressed=true]{background:var(--surface-1);color:var(--fg);box-shadow:var(--e-thumb)}:root[data-theme=dark] .seg button[aria-pressed=true]{background:var(--surface-3)}@media(hover:hover){.seg button:not([aria-pressed=true]):hover{color:var(--fg)}}@media(pointer:coarse){.seg{padding:4px}.seg button{min-height:40px}}@media(max-width:599px){.seg{width:100%}.seg button{min-height:40px}}fieldset:disabled .seg button{color:var(--fg-3);cursor:not-allowed}fieldset:disabled .seg button[aria-pressed=true]{background:var(--surface-3);box-shadow:none}.drop{display:grid;justify-items:center;align-content:center;gap:8px;min-height:180px;padding:24px 16px;border:2px dashed var(--line-strong);border-radius:var(--r-lg);background:var(--surface-2);text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color var(--dur-2),background-color var(--dur-2)}.drop:not(.compact)>svg{box-sizing:content-box;width:32px;height:32px;padding:12px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);transition:transform var(--dur-2) var(--ease-out)}.drop.over,.drop:has(input:focus-visible){border-style:solid;border-color:var(--accent-ink);background:var(--accent-soft)}.drop.over>svg{transform:scale(1.06)}.drop:focus-within{outline:2px solid var(--focus);outline-offset:2px}.drop-title{font-weight:700;font-size:var(--fs-18);line-height:1.3}.drop .muted{font-size:var(--fs-13)}.drop-panel{padding:0;background:none;box-shadow:none}.drop-panel>.drop{border-radius:var(--r-xl)}@media(hover:hover){.drop:hover{border-color:var(--accent-ink);background:var(--accent-soft)}}@media(min-width:600px){.drop{min-height:200px}}.file-list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:0;border-radius:var(--r-md);background:var(--surface-2);overflow:hidden}.file-list:empty{display:none}.file{position:relative;display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 12px;background:transparent;animation:rise var(--dur-3) var(--ease-out) both}.file+.file{box-shadow:inset 0 1px 0 var(--sep)}.file-body{display:grid;gap:2px;min-width:0;flex:1}.file-name{font-weight:600;font-size:var(--fs-14);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-err{font-size:var(--fs-13);color:var(--danger)}.file.bad{background:color-mix(in srgb,var(--danger-bg) 55%,transparent)}.pos,.res-meta{font-size:var(--fs-13);color:var(--fg-2);font-variant-numeric:tabular-nums}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.icon-x{display:grid;place-items:center;flex:none;width:var(--ctl-sm);height:var(--ctl-sm);padding:0;border:0;border-radius:var(--r-pill);background:transparent;color:var(--fg-2);font-size:1.2rem;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur-2),color var(--dur-2)}.icon-x svg{width:20px;height:20px}.icon-x:disabled{color:var(--fg-3);cursor:not-allowed;opacity:1}@media(hover:hover){.icon-x:not(:disabled):hover{background:var(--surface-3);color:var(--fg)}}.out{display:grid;gap:8px}.result{padding:12px 16px;border-radius:var(--r-md);background:var(--surface-2);font:700 var(--fs-readout)/1.2 var(--font-mono);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;word-break:break-all}.readout{padding:12px 16px;border-radius:var(--r-md);background:var(--surface-2);min-width:0}.readout.is-accent{box-shadow:inset 3px 0 0 var(--accent)}.overline{font-size:var(--fs-12);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-2)}.hint{margin:8px 0 0;min-height:1.3em;font-size:var(--fs-13);line-height:1.45;color:var(--danger)}.note,.warn,.ok-note{position:relative;margin:12px 0 0;padding:10px 12px 10px 36px;border-radius:var(--r-md);font-size:var(--fs-14);line-height:1.45;background:var(--info-bg);color:var(--info-fg)}.note:before,.warn:before,.ok-note:before{content:"";position:absolute;left:12px;top:12px;width:16px;height:16px;background:currentColor;-webkit-mask:var(--i-info) center/contain no-repeat;mask:var(--i-info) center/contain no-repeat}.warn,.note.is-warn{background:var(--warn-bg);color:var(--warn-fg)}.warn:before,.note.is-warn:before{-webkit-mask-image:var(--i-warn);mask-image:var(--i-warn)}.ok-note,.note.is-ok{background:var(--success-bg);color:var(--success-fg)}.ok-note:before,.note.is-ok:before{-webkit-mask-image:var(--i-ok);mask-image:var(--i-ok)}.note.is-error{background:var(--danger-bg);color:var(--danger-fg)}.note.is-error:before{-webkit-mask-image:var(--i-warn);mask-image:var(--i-warn)}.note:empty,.warn:empty,.ok-note:empty{margin:0;padding:0;min-height:0;background:none}.note:empty:before,.warn:empty:before,.ok-note:empty:before{content:none}.warn a,.note a,.ok-note a{color:inherit;font-weight:600}.empty-state{display:grid;justify-items:center;gap:6px;padding:32px 16px;text-align:center;color:var(--fg-2);font-size:var(--fs-14)}.empty-state>svg{box-sizing:content-box;width:32px;height:32px;padding:16px;margin-bottom:6px;border-radius:50%;background:var(--surface-2);color:var(--fg-2)}.empty-state strong{font-size:var(--fs-16);font-weight:600;color:var(--fg)}.skeleton{border-radius:var(--r-md);background:linear-gradient(90deg,var(--surface-2) 0%,var(--surface-3) 50%,var(--surface-2) 100%) 0 0/200% 100%;animation:z-shimmer 1.2s linear infinite}@keyframes z-shimmer{to{background-position:-200% 0}}.tool-note{margin:4px 0 0;text-align:center;font-size:var(--fs-13);color:var(--fg-2)}.app-dock{display:flex;gap:8px;align-items:center;min-width:0}.app-dock .actions{margin:0;flex:1;flex-wrap:nowrap}.app-dock-status{font-size:var(--fs-13);color:var(--fg-2);font-variant-numeric:tabular-nums;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:899px){.app-dock{position:sticky;bottom:0;z-index:var(--z-dock);margin:0 calc(var(--gutter) * -1);padding:12px var(--gutter) max(12px,env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface-1) 86%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(16px);backdrop-filter:saturate(1.6) blur(16px);box-shadow:var(--e-dock)}.app-dock .btn{min-height:var(--ctl-lg);flex:1 1 0}.app-dock .btn-quiet,.app-dock .icon-btn,.app-dock .icon-x{flex:0 0 auto}.app-side{display:contents}}@media(min-width:900px){.app-dock .actions>.btn-primary{flex:1 1 auto}}@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.app-dock{background:var(--surface-1)}}.sheet-backdrop{position:fixed;inset:0;z-index:calc(var(--z-sheet) - 1);background:var(--scrim);animation:z-fade var(--dur-3) var(--ease-out) both}.sheet{position:fixed;inset:auto 0 0;z-index:var(--z-sheet);max-height:88dvh;overflow:auto;overscroll-behavior:contain;padding:8px var(--gutter) max(16px,env(safe-area-inset-bottom));border-radius:var(--r-2xl) var(--r-2xl) 0 0;background:var(--surface-1);box-shadow:var(--e-3);animation:z-sheet-in var(--dur-3) var(--ease-out) both}.sheet:before{content:"";display:block;width:36px;height:4px;margin:0 auto 8px;border-radius:var(--r-pill);background:var(--line-strong)}@keyframes z-sheet-in{0%{transform:translateY(100%)}to{transform:none}}@keyframes z-fade{0%{opacity:0}to{opacity:1}}.toast{position:fixed;left:50%;bottom:max(88px,calc(env(safe-area-inset-bottom) + 76px));z-index:var(--z-toast);display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:var(--r-pill);background:var(--fg);color:var(--canvas);box-shadow:var(--e-3);font-size:var(--fs-14);font-weight:600;transform:translate(-50%);animation:rise var(--dur-3) var(--ease-out) both}.is-ready .enter{animation:rise var(--dur-3) var(--ease-out) both}@media(max-width:599px){.actions>.btn:not(.btn-sm){flex:1 1 0}}}
