{"id":248,"date":"2026-03-05T16:33:13","date_gmt":"2026-03-05T16:33:13","guid":{"rendered":"https:\/\/primetoolhub.com\/?page_id=248"},"modified":"2026-10-04T13:41:43","modified_gmt":"2026-10-04T13:41:43","slug":"prime-tool-hub","status":"publish","type":"page","link":"https:\/\/schoolict.net\/tools\/","title":{"rendered":"SchoolICT Tool HUB (Free Web Tools)"},"content":{"rendered":"<style id=\"pth-critical-css\" data-no-optimize=\"1\" data-no-minify=\"1\" data-cfasync=\"false\">\r\n\r\n\/* =========================================================\r\n   IMAGE RENDERING SPEED BOOST (FCP\/LCP FIX)\r\n   ========================================================= *\/\r\n.site-logo img,\r\n.custom-logo,\r\n.header-image,\r\nimg[alt=\"SchoolICT Tool HUB\"] {\r\n    image-rendering: -webkit-optimize-contrast;\r\n    image-rendering: crisp-edges;\r\n    decoding: async;\r\n    aspect-ratio: 712 \/ 180 !important;\r\n    max-width: 100%;\r\n    height: auto !important;\r\n    display: block;\r\n}\r\n\r\n\/* =========================================================\r\n   UNIVERSAL CSS FOR FAV BUTTONS & MOBILE VIEW\r\n   ========================================================= *\/\r\n.pth-card-fav-btn { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 6px 12px; font-size: 12px; color: #64748b; cursor: pointer; font-weight: 700; display: flex; align-items: center; justify-content: center; gap: 6px; z-index: 5; }\r\n.pth-card-fav-btn:hover { background: #eff6ff; color: #3b82f6; border-color: #bfdbfe; }\r\n.pth-card-fav-btn.is-fav { background: #fffbeb; color: #d97706; border-color: #fde68a; }\r\n.pth-card-fav-btn.is-fav:hover { background: #fef3c7; color: #b45309; border-color: #fcd34d; }\r\n.home .pth-tool-card { padding-bottom: 60px !important; }\r\n.home .pth-card-fav-btn { position: absolute; bottom: 20px; left: 25px; }\r\n\r\n\/* =========================================================\r\n   USER ADJUSTABLE PARAMETERS & RESETS\r\n   ========================================================= *\/\r\n:root {\r\n    --mobile-logo-height: 70px;\r\n    --menu-vertical-spacing: 12px;\r\n    --submenu-left-indent: 40px;\r\n    --mobile-hero-title-size: 32px;\r\n    --mobile-hero-desc-size: 13px;\r\n    --seo-left-col-width: 65%;\r\n    --mobile-menu-bottom-space: 0px;\r\n    --fav-btn-height: 50px;\r\n    --mobile-sidebar-btn-height: 50px;\r\n    --mobile-menu-btn-space: 15px;\r\n    --hero-padding-top: 65px;\r\n    --hero-padding-bottom: 40px;\r\n    --pagination-margin-top: 0px;\r\n    --pagination-margin-bottom: 0px;\r\n    --main-box-width: 1720px;\r\n    --hero-bg-width: 1650px;\r\n    --desktop-sidebar-height: calc(151vh - 20px);\r\n}\r\n\r\n.home .entry-header, .home .page-title { display: none !important; }\r\n.home .site.grid-container, .home #page.site, .home .site-content, .home #content, .home #primary, .home main.site-main, .home .inside-article, .home .entry-content {\r\n    max-width: 100% !important; width: 100% !important; padding: 0 !important; margin: 0 !important; border: none !important; box-shadow: none !important;\r\n}\r\nhtml, body { overflow-x: hidden !important; background: #ffffff; top: 0 !important; position: static !important; margin: 0 !important; }\r\niframe.goog-te-banner-frame, .goog-te-banner-frame.skiptranslate, body > .skiptranslate { display: none !important; visibility: hidden !important; height: 0 !important; }\r\n\r\n\/* =========================================================\r\n   HERO SECTION & SEARCH BOX (DESKTOP)\r\n   ========================================================= *\/\r\n#pth-wrapper { width: 100% !important; font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; box-sizing: border-box !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; }\r\n\r\n.home .pth-bg-dark {\r\n    background-color: #0f172a; border-bottom: 1px solid #1e293b; padding-top: var(--hero-padding-top); padding-bottom: var(--hero-padding-bottom); width: var(--hero-bg-width) !important; max-width: 100% !important; margin: 0 auto !important; position: relative !important; z-index: 99 !important; height: auto !important; display: flow-root !important;\r\n}\r\n@media (min-width: 768px) { .home .pth-bg-dark[style*=\"--hero-bg-width: 100vw;\"] { left: 50% !important; right: 50% !important; margin-left: -50vw !important; margin-right: -50vw !important; } }\r\n\r\n.home .pth-bg-light { background-color: #f8fafc; width: 100% !important; border-bottom: 1px solid #e2e8f0; }\r\n\r\n.pth-hero-inner, .pth-main-layout, .pth-seo-inner, .pth-features-grid { max-width: var(--main-box-width) !important; margin: 0 auto !important; padding-left: 20px !important; padding-right: 20px !important; box-sizing: border-box !important; }\r\n\r\n.home .pth-hero-inner { text-align: center; position: relative; z-index: 10; }\r\n.home .pth-hero-title { font-size: var(--mobile-hero-title-size); font-weight: 800; margin-bottom: 12px; color: #ffffff; line-height: 1.2; margin-top: 0; }\r\n.home .pth-hero-desc { color: #94a3b8; margin-bottom: 32px; font-size: var(--mobile-hero-desc-size); max-width: 600px; margin-left: auto; margin-right: auto; padding: 0 10px; line-height: 1.5; }\r\n\r\n@media (min-width: 768px) { .home .pth-hero-title { font-size: 46px; line-height: 1.1; } .home .pth-hero-desc { font-size: 16px; padding: 0; } }\r\n\r\n.home .pth-search-box { display: flex !important; flex-direction: row !important; align-items: center !important; background: #ffffff !important; border-radius: 60px !important; padding: 6px 8px 6px 24px !important; box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.2) !important; max-width: 800px !important; margin: 0 auto 15px !important; border: 1px solid rgba(226, 232, 240, 0.8) !important; }\r\n.home .pth-search-input { flex: 1 !important; background: transparent !important; border: none !important; font-size: 16px !important; font-weight: 500 !important; outline: none !important; color: #0f172a !important; box-shadow: none !important; margin: 0 !important; padding: 10px 0 !important; line-height: normal !important; height: auto !important; }\r\n.home .pth-search-action-group { display: flex !important; align-items: center !important; gap: 8px !important; margin: 0 !important; padding: 0 !important; }\r\n\r\n.home .pth-dir-pill { display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; background: #f8fafc !important; color: #0f172a !important; padding: 0 20px !important; height: 38px !important; box-sizing: border-box !important; border-radius: 50px !important; text-decoration: none !important; font-weight: 700 !important; font-size: 14px !important; border: 1px solid #cbd5e1 !important; white-space: nowrap !important; margin: 0 !important; }\r\n\r\n.home .pth-search-pill-btn { display: inline-flex !important; align-items: center !important; justify-content: center !important; background: linear-gradient(135deg, #3b82f6, #2563eb) !important; color: #ffffff !important; padding: 0 28px !important; height: 38px !important; box-sizing: border-box !important; border-radius: 50px !important; font-weight: 800 !important; font-size: 14px !important; border: none !important; cursor: pointer !important; margin: 0 !important; line-height: 1 !important; box-shadow: 0 4px 10px rgba(37, 99, 235, 0.3) !important; }\r\n\r\n.pth-fav-container { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 15px; height: 35px; overflow: hidden; margin-bottom: 10px; }\r\n.pth-fav-empty { color: rgba(255,255,255,0.7); font-size: 13px; font-style: italic; }\r\n.pth-fav-pill { background: rgba(255,255,255,0.1); color: #e2e8f0 !important; border: 1px solid rgba(255,255,255,0.2); padding: 6px 14px; border-radius: 30px; font-size: 13px; text-decoration: none !important; display: inline-flex; align-items: center; gap: 8px; }\r\n\r\n\/* =========================================================\r\n   MAIN LAYOUT & DESKTOP SCROLLING SIDEBAR\r\n   ========================================================= *\/\r\n.home .pth-main-layout { display: flex !important; flex-direction: column !important; gap: 32px !important; padding-top: 40px !important; padding-bottom: 40px !important; position: relative !important; z-index: 1 !important; }\r\n.home .pth-sidebar { width: 100% !important; background: #ffffff !important; border: 1px solid #e2e8f0 !important; border-radius: 16px !important; padding: 24px !important; box-sizing: border-box !important; }\r\n\r\n@media (min-width: 992px) {\r\n    .home .pth-main-layout { flex-direction: row !important; align-items: flex-start !important; }\r\n    .home .pth-sidebar {\r\n        width: 340px !important; flex-shrink: 0 !important; position: sticky !important; top: 20px !important;\r\n        height: var(--desktop-sidebar-height) !important; display: flex !important; flex-direction: column !important;\r\n        box-shadow: 0 4px 15px rgba(0,0,0,0.03) !important; overflow: hidden !important;\r\n        padding: 24px 12px 24px 24px !important;\r\n    }\r\n    .home .pth-sidebar-brand { flex-shrink: 0 !important; margin: 0 0 15px 0 !important; border-bottom: 1px solid #e2e8f0 !important; padding-bottom: 15px !important; margin-right: 12px !important; }\r\n    .home .pth-sidebar-nav { overflow-y: auto !important; flex-grow: 1 !important; padding-right: 12px !important; margin-top: 0 !important; }\r\n}\r\n\r\n\/* =========================================================\r\n   SIDEBAR BUTTONS\r\n   ========================================================= *\/\r\n#category-sidebar .pth-v-btn {\r\n    background: transparent !important; color: #475569 !important; border: none !important;\r\n    border-left: 3px solid transparent !important; border-radius: 0 8px 8px 0 !important;\r\n    padding: 10px 14px !important; margin-bottom: 4px !important; display: flex !important;\r\n    align-items: center !important; font-weight: 600 !important; width: 100% !important;\r\n    text-align: left !important; font-size: 14px !important; cursor: pointer !important;\r\n    transition: background 0.2s ease, border-left-color 0.2s ease, color 0.2s ease !important;\r\n    transform: none !important; box-shadow: none !important; outline: none !important;\r\n}\r\n#category-sidebar .pth-v-btn:hover { background: linear-gradient(90deg, #eff6ff 0%, transparent 100%) !important; border-left: 3px solid #3b82f6 !important; color: #1d4ed8 !important; font-weight: 700 !important; transform: none !important; box-shadow: none !important; }\r\n#category-sidebar .pth-v-btn:hover .pth-cat-count { background: #dbeafe !important; color: #1d4ed8 !important; border-color: #bfdbfe !important; }\r\n#category-sidebar .pth-v-btn.active { background: linear-gradient(90deg, #dbeafe 0%, #eff6ff 100%) !important; color: #1d4ed8 !important; border-left: 3px solid #2563eb !important; font-weight: 800 !important; }\r\n#category-sidebar .pth-cat-icon-cage { background: transparent !important; border: none !important; box-shadow: none !important; font-size: 18px !important; color: inherit !important; margin-right: 12px !important; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; }\r\n#category-sidebar .pth-cat-count { background: #f1f5f9 !important; color: #000000 !important; border-radius: 12px !important; padding: 2px 8px !important; font-size: 11px !important; border: 1px solid #e2e8f0 !important; font-weight: 800 !important; margin-left: 8px !important; }\r\n\r\n\/* =========================================================\r\n   NEW SEO-FRIENDLY STYLISH HEADER\r\n   ========================================================= *\/\r\n.home .pth-seo-title-row {\r\n    display: flex !important;\r\n    flex-direction: column !important;\r\n    align-items: flex-start !important;\r\n    border-bottom: 2px solid #e2e8f0 !important;\r\n    padding-bottom: 20px !important;\r\n    margin-bottom: 30px !important;\r\n}\r\n.pth-seo-heading-box {\r\n    display: flex;\r\n    flex-direction: column;\r\n    gap: 10px;\r\n    width: 100%;\r\n}\r\n.home .pth-seo-main-title {\r\n    background: transparent !important;\r\n    color: #0f172a !important;\r\n    border: none !important;\r\n    padding: 0 !important;\r\n    border-radius: 0 !important;\r\n    font-size: 26px !important;\r\n    font-weight: 800 !important;\r\n    display: block !important;\r\n    margin: 0 !important;\r\n    box-shadow: none !important;\r\n    line-height: 1.3 !important;\r\n    letter-spacing: -0.5px;\r\n}\r\n.pth-seo-subtitle {\r\n    color: #475569 !important;\r\n    font-size: 15px !important;\r\n    line-height: 1.6 !important;\r\n    margin: 0 !important;\r\n    font-weight: 500 !important;\r\n    max-width: 900px;\r\n}\r\n\r\n\/* =========================================================\r\n   MOBILE APP BAR, HERO & SEARCH FIX\r\n   ========================================================= *\/\r\n#pth-mobile-app-bar { display: none; }\r\n\r\n@media (max-width: 991px) {\r\n    .pth-hero-inner, .pth-main-layout, .pth-seo-inner, .pth-features-grid { padding-left: 8px !important; padding-right: 8px !important; }\r\n    .home #page, .home .site-content, .home .entry-content, .home #content { transform: none !important; contain: none !important; filter: none !important; perspective: none !important; }\r\n    body { padding-top: 65px !important; margin: 0 !important; }\r\n    .home .ast-main-header-wrap, .home .ast-mobile-header-wrap, .home #masthead, .home #mobile-header, .home .site-header { display: none !important; height: 0 !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; }\r\n    .home .pth-sidebar { display: block !important; width: 100% !important; background: transparent !important; border: none !important; padding: 0 5px 10px 5px !important; margin-bottom: 0 !important; box-shadow: none !important; }\r\n    .home .pth-sidebar-brand { display: none !important; }\r\n    .home .pth-sidebar-nav { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; padding: 0 !important; margin: 0 !important; overflow: visible !important; }\r\n    #pth-mobile-app-bar { display: flex !important; position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important; width: 100% !important; height: 55px !important; background: #ffffff !important; z-index: 9999999 !important; box-shadow: 0 2px 10px rgba(0,0,0,0.08) !important; border-bottom: 1px solid #e2e8f0 !important; align-items: stretch !important; justify-content: space-between !important; padding: 0 !important; margin: 0 !important; transform: none !important; }\r\n    .pth-app-btn { display: flex !important; align-items: center !important; justify-content: center !important; background: transparent !important; border: none !important; border-right: 1px solid #f1f5f9 !important; color: #334155 !important; font-weight: 800 !important; gap: 4px !important; cursor: pointer !important; padding: 0 !important; margin: 0 !important; white-space: nowrap !important; }\r\n    .pth-app-btn.pth-icon-only { flex: 0 0 13% !important; font-size: 16px !important; }\r\n    #pth-app-kits-btn, #pth-app-menu-trigger { flex: 1 !important; font-size: 13px !important; }\r\n    #pth-app-fav-btn { flex: 0 0 36% !important; font-size: 13px !important; }\r\n    #pth-app-kits-btn { display: flex !important; }\r\n    #pth-app-menu-trigger { display: none !important; }\r\n    .pth-fav-badge { background: #f97316 !important; color: #ffffff !important; font-size: 10px !important; font-weight: 800 !important; width: 18px !important; height: 18px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; border-radius: 50% !important; line-height: 1 !important; margin-left: 2px !important; }\r\n    .pth-arrow { font-size: 10px; color: #94a3b8; margin-left: 2px; }\r\n    .pth-app-dropdown { display: none !important; position: fixed !important; top: 60px !important; left: 10px !important; right: 10px !important; background: #0f172a !important; border: 1px solid #3b82f6 !important; border-radius: 12px !important; box-shadow: 0 20px 40px rgba(0,0,0,0.8) !important; padding: 15px !important; flex-direction: column !important; gap: 4px !important; max-height: calc(100vh - 80px) !important; overflow-y: auto !important; z-index: 9999999 !important; margin: 0 !important; }\r\n    .pth-app-dropdown.pth-open { display: flex !important; }\r\n    .pth-app-dropdown .pth-v-btn { background-color: #1e293b !important; color: #cbd5e1 !important; border: 1px solid rgba(255,255,255,0.05) !important; margin-bottom: 8px !important; padding: 12px !important; border-radius: 8px !important; display: flex !important; width: 100% !important; }\r\n    .pth-app-dropdown .pth-v-btn.active { background-color: #3b82f6 !important; color: #ffffff !important; }\r\n    .pth-app-dropdown .pth-cat-icon-cage { background-color: transparent !important; color: #fff !important; margin-right: 10px !important; }\r\n    \r\n    \/* SEO Title Mobile Tweaks *\/\r\n    .home .pth-seo-title-row { border-bottom: 1px solid #e2e8f0 !important; padding-bottom: 15px !important; margin-bottom: 20px !important; padding-left: 10px !important; padding-right: 10px !important; }\r\n    .home .pth-seo-main-title { font-size: 20px !important; display: block !important; }\r\n    .pth-seo-subtitle { font-size: 14px !important; line-height: 1.5 !important; }\r\n    \r\n    .home .pth-desktop-filler { display: flex !important; width: 100% !important; margin-bottom: 20px !important; justify-content: center !important; }\r\n    .home .pth-hero-inner > #pth-favorite-tools-container { display: none !important; }\r\n    .home .pth-hero-title, .home .pth-hero-desc { display: none !important; }\r\n    .home .pth-bg-dark { display: block !important; background: #ffffff !important; border: none !important; padding: 10px 0 10px 0 !important; margin: 0 !important; visibility: visible !important; opacity: 1 !important; }\r\n    .home .pth-bg-light { background: #ffffff !important; }\r\n    .home .pth-main-layout { padding-top: 0 !important; }\r\n    .home #pth-wrapper .pth-search-box { display: flex !important; flex-direction: column !important; align-items: stretch !important; padding: 15px 12px !important; gap: 12px !important; border-radius: 12px !important; margin: 0 auto 15px auto !important; width: 100% !important; max-width: none !important; position: relative !important; z-index: 20 !important; border: 1px solid #e2e8f0 !important; box-shadow: 0 4px 15px rgba(0,0,0,0.05) !important; background: #f8fafc !important; visibility: visible !important; box-sizing: border-box !important; }\r\n    .home #pth-wrapper .pth-search-input { width: 100% !important; padding: 12px 14px !important; border-radius: 8px !important; background: #ffffff !important; border: 1px solid #cbd5e1 !important; box-sizing: border-box !important; margin: 0 !important; font-size: 15px !important; color: #0f172a !important; }\r\n    .home #pth-wrapper .pth-search-action-group { width: 100% !important; display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 10px !important; margin: 0 !important; }\r\n    .home #pth-wrapper .pth-dir-pill, .home #pth-wrapper .pth-search-pill-btn { width: 100% !important; padding: 12px 0 !important; border-radius: 8px !important; height: 44px !important; margin: 0 !important; }\r\n    .pth-tool-card { padding: 15px !important; padding-bottom: 50px !important; }\r\n}\r\n\r\n\/* =========================================================\r\n   CONTENT AREA, GRID & PAGINATION\r\n   ========================================================= *\/\r\n.pth-content-area { flex: 1; min-width: 0; }\r\n\r\n.pth-tools-grid { display: grid; grid-template-columns: repeat(1, 1fr) !important; gap: 24px; padding-bottom: 40px; }\r\n@media (min-width: 640px) { .pth-tools-grid { grid-template-columns: repeat(2, 1fr) !important; } }\r\n@media (min-width: 1024px) { .pth-tools-grid { grid-template-columns: repeat(3, 1fr) !important; } }\r\n@media (min-width: 1280px) { .pth-tools-grid { grid-template-columns: repeat(4, 1fr) !important; } }\r\n.home .pth-tools-grid { grid-template-columns: repeat(1, 1fr) !important; }\r\n@media (min-width: 640px) { .home .pth-tools-grid { grid-template-columns: repeat(2, 1fr) !important; } }\r\n@media (min-width: 1024px) { .home .pth-tools-grid { grid-template-columns: repeat(3, 1fr) !important; } }\r\n\r\n.pth-tool-card {\r\n    display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; align-content: flex-start !important;\r\n    position: relative; background: #ffffff !important; padding: 24px !important; border-radius: 16px !important;\r\n    border: 1px solid #e2e8f0 !important; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05); text-decoration: none !important;\r\n    height: 100%; box-sizing: border-box; padding-bottom: 60px !important;\r\n    border-left: 3px solid transparent !important;\r\n    transition: background 0.2s ease, border-left-color 0.2s ease, border-color 0.2s ease !important;\r\n}\r\n.pth-tool-card:hover { background: linear-gradient(135deg, #f0f7ff 0%, #ffffff 60%) !important; border-color: #bfdbfe !important; border-left: 3px solid #3b82f6 !important; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05) !important; }\r\n.pth-tool-card:hover .pth-tool-title, .pth-tool-card:hover .pth-card-title { color: #2563eb !important; }\r\n.pth-tool-card:hover .pth-tool-icon, .pth-tool-card:hover .pth-card-icon { background: #dbeafe !important; border-color: #bfdbfe !important; }\r\n.pth-tool-card:hover .pth-snippet-no { background: #dbeafe !important; color: #1d4ed8 !important; border-color: #bfdbfe !important; }\r\n.pth-tool-icon, .pth-card-icon { width: 44px !important; height: 44px !important; margin-right: 15px !important; margin-bottom: 16px !important; flex-shrink: 0 !important; background: #f1f5f9 !important; border-radius: 12px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; font-size: 22px !important; border: 1px solid #e2e8f0 !important; }\r\n.pth-tool-title, .pth-card-title { width: calc(100% - 60px) !important; margin: 0 !important; margin-bottom: 16px !important; display: flex !important; align-items: center !important; font-size: 17px !important; font-weight: 800 !important; color: #0f172a !important; line-height: 1.3 !important; padding-right: 35px !important; text-decoration: none !important; }\r\n.pth-tool-desc, .pth-card-desc { width: 100% !important; border-top: 1px solid #e2e8f0 !important; padding-top: 16px !important; margin: 0 !important; font-size: 14px !important; color: #000000 !important; line-height: 1.6 !important; }\r\n.pth-snippet-no { position: absolute !important; top: 24px !important; right: 24px !important; background: #f8fafc !important; color: #64748b !important; font-size: 12px !important; font-weight: 700 !important; width: 28px !important; height: 28px !important; display: flex !important; align-items: center !important; justify-content: center !important; border-radius: 50% !important; border: 1px solid #000000 !important; z-index: 10 !important; }\r\n.pth-card-top-header, .pth-card-header { width: 100% !important; display: flex !important; align-items: center !important; border-bottom: none !important; padding-bottom: 0 !important; margin-bottom: 16px !important; }\r\n.pth-card-top-header .pth-tool-icon, .pth-card-header .pth-card-icon { margin-bottom: 0 !important; }\r\n.pth-card-top-header .pth-tool-title, .pth-card-header .pth-card-title { margin-bottom: 0 !important; width: auto !important; flex-grow: 1 !important; }\r\n\r\n\/* =========================================================\r\n   PAGINATION\r\n   ========================================================= *\/\r\n.pth-pagination-wrapper { display: flex; justify-content: center; width: 100%; grid-column: 1 \/ -1; margin-top: var(--pagination-margin-top) !important; margin-bottom: var(--pagination-margin-bottom) !important; box-sizing: border-box !important; padding: 0 10px !important; }\r\n.pth-pagination-container { display: flex; flex-wrap: nowrap; justify-content: flex-start; gap: 5px; background: #ffffff; padding: 8px; border-radius: 50px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05); border: 1px solid #e2e8f0; align-items: center; max-width: 100%; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; scrollbar-width: none; }\r\n.pth-pagination-container::-webkit-scrollbar { display: none; }\r\n.pth-page-btn { background: transparent; border: none; padding: 6px 14px; border-radius: 30px; font-size: 13px; font-weight: 700; color: #475569; cursor: pointer; outline: none; margin: 0 !important; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; }\r\n.pth-page-btn.active { background: #3b82f6; color: #ffffff; }\r\n\r\n\/* =========================================================\r\n   CLS FIX: DESKTOP MINIMUM SIZES\r\n   ========================================================= *\/\r\n@media (min-width: 992px) {\r\n    .home .pth-main-layout { min-height: 85vh !important; }\r\n    .home .pth-sidebar { min-height: 600px !important; }\r\n}\r\n\r\n\/* =========================================================\r\n   CLS FIX: MOBILE TOOLS GRID\r\n   ========================================================= *\/\r\n@media (max-width: 991px) {\r\n    .home .pth-content-area { height: auto !important; min-height: auto !important; display: block !important; }\r\n    .home #tools-container, .home .pth-tools-grid { display: grid !important; grid-template-columns: 1fr !important; min-height: 0 !important; align-content: start !important; grid-auto-rows: max-content !important; gap: 15px !important; padding: 10px 5px !important; margin-top: 10px !important; }\r\n    .home .pth-tools-grid .pth-tool-card { height: max-content !important; }\r\n    #category-sidebar .pth-v-btn { width: 100% !important; height: 100px !important; flex-direction: column !important; background: #ffffff !important; border: 1px solid #e2e8f0 !important; border-radius: 12px !important; padding: 15px 10px !important; font-size: 13px !important; font-weight: 700 !important; color: #475569 !important; box-shadow: 0 2px 4px rgba(0,0,0,0.02) !important; margin: 0 !important; text-align: center !important; justify-content: center !important; position: relative !important; white-space: normal !important; }\r\n    #category-sidebar .pth-v-btn.active { background: #0f172a !important; border-color: #0f172a !important; color: #ffffff !important; }\r\n    #category-sidebar .pth-v-btn .pth-cat-icon-cage { margin: 0 0 8px 0 !important; font-size: 26px !important; }\r\n    #category-sidebar .pth-cat-count { position: absolute !important; top: 6px !important; right: 6px !important; padding: 2px 6px !important; font-size: 10px !important; border-radius: 6px !important; margin-left: 0 !important; background: #f1f5f9 !important; color: #475569 !important; border: none !important; }\r\n}\r\n\r\n\/* =========================================================\r\n   CLS FIX \u2014 OPACITY HIDE UNTIL TOOLS LOAD\r\n   ========================================================= *\/\r\nbody:not(.pth-tools-loaded) .pth-pagination-wrapper,\r\nbody:not(.pth-tools-loaded) .pth-pagination-container,\r\nbody:not(.pth-tools-loaded) #pth-invincible-features {\r\n    opacity: 0;\r\n    pointer-events: none;\r\n}\r\n\r\nbody.pth-tools-loaded .pth-pagination-wrapper,\r\nbody.pth-tools-loaded #pth-invincible-features {\r\n    animation: pthFadeIn 0.4s ease forwards;\r\n}\r\n\r\n.pth-article-wrapper,\r\n.pth-faq-section,\r\n#pth-home-bottom {\r\n    opacity: 1 !important;\r\n    visibility: visible !important;\r\n}\r\n\r\n@keyframes pthFadeIn {\r\n    from { opacity: 0; }\r\n    to   { opacity: 1; }\r\n}\r\n\r\nimg { max-width: 100%; height: auto; display: block; }\r\n\r\n\/* =========================================================\r\n   DROPDOWN CAT LIST (MOBILE KITS MENU)\r\n   ========================================================= *\/\r\n.pth-dropdown-cat-list { display: flex !important; flex-direction: column !important; gap: 8px !important; margin: 0 !important; padding: 0 !important; }\r\n.pth-dropdown-cat-list .pth-v-btn { width: 100% !important; height: auto !important; flex-direction: row !important; background: #1e293b !important; border: 1px solid rgba(255,255,255,0.05) !important; color: #cbd5e1 !important; padding: 12px 15px !important; justify-content: flex-start !important; text-align: left !important; border-radius: 8px !important; box-shadow: none !important; }\r\n.pth-dropdown-cat-list .pth-v-btn .pth-cat-icon-cage { margin: 0 10px 0 0 !important; font-size: 18px !important; }\r\n.pth-dropdown-cat-list .pth-v-btn .pth-cat-count { position: static !important; margin-left: auto !important; background: rgba(255,255,255,0.1) !important; color: #fff !important; }\r\n\r\n\/* =========================================================\r\n   ARTICLE BODY WRAPPER \u2014 PADDING FIX\r\n   ========================================================= *\/\r\n.home .pth-body-wrap { max-width: 1480px !important; margin: 0 auto !important; padding: 0 20px !important; box-sizing: border-box !important; }\r\n.home .pth-article-wrapper { max-width: 1480px !important; margin: 0 auto 40px auto !important; padding: 0 20px !important; box-sizing: border-box !important; }\r\n@media (max-width: 768px) {\r\n    .home .pth-body-wrap { padding: 0 16px !important; }\r\n    .home .pth-article-wrapper { padding: 0 16px !important; }\r\n}\r\n\/* ============================================================\r\n   CLS FIX v6.2 \u2014 Reserve space for JS-injected content on mobile\r\n   ============================================================ *\/\r\n@media(max-width:991px){\r\n    .home #category-sidebar{\r\n        min-height: 1180px;   \/* ~22 category cards, 2-col grid \u2014 tune below *\/\r\n    }\r\n    .home #tools-container,\r\n    .home .pth-tools-grid{\r\n        min-height: 720px;    \/* 3 mobile cards + pagination \u2014 tune below *\/\r\n    }\r\n}\r\n<\/style>\r\n\r\n<div id=\"pth-wrapper\">\r\n    <div id=\"pth-mobile-app-bar\">\r\n        <a href=\"\/\" class=\"pth-app-btn pth-icon-only\" title=\"Home\">\ud83c\udfe0<\/a>\r\n        <a href=\"#\" data-pth-action=\"openLangModal\" class=\"pth-app-btn pth-icon-only\" title=\"Translate\">\ud83c\udf10<\/a>\r\n        <a href=\"https:\/\/schoolict.net\/tools\/ultimate-free-web-tools\/\" class=\"pth-app-btn pth-icon-only\" title=\"Blog\">\ud83d\udcdd<\/a>\r\n        <div class=\"pth-app-btn pth-text-btn\" id=\"pth-app-kits-btn\" title=\"Utility Kits\">\ud83e\uddf0 Tool Kits <span class=\"pth-arrow\">\u25bc<\/span><\/div>\r\n        <div class=\"pth-app-btn pth-text-btn\" id=\"pth-app-menu-trigger\" title=\"Open Menu\">\u2630 Menu<\/div>\r\n        <div class=\"pth-app-btn pth-text-btn\" id=\"pth-app-fav-btn\" title=\"Saved Tools\">\u2b50 Favs <span id=\"pth-fav-badge\" class=\"pth-fav-badge\" style=\"background:#f97316;\">0<\/span> <span class=\"pth-arrow\">\u25bc<\/span><\/div>\r\n        <div id=\"pth-app-kits-drop\" class=\"pth-app-dropdown\">\r\n            <div class=\"pth-modal-header\" style=\"display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid rgba(255,255,255,0.1);\"><span style=\"color:#fff;font-size:16px;font-weight:800;\">\ud83e\uddf0 Utility Kits<\/span><div class=\"pth-modal-close-btn\" data-pth-action=\"closeDropdowns\" style=\"color:#ef4444;font-weight:bold;cursor:pointer;\">\u2715<\/div><\/div>\r\n        <\/div>\r\n        <div id=\"pth-app-fav-drop\" class=\"pth-app-dropdown\">\r\n            <div class=\"pth-modal-header\" style=\"display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid rgba(255,255,255,0.1);\"><span style=\"color:#fff;font-size:16px;font-weight:800;\">\u2b50 Saved Tools<\/span><div class=\"pth-modal-close-btn\" data-pth-action=\"closeDropdowns\" style=\"color:#ef4444;font-weight:bold;cursor:pointer;\">\u2715<\/div><\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"pth-bg-dark\">\r\n        <div class=\"pth-hero-inner\">\r\n            <h2 class=\"pth-hero-title\">The Ultimate Hub for Free Offline Web Tools<\/h2>\r\n            <p class=\"pth-hero-desc\">100% Free. No Sign-up Required. Fast & Secure.<\/p>\r\n            <div class=\"pth-search-box\">\r\n                <input type=\"text\" id=\"pthSearch\" placeholder=\"What tool do you need today? (e.g. AI Translator)\" class=\"pth-search-input\" autocomplete=\"off\">\r\n                <div class=\"pth-search-action-group\">\r\n                    <button type=\"button\" class=\"pth-search-pill-btn\" id=\"pth-search-trigger-btn\">Search<\/button>\r\n                    <a href=\"https:\/\/schoolict.net\/tools\/free-web-tools-directory-prime-tool-hub\/\" class=\"pth-dir-pill\">\r\n                        <span class=\"pth-pill-icon\">\ud83d\udd34<\/span> <span class=\"pth-dir-text\">Directory<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            <div id=\"pth-favorite-tools-container\" class=\"pth-fav-container\"><\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"pth-bg-light\">\r\n        <div class=\"pth-main-layout\">\r\n            <aside class=\"pth-sidebar\">\r\n                <div class=\"pth-sidebar-brand\">\r\n                    <a href=\"\/\" class=\"pth-brand-link\" style=\"text-decoration:none;display:flex;align-items:center;justify-content:flex-start;gap:14px;cursor:pointer;\">\r\n                        <img decoding=\"async\" src=\"https:\/\/schoolict.net\/tools\/sampledata\/LogoNew1.webp\" alt=\"SchoolICT Tool HUB\" width=\"712\" height=\"180\" style=\"width:130px !important;height:88px !important;object-fit:cover !important;object-position:50% 48% !important;border-radius:14px !important;display:block;flex-shrink:0;\">\r\n                        <div class=\"pth-brand-text-cage\" style=\"display:flex;flex-direction:column;justify-content:center;text-align:left;\">\r\n                            <span style=\"font-size:18px;color:#0f172a;font-weight:800;letter-spacing:-0.3px;line-height:1.1;\">SchoolICT Tool HUB<\/span>\r\n                            <span style=\"font-size:11px;color:#000000;font-weight:800;text-transform:uppercase;letter-spacing:1px;margin-top:4px;\">Utility Kits \ud83d\udc47<\/span>\r\n                        <\/div>\r\n                    <\/a>\r\n                <\/div>\r\n                <nav id=\"category-sidebar\" class=\"pth-sidebar-nav pth-scrollbar\"><\/nav>\r\n            <\/aside>\r\n\r\n            <main class=\"pth-content-area\">\r\n                \r\n                <!-- NEW STYLISH SEO HEADING BOX -->\r\n                <div class=\"pth-title-row pth-seo-title-row\">\r\n                    <div class=\"pth-seo-heading-box\">\r\n                        <h2 id=\"current-category-title\" class=\"pth-seo-main-title\">SchoolICT Tool HUB: Free Offline Web Tools & Utilities<\/h2>\r\n                        <p id=\"current-category-desc\" class=\"pth-seo-subtitle\">A comprehensive, privacy-first collection of 100% offline utilities. From developer tools and digital electronics to image editing and AI tools\u2014designed for students, teachers, and professionals.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div id=\"tools-container\" class=\"pth-tools-grid\"><\/div>\r\n            <\/main>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script data-no-optimize=\"1\" data-no-minify=\"1\" data-cfasync=\"false\">\r\n(function() {\r\n    \/* =========================================================\r\n       ANTI-CLS: WAIT UNTIL TOOLS LOAD \u2192 ADD pth-tools-loaded\r\n       opacity:0 \u2192 opacity:1 = compositor only = zero CLS\r\n       ========================================================= *\/\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n        var pthGridCheck = setInterval(function() {\r\n            var grid = document.getElementById('tools-container') || document.querySelector('.pth-tools-grid');\r\n            if (grid && grid.children.length > 0) {\r\n                clearInterval(pthGridCheck);\r\n                requestAnimationFrame(function() {\r\n                    document.body.classList.add('pth-tools-loaded');\r\n                });\r\n            }\r\n        }, 50);\r\n        setTimeout(function() {\r\n            clearInterval(pthGridCheck);\r\n            document.body.classList.add('pth-tools-loaded');\r\n        }, 2000);\r\n    });\r\n\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n        if (window.matchMedia('(max-width: 991px)').matches) {\r\n            var appBar = document.getElementById('pth-mobile-app-bar');\r\n            if (appBar && document.body && appBar.parentNode !== document.body) {\r\n                document.body.insertBefore(appBar, document.body.firstChild);\r\n            }\r\n        }\r\n    });\r\n\r\n    function populateMobileToolKits() {\r\n        var isMobile = window.matchMedia('(max-width: 991px)').matches;\r\n        if (!isMobile) return;\r\n        var kitsDrop = document.getElementById('pth-app-kits-drop');\r\n        var sourceNav = document.getElementById('category-sidebar');\r\n        if (kitsDrop && sourceNav && sourceNav.children.length > 0) {\r\n            var existingClone = document.getElementById('pth-cloned-cats');\r\n            if (!existingClone) {\r\n                var cloneCats = sourceNav.cloneNode(true);\r\n                cloneCats.id = 'pth-cloned-cats';\r\n                cloneCats.className = 'pth-dropdown-cat-list';\r\n                cloneCats.querySelectorAll('[id]').forEach(function(child) { child.removeAttribute('id'); });\r\n                kitsDrop.appendChild(cloneCats);\r\n            } else if (existingClone.children.length === 0) {\r\n                existingClone.innerHTML = sourceNav.innerHTML;\r\n            }\r\n        }\r\n    }\r\n\r\n    function movePthDOMForMobile() {\r\n        var isMobile = window.matchMedia('(max-width: 991px)').matches;\r\n        if (isMobile && !window.pthFavMoved) {\r\n            var favContainer = document.getElementById('pth-favorite-tools-container');\r\n            var favDrop = document.getElementById('pth-app-fav-drop');\r\n            if (favContainer && favDrop) { favDrop.appendChild(favContainer); window.pthFavMoved = true; }\r\n        }\r\n    }\r\n\r\nfunction initPthLogic() {\r\n        window.closePthAllDropdowns = function() {\r\n            document.querySelectorAll('.pth-app-dropdown').forEach(function(d) { d.classList.remove('pth-open'); });\r\n            document.querySelectorAll('.pth-app-btn').forEach(function(b) { b.classList.remove('pth-active'); });\r\n        };\r\n        \r\n        var kitsBtn = document.getElementById('pth-app-kits-btn');\r\n        if (kitsBtn) {\r\n            kitsBtn.addEventListener('click', function(e) {\r\n                e.stopPropagation(); populateMobileToolKits(); movePthDOMForMobile();\r\n                var drop = document.getElementById('pth-app-kits-drop');\r\n                var isOpen = drop.classList.contains('pth-open');\r\n                window.closePthAllDropdowns();\r\n                if (!isOpen) { drop.classList.add('pth-open'); this.classList.add('pth-active'); }\r\n            });\r\n        }\r\n        \r\n        var favBtn = document.getElementById('pth-app-fav-btn');\r\n        if (favBtn) {\r\n            favBtn.addEventListener('click', function(e) {\r\n                e.stopPropagation(); movePthDOMForMobile();\r\n                var drop = document.getElementById('pth-app-fav-drop');\r\n                var isOpen = drop.classList.contains('pth-open');\r\n                window.closePthAllDropdowns();\r\n                if (!isOpen) {\r\n                    drop.classList.add('pth-open'); this.classList.add('pth-active');\r\n                    if (typeof window.pthRenderHomeFavorites === 'function') window.pthRenderHomeFavorites();\r\n                }\r\n            });\r\n        }\r\n        \r\n        var menuTrigger = document.getElementById('pth-app-menu-trigger');\r\n        if (menuTrigger) {\r\n            menuTrigger.addEventListener('click', function(e) {\r\n                e.preventDefault();\r\n                var themeMenuToggle = document.querySelector('.menu-toggle');\r\n                if (themeMenuToggle) themeMenuToggle.click();\r\n            });\r\n        }\r\n\r\n        document.querySelectorAll('.pth-modal-close-btn').forEach(function(btn) {\r\n            btn.addEventListener('click', function(e) {\r\n                e.stopPropagation();\r\n                window.closePthAllDropdowns();\r\n            });\r\n        });\r\n\r\n        var translateBtn = document.querySelector('[data-pth-action=\"openLangModal\"]');\r\n        if (translateBtn) {\r\n            translateBtn.addEventListener('click', function(e) {\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n                \r\n                window.closePthAllDropdowns(); \r\n                \r\n                if (typeof window.openLangModal === 'function') {\r\n                    window.openLangModal();\r\n                } else {\r\n                    alert('Language module is loading... Please try again in a second.');\r\n                }\r\n            });\r\n        }\r\n\r\n        document.addEventListener('click', function(e) {\r\n            if (window.matchMedia('(max-width: 991px)').matches) {\r\n                var clickedOutside = !e.target.closest('.pth-app-dropdown') && !e.target.closest('.pth-app-btn');\r\n                var clickedCategory = e.target.closest('.pth-v-btn');\r\n                var clickedClose = e.target.closest('.pth-modal-close-btn') || e.target.closest('.pth-close-btn');\r\n\r\n                if (clickedOutside || clickedCategory || clickedClose) {\r\n                    if (typeof window.closePthAllDropdowns === 'function') window.closePthAllDropdowns();\r\n                }\r\n            }\r\n        });\r\n\r\n        \/\/ =========================================================\r\n        \/\/ OVERRIDE FOR THE NEW SEO HEADING WHEN CATEGORIES ARE CLICKED\r\n        \/\/ =========================================================\r\n        if (typeof window.filterHomeCategory === 'function' && !window.pthSeoOverrideDone) {\r\n            var originalFilter = window.filterHomeCategory;\r\n            window.filterHomeCategory = function(id, nameText) {\r\n                originalFilter(id, nameText);\r\n                var catTitle = document.getElementById('current-category-title');\r\n                var catDesc = document.getElementById('current-category-desc');\r\n                if(catTitle) {\r\n                    catTitle.innerHTML = id === 'all' \r\n                        ? 'SchoolICT Tool HUB: Free Offline Web Tools & Utilities' \r\n                        : nameText + ' - Free Offline Utilities';\r\n                }\r\n                if(catDesc) {\r\n                    catDesc.style.display = id === 'all' ? 'block' : 'none';\r\n                }\r\n            };\r\n            window.pthSeoOverrideDone = true;\r\n        }\r\n\r\n        if (typeof window.updateFavBadgeColor === 'function') window.updateFavBadgeColor();\r\n    }\r\n\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n        initPthLogic();\r\n        if (typeof updateFavBadgeColor === 'function') updateFavBadgeColor();\r\n    });\r\n\r\n    document.addEventListener('click', function(e) {\r\n        var isFavBtn = e.target.closest('.pth-card-fav-btn') || e.target.closest('.pth-fav-remove') ||\r\n                       e.target.closest('.pth-fav-pill') || e.target.closest('[onclick*=\"togglePthFavoriteNew\"]');\r\n        if (isFavBtn && typeof window.updateFavBadgeColor === 'function') {\r\n            setTimeout(window.updateFavBadgeColor, 50);\r\n        }\r\n    }, { passive: true });\r\n\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n        document.addEventListener('click', function(e) {\r\n            var catBtn = e.target.closest('.pth-v-btn');\r\n            if (catBtn && window.matchMedia('(max-width: 991px)').matches) {\r\n                setTimeout(function() {\r\n                    var toolsArea = document.getElementById('tools-container') || document.querySelector('.pth-tools-grid');\r\n                    if (toolsArea) {\r\n                        var offsetPosition = toolsArea.getBoundingClientRect().top + window.pageYOffset - 65;\r\n                        window.scrollTo({ top: offsetPosition, behavior: 'smooth' });\r\n                    }\r\n                }, 350);\r\n            }\r\n        });\r\n    });\r\n\r\n})();\r\n<\/script>\r\n\r\n<script type=\"speculationrules\">\r\n{\r\n  \"prerender\": [\r\n    {\r\n      \"source\": \"document\",\r\n      \"where\": {\r\n        \"and\": [\r\n          { \"href_matches\": \"\/*\" },\r\n          { \"not\": { \"href_matches\": \"\/wp-admin\/*\" } },\r\n          { \"not\": { \"href_matches\": \"\/*?*\" } }\r\n        ]\r\n      },\r\n      \"eagerness\": \"moderate\"\r\n    }\r\n  ]\r\n}\r\n<\/script>\r\n\r\n<script data-no-optimize=\"1\" data-no-minify=\"1\" data-cfasync=\"false\">\r\n(function() {\r\n    document.addEventListener('DOMContentLoaded', function() {\r\n        if (HTMLScriptElement.supports && HTMLScriptElement.supports('speculationrules')) { return; }\r\n        var links = document.querySelectorAll('a[href^=\"\/\"], a[href^=\"https:\/\/schoolict.net\/tools\"]');\r\n        links.forEach(function(link) {\r\n            link.addEventListener('mouseenter', function() {\r\n                var href = this.getAttribute('href');\r\n                if (!window.prefetchedUrls) window.prefetchedUrls = new Set();\r\n                if (href && !window.prefetchedUrls.has(href)) {\r\n                    var prefetchTag = document.createElement('link');\r\n                    prefetchTag.rel = 'prefetch';\r\n                    prefetchTag.href = href;\r\n                    document.head.appendChild(prefetchTag);\r\n                    window.prefetchedUrls.add(href);\r\n                }\r\n            }, { once: true });\r\n        });\r\n    });\r\n})();\r\n<\/script>\n\n\n<style id=\"pth-nt10-styles\">\r\n.pth-recent-container{max-width:1480px;margin:40px auto;padding:0 20px;box-sizing:border-box;font-family:'Inter',system-ui,sans-serif}\r\n.pth-recent-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;flex-wrap:wrap;gap:15px}\r\n.pth-recent-title{font-size:20px;font-weight:800;color:#0f172a;margin:0;display:flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.5px;flex-wrap:wrap}\r\n.pth-recent-count-badge{background:#0f172a;color:#fff;font-size:14px;font-weight:800;padding:4px 12px;border-radius:20px;text-transform:none;letter-spacing:normal;display:inline-flex;align-items:center;justify-content:center}\r\n.pth-recent-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}\r\n.pth-recent-dir-btn{font-size:14px;font-weight:700;color:#fff;background:#047857;padding:8px 18px;border-radius:30px;text-decoration:none;transition:background .2s;display:inline-flex;align-items:center;gap:6px;border:1px solid #047857}\r\n.pth-recent-dir-btn:hover{background:#064e3b;color:#fff}\r\n.pth-recent-video-btn{font-size:14px;font-weight:700;color:#fff;background:#b91c1c;padding:8px 18px;border-radius:30px;text-decoration:none;transition:background .2s;display:inline-flex;align-items:center;gap:6px;border:1px solid #b91c1c}\r\n.pth-recent-video-btn:hover{background:#991b1b;color:#fff}\r\n.pth-recent-view-all{font-size:14px;font-weight:700;color:#2563eb;background:#eff6ff;padding:8px 18px;border-radius:30px;text-decoration:none;transition:background .2s,color .2s;display:inline-flex;align-items:center;gap:6px}\r\n.pth-recent-view-all:hover{background:#2563eb;color:#fff}\r\n.pth-recent-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}\r\n.pth-recent-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;height:100%;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;box-shadow:0 4px 10px rgba(0,0,0,.02);text-decoration:none!important}\r\n.pth-recent-card:hover{transform:translateY(-5px);box-shadow:0 15px 30px rgba(0,0,0,.08);border-color:#93c5fd}\r\n.pth-img-wrap{position:relative;width:100%;padding-bottom:56.25%;background-color:#f1f5f9;border-bottom:1px solid #e2e8f0;flex-shrink:0}\r\n@supports(aspect-ratio:16\/9){.pth-img-wrap{padding-bottom:0;aspect-ratio:16\/9}}\r\n.pth-img-wrap img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block}\r\n.pth-recent-content{padding:15px;display:flex;flex-direction:column;flex-grow:1}\r\n.pth-recent-meta{font-size:11px;color:#64748b;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:6px;text-transform:uppercase;min-height:16px}\r\n.pth-recent-cat{color:#0f172a;background:#e2e8f0;padding:3px 8px;border-radius:4px}\r\n.pth-meta-updated{color:#2563eb;font-weight:600;margin-left:4px;padding-left:6px;border-left:1px solid #cbd5e1;text-transform:none}\r\n.pth-recent-post-title{font-size:15px;font-weight:800;color:#0f172a;margin:0 0 12px;line-height:1.4;transition:color .2s;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:63px}\r\n.pth-recent-card:hover .pth-recent-post-title{color:#2563eb}\r\n.pth-recent-btn{margin-top:auto;display:flex;align-items:center;justify-content:center;background:#f8fafc;color:#2563eb;border:1px solid #bfdbfe;padding:8px 16px;border-radius:8px;font-size:12px;font-weight:700;transition:background .2s,color .2s;width:100%;box-sizing:border-box}\r\n.pth-recent-card:hover .pth-recent-btn{background:#2563eb;color:#fff;border-color:#2563eb}\r\n@media(min-width:992px) and (max-width:1200px){.pth-recent-grid{grid-template-columns:repeat(3,1fr)}}\r\n@media(max-width:991px){.pth-recent-container{display:none!important}}\r\n<\/style>\r\n\r\n<div class=\"pth-recent-container\">\r\n    <div class=\"pth-recent-header\">\r\n        <h2 class=\"pth-recent-title\">\r\n            <span style=\"font-size:1.2em;\" aria-hidden=\"true\">\ud83d\udcdd<\/span>\r\n            LATEST TECHNICAL GUIDES\r\n            <span class=\"pth-recent-count-badge\">58<\/span>\r\n        <\/h2>\r\n        <div class=\"pth-recent-actions\">\r\n            <a href=\"https:\/\/schoolict.net\/tools\/free-web-tools-directory-prime-tool-hub\/\" class=\"pth-recent-dir-btn\" aria-label=\"Browse all free web tools\">\r\n                <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polygon points=\"12 2 2 7 12 12 22 7 12 2\"><\/polygon><polyline points=\"2 17 12 22 22 17\"><\/polyline><polyline points=\"2 12 17 22 22 12\"><\/polyline><\/svg>\r\n                All Web Tools\r\n            <\/a>\r\n            <a href=\"https:\/\/schoolict.net\/tools\/free-web-tools-by-category\/\" class=\"pth-recent-video-btn\" aria-label=\"Browse tools by category\">\r\n                <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"><\/path><\/svg>\r\n                Categories\r\n            <\/a>\r\n            <a href=\"\/ultimate-free-web-tools\/\" class=\"pth-recent-view-all\">View All Articles \u2192<\/a>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"pth-recent-grid\">\r\n            <a href=\"https:\/\/schoolict.net\/tools\/how-to-convert-csv-to-sql\/\" class=\"pth-recent-card\">\r\n            <div class=\"pth-img-wrap\">\r\n                <img src=\"https:\/\/schoolict.net\/tools\/wp-content\/uploads\/2026\/08\/how-to-convert-csv-to-sql-400x223.jpeg\"\r\n                     alt=\"How to Convert CSV to SQL: Types, Dialects &amp; Safe INSERT Statementshow-to-convert-csv-to-sql\"\r\n                     width=\"640\" height=\"360\"\r\n                     loading=\"eager\"\r\n                     decoding=\"async\"\r\n                     data-no-lazy=\"1\"\r\n                      fetchpriority=\"high\">\r\n            <\/div>\r\n            <div class=\"pth-recent-content\">\r\n                <div class=\"pth-recent-meta\">\r\n                    <span class=\"pth-recent-cat\">\ud83d\udcc2 Data Converters<\/span>\r\n                    <span aria-hidden=\"true\">\u2022<\/span>\r\n                    <span>\ud83d\udcc5 Aug 9                                            <\/span>\r\n                <\/div>\r\n                <h3 class=\"pth-recent-post-title\">How to Convert CSV to SQL: Types, Dialects &amp; Safe INSERT Statementshow-to-convert-csv-to-sql<\/h3>\r\n                <span class=\"pth-recent-btn\">\ud83d\udcd6 Read More<\/span>\r\n            <\/div>\r\n        <\/a>\r\n            <a href=\"https:\/\/schoolict.net\/tools\/how-pdf-files-work\/\" class=\"pth-recent-card\">\r\n            <div class=\"pth-img-wrap\">\r\n                <img src=\"https:\/\/schoolict.net\/tools\/wp-content\/uploads\/2026\/08\/how-PDF-files-work-400x223.jpeg\"\r\n                     alt=\"How PDF Files Work Inside &#8211; Text, Pages and Why Redaction Is Hard\"\r\n                     width=\"640\" height=\"360\"\r\n                     loading=\"lazy\"\r\n                     decoding=\"async\"\r\n                     data-no-lazy=\"1\"\r\n                     >\r\n            <\/div>\r\n            <div class=\"pth-recent-content\">\r\n                <div class=\"pth-recent-meta\">\r\n                    <span class=\"pth-recent-cat\">\ud83d\udcc2 Document Tool<\/span>\r\n                    <span aria-hidden=\"true\">\u2022<\/span>\r\n                    <span>\ud83d\udcc5 Aug 9                                            <\/span>\r\n                <\/div>\r\n                <h3 class=\"pth-recent-post-title\">How PDF Files Work Inside &#8211; Text, Pages and Why Redaction Is Hard<\/h3>\r\n                <span class=\"pth-recent-btn\">\ud83d\udcd6 Read More<\/span>\r\n            <\/div>\r\n        <\/a>\r\n            <a href=\"https:\/\/schoolict.net\/tools\/how-to-spot-ai-written-content\/\" class=\"pth-recent-card\">\r\n            <div class=\"pth-img-wrap\">\r\n                <img src=\"https:\/\/schoolict.net\/tools\/wp-content\/uploads\/2026\/08\/Spotting_AI_written_content-400x223.jpeg\"\r\n                     alt=\"How to Spot AI Written Content \u2014 And Why Detector Tools Keep Getting It Wrong\"\r\n                     width=\"640\" height=\"360\"\r\n                     loading=\"lazy\"\r\n                     decoding=\"async\"\r\n                     data-no-lazy=\"1\"\r\n                     >\r\n            <\/div>\r\n            <div class=\"pth-recent-content\">\r\n                <div class=\"pth-recent-meta\">\r\n                    <span class=\"pth-recent-cat\">\ud83d\udcc2 Text &amp; SEO Tools<\/span>\r\n                    <span aria-hidden=\"true\">\u2022<\/span>\r\n                    <span>\ud83d\udcc5 Aug 9                                            <\/span>\r\n                <\/div>\r\n                <h3 class=\"pth-recent-post-title\">How to Spot AI Written Content \u2014 And Why Detector Tools Keep Getting It Wrong<\/h3>\r\n                <span class=\"pth-recent-btn\">\ud83d\udcd6 Read More<\/span>\r\n            <\/div>\r\n        <\/a>\r\n            <a href=\"https:\/\/schoolict.net\/tools\/how-sentiment-analysis-works\/\" class=\"pth-recent-card\">\r\n            <div class=\"pth-img-wrap\">\r\n                <img src=\"https:\/\/schoolict.net\/tools\/wp-content\/uploads\/2026\/08\/How-Sentiment-Analysis-Works-400x223.jpeg\"\r\n                     alt=\"How Sentiment Analysis Works \u2014 And Why &#8220;Not Bad&#8221; Is So Hard\"\r\n                     width=\"640\" height=\"360\"\r\n                     loading=\"lazy\"\r\n                     decoding=\"async\"\r\n                     data-no-lazy=\"1\"\r\n                     >\r\n            <\/div>\r\n            <div class=\"pth-recent-content\">\r\n                <div class=\"pth-recent-meta\">\r\n                    <span class=\"pth-recent-cat\">\ud83d\udcc2 AI assistant<\/span>\r\n                    <span aria-hidden=\"true\">\u2022<\/span>\r\n                    <span>\ud83d\udcc5 Aug 9                                            <\/span>\r\n                <\/div>\r\n                <h3 class=\"pth-recent-post-title\">How Sentiment Analysis Works \u2014 And Why &#8220;Not Bad&#8221; Is So Hard<\/h3>\r\n                <span class=\"pth-recent-btn\">\ud83d\udcd6 Read More<\/span>\r\n            <\/div>\r\n        <\/a>\r\n            <a href=\"https:\/\/schoolict.net\/tools\/how-product-tours-work\/\" class=\"pth-recent-card\">\r\n            <div class=\"pth-img-wrap\">\r\n                <img src=\"https:\/\/schoolict.net\/tools\/wp-content\/uploads\/2026\/08\/How-Product-Tours-Work-400x223.jpeg\"\r\n                     alt=\"How Product Tours Work Under the Hood\"\r\n                     width=\"640\" height=\"360\"\r\n                     loading=\"lazy\"\r\n                     decoding=\"async\"\r\n                     data-no-lazy=\"1\"\r\n                     >\r\n            <\/div>\r\n            <div class=\"pth-recent-content\">\r\n                <div class=\"pth-recent-meta\">\r\n                    <span class=\"pth-recent-cat\">\ud83d\udcc2 Web Development<\/span>\r\n                    <span aria-hidden=\"true\">\u2022<\/span>\r\n                    <span>\ud83d\udcc5 Aug 7                                                    <span class=\"pth-meta-updated\">(Updated: Aug 9)<\/span>\r\n                                            <\/span>\r\n                <\/div>\r\n                <h3 class=\"pth-recent-post-title\">How Product Tours Work Under the Hood<\/h3>\r\n                <span class=\"pth-recent-btn\">\ud83d\udcd6 Read More<\/span>\r\n            <\/div>\r\n        <\/a>\r\n        <\/div>\r\n<\/div>\n\n\n<style data-no-optimize=\"1\" data-no-minify=\"1\" data-no-defer=\"1\" data-cfasync=\"false\">\r\n\/* =========================================================\r\n   PTH HOMEPAGE BOTTOM CONTENT \u2014 v5.0\r\n   Mobile hidden via CSS before paint \u2014 zero CLS\r\n   Desktop always visible \u2014 no JS dependency\r\n   Language: plain, natural, AdSense-friendly\r\n   ========================================================= *\/\r\n\r\n\/* v6.0 \u2014 content VISIBLE to crawler on ALL devices; render-cost skipped off-screen *\/\r\n#pth-home-bottom{ display:block !important; visibility:visible !important; opacity:1 !important; }\r\n\r\n\/* Mobile: keep content in DOM, skip off-screen render work = PageSpeed safe *\/\r\n@media(max-width:991px){\r\n    .pth-article-wrapper{ content-visibility:auto; contain-intrinsic-size:auto 2500px; }\r\n    .pth-faq-section{     content-visibility:auto; contain-intrinsic-size:auto 1800px; }\r\n}\r\n\r\n.pth-container{max-width:1480px;margin:0 auto;padding:0 20px;box-sizing:border-box}\r\n\r\n\/* Feature boxes *\/\r\n.pth-feature-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:40px}\r\n.pth-feat-box{border:1px solid #e2e8f0;background:#ffffff;padding:24px;border-radius:12px;box-shadow:0 4px 6px -1px rgba(0,0,0,0.02);transition:all 0.3s ease}\r\n.pth-feat-box:hover{border-color:#bfdbfe;transform:translateY(-3px);box-shadow:0 10px 15px -3px rgba(0,0,0,0.05)}\r\n.pth-feat-title{font-size:1.05rem;font-weight:800;color:#0f172a;margin:0 0 10px 0;display:flex;align-items:center;gap:10px}\r\n.pth-feat-text{font-size:0.9rem;color:#1e293b;line-height:1.6;margin:0;font-weight:500}\r\n\r\n\/* Steps *\/\r\n.pth-steps-wrap{border:1px solid #e2e8f0;background:#ffffff;padding:40px 30px;border-radius:16px;text-align:center;box-shadow:0 4px 6px -1px rgba(0,0,0,0.02);margin-bottom:40px;width:100%;box-sizing:border-box}\r\n.pth-steps-title{font-size:1.2rem;font-weight:800;color:#0f172a;text-transform:uppercase;margin:0 0 35px 0;letter-spacing:1px}\r\n.pth-steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:30px}\r\n.pth-step-item{display:flex;flex-direction:column;align-items:center}\r\n.pth-step-num{width:45px;height:45px;background:#2563eb;color:#ffffff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.2rem;margin-bottom:15px;box-shadow:0 4px 10px rgba(37,99,235,0.3)}\r\n.pth-step-name{font-weight:800;color:#0f172a;margin:0 0 8px 0;font-size:1rem}\r\n.pth-step-desc{font-size:0.9rem;color:#1e293b;line-height:1.5;margin:0;font-weight:500}\r\n\r\n\/* Article *\/\r\n.pth-article-wrapper{background:#ffffff !important;max-width:1480px;margin:0 auto 40px auto;padding:0 20px;box-sizing:border-box;font-family:inherit}\r\n.pth-article-wrapper p{color:#1e293b !important;font-weight:500;line-height:1.75}\r\n.pth-article-wrapper p strong,.pth-article-wrapper strong{color:#0f172a !important;font-weight:800 !important}\r\n.pth-article-wrapper ul li{color:#1e293b !important;font-weight:500;line-height:1.7;margin-bottom:8px}\r\n.pth-article-wrapper h2{color:#0f172a;font-weight:800;font-size:1.3rem;margin:32px 0 14px}\r\n.pth-article-wrapper h3{color:#0f172a;font-weight:800;font-size:1.1rem;margin:24px 0 10px}\r\n\r\n\/* FAQ *\/\r\n.pth-faq-section{margin:50px auto 40px;font-family:inherit;max-width:1480px;padding:0 20px;box-sizing:border-box}\r\n.pth-faq-header{font-size:1.8rem;font-weight:800;color:#0f172a;margin-bottom:25px;border-bottom:2px solid #e2e8f0;padding-bottom:10px;display:flex;align-items:center;gap:10px}\r\n.pth-faq-grid{display:grid;grid-template-columns:1fr;gap:20px}\r\n@media(min-width:768px){.pth-faq-grid{grid-template-columns:repeat(2,1fr)}}\r\n@media(min-width:1024px){.pth-faq-grid{grid-template-columns:repeat(3,1fr)}}\r\n.pth-faq-card{background:#f8fafc;padding:24px;border-radius:12px;border:1px solid #e2e8f0;transition:transform .2s ease;break-inside:avoid}\r\n.pth-faq-card:hover{transform:translateY(-3px);box-shadow:0 4px 12px rgba(0,0,0,.05)}\r\n.pth-faq-q{color:#0f172a;font-size:1rem;font-weight:700;margin:0 0 12px;line-height:1.4}\r\n.pth-faq-a{margin:0;font-size:.95rem;color:#1e293b;line-height:1.6;font-weight:500}\r\n\r\n\/* Author bio *\/\r\n.pth-author-bio{display:flex;align-items:center;gap:14px;padding:14px 18px;border-left:4px solid #10b981;background:#f0fdf4;border-radius:0 10px 10px 0;margin:16px 0 0 0}\r\n.pth-author-bio img{border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid #6ee7b7}\r\n.pth-author-bio-text{font-size:0.88rem;color:#1e293b;line-height:1.5;font-weight:500}\r\n.pth-author-bio-text a{color:#064e3b;font-weight:800;text-decoration:underline}\r\n<\/style>\r\n\r\n<div id=\"pth-home-bottom\">\r\n\r\n    <!-- FEATURE BOXES + STEPS -->\r\n    <div id=\"pth-invincible-features\">\r\n        <div class=\"pth-container\">\r\n            <div class=\"pth-feature-wrap\">\r\n                <div class=\"pth-feat-box\">\r\n                    <p class=\"pth-feat-title\"><span aria-hidden=\"true\">\ud83d\udfe2<\/span> 100% Offline Processing<\/p>\r\n                    <p class=\"pth-feat-text\">Every tool runs entirely in your browser tab. Paste your JSON, upload your image, or test a digital logic circuit \u2014 the result appears instantly. Nothing is sent to any server, keeping student assignments and professional data perfectly safe.<\/p>\r\n                <\/div>\r\n                <div class=\"pth-feat-box\">\r\n                    <p class=\"pth-feat-title\"><span aria-hidden=\"true\">\ud83d\udd35<\/span> No Account Required<\/p>\r\n                    <p class=\"pth-feat-text\">Open any tool and start working. No email address, no password, no trial period. SchoolICT Tool HUB has zero registration walls \u2014 empowering seamless learning and development from the very first click.<\/p>\r\n                <\/div>\r\n                <div class=\"pth-feat-box\">\r\n                    <p class=\"pth-feat-title\"><span aria-hidden=\"true\">\ud83d\udfe3<\/span> 69 Lifelong Utility Tools<\/p>\r\n                    <p class=\"pth-feat-text\">From Boolean logic solvers for ICT students to advanced code analyzers and AI assistants for professional developers. These tools bridge the gap between academic theory and real-world application.<\/p>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"pth-steps-wrap\">\r\n                <p class=\"pth-steps-title\">How to Use Any SchoolICT Tool HUB Utility<\/p>\r\n                <div class=\"pth-steps-grid\">\r\n                    <div class=\"pth-step-item\">\r\n                        <div class=\"pth-step-num\" aria-hidden=\"true\">1<\/div>\r\n                        <p class=\"pth-step-name\">Pick a Tool<\/p>\r\n                        <p class=\"pth-step-desc\">Search by name, ICT category, or tool number in the search bar. Click any tool card to open your workspace.<\/p>\r\n                    <\/div>\r\n                    <div class=\"pth-step-item\">\r\n                        <div class=\"pth-step-num\" aria-hidden=\"true\">2<\/div>\r\n                        <p class=\"pth-step-name\">Load Sample<\/p>\r\n                        <p class=\"pth-step-desc\">Hit the \ud83d\udca1 Load Sample button to instantly see how the tool works using real educational or development data.<\/p>\r\n                    <\/div>\r\n                    <div class=\"pth-step-item\">\r\n                        <div class=\"pth-step-num\" aria-hidden=\"true\">3<\/div>\r\n                        <p class=\"pth-step-name\">Paste Your Data<\/p>\r\n                        <p class=\"pth-step-desc\">Clear the sample and input your own code, text, or logic equation. Results compute immediately without waiting for page reloads.<\/p>\r\n                    <\/div>\r\n                    <div class=\"pth-step-item\">\r\n                        <div class=\"pth-step-num\" aria-hidden=\"true\">4<\/div>\r\n                        <p class=\"pth-step-name\">Copy or Export<\/p>\r\n                        <p class=\"pth-step-desc\">Use the Copy, Download, or Export button to save your final result for your school project or development build.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- ARTICLE BODY -->\r\n    <div class=\"pth-article-wrapper\">\r\n\r\n        <p style=\"font-size:0.85rem;color:#475569;\">Last updated: July 2026<\/p>\r\n\r\n        <h2 id=\"what-is-prime-tool-hub\">\ud83d\udd34 <strong>What Is SchoolICT Tool HUB and Who Is It For?<\/strong><\/h2>\r\n        <p>The SchoolICT Tool HUB is the practical, hands-on companion to our main educational platform. It is a collection of free, high-performance web utilities built for ICT students, teachers, developers, and digital creators. While our main site teaches you the theory behind web development, digital electronics, and data structures, the Tool HUB provides the actual workspace to apply that knowledge. From a simple <a href=\"https:\/\/schoolict.net\/tools\/unix-epoch-time-converter\/\" rel=\"noopener\" target=\"_blank\">Unix Epoch Time Converter<\/a> to complex multi-tab coding studios, these tools are built for lifelong use.<\/p>\r\n        <p>Engineered by Ruwan Suraweera, an ICT educator, the goal was straightforward: provide students and professionals with enterprise-grade utilities that are free, incredibly fast, and strictly private. Every tool loads in under two seconds and works entirely without an internet connection once the page is open, making it ideal for school labs and remote work environments.<\/p>\r\n\r\n        <h2 id=\"how-browser-tools-work\">\ud83d\udfe1 <strong>How Browser-Based Tools Work Without a Server<\/strong><\/h2>\r\n        <p>Most online tools send your data to a remote server, process it there, and send results back. This creates privacy risks for sensitive code or student assignments, adds delay, and breaks completely when your internet drops. Browser-based tools skip the round trip entirely. When you paste a token into the <a href=\"https:\/\/schoolict.net\/tools\/jwt-decoder-inspector\/\" rel=\"noopener\" target=\"_blank\">JWT Decoder<\/a>, the decoding happens inside your browser's JavaScript engine \u2014 the data never leaves your machine.<\/p>\r\n        <p>This works because modern browsers ship with powerful computational engines. Chrome's V8, Firefox's SpiderMonkey, and Safari's JavaScriptCore can all run complex algorithms at near-native speed. According to the <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Web_Workers_API\" rel=\"noopener\" target=\"_blank\">MDN Web Workers API documentation<\/a>, browsers can even offload heavy tasks to background threads, which is how our video and image processing tools handle large files without freezing your browser tab.<\/p>\r\n\r\n        <h3 id=\"what-stays-private\">\ud83d\udfe2 <strong>What Data Stays Private<\/strong><\/h3>\r\n        <p>When you use any tool on the SchoolICT Tool HUB, your input is loaded strictly into your browser's working memory. There is no server-side logging, no analytics attached to individual sessions, and no file storage. When you close the tab, the browser discards that memory completely.<\/p>\r\n        <ul>\r\n            <li>\ud83d\udd35 API keys and credentials tested in the JWT Decoder never touch a server.<\/li>\r\n            <li>\ud83d\udfe0 Images processed in the Advanced Image Studio are handled by the local Canvas API.<\/li>\r\n            <li>\ud83d\udfe3 Video files trimmed or compressed in the Video Editor Studio never leave your device.<\/li>\r\n            <li>\ud83d\udd35 Complex Boolean logic expressions are minimized locally using pure JavaScript.<\/li>\r\n        <\/ul>\r\n\r\n        <h2 id=\"tool-categories\">\ud83d\udfe1 <strong>A Guide to the 18 Tool Categories<\/strong><\/h2>\r\n        <p>The SchoolICT Tool HUB organizes its 69 utilities into 18 categories designed to support both academic learning and professional workflows.<\/p>\r\n\r\n        <h3 id=\"developer-tools\">\ud83d\udfe2 <strong>Developer and Web Development Tools<\/strong><\/h3>\r\n        <p>Essential for computer science students and professional coders alike. The <a href=\"https:\/\/schoolict.net\/tools\/free-offline-pagespeed-code-analyzer\/\" rel=\"noopener\" target=\"_blank\">PageSpeed Code Analyzer<\/a> lets you paste raw HTML and immediately see which elements block rendering or lack accessibility tags \u2014 without uploading a URL to an external service. The JWT Decoder safely inspects tokens locally, and our hashing utilities allow you to practice cybersecurity concepts securely.<\/p>\r\n        <ul>\r\n            <li>\ud83d\udd35 PageSpeed Code Analyzer \u2014 paste HTML, learn about CLS and LCP fixes instantly<\/li>\r\n            <li>\ud83d\udfe0 JWT Decoder and Inspector \u2014 decode payloads and verify expiry offline<\/li>\r\n            <li>\ud83d\udfe3 HMPL Render Studio \u2014 test modern templates with a built-in mock server<\/li>\r\n            <li>\ud83d\udd35 Secure Hash Generator \u2014 generate and verify MD5, SHA-256 hashes safely offline<\/li>\r\n        <\/ul>\r\n\r\n        <h3 id=\"digital-electronics\">\ud83d\udfe2 <strong>Digital Electronics and Logic Tools<\/strong><\/h3>\r\n        <p>Directly aligned with advanced ICT syllabuses. The 7400 Series IC Finder provides datasheets and pinout diagrams for standard logic chips. The Boolean Logic Simplifier walks students through Quine-McCluskey minimization step by step. The Universal Logic Gate Converter translates expressions into NAND-only or NOR-only logic, generating synthesizable code instantly.<\/p>\r\n\r\n        <h3 id=\"ai-tools\">\ud83d\udfe2 <strong>AI-Assisted Tools<\/strong><\/h3>\r\n        <p>The AI category connects directly from your browser to providers like Gemini, Groq, or Claude using your own API keys. Your data bypasses SchoolICT servers entirely. From analyzing sentiment in datasets to summarizing lengthy academic texts, these tools provide hands-on experience with modern artificial intelligence. Browse the full <a href=\"https:\/\/schoolict.net\/tools\/free-web-tools-by-category\/\" rel=\"noopener\" target=\"_blank\">tool categories guide<\/a> to explore everything available.<\/p>\r\n\r\n    <\/div>\r\n\r\n    <!-- FAQ \u2014 3 column grid, 9 cards, plain natural language -->\r\n    <div class=\"pth-faq-section\">\r\n        <p class=\"pth-faq-header\" role=\"heading\" aria-level=\"2\"><span aria-hidden=\"true\">\ud83e\udd14<\/span> Frequently Asked Questions<\/p>\r\n        <div class=\"pth-faq-grid\">\r\n\r\n            <div class=\"pth-faq-card\">\r\n                <p class=\"pth-faq-q\">Are these tools genuinely free for students and developers?<\/p>\r\n                <p class=\"pth-faq-a\">Yes. Every tool is permanently free with no usage limits, no subscription tiers, and no features hidden behind a paywall. The platform is supported purely by display advertising.<\/p>\r\n            <\/div>\r\n\r\n            <div class=\"pth-faq-card\">\r\n                <p class=\"pth-faq-q\">Do I need to create an account to use the tools?<\/p>\r\n                <p class=\"pth-faq-a\">No account is needed for any tool. Open the page and start working immediately. The Favourites feature simply pins tools to a quick-access list stored in your browser's local storage.<\/p>\r\n            <\/div>\r\n\r\n            <div class=\"pth-faq-card\">\r\n                <p class=\"pth-faq-q\">Can I use these tools without an internet connection?<\/p>\r\n                <p class=\"pth-faq-a\">Yes. Once a tool page has loaded, all the processing logic is already in your browser. You can disconnect from Wi-Fi and the tool will continue working flawlessly.<\/p>\r\n            <\/div>\r\n\r\n            <div class=\"pth-faq-card\">\r\n                <p class=\"pth-faq-q\">Is my school work or code safe when I use these tools?<\/p>\r\n                <p class=\"pth-faq-a\">Your data never leaves your browser. There is no server upload, no logging of input data, and no tracking. When you close the tab, your input is cleared from memory entirely.<\/p>\r\n            <\/div>\r\n\r\n            <div class=\"pth-faq-card\">\r\n                <p class=\"pth-faq-q\">How do I find a specific tool quickly?<\/p>\r\n                <p class=\"pth-faq-a\">Use the search bar on the homepage. Search by tool name, an ICT keyword like \"Logic Gate\" or \"JSON\", or by tool number \u2014 type \"#65\" to jump directly to the PageSpeed Code Analyzer.<\/p>\r\n            <\/div>\r\n\r\n            <div class=\"pth-faq-card\">\r\n                <p class=\"pth-faq-q\">Who built the SchoolICT Tool HUB and why?<\/p>\r\n                <p class=\"pth-faq-a\">Ruwan Suraweera, an ICT educator and developer, built this platform to bridge the gap between theoretical learning and practical application, giving students and professionals secure, offline utilities.<\/p>\r\n            <\/div>\r\n\r\n            <div class=\"pth-faq-card\">\r\n                <p class=\"pth-faq-q\">How often are new tools added?<\/p>\r\n                <p class=\"pth-faq-a\">New tools are added regularly based on syllabus requirements and modern development trends. Each tool includes a full technical guide to help users understand the theory behind it.<\/p>\r\n            <\/div>\r\n\r\n            <div class=\"pth-faq-card\">\r\n                <p class=\"pth-faq-q\">Can I request a specific tool for my ICT class or project?<\/p>\r\n                <p class=\"pth-faq-a\">Yes. Use the Contact Us page to submit a tool request. Tools requested by educators or multiple users are prioritized. Describe the problem and the specific inputs\/outputs you need.<\/p>\r\n            <\/div>\r\n\r\n            <div class=\"pth-faq-card\">\r\n                <p class=\"pth-faq-q\">Who developed this platform?<\/p>\r\n                <p class=\"pth-faq-a\">The SchoolICT Tool HUB was built to bridge the gap between ICT theory and professional practice, giving students and developers free, private alternatives to cloud-based apps.<\/p>\r\n                <div class=\"pth-author-bio\">\r\n                    <img decoding=\"async\" src=\"https:\/\/schoolict.net\/tools\/sampledata\/ruwan.jpg\"\r\n                         alt=\"Ruwan Mangala Suraweera \u2014 Founder of SchoolICT\"\r\n                         width=\"44\" height=\"44\"\r\n                         loading=\"lazy\" data-no-lazy=\"1\">\r\n                    <p class=\"pth-author-bio-text\">\ud83c\udf93 Engineered by <a href=\"https:\/\/schoolict.net\/about-the-founder\/\">Ruwan Mangala Suraweera<\/a> \u2014 ICT Educator & Founder, SchoolICT<\/p>\r\n                <\/div>\r\n            <\/div>\r\n\r\n        <\/div>\r\n    <\/div>\r\n\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-248","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/schoolict.net\/tools\/wp-json\/wp\/v2\/pages\/248","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/schoolict.net\/tools\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/schoolict.net\/tools\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/schoolict.net\/tools\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/schoolict.net\/tools\/wp-json\/wp\/v2\/comments?post=248"}],"version-history":[{"count":1,"href":"https:\/\/schoolict.net\/tools\/wp-json\/wp\/v2\/pages\/248\/revisions"}],"predecessor-version":[{"id":7121,"href":"https:\/\/schoolict.net\/tools\/wp-json\/wp\/v2\/pages\/248\/revisions\/7121"}],"wp:attachment":[{"href":"https:\/\/schoolict.net\/tools\/wp-json\/wp\/v2\/media?parent=248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}