.ul-workspace{display:grid;gap:20px;min-width:0;color:var(--ink,#101528)}.ul-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.ul-field{min-width:0}.ul-field small{color:#58647d;line-height:1.7}.ul-field input:not([type=checkbox]):not([type=color]),.ul-field select,.ul-field textarea{width:100%;box-sizing:border-box;min-height:44px;border:1px solid #dce4f2;border-radius:10px;padding:12px;background:#fff;font:inherit;color:#15203b}.ul-field input[type=color]{width:100%;height:48px;padding:4px;border:1px solid #dce4f2;background:#fff;border-radius:10px}.ul-field textarea{font-family:ui-monospace,monospace;font-size:14px;resize:vertical}.ul-field input:focus-visible,.ul-field textarea:focus-visible,.ul-field select:focus-visible,.ul-workspace button:focus-visible{outline:3px solid #94b0ff;outline-offset:3px}.ul-workspace p{line-height:1.75;color:#58647d;margin:0}.ul-workspace h3{margin:12px 0 4px;font-size:19px}.ul-upload{padding:20px;background:#f4f7ff;border:1px dashed #a9bced;border-radius:14px}.ul-upload input{max-width:100%}.ul-check{display:flex;gap:10px;align-items:center;min-height:44px;font-size:14px}.ul-check input{width:18px;height:18px;accent-color:#4163dc}.ul-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.ul-workspace>.btn{justify-self:start}.ul-workspace .btn{min-height:44px}.ul-result{border-top:1px solid #dce4f2;padding-top:24px;display:grid;gap:16px}.ul-preview{display:block;max-width:100%;max-height:350px;object-fit:contain;margin:auto}.ul-workspace audio{width:100%;max-width:100%}.ul-document-preview{width:100%;height:460px;border:1px solid #dce4f2;border-radius:12px}.ul-workspace table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}.ul-workspace th,.ul-workspace td{padding:12px;border-bottom:1px solid #e0e6ef;overflow-wrap:anywhere}.ul-table-scroll{overflow:auto;max-width:100%}.ul-workspace pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;max-height:300px;overflow:auto}.ul-contrast-preview{padding:32px;border-radius:14px;border:1px solid #dce4f2}.ul-contrast-preview strong{font-size:32px}.ul-contrast-preview p{color:inherit!important}.ul-qr{width:240px;max-width:100%;height:auto}.ul-status:empty{display:none}.ul-handoff{padding:18px;background:#f0f4ff;border-radius:14px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.ul-search-list{list-style:none;margin:24px auto;padding:0;max-width:760px;display:grid;gap:8px}.ul-search-list a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;border:1px solid #e0e6f0;border-radius:12px;background:#fff;text-decoration:none;color:#15203b}.ul-search-list span{font-size:12px;color:#58647d}.ul-view-toggle{display:flex;gap:8px;justify-content:center;margin:12px 0}.ul-view-toggle button{min-height:44px;border:1px solid #dce4f2;background:#fff;border-radius:999px;padding:8px 18px;font:inherit;cursor:pointer}.ul-view-toggle button[aria-pressed=true]{background:#4163dc;color:white}.ul-workspace :disabled{opacity:.5;cursor:not-allowed}.ul-workspace ::selection{background:#dce6ff;color:#132249}
@media(max-width:600px){.ul-grid{grid-template-columns:1fr}.ul-workspace{gap:16px}.ul-upload{padding:14px}.ul-document-preview{height:330px}.ul-workspace .btn{white-space:normal}.ul-search-list a{align-items:flex-start;flex-direction:column;gap:6px}.ul-workspace th,.ul-workspace td{padding:8px}}
@media(hover:hover) and (pointer:fine){.ul-search-list a:hover{border-color:#4163dc;background:#f5f8ff}.ul-workspace .btn:hover{filter:brightness(.98)}}
@media(prefers-reduced-motion:reduce){.ul-workspace *{scroll-behavior:auto!important}}

.ul-upload-legacy{border:0;padding:0;margin:0;min-width:0}.ul-upload-legacy[disabled]{opacity:.6;pointer-events:none}.ul-upload-legacy .t-drop{margin:0}.ul-upload-legacy .t-warn{margin-top:12px}

/* Mobile heading uses one size transition, not a competing FLIP transform. */
@media(max-width:600px){.hero h1{transition:font-size .22s cubic-bezier(.23,1,.32,1),line-height .22s cubic-bezier(.23,1,.32,1)}.mobile-carousel-viewport{overflow-anchor:none}.hero-content{overflow-anchor:none}}
@media(max-width:600px) and (prefers-reduced-motion:reduce){.hero h1{transition:none}}

/* IP lookup: label above one aligned control row. */
.ul-ip-controls{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:12px}.ul-ip-controls .t-field{margin:0;min-width:0}.ul-ip-controls .btn{min-height:46px;height:46px;white-space:nowrap}.ul-ip-controls .t-input{height:46px}.ul-ip-results{margin:0}.ul-ip-results>div{display:grid;grid-template-columns:minmax(110px,.7fr) minmax(0,1.3fr);gap:16px;padding:12px 0;border-bottom:1px solid var(--border,#e7edfb)}.ul-ip-results dt{font-weight:600}.ul-ip-results dd{margin:0;overflow-wrap:anywhere}@media(max-width:600px){.ul-ip-controls{grid-template-columns:1fr 1fr}.ul-ip-controls .t-field{grid-column:1/-1}.ul-ip-controls .btn{width:100%}}

.ul-ip-lookup form>.t-note{margin:14px 0 0;line-height:1.6;color:#475569}.ul-ip-lookup>.t-note{margin:0;line-height:1.6;color:#475569}.ul-ip-lookup .t-error{margin:0;line-height:1.6}.ul-ip-lookup .t-field>span{font-weight:600}.ul-ip-lookup{gap:24px}

/* Re-audit: compact option controls belong beside the actions they configure. */
.t-btn-row{align-items:center;gap:12px}.t-btn-row>select.t-select{width:auto;min-width:150px;max-width:100%;height:46px;margin-left:auto}@media(max-width:480px){.t-btn-row>select.t-select{width:100%;margin-left:0}}

/* Re-audit: keep contrast verdicts readable at phone widths. */
.ul-contrast-table th:nth-child(n+2),.ul-contrast-table td:nth-child(n+2){white-space:nowrap;word-break:normal;overflow-wrap:normal}@media(max-width:600px){.ul-contrast-table th,.ul-contrast-table td{padding:8px 4px;font-size:13px}}
/* Dedicated generated palette: five equal desktop swatches, balanced phone rows. */
.ul-palette-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.ul-palette-grid .t-color-chip{width:100%;min-width:0}.ul-palette-grid .t-color-chip:focus-visible{outline:3px solid var(--primary,#315feb);outline-offset:3px}@media(max-width:600px){.ul-palette-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ul-palette-grid .t-color-chip:last-child{grid-column:1/-1}}
/* URL components need a readable value column, not a squeezed fixed-label grid. */
@media(max-width:600px){.ul-url-parser .t-table-row{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;padding:12px}.ul-url-parser .t-table-row code{display:block;min-width:0;overflow-wrap:anywhere}.ul-url-parser .t-table-row strong{font-size:12px;color:#475569}}

/* Scoped regex help and result readability. */
.qa-regex .t-hint,.qa-regex .t-filechip-size{color:#475569}
.qa-regex .t-filechip{flex-wrap:wrap;gap:8px 12px}
.qa-regex .t-filechip code,.qa-regex .t-filechip-size{overflow-wrap:anywhere;min-width:0}

/* Keep mobile regex presets in a deliberate two-column control grid. */
@media(max-width:480px){.qa-regex>.t-btn-row:first-child{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.qa-regex>.t-btn-row:first-child .chip{width:100%;min-height:48px;height:auto;padding:8px;justify-content:center;white-space:normal}.qa-regex>.t-btn-row:first-child .chip-label{white-space:normal;text-align:center;line-height:1.35}}

/* Readable cron field hints and mobile preset grouping. */
.qa-cron .t-hint,.qa-cron .t-note{color:#475569}
@media(max-width:480px){.qa-cron>.t-btn-row:first-child{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.qa-cron>.t-btn-row:first-child .chip{width:100%;justify-content:center;min-height:44px}.qa-cron>.t-btn-row:first-child .chip:last-child{grid-column:1/-1}}

@media(max-width:480px){.qa-cron .t-grid5{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.qa-cron .t-grid5> :last-child{grid-column:1/-1}}

/* Timestamp values are full dates, not compact numeric counters. */
.qa-timestamp .t-note{color:#475569}.qa-timestamp .t-stat-value{font-size:18px;line-height:1.5;overflow-wrap:anywhere}
@media(max-width:480px){.qa-timestamp .t-stat-row{grid-template-columns:1fr}.qa-timestamp input[type=datetime-local]{max-width:100%;min-width:0}}

/* Dated zone results need full rows to stay readable on narrow screens. */
@media(max-width:600px){.ul-timezone-results{display:grid;grid-template-columns:minmax(0,1fr)}.ul-timezone-results>*{width:100%;min-width:0}}

/* MIME lookup pairs keep long types readable with a direct copy action. */
.qa-mime .t-table-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;align-items:center}.qa-mime .t-table-row code{overflow-wrap:anywhere;min-width:0;font-size:13px;line-height:1.6}.qa-mime .t-table-row>button{width:auto;min-height:44px;font-size:13px;padding:8px 12px}.qa-mime .t-note{color:#475569}
@media(max-width:600px){.qa-mime .t-table-row{grid-template-columns:1fr auto;padding-block:16px}.qa-mime .t-table-row code{grid-column:1/-1;grid-row:2}.qa-mime .t-table-row>button{grid-column:2;grid-row:1}}

/* HTTP descriptions need the space; status codes are only three digits. */
.qa-http .t-table-row{display:grid;grid-template-columns:48px minmax(0,1fr);gap:16px;align-items:start;padding-block:16px}.qa-http .t-table-row>span{width:auto;min-width:0;overflow-wrap:break-word;word-break:normal;line-height:1.65}.qa-http .t-note{color:#475569}
@media(max-width:480px){.qa-http .t-table-row{grid-template-columns:36px minmax(0,1fr);gap:12px}}

@media(max-width:600px){
.ul-digital-clock .t-stat-row{display:grid;grid-template-columns:minmax(0,1fr)}
.ul-whois-results .t-table-row{display:flex;flex-direction:column;gap:6px;align-items:stretch}
.ul-whois-results .t-table-row>span:first-child{font-weight:600}
.ul-whois-results .t-table-row>span{word-break:normal!important;overflow-wrap:anywhere}
.ul-dns-results .t-table-row:first-child{display:none}
.ul-dns-results .t-table-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.ul-dns-results .t-table-row>span{word-break:normal!important;overflow-wrap:anywhere}
.ul-dns-results .t-table-row>span:last-child{grid-column:1/-1}
.ul-dns-results .t-table-row>span:before{display:block;font-family:inherit;font-size:12px;font-weight:600;margin-bottom:4px}
.ul-dns-results .t-table-row>span:nth-child(1):before{content:"Name"}
.ul-dns-results .t-table-row>span:nth-child(2):before{content:"TTL"}
.ul-dns-results .t-table-row>span:nth-child(3):before{content:"Value"}
}

/* Video metadata: long labels and browser caveats remain readable on phones. */
@media(max-width:600px){.ul-video-metadata .t-table-row{display:flex;flex-direction:column;align-items:stretch;gap:6px}.ul-video-metadata .t-table-row>span{word-break:normal!important;overflow-wrap:anywhere}.ul-video-metadata .t-table-row>span:first-child{font-weight:600}}

/* Reaudit: mobile ordered file rows retain readable filenames. */
@media(max-width:600px){.t-filechip:has(.t-reorder){display:grid;grid-template-columns:16px minmax(0,1fr) 44px 36px;gap:6px 8px;align-items:center}.t-filechip:has(.t-reorder)>.t-filechip-name{grid-column:2/4;white-space:normal;overflow-wrap:anywhere}.t-filechip:has(.t-reorder)>.t-filechip-size{grid-column:2;grid-row:2}.t-filechip:has(.t-reorder)>.t-reorder{grid-column:3/5;grid-row:2;display:flex;justify-content:flex-end;gap:8px}.t-filechip:has(.t-reorder)>.t-reorder button{width:44px;height:40px}.t-filechip:has(.t-reorder)>.t-filechip-x{grid-column:4;grid-row:1;width:36px;height:36px}}
@media(max-width:600px){.ul-audio-merge .t-filechip{display:grid;grid-template-columns:16px minmax(0,1fr) 44px 36px;gap:8px;align-items:center}.ul-audio-merge .t-filechip-name{grid-column:2/4;min-width:0;white-space:normal;overflow-wrap:anywhere}.ul-audio-merge .t-filechip>svg{grid-column:1;grid-row:1}.ul-audio-merge .t-filechip>.t-filechip-x{grid-column:4;grid-row:1}.ul-audio-merge .t-filechip-size{grid-column:2;grid-row:2}.ul-audio-merge .t-filechip>.t-btn-row{grid-column:3/5;grid-row:2;display:flex;flex-direction:row;gap:4px}.ul-audio-merge .t-filechip>.t-btn-row .t-filechip-x{width:36px;min-width:36px;min-height:40px}}

/* Reaudit: PDF page editor file details wrap below the name. */
@media(max-width:600px){.tool-surface:is(:has(.t-pages),:has(.t-rotate-preview),:has(.ul-pdf-images)) .t-filechip:not(:has(.t-reorder)){display:grid;grid-template-columns:16px minmax(0,1fr) auto 36px;gap:6px 8px;align-items:center}.tool-surface:is(:has(.t-pages),:has(.t-rotate-preview),:has(.ul-pdf-images)) .t-filechip-name{grid-column:2/4;white-space:normal;overflow-wrap:anywhere}.tool-surface:is(:has(.t-pages),:has(.t-rotate-preview),:has(.ul-pdf-images)) .t-filechip-size{grid-row:2;grid-column:2}.tool-surface:is(:has(.t-pages),:has(.t-rotate-preview),:has(.ul-pdf-images)) .t-filechip-size~.t-filechip-size{grid-column:3/5;justify-self:end}.tool-surface:is(:has(.t-pages),:has(.t-rotate-preview),:has(.ul-pdf-images)) .t-filechip-x{grid-column:4;grid-row:1;width:36px;height:36px}}

/* Reaudit: touch-sized page reordering controls. */
@media(max-width:600px){.t-pagecard-bar:has(.t-reorder){display:grid;grid-template-columns:1fr;gap:6px}.t-pagecard-bar .t-reorder{display:flex;justify-content:flex-end;gap:8px}.t-pagecard-bar .t-reorder button{width:44px;height:44px}}

/* Reaudit: consistent mobile PDF rotation actions. */
@media(max-width:600px){.t-rotate-preview+.t-btn-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.t-rotate-preview+.t-btn-row .chip{width:100%;min-height:44px;justify-content:center;padding:8px 6px;font-size:13px}.t-rotate-preview+.t-btn-row .chip:nth-child(3){grid-column:1/-1}}

/* Reaudit: PDF compression result hierarchy on narrow screens. */
@media(max-width:600px){.ul-pdf-compress .t-stat-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ul-pdf-compress .t-stat-row>*{min-width:0;width:auto}.ul-pdf-compress .t-stat-row>:nth-child(2){grid-column:1/-1;grid-row:1}.ul-pdf-compress .t-filechip{flex-wrap:wrap}.ul-pdf-compress .t-filechip-name{flex:1 1 100%;white-space:normal;overflow-wrap:anywhere;order:-1}.ul-pdf-compress .t-filechip>svg{display:none}.ul-pdf-compress .t-filechip-size{margin-right:auto}}

/* Reaudit: readable helper and file-size text on pale surfaces. */
.tool-surface .t-hint,.tool-surface .t-filechip-size{color:#596579}

/* Reaudit: thumbnail order controls work with touch and keyboard. */
.ul-thumb-order{display:flex;justify-content:flex-end;gap:8px;padding:8px}.ul-thumb-order button{width:40px;height:40px;border:1px solid #dbe3f0;border-radius:8px;background:white;color:#334155;cursor:pointer}.ul-thumb-order button:disabled{opacity:.4;cursor:default}.ul-thumb-order button:focus-visible{outline:2px solid #375cda;outline-offset:2px}.t-thumb-cap{align-items:start}.t-thumb-cap>span:last-child{min-width:0;white-space:normal;overflow-wrap:anywhere}@media(max-width:600px){.ul-thumb-order button{width:44px;height:44px}}
@media(max-width:480px){.ul-rename-table table,.ul-rename-table tbody{display:block;min-width:0!important}.ul-rename-table thead{display:none}.ul-rename-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr);padding:12px;border:1px solid #e2e6f0;border-radius:12px;margin-bottom:12px}.ul-rename-table td{display:block;padding:4px 0;border:0;word-break:normal;overflow-wrap:anywhere}.ul-rename-table td:before{display:block;font-weight:600;font-size:12px;margin-bottom:2px}.ul-rename-table td:nth-child(1):before{content:"Original"}.ul-rename-table td:nth-child(2):before{content:"New name"}.ul-rename-table td:nth-child(3):before{content:"Status"}}

/* Reaudit: image thumbnails show the full source. */
.tool-surface .t-thumb>img{object-fit:contain;background:#f8fafc}

/* Reaudit: preview pagination stays on one mobile row. */
@media(max-width:600px){.tool-surface .t-pager{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px;align-items:center}.t-pager .btn{width:auto;padding:10px;font-size:13px;min-height:44px;white-space:nowrap}.t-pager .t-note{font-size:12px;text-align:center;white-space:nowrap}}

.ul-file-metadata .t-stat-value{overflow-wrap:anywhere;font-size:16px;line-height:1.5}.ul-file-metadata>.t-stat:last-of-type .t-stat-value{font-family:monospace;font-size:14px}
@media(max-width:600px){.ul-file-metadata .t-stat-row{display:grid;grid-template-columns:1fr}.ul-duplicate-files .t-filechip{display:grid;grid-template-columns:16px minmax(0,1fr) 36px;gap:6px 8px}.ul-duplicate-files .t-filechip-name{white-space:normal;overflow-wrap:anywhere;grid-column:2;grid-row:1}.ul-duplicate-files .t-filechip-size{grid-column:2;grid-row:2}.ul-duplicate-files .t-filechip-x{grid-column:3;grid-row:1/3;width:36px;height:36px}}

@media(max-width:600px){.ul-file-parts .t-filechip{display:grid;grid-template-columns:16px minmax(0,1fr) 40px 36px;gap:6px 8px}.ul-file-parts .t-filechip-name{grid-column:2/4;white-space:normal;overflow-wrap:anywhere}.ul-file-parts .t-filechip-size{grid-column:2;grid-row:2}.ul-file-parts .t-filechip-size~.t-filechip-size{grid-column:3;justify-self:end}.ul-file-parts .t-filechip-x{grid-column:4;grid-row:1/3;width:36px;height:36px}}

@media(max-width:600px){.ul-audio-conversion .t-filechip{display:grid;grid-template-columns:16px minmax(0,1fr) 36px;gap:6px 8px}.ul-audio-conversion .t-filechip-name{grid-column:2;white-space:normal;overflow-wrap:anywhere}.ul-audio-conversion .t-filechip-size{grid-column:2;grid-row:2}.ul-audio-conversion .t-filechip-x{grid-column:3;grid-row:1/3;width:36px;height:36px}}

/* Reaudit: PDF text filenames stay readable on mobile. */
@media(max-width:600px){.ul-pdf-text .t-filechip{display:grid;grid-template-columns:20px minmax(0,1fr) 32px;gap:8px}.ul-pdf-text .t-filechip-name{white-space:normal;overflow-wrap:anywhere;grid-column:2}.ul-pdf-text .t-filechip-size{grid-column:2;grid-row:2}.ul-pdf-text .t-filechip button{grid-column:3;grid-row:1/3}}

@media(max-width:600px){.ul-security-file .t-filechip{display:grid;grid-template-columns:16px minmax(0,1fr) 36px;gap:6px 8px}.ul-security-file .t-filechip-name{grid-column:2;white-space:normal;overflow-wrap:anywhere}.ul-security-file .t-filechip-size{grid-column:2;grid-row:2}.ul-security-file .t-filechip-x{grid-column:3;grid-row:1/3;width:36px;height:36px}}

.ul-number-system .t-stat-value{overflow-wrap:anywhere;font-family:monospace;font-size:17px;line-height:1.5}.ul-number-system .t-stat-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:600px){.ul-number-system .t-stat-row{grid-template-columns:1fr}}

/* Reaudit: protect PDF mobile file details. */
@media(max-width:600px){.ul-pdf-protect .t-filechip{display:grid;grid-template-columns:20px minmax(0,1fr) auto 32px;gap:8px}.ul-pdf-protect .t-filechip-name{grid-column:2/4;white-space:normal;overflow-wrap:anywhere}.ul-pdf-protect .t-filechip-size{grid-row:2}.ul-pdf-protect .t-filechip-size:nth-child(3){grid-column:2}.ul-pdf-protect .t-filechip-size:nth-child(4){grid-column:3}.ul-pdf-protect .t-filechip button{grid-column:4;grid-row:1/3}}

@media(max-width:600px){.ul-color-converter .t-stat-row{display:grid;grid-template-columns:1fr}.ul-color-converter .t-stat-value{font-family:monospace;overflow-wrap:anywhere;font-size:17px;line-height:1.5}}

.ul-barcode .t-qr-preview svg{max-width:100%;height:auto;display:block}.ul-barcode .btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}

/* Reaudit: selected file details in editable tools remain readable. */
@media(max-width:600px){.ul-upload-legacy .t-filechip{display:grid;grid-template-columns:20px minmax(0,1fr);gap:6px 8px}.ul-upload-legacy .t-filechip-name{grid-column:2;white-space:normal;overflow-wrap:anywhere}.ul-upload-legacy .t-filechip-size{grid-column:2;grid-row:2}}

.ul-live-timestamp .t-stat-value{font-family:monospace;font-size:16px;overflow-wrap:anywhere;line-height:1.5}@media(max-width:600px){.ul-live-timestamp .t-stat-row{display:grid;grid-template-columns:1fr}}

@media(max-width:600px){.ul-svg-optimizer .t-filechip{display:grid;grid-template-columns:16px minmax(0,1fr) 36px;gap:6px 8px}.ul-svg-optimizer .t-filechip-name{grid-column:2;white-space:normal;overflow-wrap:anywhere}.ul-svg-optimizer .t-filechip-size{grid-column:2;grid-row:2}.ul-svg-optimizer .t-filechip-x{grid-column:3;grid-row:1/3;width:36px;height:36px}}

@media(max-width:600px){.ul-metadata-remover .t-filechip{display:grid;grid-template-columns:16px minmax(0,1fr) 36px;gap:6px 8px}.ul-metadata-remover .t-filechip-name{grid-column:2;white-space:normal;overflow-wrap:anywhere}.ul-metadata-remover .t-filechip-size{grid-column:2;grid-row:2}.ul-metadata-remover .t-filechip-x{grid-column:3;grid-row:1/3;width:36px;height:36px}}
