/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--spacing:.25rem;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base,components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-448{margin:calc(var(--spacing) * 448)}.m-512{margin:calc(var(--spacing) * 512)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mt-24{margin-top:calc(var(--spacing) * 24)}.mt-32{margin-top:calc(var(--spacing) * 32)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-16{margin-bottom:calc(var(--spacing) * 16)}.mb-24{margin-bottom:calc(var(--spacing) * 24)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.table-cell{display:table-cell}.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.gap-4{gap:calc(var(--spacing) * 4)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-12{gap:calc(var(--spacing) * 12)}.gap-16{gap:calc(var(--spacing) * 16)}.gap-24{gap:calc(var(--spacing) * 24)}.gap-32{gap:calc(var(--spacing) * 32)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.border{border-style:var(--tw-border-style);border-width:1px}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{color-scheme:light;--bg:#f6f8fb;--bg-grad:radial-gradient(1200px 500px at 50% -10%, #eaf1ff 0%, #f6f8fb00 70%);--surface:#fff;--surface-2:#f8fafc;--surface-3:#f1f5f9;--line:#e4e9f2;--line-2:#eef2f8;--ink:#0d1526;--ink-2:#48566d;--ink-3:#8b97ab;--brand:#2563eb;--brand-ink:#1b4fd8;--brand-soft:#eef4ff;--brand-line:#c7dbfe;--ok:#047857;--ok-soft:#ecfdf5;--ok-line:#a7f3d0;--warn:#a16207;--warn-soft:#fffbeb;--warn-line:#fde68a;--danger:#dc2626;--danger-soft:#fef2f2;--danger-line:#fecaca;--shadow-xs:0 1px 2px #0d15260a;--shadow-sm:0 1px 2px #0d15260d, 0 2px 6px #0d15260d;--shadow-md:0 4px 14px #0d152612, 0 2px 4px #0d15260a;--shadow-lg:0 16px 40px #0d15261f;--r-xs:6px;--r-sm:9px;--r:13px;--r-md:14px;--r-lg:18px;--r-full:999px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", sans-serif;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--maxw:1180px;--hdr:62px;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E")}html[data-theme=dark]{--bg:#0b0f16;--bg-grad:radial-gradient(1200px 500px at 50% -10%, #16233b 0%, #0b0f1600 70%);--surface:#121824;--surface-2:#171e2c;--surface-3:#1d2537;--line:#263043;--line-2:#1f2839;--ink:#e9eef7;--ink-2:#a2b0c6;--ink-3:#6b7a92;--brand:#5b93ff;--brand-ink:#7aa8ff;--brand-soft:#152543;--brand-line:#2a4374;--ok:#34d399;--ok-soft:#0d2b23;--ok-line:#1c5748;--warn:#fbbf24;--warn-soft:#2b2313;--warn-line:#5c4a1c;--danger:#f87171;--danger-soft:#2d1416;--danger-line:#5e2528;--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 1px 2px #00000059, 0 2px 6px #0000004d;--shadow-md:0 4px 14px #0006;--shadow-lg:0 16px 40px #0000008c;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--bg)}body{background-color:var(--bg);background-image:var(--grain), var(--bg-grad);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;background-attachment:fixed;flex-direction:column;min-height:100vh;margin:0;font-size:15px;line-height:1.65;display:flex}h1,h2,h3,h4{letter-spacing:-.018em;margin:0;font-weight:700;line-height:1.28}p{margin:0}ul{margin:0;padding:0;list-style:none}a{color:inherit;text-decoration:none}img,canvas{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}[hidden],.hidden{display:none!important}::selection{background:var(--brand);color:#fff}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line);background-clip:content-box;border:3px solid #0000;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--ink-3);background-clip:content-box}.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 20px}.wrap-narrow{max-width:860px}main{flex:1 0 auto}.stack{flex-direction:column;display:flex}.row{align-items:center;display:flex}.between{justify-content:space-between;align-items:center;gap:16px;display:flex}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.gap-32{gap:32px}.wrapflex{flex-wrap:wrap}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mt-32{margin-top:32px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.mb-32{margin-bottom:32px}.grow{flex:auto;min-width:0}.guides-head{margin-bottom:12px}.site-header{z-index:60;min-height:var(--hdr);background:var(--surface);align-items:center;display:flex;position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.site-header{background:color-mix(in srgb, var(--surface) 82%, transparent)}}.site-header{-webkit-backdrop-filter:saturate(180%)blur(14px);border-bottom:1px solid var(--line)}.site-header .wrap{align-items:center;gap:20px;display:flex}.brand{letter-spacing:-.02em;flex:none;align-items:center;gap:10px;font-size:17px;font-weight:800;display:flex}.brand-mark{flex:none;width:auto;height:30px;display:block}.brand em{color:var(--brand);font-style:normal}.nav-links{flex-wrap:wrap;align-items:center;gap:2px;display:flex}.nav-links a{border-radius:var(--r-sm);color:var(--ink-2);white-space:nowrap;padding:6px 11px;font-size:14px;font-weight:500;transition:background .14s,color .14s}.nav-links a:hover{background:var(--surface-3);color:var(--ink)}.nav-links a.active{color:var(--brand);background:var(--brand-soft);font-weight:600}.hdr-spacer{flex:auto}.pill{border-radius:var(--r-full);white-space:nowrap;border:1px solid var(--ok-line);background:var(--ok-soft);color:var(--ok);align-items:center;gap:7px;padding:5px 12px;font-size:12px;font-weight:600;display:inline-flex}.dot{background:currentColor;border-radius:50%;flex:none;width:7px;height:7px;position:relative}.dot:after{content:"";background:currentColor;border-radius:50%;animation:2s cubic-bezier(0,0,.2,1) infinite ping;position:absolute;inset:0}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}.icon-btn{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);cursor:pointer;place-items:center;width:34px;height:34px;font-size:15px;transition:background .14s,border-color .14s;display:grid}.icon-btn:hover{background:var(--surface-3);border-color:var(--ink-3)}.icon-btn img{width:17px;height:17px;display:block}.icon-btn .i-sun,html[data-theme=dark] .icon-btn .i-moon{display:none}html[data-theme=dark] .icon-btn .i-sun{display:block}.btn{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-xs);justify-content:center;align-items:center;gap:8px;padding:9px 16px;font-size:14px;font-weight:600;transition:background .14s,border-color .14s,transform 80ms,box-shadow .14s;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-3);border-color:var(--ink-3)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg, var(--brand), var(--brand-ink));border-color:var(--brand-ink);color:#fff;box-shadow:0 2px 8px var(--brand)}@supports (color:color-mix(in lab, red, red)){.btn-primary{box-shadow:0 2px 8px color-mix(in srgb, var(--brand) 30%, transparent)}}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg, var(--brand-ink), var(--brand-ink));border-color:var(--brand-ink)}.btn-danger{color:var(--danger);border-color:var(--danger-line);background:var(--surface)}.btn-danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.btn-ghost{box-shadow:none;color:var(--ink-2);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--surface-3);color:var(--ink);border-color:#0000}.btn-lg{border-radius:var(--r);padding:13px 26px;font-size:15px}.btn-sm{padding:6px 11px;font-size:13px}.btn-xs{border-radius:var(--r-xs);padding:3px 8px;font-size:12px;font-weight:500}.btn-block{width:100%}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:22px}.card-flush{padding:0;overflow:hidden}.card-head{border-bottom:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:16px 22px;display:flex}.card-head h3{font-size:15px}.card-body{padding:22px}.grid{gap:18px;display:grid}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=1000px){.g4,.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=660px){.g3,.g2{grid-template-columns:minmax(0,1fr)}.g4{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tool-card{padding:13px}.tool-ico{width:34px;height:34px;margin-bottom:10px}.tool-name{font-size:14px}.tool-desc{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:12.5px;display:-webkit-box;overflow:hidden}}.hero{text-align:center;padding:62px 0 40px}.hero h1{letter-spacing:-.03em;font-size:clamp(30px,5.4vw,52px);font-weight:800}.hero h1 em{color:var(--brand);font-style:normal}.hero .lede{max-width:680px;color:var(--ink-2);margin:18px auto 0;font-size:16.5px;line-height:1.72}.hero .lede b{color:var(--ink);font-weight:650}.eyebrow{border-radius:var(--r-full);border:1px solid var(--brand-line);background:var(--brand-soft);color:var(--brand-ink);letter-spacing:.01em;align-items:center;gap:8px;margin-bottom:20px;padding:5px 13px;font-size:12.5px;font-weight:650;display:inline-flex}.stats{flex-wrap:wrap;justify-content:center;gap:34px;margin-top:30px;display:flex}.stat{text-align:center}.stat b{letter-spacing:-.02em;color:var(--ink);font-size:21px;font-weight:800;display:block}.stat span{color:var(--ink-3);font-size:12.5px}.tool-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-xs);padding:18px;transition:transform .16s cubic-bezier(.2,.7,.3,1),box-shadow .16s,border-color .16s;display:block;position:relative}a.tool-card:hover{box-shadow:var(--shadow-md);border-color:var(--brand-line);transform:translateY(-3px)}a.tool-card:hover .tool-name{color:var(--brand)}.tool-ico{background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:10px;place-items:center;width:38px;height:38px;margin-bottom:13px;font-size:17px;display:grid}.tool-ico img{pointer-events:none;width:auto;max-width:36px;height:auto;max-height:22px;display:block}.tool-name{margin-bottom:5px;font-size:15px;font-weight:680;transition:color .16s}.tool-desc{color:var(--ink-2);font-size:13.5px;line-height:1.55}.tool-card.soon{opacity:.62}.tool-card .tag-soon{letter-spacing:.04em;color:var(--ink-3);background:var(--surface-3);border-radius:var(--r-xs);padding:2px 7px;font-size:10.5px;font-weight:700;position:absolute;top:14px;right:14px}.dropzone{border:2px dashed var(--line);border-radius:var(--r-lg);background:var(--surface);text-align:center;cursor:pointer;padding:34px 24px;transition:border-color .16s,background .16s,transform .16s;position:relative}.dropzone:hover{border-color:var(--brand-line);background:var(--brand-soft)}.dropzone.drag{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 4px var(--brand);transform:scale(1.005)}@supports (color:color-mix(in lab, red, red)){.dropzone.drag{box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 12%, transparent)}}.dropzone .dz-ico{margin-bottom:10px;font-size:34px;line-height:1}.dropzone .dz-ico img{pointer-events:none;width:auto;height:34px;margin:0 auto;display:block}.dropzone h3{margin-bottom:5px;font-size:16px}.dropzone p{color:var(--ink-2);font-size:13.5px}.dropzone .dz-hint{color:var(--ink-3);margin-top:12px;font-size:12px}.dropzone .dz-link{color:var(--brand);text-underline-offset:2px;font-weight:650;text-decoration:underline}.field{flex-direction:column;gap:6px;display:flex}.lab{color:var(--ink-2);font-size:13px;font-weight:640}.lab .opt{color:var(--ink-3);font-weight:400}.input,.select{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);width:100%;color:var(--ink);padding:8px 11px;font-size:14px;transition:border-color .14s,box-shadow .14s}.input:focus,.select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand);outline:none}@supports (color:color-mix(in lab, red, red)){.input:focus,.select:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 15%, transparent)}}.select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5L6 8l3.5-3.5' fill='none' stroke='%238b97ab' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:30px}.input-sm{padding:5px 9px;font-size:13px}.input[aria-invalid=true],.select[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger)}@supports (color:color-mix(in lab, red, red)){.input[aria-invalid=true],.select[aria-invalid=true]{box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 14%, transparent)}}input[type=range]{appearance:none;background:var(--line);cursor:pointer;border-radius:99px;width:100%;height:4px;margin:9px 0;padding:0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--brand);border:2.5px solid var(--surface);width:16px;height:16px;box-shadow:var(--shadow-sm);cursor:grab;border-radius:50%}input[type=range]::-moz-range-thumb{border:2.5px solid var(--surface);background:var(--brand);width:16px;height:16px;box-shadow:var(--shadow-sm);cursor:grab;border-radius:50%}.check{cursor:pointer;align-items:flex-start;gap:9px;font-size:14px;display:flex}.check input{width:15px;height:15px;accent-color:var(--brand);cursor:pointer;flex:none;margin:3px 0 0}.check span small{color:var(--ink-3);font-size:12.5px;line-height:1.45;display:block}.seg{background:var(--surface-3);border-radius:var(--r-sm);flex-wrap:wrap;gap:3px;padding:3px;display:inline-flex}.seg label{cursor:pointer;position:relative}.seg input{opacity:0;pointer-events:none;position:absolute}.seg span{border-radius:var(--r-xs);color:var(--ink-2);white-space:nowrap;padding:6px 13px;font-size:13px;font-weight:600;transition:background .14s,color .14s,box-shadow .14s;display:block}.seg label:hover span{color:var(--ink)}.seg input:checked+span{background:var(--surface);color:var(--brand);box-shadow:var(--shadow-xs)}.seg input:focus-visible+span{outline:2px solid var(--brand);outline-offset:1px}.seg input:disabled+span{opacity:.5;cursor:not-allowed}.seg-block{width:100%;display:flex}.seg-block label{flex:1 1 0}.seg-block span{text-align:center}.note{border-radius:var(--r);border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);align-items:flex-start;gap:11px;padding:12px 15px;font-size:13.5px;line-height:1.6;display:flex}.note b{color:var(--ink)}.note-ico{flex:none;font-size:15px;line-height:1.45}.note-info{background:var(--brand-soft);border-color:var(--brand-line);color:var(--brand-ink)}.note-ok{background:var(--ok-soft);border-color:var(--ok-line);color:var(--ok)}.note-warn{background:var(--warn-soft);border-color:var(--warn-line);color:var(--warn)}.sel-props{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px 14px;display:grid}@media (width>=900px) and (width<=1000px){.sel-props{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=480px){.sel-props{grid-template-columns:minmax(0,1fr)}}.sel-props .field{min-width:0}.sel-props #rot-reset,.sig-selbar #rot-reset{height:22px;padding-top:0;padding-bottom:0}.note-danger{background:var(--danger-soft);border-color:var(--danger-line);color:var(--danger)}.table-wrap{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow-x:auto}table.tbl{border-collapse:collapse;text-align:left;width:100%;font-size:13.5px}table.tbl th{letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3);background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap;padding:11px 14px;font-size:12px;font-weight:700}table.tbl td{border-bottom:1px solid var(--line-2);color:var(--ink-2);vertical-align:top;padding:11px 14px}table.tbl tr:last-child td{border-bottom:0}table.tbl td:first-child{color:var(--ink);white-space:nowrap;font-weight:600}table.tbl .hl{color:var(--ok);font-weight:650}table.tbl .bad{color:var(--ink-3)}table.tbl th.self{color:var(--brand)}.file-list{flex-direction:column;gap:8px;display:flex}.file-row{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);align-items:center;gap:12px;padding:11px 13px;transition:border-color .14s,box-shadow .14s,opacity .14s;display:flex}.file-row:hover{border-color:var(--brand-line);box-shadow:var(--shadow-xs)}.file-row.dragging{opacity:.4}.file-row.drop-hint{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand)}@supports (color:color-mix(in lab, red, red)){.file-row.drop-hint{box-shadow:0 0 0 2px color-mix(in srgb, var(--brand) 15%, transparent)}}.file-grip{cursor:grab;color:var(--ink-3);-webkit-user-select:none;user-select:none;flex:none;font-size:14px;line-height:1}.file-grip:active{cursor:grabbing}.file-ico{flex:none;font-size:17px}.file-meta{flex:auto;min-width:0}.file-name{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:600;overflow:hidden}.file-sub{color:var(--ink-3);font-size:12px}.file-ops{flex:none;gap:3px;display:flex}@media (width<=520px){.file-row{flex-wrap:wrap}.file-row .file-ops{margin-left:auto}.file-row input.input-sm{flex:100%!important;width:auto!important}}.thumb-grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));align-content:start;gap:14px;display:grid}.thumb{border:1.5px solid var(--line);border-radius:var(--r);background:var(--surface);cursor:pointer;padding:7px;transition:border-color .14s,box-shadow .14s,transform .14s,opacity .14s;position:relative}.thumb:hover{border-color:var(--brand-line);box-shadow:var(--shadow-sm)}.thumb.sel{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand)}@supports (color:color-mix(in lab, red, red)){.thumb.sel{box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 16%, transparent)}}.thumb.dragging{opacity:.35}.thumb.drop-hint{border-color:var(--brand);border-style:dashed}.thumb.dead{opacity:.38}.thumb.dead .thumb-canvas-wrap:after{content:"已删除";color:var(--danger);background:var(--surface-2);border-radius:var(--r-xs);place-items:center;font-size:13px;font-weight:700;display:grid;position:absolute;inset:0}.thumb-canvas-wrap{background:var(--surface-3);border-radius:var(--r-xs);border:1px solid var(--line-2);place-items:center;width:100%;min-height:150px;display:grid;position:relative;overflow:hidden}.thumb-canvas-wrap canvas{width:100%;height:auto;transition:transform .2s cubic-bezier(.2,.7,.3,1)}.thumb-bar{justify-content:space-between;align-items:center;gap:6px;margin-top:7px;padding:0 1px;display:flex}.thumb-no{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:11.5px;font-weight:700}.thumb-rot{color:var(--brand);font-size:11px;font-weight:700}.thumb-frame{position:relative}.thumb-badges{z-index:2;flex-direction:column;align-items:flex-end;gap:4px;max-width:calc(100% - 14px);display:flex;position:absolute;bottom:7px;right:7px}.thumb-badges>span{text-overflow:ellipsis;border-radius:var(--r-full);white-space:nowrap;max-width:100%;box-shadow:var(--shadow-xs);padding:1px 6px;font-size:11px;font-weight:650;overflow:hidden}.thumb-src{background:var(--surface-3);color:var(--ink-2)}.thumb-dup{background:var(--brand-soft);color:var(--brand-ink)}.thumb-ops{gap:2px;display:flex}.thumb-ops button{cursor:pointer;border-radius:var(--r-xs);color:var(--ink-3);background:0 0;border:0;padding:2px 5px;font-size:12px;line-height:1.3;transition:background .14s,color .14s}.thumb-ops button:hover{background:var(--surface-3);color:var(--ink)}.thumb-ops button.del:hover{background:var(--danger-soft);color:var(--danger)}.thumb-check{z-index:2;width:19px;height:19px;accent-color:var(--brand);background:var(--surface);cursor:pointer;box-shadow:var(--shadow-xs);border-radius:5px;position:absolute;top:12px;left:12px}.redact-stage{border:1px solid var(--line);border-radius:var(--r);width:100%;box-shadow:var(--shadow-sm);background:var(--surface-3);touch-action:none;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:12px;display:flex;position:relative;overflow:hidden}.redact-stage:focus{outline:none}.rd-frame{box-shadow:var(--shadow-sm);line-height:0;position:relative}.redact-stage>.rd-frame>canvas{width:100%;height:100%;display:block}.redact-stage .rd-layer{position:absolute;inset:0}.crop-stage{touch-action:pan-y}.crop-stage .rd-h{touch-action:none}.redact-stage.is-draw,.rd-layer.is-draw{cursor:crosshair}.redact-box{background:var(--rd-bg,#111);cursor:move;box-sizing:border-box;border:1px solid #ffffffbf;position:absolute;box-shadow:0 0 0 1px #00000080}.redact-box.sel{box-shadow:0 0 0 2px var(--brand);border-color:#fff}.redact-box.pale{box-shadow:0 0 0 1px var(--line), inset 0 0 0 1px #00000014;border-color:#0000002e}.redact-box.pale.sel{border-color:var(--brand)}.redact-box .rd-h{border:1.5px solid var(--brand);box-sizing:border-box;background:#fff;border-radius:2px;width:11px;height:11px;position:absolute}.redact-box .rd-h[data-h=nw]{cursor:nwse-resize;top:-6px;left:-6px}.redact-box .rd-h[data-h=ne]{cursor:nesw-resize;top:-6px;right:-6px}.redact-box .rd-h[data-h=sw]{cursor:nesw-resize;bottom:-6px;left:-6px}.redact-box .rd-h[data-h=se]{cursor:nwse-resize;bottom:-6px;right:-6px}.redact-box.pale .rd-h{border-color:var(--ink-2)}.toolgroup{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.swatch{border:1.5px solid var(--line);cursor:pointer;border-radius:5px;width:22px;height:22px;padding:0;transition:transform .12s,border-color .12s}.swatch:hover{transform:scale(1.08)}.swatch.on,.color-pick.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand)}@supports (color:color-mix(in lab, red, red)){.swatch.on,.color-pick.on{box-shadow:0 0 0 2px color-mix(in srgb, var(--brand) 22%, transparent)}}.crop-box{box-sizing:border-box;border:1.5px dashed var(--brand);cursor:move;position:absolute;box-shadow:0 0 0 9999px #1118276b}.crop-box:after{content:"";pointer-events:none;background:linear-gradient(to right, transparent calc(33.33% - .5px), var(--brand) calc(33.33% - .5px), var(--brand) calc(33.33% + .5px), transparent calc(33.33% + .5px)), linear-gradient(to right, transparent calc(66.66% - .5px), var(--brand) calc(66.66% - .5px), var(--brand) calc(66.66% + .5px), transparent calc(66.66% + .5px)), linear-gradient(to bottom, transparent calc(33.33% - .5px), var(--brand) calc(33.33% - .5px), var(--brand) calc(33.33% + .5px), transparent calc(33.33% + .5px)), linear-gradient(to bottom, transparent calc(66.66% - .5px), var(--brand) calc(66.66% - .5px), var(--brand) calc(66.66% + .5px), transparent calc(66.66% + .5px));position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.crop-box:after{background:linear-gradient(to right, transparent calc(33.33% - .5px), color-mix(in srgb, var(--brand) 26%, transparent) calc(33.33% - .5px), color-mix(in srgb, var(--brand) 26%, transparent) calc(33.33% + .5px), transparent calc(33.33% + .5px)), linear-gradient(to right, transparent calc(66.66% - .5px), color-mix(in srgb, var(--brand) 26%, transparent) calc(66.66% - .5px), color-mix(in srgb, var(--brand) 26%, transparent) calc(66.66% + .5px), transparent calc(66.66% + .5px)), linear-gradient(to bottom, transparent calc(33.33% - .5px), color-mix(in srgb, var(--brand) 26%, transparent) calc(33.33% - .5px), color-mix(in srgb, var(--brand) 26%, transparent) calc(33.33% + .5px), transparent calc(33.33% + .5px)), linear-gradient(to bottom, transparent calc(66.66% - .5px), color-mix(in srgb, var(--brand) 26%, transparent) calc(66.66% - .5px), color-mix(in srgb, var(--brand) 26%, transparent) calc(66.66% + .5px), transparent calc(66.66% + .5px))}}.crop-box .rd-h{background:var(--surface);border:1.5px solid var(--brand);box-sizing:border-box;border-radius:3px;width:13px;height:13px;position:absolute}.crop-box .rd-h[data-h=nw]{cursor:nwse-resize;top:-7px;left:-7px}.crop-box .rd-h[data-h=ne]{cursor:nesw-resize;top:-7px;right:-7px}.crop-box .rd-h[data-h=sw]{cursor:nesw-resize;bottom:-7px;left:-7px}.crop-box .rd-h[data-h=se]{cursor:nwse-resize;bottom:-7px;right:-7px}.sig-box{box-sizing:border-box;cursor:move;border:1.5px solid #0000;position:absolute}.sig-box:hover{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.sig-box:hover{border-color:color-mix(in srgb, var(--brand) 55%, transparent)}}.sig-box.sel{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand)}@supports (color:color-mix(in lab, red, red)){.sig-box.sel{box-shadow:0 0 0 2px color-mix(in srgb, var(--brand) 22%, transparent)}}.sig-box>img{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.sig-box .rd-h{border:1.5px solid var(--brand);box-sizing:border-box;opacity:0;background:#fff;border-radius:2px;width:11px;height:11px;transition:opacity .12s;position:absolute}.sig-box:hover .rd-h,.sig-box.sel .rd-h{opacity:1}.sig-box .rd-h[data-h=nw]{cursor:nwse-resize;top:-6px;left:-6px}.sig-box .rd-h[data-h=ne]{cursor:nesw-resize;top:-6px;right:-6px}.sig-box .rd-h[data-h=sw]{cursor:nesw-resize;bottom:-6px;left:-6px}.sig-box .rd-h[data-h=se]{cursor:nwse-resize;bottom:-6px;right:-6px}.sig-pad{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow-xs);touch-action:none;line-height:0;position:relative;overflow:hidden}.sig-pad canvas{cursor:crosshair;width:100%;height:auto;display:block}.sig-pad .sig-baseline{border-bottom:1px dashed var(--line-2);pointer-events:none;height:0;position:absolute;bottom:26%;left:6%;right:6%}.work-bench[data-layout=work]{--work-side:340px;grid-template-columns:minmax(0, var(--work-side)) minmax(0, 1fr);grid-template-rows:auto auto 1fr;align-items:start;gap:16px;display:grid}.work-bench[data-layout=work]>.work-side{grid-area:1/1}.work-bench[data-layout=work]>.work-main{grid-area:1/2/span 3}.work-bench[data-layout=work]>.work-extra{grid-area:2/1}.work-bench[data-layout=stack]>*+*{margin-top:16px}.g2-fit{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;display:grid}.work-side .actionbar{-webkit-backdrop-filter:none;box-shadow:none;background:0 0;border:0;border-radius:0;flex-flow:column;justify-content:flex-start;align-items:stretch;gap:8px;margin-top:22px;padding:0;display:flex;position:static}.work-side .actionbar>.row{flex-flow:column;align-items:stretch;gap:6px}.work-side .actionbar #progress-bar{width:100%}.work-side .actionbar #progress-label{font-size:12.5px}.work-side .actionbar .btn{width:100%}.tool-tabs .tabbar{display:none}.tab{color:var(--ink-2);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;flex:auto;padding:6px 10px;font-size:12.5px;font-weight:640}.tab:hover{color:var(--ink)}.tab.is-on{background:var(--surface);color:var(--brand-ink);box-shadow:var(--shadow-xs)}.tab:focus-visible{outline:2px solid var(--brand-line);outline-offset:1px}@media (width>=1001px){.tool-tabs.is-live .tabbar{background:var(--surface-3);border-radius:var(--r-sm);gap:3px;margin-bottom:16px;padding:3px;display:flex}.tool-tabs.is-live .tabpanel{margin-top:0}.tool-tabs.is-live .tabpanel:not(.on),.tool-tabs.is-live .tabpanel>.lab:first-child{display:none}}@media (width<=1000px){.work-bench[data-layout=work]{grid-template-rows:none;grid-template-columns:minmax(0,1fr)}.work-bench[data-layout=work]>.work-side,.work-bench[data-layout=work]>.work-main,.work-bench[data-layout=work]>.work-extra{grid-area:auto/1}}.pen-dot{background:var(--ink);border-radius:50%;flex:none;width:10px;height:10px;transition:width .1s,height .1s;display:inline-block}@media (prefers-reduced-motion:reduce){.pen-dot{transition:none}}.sig-selbar{background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:var(--r-sm);flex-wrap:wrap;align-items:flex-end;gap:14px;padding:11px 14px;display:flex}.sig-selbar input[type=range]{width:132px}@media (width>=1001px){.sig-selbar.work-extra{align-items:stretch}.sig-selbar.work-extra>.lab{flex:100%}.sig-selbar.work-extra .field{flex:40%}.sig-selbar.work-extra input[type=range]{width:100%}.sig-selbar.work-extra .sel-acts{flex:100%;margin-left:0}.sig-selbar.work-extra .sel-acts>.btn{flex:auto}}.sig-selbar .lab{color:var(--brand-ink)}.sig-selbar .field{gap:3px}@keyframes sig-flash{0%{box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 70%, transparent)}to{box-shadow:0 0 0 3px #0000}}.sig-box.just-placed{animation:.95s ease-out 2 sig-flash}@media (prefers-reduced-motion:reduce){.sig-box.just-placed{animation:none}}@font-face{font-family:PP Dancing Script;src:url(/assets/fonts/dancing-script.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:PP Sacramento;src:url(/assets/fonts/sacramento.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:PP Great Vibes;src:url(/assets/fonts/great-vibes.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:PP Caveat;src:url(/assets/fonts/caveat.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:PP Allura;src:url(/assets/fonts/allura.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:PP Shadows Into Light;src:url(/assets/fonts/shadows-into-light.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:PP Playfair Display;src:url(/assets/fonts/playfair-display.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:PP Archivo Black;src:url(/assets/fonts/archivo-black.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:PP Oswald;src:url(/assets/fonts/oswald.woff2)format("woff2");font-weight:400;font-display:swap}.font-preview{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);min-height:48px;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;padding:7px 11px;font-size:26px;line-height:1.3;overflow:hidden}.font-note{color:var(--ink-3);font-size:12px}.font-note.bad{color:var(--warn)}.font-preview-sm{min-height:38px;font-size:18px}.cmp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}@media (width<=780px){.cmp-grid{grid-template-columns:1fr}}.cmp-pane{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-3);overflow:hidden}.cmp-pane-h{color:var(--ink-2);background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;font-size:12.5px;font-weight:640;display:flex}.cmp-pane-h .fn{text-overflow:ellipsis;white-space:nowrap;max-width:62%;font-weight:600;overflow:hidden}.cmp-pane-b{flex-wrap:wrap;justify-content:center;padding:10px;display:flex}.cmp-pane-b canvas{max-width:100%;height:auto;box-shadow:var(--shadow-xs);background:#fff;display:block}.cmp-pane.dim{opacity:.3;filter:grayscale()}.cmp-stats{flex-wrap:wrap;gap:18px;display:flex}.cmp-stat{flex-direction:column;gap:2px;display:flex}.cmp-stat b{font-size:20px;font-family:var(--mono);font-variant-numeric:tabular-nums}.cmp-stat span{color:var(--ink-3);font-size:12px;font-weight:600}.cmp-legend{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:14px;font-size:12.5px;display:flex}.cmp-legend i{vertical-align:-1px;border-radius:3px;width:12px;height:12px;margin-right:5px;display:inline-block}.diff-lines{font-family:var(--mono);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);max-height:340px;font-size:12.5px;line-height:1.65;overflow:auto}.diff-lines>div{white-space:pre-wrap;word-break:break-word;padding:1px 10px}.diff-lines .d-add{background:var(--ok-soft);color:var(--ok)}.diff-lines .d-del{background:var(--danger-soft);color:var(--danger)}.diff-lines .d-ctx{color:var(--ink-3)}.diff-lines .d-gap{color:var(--ink-3);background:0 0;font-style:italic}.textarea{resize:vertical;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);width:100%;min-height:300px;font-family:var(--mono);color:var(--ink);padding:12px 14px;font-size:13px;line-height:1.7}.textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand);outline:none}@supports (color:color-mix(in lab, red, red)){.textarea:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 14%, transparent)}}.pw-row{align-items:stretch;gap:8px;max-width:460px;display:flex}.pw-row .input{font-family:var(--mono);flex:1}.perm-grid{grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:7px;display:grid}.perm-item{border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface-3);align-items:center;gap:7px;padding:7px 10px;font-size:12.5px;display:flex}.perm-item.yes{border-color:var(--ok-line);background:var(--ok-soft);color:var(--ok)}.perm-item.no{color:var(--ink-3)}.perm-item .pi{font-size:14px}.bar{background:var(--surface-3);border-radius:99px;height:6px;overflow:hidden}.bar>i{background:linear-gradient(90deg, var(--brand), var(--brand-ink));border-radius:99px;width:0;height:100%;transition:width .25s;display:block}.bar-wrap{flex-direction:column;gap:8px;display:flex}.bar-label{color:var(--ink-2);justify-content:space-between;font-size:12.5px;font-weight:600;display:flex}.actionbar{z-index:40;background:var(--surface);margin-top:22px;padding:13px 18px;position:sticky;bottom:0}@supports (color:color-mix(in lab, red, red)){.actionbar{background:color-mix(in srgb, var(--surface) 88%, transparent)}}.actionbar{-webkit-backdrop-filter:saturate(180%)blur(14px);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.order-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.lab-sub{color:var(--ink-3);font-size:12.5px;font-weight:640}.order-seq{font-family:var(--mono);color:var(--ink-2);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:12.5px}.result-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.result-size{letter-spacing:-.025em;font-variant-numeric:tabular-nums;font-size:27px;font-weight:800}.result-size.win{color:var(--ok)}.result-size.lose{color:var(--ink-3)}.delta{border-radius:var(--r-full);align-items:center;gap:5px;padding:2px 9px;font-size:12.5px;font-weight:700;display:inline-flex}.delta.down{background:var(--ok-soft);color:var(--ok)}.delta.up{background:var(--warn-soft);color:var(--warn)}.kv{grid-template-columns:148px 1fr;gap:0;font-size:13.5px;display:grid}.kv>dt{color:var(--ink-3);border-bottom:1px solid var(--line-2);padding:8px 0;font-weight:600}.kv>dd{color:var(--ink);border-bottom:1px solid var(--line-2);word-break:break-all;font-family:var(--mono);margin:0;padding:8px 0;font-size:12.5px}.kv>dt:last-of-type,.kv>dd:last-of-type{border-bottom:0}@media (width<=560px){.kv{grid-template-columns:1fr}.kv>dt{border-bottom:0;padding-bottom:0}}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:3px;margin-bottom:22px;display:flex}.tabs button{cursor:pointer;color:var(--ink-3);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 15px;font-size:14px;font-weight:620;transition:color .14s,border-color .14s}.tabs button:hover{color:var(--ink)}.tabs button.on{color:var(--brand);border-bottom-color:var(--brand)}.toast-host{z-index:200;pointer-events:none;flex-direction:column;align-items:center;gap:9px;width:max-content;max-width:calc(100vw - 32px);display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--r);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);pointer-events:auto;align-items:center;gap:10px;padding:11px 17px;font-size:13.5px;font-weight:550;animation:.22s cubic-bezier(.2,.8,.3,1) toast-in;display:flex}.toast.out{animation:.18s forwards toast-out}.toast-ok{border-color:var(--ok-line);color:var(--ok)}.toast-err{border-color:var(--danger-line);color:var(--danger)}.toast-warn{border-color:var(--warn-line);color:var(--warn)}@keyframes toast-in{0%{opacity:0;transform:translateY(14px)scale(.97)}}@keyframes toast-out{to{opacity:0;transform:translateY(8px)scale(.98)}}.modal-backdrop{z-index:300;background:#0d152673;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--line);width:min(440px,100%);max-height:90vh;box-shadow:var(--shadow-lg);border-radius:14px;padding:20px 20px 16px;animation:.14s cubic-bezier(.2,.8,.3,1) modal-in;overflow:auto}.modal-title{color:var(--ink);margin:0 0 8px;font-size:16px;font-weight:700}.modal-body{color:var(--ink-2);margin:0;font-size:13.5px;line-height:1.65}.modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}@keyframes modal-in{0%{opacity:0;transform:translateY(6px)scale(.98)}}@media (prefers-reduced-motion:reduce){.modal{animation:none}}.offline-ready{z-index:210;background:var(--surface);border:1px solid var(--ok-line);box-shadow:var(--shadow-md);color:var(--ok);border-radius:999px;align-items:center;gap:8px;padding:8px 13px;font-size:12.5px;font-weight:600;animation:.22s cubic-bezier(.2,.8,.3,1) toast-in;display:flex;position:fixed;bottom:14px;right:14px}.offline-ready-dot{background:var(--ok);width:8px;height:8px;box-shadow:0 0 0 3px var(--ok-soft);border-radius:50%}@media (width<=520px){.offline-ready{padding:7px 11px;font-size:12px;bottom:10px;right:10px}}.site-footer{border-top:1px solid var(--line);background:var(--surface);color:var(--ink-3);flex:none;margin-top:64px;padding:34px 0 28px;font-size:13px}.site-footer .cols{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:28px;display:grid}@media (width<=820px){.site-footer .cols{grid-template-columns:1fr 1fr}}@media (width<=520px){.site-footer{margin-top:40px;padding:22px 0 18px}.site-footer .cols{grid-template-columns:1fr 1fr;gap:16px 18px}.site-footer .cols>div:first-child{grid-column:1/-1}.site-footer .cols>div:first-child p{font-size:12px;line-height:1.6}.site-footer .cols>div>div{columns:1;column-gap:0}.site-footer a{padding:2px 0}.site-footer h4{margin-bottom:6px}.site-footer .legal{margin-top:14px}.site-footer .fine{margin-top:14px;padding-top:10px;font-size:11.5px}}.site-footer h4{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin-bottom:11px;font-size:12px;font-weight:700}.site-footer a{padding:3px 0;transition:color .14s;display:block}.site-footer a:hover{color:var(--brand)}.site-footer .fine{border-top:1px solid var(--line-2);margin-top:26px;padding-top:20px;font-size:12px;line-height:1.7}.site-footer .fine b{color:var(--ink-2)}.site-footer .legal{flex-wrap:wrap;gap:7px 20px;margin-top:24px;font-size:12.5px;display:flex}.site-footer .legal a{color:var(--ink-2);padding:0;display:inline-block}.site-footer .legal a:hover{color:var(--brand)}.page-head{padding:34px 0 22px}.page-head h1{letter-spacing:-.025em;font-size:clamp(24px,3.4vw,32px);font-weight:800}.page-head .sub{color:var(--ink-2);max-width:720px;margin-top:8px;font-size:14.5px;line-height:1.62}.crumb{color:var(--ink-3);margin-bottom:11px;font-size:12.5px}.crumb a:hover{color:var(--brand)}.crumb span{margin:0 6px}.cat-ico{vertical-align:-4px;max-width:22px;max-height:20px;margin-right:8px;display:inline}.badge{border-radius:var(--r-full);background:var(--surface-3);color:var(--ink-2);align-items:center;gap:5px;padding:2px 9px;font-size:11.5px;font-weight:650;display:inline-flex}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.muted{color:var(--ink-3)}.stale-hint{margin:14px 0 0;font-size:12.5px}.mono{font-family:var(--mono);font-size:12.5px}.center{text-align:center}.sr{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.spinner{border:2px solid;border-radius:50%;width:15px;height:15px}@supports (color:color-mix(in lab, red, red)){.spinner{border:2px solid color-mix(in srgb, currentColor 25%, transparent)}}.spinner{border-top-color:currentColor;flex:none;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.scroll-y{overflow-y:auto}.nav-more{position:relative}.nav-more>summary{border-radius:var(--r-sm);color:var(--ink-2);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;padding:6px 11px;font-size:14px;font-weight:500;list-style:none;transition:background .14s,color .14s;display:inline-flex}.nav-more>summary::-webkit-details-marker{display:none}.nav-more>summary:hover{background:var(--surface-3);color:var(--ink)}.nav-more[open]>summary,.nav-more>summary.active{color:var(--brand);background:var(--brand-soft);font-weight:600}.chev{border-bottom:1.5px solid;border-right:1.5px solid;width:7px;height:7px;margin-top:-3px;transition:transform .14s,margin .14s;transform:rotate(45deg)}.nav-more[open] .chev{margin-top:2px;transform:rotate(-135deg)}.nav-more-panel{z-index:10;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);min-width:216px;box-shadow:var(--shadow-md);grid-template-columns:1fr 1fr;gap:1px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);left:0}.nav-links .nav-more-panel a{align-items:center;gap:6px;padding:7px 9px;font-size:13.5px;display:flex}.nav-more-panel .ico{flex:none;align-items:center;display:flex}.nav-more-panel .ico img{object-fit:contain;flex:none;width:15px;height:15px;display:block}@media (width<=780px){.nav-more{flex:1 0 100%}.nav-more-panel{width:100%;min-width:0;box-shadow:none;background:var(--surface-2);margin-top:4px;position:static}}.nav-mobile{display:none}.nav-mobile>summary{border-radius:var(--r-sm);color:var(--ink-2);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;padding:6px 10px;font-size:14px;font-weight:500;list-style:none;transition:background .14s,color .14s;display:inline-flex}.nav-mobile>summary::-webkit-details-marker{display:none}.nav-mobile>summary:hover{background:var(--surface-3);color:var(--ink)}.nav-mobile[open]>summary{color:var(--brand);background:var(--brand-soft);font-weight:600}.burger{flex:none;width:20px;height:14px;display:inline-block;position:relative}.burger i{background:currentColor;border-radius:2px;height:2px;transition:transform .25s,top .25s,opacity .18s;position:absolute;left:0;right:0}.burger i:first-child{top:0}.burger i:nth-child(2){top:6px}.burger i:nth-child(3){top:12px}.nav-mobile[open] .burger i:first-child{top:6px;transform:rotate(45deg)}.nav-mobile[open] .burger i:nth-child(2){opacity:0}.nav-mobile[open] .burger i:nth-child(3){top:6px;transform:rotate(-45deg)}.nav-mobile-panel{z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);width:min(340px,100vw - 28px);max-height:72vh;box-shadow:var(--shadow-md);grid-template-columns:1fr 1fr;gap:1px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);left:50%;overflow-y:auto;transform:translate(-50%)}.nav-mobile-panel a{border-radius:var(--r-sm);color:var(--ink-2);align-items:center;gap:7px;padding:8px 9px;font-size:13.5px;transition:background .14s,color .14s;display:flex}.nav-mobile-panel a:hover{background:var(--surface-3);color:var(--ink)}.nav-mobile-panel a.active{color:var(--brand);background:var(--brand-soft);font-weight:600}@media (width<=780px){.nav-links{display:none}.nav-mobile{display:block}.table-wrap table.tbl{table-layout:fixed;width:100%}.table-wrap table.tbl th{white-space:normal}.table-wrap table.tbl th:first-child,.table-wrap table.tbl td:first-child{white-space:normal;width:26%}.table-wrap table.tbl th:nth-child(2),.table-wrap table.tbl td:nth-child(2){width:34%}.table-wrap table.tbl th:nth-child(3),.table-wrap table.tbl td:nth-child(3){width:40%}}@media (width<=350px){.brand span{display:none}}.prose{max-width:720px}.prose-sec{margin-bottom:26px}.prose h2{letter-spacing:-.012em;margin-bottom:10px;font-size:19px;font-weight:720}.prose h3{margin:18px 0 8px;font-size:15.5px;font-weight:680}.prose p{color:var(--ink-2);margin-bottom:12px;font-size:14.5px;line-height:1.72}.prose p:last-child{margin-bottom:0}.prose ul,.prose ol{margin:0 0 14px;padding-left:22px}.prose li{color:var(--ink-2);margin-bottom:7px;font-size:14.5px;line-height:1.7}.prose li::marker{color:var(--ink-3)}.prose a:not(.btn){color:var(--brand);text-underline-offset:2px;text-decoration:underline}.prose b,.prose strong{color:var(--ink)}.prose code{font-family:var(--mono);border-radius:var(--r-xs);background:var(--surface-2);border:1px solid var(--line-2);color:var(--ink);word-break:break-word;padding:1px 5px;font-size:.88em}.spec{margin:0 0 16px;font-size:14px}.spec>dt{color:var(--ink);border-top:1px solid var(--line-2);padding:9px 0 2px;font-weight:660}.spec>dt:first-of-type{border-top:0;padding-top:0}.spec>dd{color:var(--ink-2);margin:0 0 9px;line-height:1.6}.spec-note{margin:0 0 16px}.faq{border-top:1px solid var(--line-2);padding:11px 0}.faq summary{color:var(--ink);cursor:pointer;font-size:14.5px;font-weight:640;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary:before{content:"＋";color:var(--ink-3);margin-right:9px;font-weight:500}.faq[open] summary:before{content:"−"}.faq summary:hover{color:var(--brand)}.faq p{color:var(--ink-2);margin:9px 0 3px 22px;font-size:14px;line-height:1.7}.link-card{text-decoration:none;display:block}.link-card:hover{border-color:var(--brand-line);background:var(--brand-soft)}@media (width<=780px){.prose p,.prose li,.faq p{font-size:14px}}@media (width<=1199px){.hide-sm{display:none!important}}@media (width<=780px){.site-header{height:auto}.site-header .wrap{flex-wrap:nowrap;gap:8px 10px;padding-top:9px;padding-bottom:7px}.hdr-spacer{display:none}.nav-mobile{margin-left:auto}.nav-links a{padding:5px 10px;font-size:13.5px}.wrap{padding:0 15px}.hero{padding:38px 0 28px}.card{padding:17px}.card-head,.card-body{padding:15px 17px}.actionbar{padding:11px 14px}.thumb-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px}.thumb-canvas-wrap{min-height:118px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}@media print{.site-header,.site-footer,.actionbar,.toast-host{display:none!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
