:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#152340;background:#f5f7fb;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:320px}a{color:inherit}button,input,select{font:inherit}:focus-visible{outline:3px solid #5278e8;outline-offset:3px}
.site-shell{max-width:1160px;margin:0 auto;padding:0 clamp(20px,4vw,56px)}.site-header{height:90px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #dfe6f0}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-size:1.4rem;font-weight:850;letter-spacing:-.055em;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:37px;height:37px;border-radius:12px;background:#152340;color:#a9eede;font-size:1.3rem;font-weight:800;font-style:italic;letter-spacing:-.1em}.brand-dot{color:#315ee0}
.language-control{display:flex;align-items:center;gap:10px;color:#51617a;font-size:.9rem;font-weight:650}.language-control select{max-width:210px;border:1px solid #cbd6e6;border-radius:9px;background:#fff;color:#152340;padding:9px 10px;font-size:.9rem}
.intro{padding:68px 0 32px;max-width:790px}.eyebrow{color:#315ee0;font-size:.8rem;font-weight:800;letter-spacing:.16em;margin:0 0 15px}.intro h1{font-size:clamp(2.5rem,5vw,4.5rem);letter-spacing:-.065em;line-height:1.08;margin:0;font-weight:800;text-wrap:balance}
.hub-subheading{margin:18px 0 0;color:#566781;font-size:1.1rem;line-height:1.55}
.tool-finder{padding:2px 0 12px}.search-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#tool-search{display:block;width:100%;max-width:560px;height:52px;padding:12px 17px;border:1px solid #cbd6e6;border-radius:12px;background:#fff;color:#152340;box-shadow:0 4px 16px rgba(20,42,84,.035);font-size:1rem}#tool-search::placeholder{color:#65748e;opacity:1}.category-filters{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.category-filter{padding:9px 17px;min-height:42px;border:1px solid #cbd6e6;border-radius:999px;background:#fff;color:#30415f;font-size:.94rem;font-weight:650;cursor:pointer;transition:background .18s,border-color .18s,color .18s}.category-filter:hover{border-color:#7692d4;background:#edf2ff}.category-filter[aria-pressed="true"]{background:#152340;border-color:#152340;color:#fff}.tool-count{margin:17px 0 0;color:#596b8a;font-size:.9rem;font-weight:600}.no-results{margin:10px 0 72px;padding:36px;border:1px solid #dce4ef;border-radius:18px;background:#fff;color:#344362}.no-results p{margin:0 0 18px;font-size:1rem}.no-results button{padding:10px 16px;border:1px solid #315ee0;border-radius:9px;background:#fff;color:#2457d5;font-weight:700;cursor:pointer}.no-results button:hover{background:#edf2ff}.no-results[hidden],.tool-grid[hidden],.tool-card[hidden]{display:none}
.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:12px 0 76px}.tool-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:315px;padding:30px 32px;border:1px solid #dce4ef;border-radius:22px;background:#fff;text-decoration:none;box-shadow:0 9px 28px rgba(20,42,84,.045);transition:transform .18s,box-shadow .18s,border-color .18s}.tool-card:hover{transform:translateY(-3px);box-shadow:0 17px 38px rgba(20,42,84,.09);border-color:#aebfdf}.tool-icon{display:grid;place-items:center;width:55px;height:55px;border-radius:16px;padding:10px;background:#eaf0ff;color:#2457d5}.tool-icon svg{display:block;width:100%;height:100%}.image-card .tool-icon{background:#e9ecff;color:#5363d7}.tool-type{margin-top:24px;color:#596b8a;font-size:.78rem;font-weight:800;letter-spacing:.1em}.tool-card h2{margin:8px 0 12px;font-size:clamp(1.45rem,2.2vw,1.85rem);line-height:1.18;letter-spacing:-.04em}.tool-card p{max-width:430px;margin:0 0 36px;color:#566781;font-size:1rem;line-height:1.55}.open-arrow{position:absolute;bottom:27px;right:30px;font-size:1.45rem;color:#315ee0}[dir=rtl] .open-arrow{right:auto;left:30px;transform:scaleX(-1)}
footer{display:flex;justify-content:space-between;gap:20px;padding:25px 0 38px;border-top:1px solid #dfe6f0;color:#687790;font-size:.9rem}footer a{color:#3154aa;text-underline-offset:3px}
.policy-header{padding:52px 0 28px;border-bottom:1px solid #dfe6f0}.policy-header h1{font-size:clamp(2.4rem,5vw,3.5rem);letter-spacing:-.055em;line-height:1.08;margin:0 0 12px}.policy-header p{color:#64738d;line-height:1.6;margin:0}.policy-body{max-width:780px;padding:24px 0 72px;color:#344362;font-size:1rem;line-height:1.7}.policy-body h2{font-size:1.35rem;line-height:1.3;letter-spacing:-.025em;color:#152340;margin:38px 0 12px}.policy-body p{margin:0 0 16px}.policy-body a{color:#2457d5;text-underline-offset:3px}
@media(max-width:700px){.site-header{height:76px}.language-control>span{display:none}.language-control select{max-width:150px}.intro{padding:49px 0 24px}.tool-grid{grid-template-columns:1fr;gap:14px;padding-bottom:50px}.tool-card{min-height:285px;padding:25px}.open-arrow{bottom:23px;right:25px}.policy-header{padding:38px 0 26px}.policy-body{padding-bottom:48px}}
.notice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:28px 0 66px}
.notice-card{min-width:0;padding:25px;border:1px solid #dfe6f0;border-radius:16px;background:#fff;box-shadow:0 9px 30px rgba(21,35,64,.035);color:#344362;line-height:1.55}
.notice-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 12px;margin-bottom:14px}
.notice-heading h2{margin:0;color:#152340;font-size:1.3rem;line-height:1.3}
.notice-heading span{font-size:.88rem;color:#65738d}
.notice-card p{margin:0 0 12px;overflow-wrap:anywhere}
.notice-card strong{color:#152340}
.notice-card a{color:#2457d5;text-underline-offset:3px}
.notice-details h3{font-size:1rem;line-height:1.4;margin:17px 0 6px;color:#152340}
.notice-details ul{margin:0 0 16px;padding-inline-start:21px}
.notice-details li{margin:5px 0}
.notice-source{margin-top:20px!important}
@media(max-width:800px){.notice-grid{grid-template-columns:1fr}}
@media(max-width:420px){.brand{font-size:1.15rem}.brand-mark{width:33px;height:33px}.language-control select{max-width:135px}}
@media(prefers-reduced-motion:reduce){.tool-card,.category-filter{transition:none}}
.site-shell{max-width:1180px;padding:0 32px}.language-control select{max-width:180px;border-radius:8px}
@media(max-width:800px){.site-shell{padding:0 20px}.site-header{height:72px}}
@media(max-width:700px){.language-control select{max-width:140px}}
@media(max-width:480px){.site-shell{padding:0 15px}}
@media(max-width:420px){.site-header{height:auto;min-height:72px;flex-wrap:wrap;padding:13px 0;row-gap:10px}.language-control{width:100%;justify-content:flex-end}}
.heic-card .tool-icon{background:#e3f4f3;color:#147b82}
@media(min-width:1000px){.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tool-card{padding:28px 25px}}
.tool-card .tool-icon{padding:0;background:transparent;color:inherit}
.tool-icon img{display:block;width:100%;height:100%}

.qr-card .tool-icon{background:transparent;color:inherit}

/* Category browsing is a presentation layer over the existing tool routes. */
.browse-page .intro{padding:38px 0 26px;max-width:860px}
.browse-page .intro h1{font-size:clamp(2rem,3.7vw,3.1rem);letter-spacing:-.045em;line-height:1.13}
.browse-page .eyebrow{margin-bottom:11px;font-size:.875rem;letter-spacing:.12em}
.browse-page .hub-subheading{margin-top:13px;font-size:1rem;line-height:1.5}
.browse-page .tool-finder{padding:0 0 22px}
.browse-page #tool-search{max-width:none;height:50px}
.browse-page .category-filters{gap:8px;margin-top:14px}
.browse-page .category-filter{display:inline-flex;align-items:center;gap:9px;padding:8px 13px;font-size:.875rem;min-height:42px;text-align:start}
.browse-page .filter-count{display:inline-grid;place-items:center;min-width:25px;min-height:23px;padding:2px 6px;border-radius:6px;background:#edf2fa;font-size:.875rem;font-weight:600;line-height:1.2}
.browse-page .category-filter[aria-pressed=true] .filter-count{background:#334567;color:#fff}
.browse-page .finder-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px}
.browse-page .tool-count{margin:0;font-size:.875rem}
.browse-page .text-button{padding:6px 0;border:0;background:transparent;color:#2457d5;font-weight:650;font-size:.9rem;cursor:pointer;text-underline-offset:4px}
.browse-page .text-button:hover{text-decoration:underline}
.browse-page .category-overview{padding-bottom:36px}
.browse-page .category-section{margin:0 0 25px;padding-top:22px;border-top:1px solid #dfe6f0}
.browse-page .category-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:14px}
.browse-page .category-heading h2{margin:0;font-size:1.35rem;line-height:1.3;letter-spacing:-.025em;overflow-wrap:anywhere}
.browse-page .view-all{display:inline-flex;align-items:center;gap:8px;color:#2457d5;font-size:.9rem;font-weight:650;text-decoration:none;white-space:nowrap;min-height:40px}
.browse-page .view-all:hover{text-decoration:underline;text-underline-offset:4px}
.browse-page .section-count{background:#e7edf9;border-radius:6px;padding:4px 7px;font-size:.875rem;line-height:1.2}
.browse-page .tool-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;padding:0}
.browse-page .results-grid{padding:0 0 55px}
.browse-page .tool-card{display:grid;grid-template-columns:46px minmax(0,1fr);align-content:start;align-items:start;gap:12px;min-height:225px;min-width:0;padding:20px;border-radius:15px;box-shadow:0 5px 18px rgba(20,42,84,.035)}
.browse-page .tool-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(20,42,84,.07)}
.browse-page .tool-icon{width:46px;height:46px;border-radius:12px}
.browse-page .tool-type{grid-column:2;align-self:center;margin:0;font-size:.875rem;letter-spacing:.025em;line-height:1.45;overflow-wrap:anywhere;direction:ltr;text-align:start}
.browse-page .tool-card h3{grid-column:1/-1;margin:0;font-size:1.125rem;line-height:1.3;letter-spacing:-.02em;overflow-wrap:anywhere}
.browse-page .tool-card p{grid-column:1/-1;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:0;font-size:1rem;line-height:1.45;max-width:none}
.browse-page .collection-nav{display:flex;flex-wrap:wrap;gap:8px 19px;margin:0 0 22px;padding:0 0 17px;border-bottom:1px solid #dfe6f0}
.browse-page .collection-nav a{display:inline-flex;align-items:center;min-height:36px;color:#526785;text-decoration:none;font-size:.9rem;font-weight:600}
.browse-page .collection-nav a:hover,.browse-page .collection-nav a[aria-current=page]{color:#2457d5;text-decoration:underline;text-underline-offset:5px}
.browse-page [hidden]{display:none!important}
@media(max-width:999px){.browse-page .tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.browse-page .intro{padding:28px 0 22px}.browse-page .tool-grid{grid-template-columns:minmax(0,1fr);gap:12px}.browse-page .tool-card{min-height:0;padding:18px}.browse-page .category-heading h2{font-size:1.2rem}.browse-page .category-section{margin-bottom:22px}.browse-page .category-filter{padding:8px 11px}.browse-page .category-heading{align-items:flex-start}.browse-page .view-all{white-space:normal;text-align:end}.browse-page .tool-card p{-webkit-line-clamp:3}}
@media(prefers-reduced-motion:reduce){.browse-page .tool-card:hover{transform:none}}
