:root{--bg:#F7FAFA;--surface:#fff;--ink:#172B33;--muted:#61747B;--teal:#087E8B;--teal-hover:#076976;--soft:#E2F3F4;--border:#DFE8EA;--shadow:0 10px 34px rgba(23,43,51,.035)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.5}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin-top:0}[hidden]{display:none!important}:focus-visible{outline:3px solid rgba(8,126,139,.45);outline-offset:3px}.shell{width:min(1180px,calc(100% - 64px));margin-inline:auto}.skip-link{position:absolute;z-index:10;top:-60px;left:16px;background:var(--ink);color:#fff;padding:8px 12px}.skip-link:focus{top:8px}.site-header{height:68px;background:#fff;border-bottom:1px solid var(--border)}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between}.wordmark{font-weight:750;letter-spacing:-.065em;font-size:26px;line-height:1;color:var(--ink)}.wordmark-dot{color:var(--teal)}.site-nav{display:flex;align-items:center;gap:35px;font-size:14px;font-weight:560;color:#4f6269}.site-nav>a:hover,.site-nav>a.nav-active,.nav-search:hover{color:var(--teal)}.nav-search{display:flex;align-items:center;gap:8px;border:0;background:none;color:inherit;padding:8px 0;font-weight:560}.nav-search svg,.search-wrap svg{width:18px;height:18px}.nav-search kbd,.search-shortcut{border:1px solid var(--border);border-radius:5px;color:#83949a;background:#f9fbfb;font-family:inherit;font-size:12px;line-height:1;padding:5px 7px;margin-left:5px}.menu-toggle{display:none}
.intro{padding-top:42px;padding-bottom:26px}.eyebrow,.section-kicker,.detail-label{color:var(--teal);font-size:12px;font-weight:700;letter-spacing:.045em;line-height:1.4}.intro h1{font-size:clamp(36px,4vw,44px);line-height:1.15;font-weight:720;letter-spacing:-.048em;margin-bottom:14px}.intro h1 span{color:var(--teal)}.intro-copy{max-width:560px;font-size:16px;color:var(--muted);margin-bottom:20px}.search-wrap{width:min(650px,100%);height:58px;display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid #cbdcdf;border-radius:10px;padding:0 18px;box-shadow:0 8px 24px rgba(23,43,51,.045);color:#75888e}.search-wrap:focus-within{border-color:var(--teal);box-shadow:0 0 0 4px rgba(8,126,139,.11)}.search-wrap input{height:100%;flex:1;min-width:0;border:0;background:transparent;outline:0;color:var(--ink)}.search-wrap input::placeholder{color:#5f7279}.search-hint{font-size:13px;color:#5f7279;margin:11px 0 0}
.directory{padding-bottom:86px}.category-bar{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:17px 0;display:flex;gap:8px;flex-wrap:wrap;scroll-margin-top:20px}.category-chip{border:1px solid transparent;background:transparent;border-radius:7px;padding:8px 14px;color:#536970;font-size:14px;font-weight:600;white-space:nowrap}.category-chip:hover{background:#ecf4f4;color:var(--teal)}.category-chip.is-active{background:var(--soft);color:var(--teal-hover)}.popular{padding-top:32px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:22px}.section-kicker{margin-bottom:7px}.section-heading h2,.tool-below h2{font-size:25px;font-weight:670;line-height:1.25;letter-spacing:-.035em;margin-bottom:0}.section-heading>p{color:var(--muted);font-size:14px;margin:0 0 2px}.popular-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.popular-card{min-height:136px;background:#fff;border:1px solid var(--border);border-radius:9px;padding:19px 20px 17px;display:flex;flex-direction:column;align-items:flex-start;box-shadow:var(--shadow)}.popular-card strong{font-size:16px;font-weight:650;letter-spacing:-.015em;margin-bottom:5px}.popular-card>span:nth-child(2){font-size:13px;color:var(--muted);line-height:1.45}.popular-card .available,.popular-card .coming{margin-top:auto;padding-top:14px;font-size:11px;font-weight:650}.popular-card .available{color:var(--teal)}.popular-card .coming{color:#5f7279}.popular-card[href]:hover{border-color:#8bc9ce;transform:translateY(-2px);box-shadow:0 12px 24px rgba(23,43,51,.07)}.popular-card[href]{transition:border-color .16s,box-shadow .16s,transform .16s}.upcoming{cursor:default}
.catalog{padding-top:48px;scroll-margin-top:24px}.catalog-heading{margin-bottom:23px}.count-badge{display:inline-flex;vertical-align:middle;align-items:center;justify-content:center;margin-left:6px;min-width:30px;height:27px;border-radius:6px;background:#e9eff0;color:#4a5d64;font-size:13px;font-weight:650;letter-spacing:0}.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px 28px}.catalog-group{border-top:2px solid var(--border);padding:16px 2px 7px}.group-heading{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:11px;margin-bottom:4px}.group-heading h3{font-size:21px;font-weight:700;letter-spacing:-.03em;margin:0}.group-heading>span{font-size:12px;color:#5f7279;font-weight:650}.catalog-group ul{list-style:none;margin:0;padding:0}.catalog-group li{min-height:39px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:15px;color:#52676e}.catalog-group li a{color:var(--ink);font-weight:400}.catalog-group li a:hover{color:var(--teal);text-decoration:underline;text-underline-offset:3px}.catalog-group li>span:first-child{cursor:default}.row-status{font-size:11px;color:var(--teal);background:var(--soft);padding:3px 7px;border-radius:4px;font-weight:650}.catalog-note{color:#5f7279;font-size:12px;margin:17px 0 0}.empty-state{background:#fff;border:1px dashed #c5d9dc;border-radius:9px;padding:32px;text-align:center}.empty-state h3{margin-bottom:3px}.empty-state p{color:var(--muted)}.empty-state button{background:var(--soft);color:var(--teal-hover);border:0;border-radius:6px;padding:9px 15px;font-weight:650}
.site-footer{border-top:1px solid var(--border);background:#fff}.footer-inner{display:flex;justify-content:space-between;gap:35px;padding-top:40px;padding-bottom:35px}.footer-inner .wordmark{font-size:24px}.footer-inner p{font-size:13px;color:var(--muted);margin:11px 0 0}.footer-inner nav{max-width:460px;display:flex;justify-content:flex-end;align-content:flex-start;gap:12px 25px;flex-wrap:wrap;font-size:13px;color:var(--muted)}.footer-inner nav a:hover{color:var(--teal)}.footer-bottom{border-top:1px solid var(--border);padding-top:16px;padding-bottom:20px;display:flex;justify-content:space-between;color:#5f7279;font-size:12px}
.tool-page{padding-top:28px;padding-bottom:84px}.breadcrumbs{display:flex;gap:10px;align-items:center;color:#5f7279;font-size:13px;flex-wrap:wrap}.breadcrumbs a:hover{color:var(--teal)}.breadcrumbs span[aria-current]{color:var(--ink)}.tool-intro{padding:30px 0 25px}.tool-intro h1{font-size:clamp(34px,4vw,42px);line-height:1.16;letter-spacing:-.045em;font-weight:720;margin-bottom:10px}.tool-intro>p:last-child{color:var(--muted);margin:0;max-width:670px}.workspace{background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:30px}.workspace-top{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:18px}.workspace-top h2{font-size:20px;letter-spacing:-.025em;margin-bottom:3px}.workspace-top p{font-size:13px;color:var(--muted);margin:0}.local-badge{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:100px;padding:6px 10px;color:#5b7077;font-size:12px;white-space:nowrap}.local-badge span{width:7px;height:7px;border-radius:50%;background:var(--teal)}.upload-zone{min-height:175px;position:relative;border:1.5px dashed #a8c9cd;border-radius:9px;background:#fbfdfd;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:25px;color:var(--muted);transition:background .15s,border-color .15s}.upload-zone:hover,.upload-zone.is-dragging,.upload-zone:focus-within{background:#f1f9f9;border-color:var(--teal)}.upload-zone input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-zone svg{width:42px;height:42px;color:var(--teal);margin-bottom:13px}.upload-zone strong{font-size:15px;color:var(--ink);font-weight:650}.upload-zone strong span{color:var(--teal);text-decoration:underline;text-underline-offset:3px}.upload-zone p{margin:6px 0 0;font-size:12px;color:#5f7279}.file-summary{display:flex;align-items:center;min-height:68px;min-width:0;background:#fbfdfd;border:1px solid var(--border);border-radius:9px;padding:8px}.selected-file-open{display:flex;align-items:center;gap:13px;flex:1;min-width:0;min-height:50px;border:0;background:none;text-align:left;padding:0 8px;border-radius:6px;color:var(--ink)}.selected-file-open:hover{background:#f1f9f9}.preview-frame{width:46px;height:46px;flex:none;border-radius:5px;background:#edf3f4;display:grid;place-items:center;overflow:hidden}.preview-frame img{width:100%;height:100%;object-fit:cover}.file-details{display:flex;flex-direction:column;min-width:0;overflow:hidden}.file-details strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:650}.file-details>span{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.remove-file{width:38px;height:38px;flex:none;border:0;border-radius:6px;background:transparent;color:var(--muted);display:grid;place-items:center}.remove-file:hover{background:#eaf2f3;color:var(--ink)}.remove-file svg{width:17px;height:17px}.controls{display:grid;grid-template-columns:1fr 1fr;gap:18px 28px;padding-top:22px}.field label{display:block;font-size:13px;font-weight:650;margin-bottom:9px}.field select{height:44px;width:100%;max-width:410px;border:1px solid #cbdcdf;border-radius:6px;background:#fff;color:var(--ink);padding:0 12px;font-size:14px}.quality-label{display:flex;justify-content:space-between;align-items:baseline}.quality-label output{font-size:13px;color:var(--teal);font-weight:700}.quality-field input{width:100%;accent-color:var(--teal);margin:5px 0}.range-ends{display:flex;justify-content:space-between;color:#5f7279;font-size:11px}.format-note{margin:0;color:var(--muted);font-size:12px;align-self:center}.primary-button{border:1px solid var(--teal);border-radius:6px;background:var(--teal);color:#fff;min-height:44px;padding:10px 20px;font-size:14px;font-weight:680;text-align:center;display:inline-flex;align-items:center;justify-content:center;justify-self:end}.primary-button:hover{background:var(--teal-hover);border-color:var(--teal-hover)}.primary-button:disabled{opacity:.65;cursor:wait}.tool-message{margin:18px 0 0;padding:10px 14px;border-radius:6px;background:var(--soft);color:var(--teal-hover);font-size:13px}.tool-message.is-error{background:#fff1ef;color:#a63b2f}.result{margin-top:24px;padding:21px;border:1px solid #b8dadd;background:#f4fbfb;border-radius:9px;display:grid;grid-template-columns:1fr auto;gap:17px 25px;align-items:center}.result .detail-label{margin-bottom:5px}.result h3{font-size:18px;letter-spacing:-.02em;margin-bottom:3px}.result p:last-child{font-size:13px;color:var(--muted);margin:0}.result-metrics{display:grid;grid-template-columns:repeat(2,minmax(100px,1fr));gap:12px 24px}.result-metrics div{display:flex;flex-direction:column}.result-metrics span{font-size:11px;color:var(--muted)}.result-metrics strong{font-size:16px}.download-button{grid-column:2;justify-self:end;min-width:160px}.tool-below{display:grid;grid-template-columns:1.4fr 1fr;gap:60px;padding-top:44px}.tool-below h2{font-size:22px;margin-bottom:18px}.info-panel ol{margin:0;padding-left:21px;color:var(--muted);font-size:14px}.info-panel li{padding-left:5px;margin:10px 0}.info-panel li strong{color:var(--ink)}.info-note{font-size:12px;color:#5f7279;margin:22px 0 0}.related-panel ul{padding:0;margin:0 0 19px;list-style:none;border-top:1px solid var(--border)}.related-panel li{padding:11px 0;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:10px;font-size:14px}.related-panel li span{font-size:11px;color:#5f7279}.related-panel>a{font-size:13px;font-weight:650;color:var(--teal)}.related-panel>a:hover{text-decoration:underline}
@media(max-width:850px){.popular-grid,.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tool-below{gap:30px}.result{grid-template-columns:1fr}.download-button{grid-column:1;justify-self:start}}
@media(max-width:620px){.shell{width:min(100% - 32px,480px)}.site-header{height:62px}.wordmark{font-size:24px}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;border:0;background:transparent;padding:8px}.menu-toggle span{display:block;width:23px;height:2px;background:var(--ink);border-radius:2px}.site-nav{display:none;position:absolute;z-index:5;top:62px;left:0;right:0;padding:14px 16px 20px;background:#fff;border-bottom:1px solid var(--border);box-shadow:0 14px 20px rgba(23,43,51,.08);flex-direction:column;align-items:stretch;gap:0}.site-nav.is-open{display:flex}.site-nav>a,.site-nav>button{min-height:44px;display:flex;align-items:center;padding:9px 4px}.nav-search kbd{display:none}.intro{padding-top:32px;padding-bottom:24px}.intro h1{font-size:36px}.intro-copy{font-size:15px}.search-wrap{height:54px}.search-shortcut{display:none}.category-bar{flex-wrap:nowrap;overflow-x:auto;margin-right:-16px;padding-right:16px;scrollbar-width:none}.category-bar::-webkit-scrollbar{display:none}.category-chip{flex:none}.popular{padding-top:27px}.section-heading{align-items:start;display:block;margin-bottom:16px}.section-heading>p{margin-top:6px}.section-heading h2{font-size:23px}.popular-grid,.catalog-grid{grid-template-columns:1fr}.popular-grid{gap:9px}.popular-card{min-height:104px;padding:15px 17px}.popular-card .available,.popular-card .coming{padding-top:7px}.catalog{padding-top:38px}.catalog-grid{gap:19px}.catalog-group{padding:13px 2px 5px}.directory{padding-bottom:57px}.footer-inner{display:block;padding:32px 0}.footer-inner nav{justify-content:flex-start;margin-top:25px;gap:10px 19px}.tool-page{padding-top:22px;padding-bottom:60px}.tool-intro{padding:27px 0 22px}.tool-intro h1{font-size:34px}.workspace{padding:19px}.workspace-top{display:block;margin-bottom:18px}.local-badge{margin-top:12px}.upload-zone{min-height:175px}.controls{grid-template-columns:1fr;gap:18px}.format-note{grid-row:auto}.primary-button{justify-self:stretch}.result-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 10px}.result-metrics strong{font-size:14px}.download-button{justify-self:stretch}.tool-below{grid-template-columns:1fr;gap:38px;padding-top:38px}.footer-bottom{gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.popular-card[href]{transition:none}}
/* Shared tool-page components */
.field input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]){height:44px;width:100%;border:1px solid #cbdcdf;border-radius:6px;background:#fff;color:var(--ink);padding:0 12px;font-size:14px}.field input[type=color]{width:56px;height:44px;border:1px solid #cbdcdf;border-radius:6px;background:#fff;padding:3px}.field input[type=range]{width:100%;accent-color:var(--teal)}.field input:focus,.field select:focus,.text-area:focus{border-color:var(--teal);outline:0;box-shadow:0 0 0 3px rgba(8,126,139,.13)}.field .hint{display:block;margin-top:6px;font-size:12px;color:#5f7279}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px 20px}.form-grid .field select{max-width:none}.workspace>*+*{margin-top:20px}.workspace>.workspace-top+*{margin-top:0}.workspace>.tool-message,.workspace>.result{margin-top:20px}
.text-area{display:block;width:100%;min-height:240px;resize:vertical;border:1px solid #cbdcdf;border-radius:8px;padding:12px 14px;font:inherit;font-size:15px;line-height:1.55;color:var(--ink);background:#fff;tab-size:4}.text-area[readonly]{background:#fbfdfd}.text-area.short{min-height:130px}.panes{display:grid;grid-template-columns:1fr 1fr;gap:18px}.pane-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;min-height:34px}.pane-head label,.pane-head h3{font-size:13px;font-weight:650;margin:0}.btn-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.secondary-button{border:1px solid #cbdcdf;border-radius:6px;background:#fff;color:var(--ink);min-height:40px;padding:8px 14px;font-size:14px;font-weight:620;display:inline-flex;align-items:center;justify-content:center;text-align:center}.secondary-button:hover{border-color:var(--teal);color:var(--teal)}.secondary-button:disabled{opacity:.55;cursor:not-allowed}.secondary-button.small{min-height:32px;padding:4px 10px;font-size:13px}.primary-button.start{justify-self:auto}.primary-button[aria-disabled=true]{opacity:.55;pointer-events:none}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.stat{background:#fbfdfd;border:1px solid var(--border);border-radius:8px;padding:12px 14px}.stat span{display:block;font-size:12px;color:var(--muted)}.stat strong{font-size:22px;letter-spacing:-.02em}.check-row{display:flex;flex-wrap:wrap;gap:6px 24px}.check{display:flex;align-items:center;gap:8px;font-size:14px;min-height:34px;cursor:pointer}.check input{width:17px;height:17px;accent-color:var(--teal);margin:0}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip-row .category-chip{border-color:var(--border);background:#fff}.chip-row .category-chip.is-active{border-color:#8bc9ce;background:var(--soft)}.answer{background:#f4fbfb;border:1px solid #b8dadd;border-radius:9px;padding:16px 20px}.answer .label{font-size:12px;color:var(--muted);display:block}.answer strong{font-size:28px;letter-spacing:-.03em;color:var(--teal);overflow-wrap:anywhere}.answer p{margin:6px 0 0;font-size:13px;color:var(--muted)}.answer.is-error strong{color:#a63b2f;font-size:16px}.calc-block{padding-top:22px;border-top:1px solid var(--border)}.calc-block h3{font-size:16px;letter-spacing:-.01em;margin-bottom:12px}.calc-inline{display:flex;flex-wrap:wrap;align-items:end;gap:12px}.calc-inline .field{flex:1 1 130px}.calc-inline .op{padding-bottom:12px;color:var(--muted);font-weight:650}
.convert-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:12px 14px;align-items:end}.convert-grid .field select{max-width:none}.swap-button{width:44px;height:44px;border:1px solid #cbdcdf;border-radius:6px;background:#fff;color:var(--teal);display:grid;place-items:center}.swap-button:hover{border-color:var(--teal);background:var(--soft)}.swap-button svg{width:20px;height:20px}.out-value{display:flex;align-items:center;min-height:44px;padding:0 12px;border:1px solid #b8dadd;background:#f4fbfb;border-radius:6px;font-size:18px;font-weight:680;color:var(--teal);overflow-wrap:anywhere}.unit-table{width:100%;border-collapse:collapse;font-size:14px}.unit-table th,.unit-table td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--border)}.unit-table th{font-size:12px;color:var(--muted);font-weight:650}.unit-table td:last-child{text-align:right;font-variant-numeric:tabular-nums}.unit-table tr.is-target td{background:#f4fbfb;font-weight:650}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:9px}
.diff{border:1px solid var(--border);border-radius:8px;overflow:auto;max-height:520px;font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.diff-line{display:grid;grid-template-columns:44px 44px 22px 1fr;white-space:pre-wrap;overflow-wrap:anywhere}.diff-line>*{padding:1px 6px}.diff-line .num{color:#5f7279;text-align:right;user-select:none}.diff-line .sign{text-align:center;user-select:none}.diff-add{background:#e7f6ee}.diff-del{background:#fdecea}.diff-add mark{background:#a9e2c1}.diff-del mark{background:#f6b8b0}.diff mark{color:inherit;border-radius:2px}.diff-empty{padding:20px;text-align:center;color:var(--muted);font:14px Inter,sans-serif}
.file-list{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:9px;overflow:hidden}.file-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;min-height:56px;border-bottom:1px solid var(--border);background:#fbfdfd}.file-list li:last-child{border-bottom:0}.file-list .idx{flex:none;width:26px;height:26px;border-radius:50%;background:var(--soft);color:var(--teal-hover);font-size:12px;font-weight:700;display:grid;place-items:center}.file-list .thumb-sm{flex:none;width:44px;height:44px;border-radius:5px;background:#edf3f4;overflow:hidden;display:grid;place-items:center}.file-list .thumb-sm img{width:100%;height:100%;object-fit:cover}.file-list .meta{flex:1;min-width:0}.file-list .meta strong{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-list .meta span{font-size:12px;color:var(--muted)}.file-list .meta .err{color:#a63b2f}.file-list li.is-dragover{background:var(--soft)}.icon-btn{flex:none;width:36px;height:36px;border:0;border-radius:6px;background:transparent;color:var(--muted);display:grid;place-items:center}.icon-btn:hover:not(:disabled){background:#eaf2f3;color:var(--ink)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn svg{width:17px;height:17px}.add-more{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border:1.5px dashed #a8c9cd;border-radius:9px;color:var(--teal);font-size:14px;font-weight:650;position:relative;background:#fbfdfd}.add-more:hover,.add-more:focus-within{background:#f1f9f9;border-color:var(--teal)}.add-more input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}.upload-zone.is-compact{min-height:130px}.upload-zone .zone-label{pointer-events:none}
.thumb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.thumb{border:1px solid var(--border);border-radius:8px;padding:8px;text-align:center;background:#fbfdfd;font-size:12px;color:var(--muted)}.thumb-frame{height:160px;display:grid;place-items:center;overflow:hidden;background:#edf3f4;border-radius:5px;margin-bottom:7px}.thumb-frame canvas,.thumb-frame img{max-width:100%;max-height:100%;height:auto;width:auto;display:block;transition:transform .2s}.thumb .btn-row{justify-content:center;margin-top:6px}.progress{height:8px;border-radius:5px;background:#e3eef0;overflow:hidden}.progress>span{display:block;height:100%;width:0;background:var(--teal);transition:width .15s}.progress-wrap{display:grid;gap:6px;font-size:13px;color:var(--muted)}
.preview-stage{display:flex;justify-content:center;align-items:center;padding:14px;border:1px solid var(--border);border-radius:9px;background:repeating-conic-gradient(#f1f6f6 0 25%,#fff 0 50%) 0 0/18px 18px;overflow:hidden}.preview-stage img,.preview-stage canvas{display:block;max-width:100%;max-height:440px;width:auto;height:auto}.crop-stage{position:relative;display:inline-block;max-width:100%;touch-action:none;user-select:none;-webkit-user-select:none;overflow:hidden;line-height:0}.crop-stage img{display:block;max-width:100%;max-height:520px;width:auto;height:auto;pointer-events:none}.crop-box{position:absolute;border:2px solid #fff;box-shadow:0 0 0 9999px rgba(23,43,51,.55);cursor:move;outline:1px solid rgba(8,126,139,.8)}.crop-box:focus-visible{outline:3px solid var(--teal)}.crop-handle{position:absolute;width:18px;height:18px;margin:-9px 0 0 -9px;background:var(--teal);border:2px solid #fff;border-radius:50%}.crop-handle[data-h=nw]{left:0;top:0;cursor:nwse-resize}.crop-handle[data-h=n]{left:50%;top:0;cursor:ns-resize}.crop-handle[data-h=ne]{left:100%;top:0;cursor:nesw-resize}.crop-handle[data-h=e]{left:100%;top:50%;cursor:ew-resize}.crop-handle[data-h=se]{left:100%;top:100%;cursor:nwse-resize}.crop-handle[data-h=s]{left:50%;top:100%;cursor:ns-resize}.crop-handle[data-h=sw]{left:0;top:100%;cursor:nesw-resize}.crop-handle[data-h=w]{left:0;top:50%;cursor:ew-resize}
.sig-pad{display:block;width:100%;height:240px;border:1.5px dashed #a8c9cd;border-radius:9px;background:#fff;touch-action:none;cursor:crosshair}.sig-pad.is-checker{background:repeating-conic-gradient(#f1f6f6 0 25%,#fff 0 50%) 0 0/18px 18px}.font-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.font-choice{border:1px solid var(--border);background:#fff;border-radius:8px;padding:10px 12px;font-size:24px;line-height:1.3;color:var(--ink);text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.font-choice.is-active{border-color:var(--teal);background:var(--soft)}.pw-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.pw-list li{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:8px;padding:6px 8px 6px 14px;background:#fbfdfd}.pw-list code{flex:1;min-width:0;font:16px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere;color:var(--ink)}.strength{height:6px;border-radius:4px;background:#e3eef0;overflow:hidden;margin-top:8px}.strength span{display:block;height:100%;width:0;background:var(--teal);transition:width .2s,background .2s}
.examples{margin:18px 0 0;padding:0;list-style:none;font-size:14px;color:var(--muted)}.examples li{padding:8px 0;border-top:1px solid var(--border)}.examples li:last-child{border-bottom:1px solid var(--border)}.examples code{background:#eef5f5;padding:1px 6px;border-radius:4px;font-size:13px;color:var(--ink)}.info-panel h3{font-size:15px;margin:26px 0 0}
@media(max-width:850px){.panes{grid-template-columns:1fr}.convert-grid{grid-template-columns:1fr auto}.convert-grid .out-wrap{grid-column:1 / -1}}
@media(max-width:620px){.convert-grid{grid-template-columns:1fr}.swap-button{justify-self:center;transform:rotate(90deg)}.text-area{min-height:200px}.file-list li{flex-wrap:wrap}.file-list .meta{flex-basis:calc(100% - 100px)}.diff-line{grid-template-columns:34px 34px 18px 1fr}.sig-pad{height:200px}.answer strong{font-size:24px}}
.form-stack{display:grid;gap:16px}.convert-note{font-size:13px;color:var(--muted);margin:0}
.frac{border:1px solid var(--border);border-radius:9px;padding:10px 14px 14px;margin:0;min-width:0}.frac legend{font-size:13px;font-weight:650;padding:0 6px}.frac-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.frac-fields .field label{font-weight:560;font-size:12px}.frac-layout{display:grid;grid-template-columns:1fr 110px 1fr;gap:14px;align-items:center}.frac-layout select{height:44px;border:1px solid #cbdcdf;border-radius:6px;background:#fff;font-size:18px;text-align:center;width:100%}.answer-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px 22px;margin-top:4px}.answer-row>div span{display:block;font-size:12px;color:var(--muted)}.answer-row>div strong{font-size:24px;color:var(--teal);letter-spacing:-.02em;overflow-wrap:anywhere}
@media(max-width:620px){.frac-layout{grid-template-columns:1fr}.frac-fields{gap:8px}}
.crop-handle::after{content:"";position:absolute;inset:-12px}.result-metrics .wide{grid-column:1/-1}.upload-zone.is-dragging{background:#f1f9f9;border-color:var(--teal)}.field select:disabled,.field input:disabled{opacity:.6}.inline-fields{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:end}.inline-fields .op{padding-bottom:12px;color:var(--muted);font-weight:650}.range-row{display:flex;align-items:center;gap:12px}.range-row input[type=range]{flex:1}.range-row output{min-width:44px;text-align:right;font-weight:700;color:var(--teal);font-size:13px}
.preview-frame svg{width:24px;height:24px;color:var(--teal)}.rot-badge{font-size:11px;color:#5f7279;margin-top:2px}.split-list{margin-top:12px}.file-list .secondary-button{flex:none}.add-more+.convert-note{margin-top:10px}
/* Signature Maker handwriting fonts (SIL OFL, see assets/fonts/*.LICENSE.txt) */

/* Signature Maker handwriting fonts (SIL OFL, see assets/fonts/*.LICENSE.txt) */
@font-face{font-family:"Great Vibes";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/great-vibes-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Great Vibes";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/great-vibes-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Great Vibes";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/great-vibes-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Allura";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/allura-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Allura";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/allura-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Dancing Script";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/dancing-script-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Dancing Script";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/dancing-script-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Caveat";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/caveat-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Caveat";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/caveat-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Caveat";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/caveat-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Marck Script";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/marck-script-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Marck Script";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/marck-script-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Marck Script";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/marck-script-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
.gpa-row{display:grid;grid-template-columns:minmax(0,1fr) 120px 90px 36px;gap:8px;align-items:center;margin-bottom:8px}.gw-row{grid-template-columns:minmax(0,1fr) 96px 96px 36px}.gpa-row input,.gpa-row select{height:42px;width:100%;min-width:0;border:1px solid #cbdcdf;border-radius:6px;padding:0 10px;font-size:14px;background:#fff;color:var(--ink)}.gpa-row input:focus,.gpa-row select:focus{border-color:var(--teal);outline:0;box-shadow:0 0 0 3px rgba(8,126,139,.13)}.radio-row{display:flex;gap:6px 22px;flex-wrap:wrap}
@media(max-width:620px){.gpa-row{grid-template-columns:minmax(0,1fr) 92px 72px 34px;gap:6px}.gw-row{grid-template-columns:minmax(0,1fr) 78px 78px 34px}}
.file-list li.is-long{background:#fff8ec}.html-preview{border:1px solid var(--border);border-radius:8px;padding:6px 16px;background:#fff;overflow-wrap:anywhere}.html-preview a{color:var(--teal);text-decoration:underline}.html-preview ul,.html-preview ol{padding-left:22px}.limit-box{border:1px solid var(--border);border-radius:9px;padding:12px 16px;background:#fbfdfd}.limit-box.is-error{border-color:#e5b3ab;background:#fff6f4}.limit-box .progress{margin-top:8px}#limit-text{font-weight:650}
.swatch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.swatch{min-height:120px;border:1px solid rgba(23,43,51,.12);border-radius:9px;padding:12px;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;text-align:left;font-size:12px;line-height:1.5}.swatch strong{font-size:15px;letter-spacing:.02em}.swatch:hover{box-shadow:0 6px 18px rgba(23,43,51,.15)}.stop-row{display:grid;grid-template-columns:56px minmax(0,1fr) 48px 36px;gap:10px;align-items:center;margin-bottom:8px}.stop-row input[type=color]{width:56px;height:40px;border:1px solid #cbdcdf;border-radius:6px;background:#fff;padding:3px}.stop-row input[type=range]{width:100%;accent-color:var(--teal)}.stop-row output{font-size:13px;color:var(--muted);text-align:right}.gradient-preview{height:220px;border-radius:10px;border:1px solid var(--border)}.qr-stage{display:flex;justify-content:center;align-items:center;min-height:220px;padding:18px;border:1px solid var(--border);border-radius:9px;background:#fff;position:relative}.qr-stage canvas{max-width:100%;height:auto;image-rendering:pixelated}.qr-stage svg{max-width:100%;height:auto}.qr-stage .empty-note{color:#5f7279;font-size:14px}
@media(max-width:620px){.stop-row{grid-template-columns:48px minmax(0,1fr) 42px 32px;gap:8px}.gradient-preview{height:160px}}
.th-sort{border:0;background:none;font:inherit;font-weight:650;color:inherit;cursor:pointer;padding:0;text-align:left}.th-sort:hover{color:var(--teal)}.unit-table td.rownum,.unit-table th:first-child{color:#5f7279;width:1%;white-space:nowrap}.unit-table.csv td{text-align:left;font-variant-numeric:normal;white-space:pre-wrap;overflow-wrap:anywhere;max-width:320px}.meta-list{display:grid;grid-template-columns:minmax(120px,210px) minmax(0,1fr);margin:0;border:1px solid var(--border);border-radius:9px;overflow:hidden}.meta-list dt,.meta-list dd{padding:10px 14px;border-bottom:1px solid var(--border);margin:0;font-size:14px;overflow-wrap:anywhere}.meta-list dt{color:var(--muted);background:#fbfdfd}.meta-list dt:last-of-type,.meta-list dd:last-of-type{border-bottom:0}.open-btn{cursor:pointer;position:relative}.open-btn input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}.file-drop{position:relative}.file-drop.is-dragging .text-area{border-color:var(--teal);background:#f1f9f9}
@media(max-width:620px){.meta-list{grid-template-columns:1fr}.meta-list dt{border-bottom:0;padding-bottom:0}.unit-table.csv td{max-width:200px}}
.thumb[role=button]{cursor:pointer}.thumb[role=button]:hover{border-color:#8bc9ce}.thumb.is-selected{border-color:var(--teal);background:var(--soft)}.thumb.is-deleted{border-color:#c2543f;background:#fff1ef}.thumb.is-deleted .thumb-frame{position:relative}.thumb.is-deleted .thumb-frame::after{content:"Delete";position:absolute;inset:auto 6px 6px auto;background:#c2543f;color:#fff;font-size:11px;font-weight:700;padding:2px 7px;border-radius:4px}.thumb.is-selected:not(.is-deleted) .thumb-frame::after{content:"Selected";position:absolute;inset:auto 6px 6px auto;background:var(--teal);color:#fff;font-size:11px;font-weight:700;padding:2px 7px;border-radius:4px}.thumb .thumb-frame{position:relative}.thumb.is-moved{border-color:#8bc9ce}.thumb.is-dragover{background:var(--soft)}.thumb .page-label{min-height:18px}.pdf-preview{display:block;max-width:100%;height:auto;border:1px solid var(--border);box-shadow:var(--shadow);background:#fff}
.region-stage{position:relative;display:inline-block;max-width:100%;line-height:0}.region-stage canvas{display:block;max-width:100%;height:auto}.region-overlay{position:absolute;inset:0;touch-action:none}.region-box{position:absolute;border:2px solid #fff;outline:1.5px solid var(--teal);background:rgba(8,126,139,.18);pointer-events:none}.swatch-chip{min-width:96px;min-height:44px;border:1px solid rgba(23,43,51,.15);border-radius:8px;padding:6px 10px;font-size:12px;font-weight:650;display:inline-flex;align-items:center;justify-content:center}.swatch-chip:hover{box-shadow:0 4px 12px rgba(23,43,51,.18)}.chip-flow{display:flex;flex-wrap:wrap;gap:8px}.picker-layout{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:18px;align-items:start}.picker-layout canvas.pick{display:block;max-width:100%;height:auto;cursor:crosshair;border:1px solid var(--border);border-radius:6px;image-rendering:auto}.picker-side{display:grid;gap:12px}.picker-side canvas{width:132px;height:132px;image-rendering:pixelated;border:1px solid var(--border);border-radius:6px;background:#fff}.cur-swatch{width:100%;height:56px;border-radius:8px;border:1px solid rgba(23,43,51,.15)}.cur-rows{display:grid;gap:6px;font-size:13px}.cur-rows div{display:flex;align-items:center;justify-content:space-between;gap:8px}.cur-rows code{font:13px ui-monospace,Menlo,Consolas,monospace}dt.meta-group,dd.meta-group{background:var(--soft)!important;color:var(--teal)!important;font-size:12px!important;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding-top:6px!important;padding-bottom:6px!important}.bg-swatch{display:inline-block;width:22px;height:22px;border-radius:5px;border:1px solid rgba(23,43,51,.2);vertical-align:middle}.checker-note{font-size:12px;color:var(--muted)}
@media(max-width:700px){.picker-layout{grid-template-columns:1fr}.picker-side{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.picker-side #cp-current{flex:1 1 100%}.cur-rows code{white-space:nowrap}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.thumb .page-label{color:#4a5d64}
.swatch{padding:0;overflow:hidden;background:#fff;color:var(--ink);align-items:stretch;justify-content:flex-start;gap:0}.swatch .block{display:block;height:74px;border-bottom:1px solid rgba(23,43,51,.12)}.swatch .info{display:flex;flex-direction:column;padding:8px 10px;text-align:left;font-size:12px;line-height:1.5;color:var(--muted)}.swatch .info strong{font-size:15px;color:var(--ink)}
.swatch-chip{background:#fff;color:var(--ink);gap:8px;justify-content:flex-start}.swatch-chip .dot{flex:none;width:22px;height:22px;border-radius:5px;border:1px solid rgba(23,43,51,.2)}
.open-btn:focus-within,.upload-zone:focus-within{outline:3px solid rgba(8,126,139,.45);outline-offset:3px}

.cell-changed{background:#fff3c4}.office-note{font-size:13px;color:var(--muted)}.warn-box{border:1px solid #e6c97a;background:#fff9e8;color:#6b4e00;border-radius:8px;padding:10px 14px;font-size:13px}.warn-box ul{margin:6px 0 0;padding-left:18px}.col-list li{cursor:default}.col-list input[type=checkbox]{width:18px;height:18px;accent-color:var(--teal);flex:none}.col-list label.meta{flex:1;min-width:0}
.unit-table.csv td.cell-num{text-align:right;color:#0b5f6a;font-variant-numeric:tabular-nums}.unit-table.csv td.cell-date{color:#7a4b00}.unit-table.csv td.cell-formula{color:#a63b2f;font-weight:600}.out-opts summary{cursor:pointer;font-size:14px;font-weight:650;color:var(--ink)}
.unit-table.csv th.rownum{color:#5f7279;font-weight:500;text-align:right;background:#fbfdfd}.unit-table.csv th.corner{width:1%}.unit-table.sheet thead th{background:#f1f6f6;text-align:center}.unit-table.sheet th .th-sort{font-weight:650}

/* Footer columns and static pages */
.footer-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:35px}.footer-inner nav{max-width:none;display:flex;flex-direction:column;justify-content:flex-end;gap:9px}.footer-inner nav h2{font-size:12px;font-weight:700;letter-spacing:.045em;text-transform:uppercase;color:#4a5d64;margin:0 0 4px}.footer-inner nav a{width:fit-content}
.prose{max-width:720px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:10px 34px 30px}.prose h2{font-size:20px;letter-spacing:-.025em;margin:28px 0 8px}.prose p,.prose li{color:#3d5158;font-size:15px;line-height:1.7}.prose ul{padding-left:20px;margin:0 0 8px}.prose li{margin-bottom:6px}.prose a{color:var(--teal-hover);text-decoration:underline;text-underline-offset:2px}.prose a:hover{color:var(--teal)}.prose .contact-mail{font-size:22px;font-weight:700;letter-spacing:-.02em}
@media(max-width:620px){.footer-inner{flex-direction:column;align-items:flex-start;gap:26px}.prose{padding:4px 20px 22px}.footer-bottom{flex-direction:column;gap:4px}}
