@charset "UTF-8";
:root{--blue:#2458e6;--blue-hover:#1845c4;--blue-soft:#edf2ff;--ink:#19243a;--muted:#68748a;--line:#e3e8f1;--bg:#f7f9fc;--white:#fff;--green:#16835e;--radius:16px;--shadow:0 12px 36px rgba(27,48,98,.06);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.6}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}button{color:inherit}svg{width:20px;height:20px;display:block;flex-shrink:0}button svg{pointer-events:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #9bb6ff;outline-offset:4px}[hidden]{display:none!important}.container{width:min(1200px,calc(100% - 80px));margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:8px;left:8px;transform:translateY(-150%);padding:10px 16px;background:var(--ink);color:white;z-index:20}.skip-link:focus{transform:none}
.site-header{background:var(--white);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;height:88px;gap:24px}.brand{display:flex;align-items:center;gap:12px;font-size:23px;font-weight:750;letter-spacing:-.6px;white-space:nowrap}.brand strong{font-size:20px;letter-spacing:0;font-weight:650}.brand-mark{position:relative;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--blue);color:white;font-size:36px;font-weight:750;line-height:1;padding-bottom:6px}.brand-mark>span{position:absolute;font-size:17px;top:3px;right:4px;font-weight:600}.header-caption{color:var(--muted);font-size:14px;border-left:1px solid var(--line);padding-left:24px}.downloads-button{margin-left:auto;display:flex;align-items:center;gap:8px;background:white;border:1px solid var(--line);border-radius:9px;padding:9px 15px;font-size:14px;font-weight:550}.downloads-button:hover{border-color:#b7c8f7;background:#f8faff}.download-count{background:var(--blue);color:white;border-radius:30px;font-size:12px;min-width:20px;line-height:20px;text-align:center}
.shop-intro{display:flex;align-items:center;justify-content:space-between;gap:35px;padding:43px 0 37px}.eyebrow{font-size:11px;font-weight:650;letter-spacing:1.7px;color:#607498;display:flex;align-items:center;gap:7px}.live-dot{height:6px;width:6px;border-radius:100%;background:var(--blue)}h1,h2,h3,p{margin:0}.shop-intro h1{font-size:34px;font-weight:650;letter-spacing:-1.1px;line-height:1.4;margin-top:10px}.shop-intro h1 span{color:var(--blue)}.shop-intro p{font-size:15px;color:var(--muted);margin-top:12px}
.category-nav{display:flex;gap:12px;padding:3px 0;background:transparent;border:0}
.category-button{display:flex;justify-content:center;align-items:center;gap:9px;flex:1;min-width:0;min-height:56px;padding:13px 10px;border:1px solid #cbd5e6;border-radius:10px;background:var(--white);color:#40516d;font-size:14px;font-weight:550;white-space:nowrap;cursor:pointer;box-shadow:0 3px 0 #e4eaf3;transition:background .16s,color .16s,border-color .16s,box-shadow .16s,transform .16s}
.category-button svg{width:18px;height:18px;color:var(--blue)}
.category-button:hover{background:#f0f5ff;border-color:#7395ef;color:var(--blue);box-shadow:0 4px 10px #2458e617;transform:translateY(-2px)}
.category-button:active{transform:translateY(1px);box-shadow:0 1px 0 #dce4f2}
.category-button[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:white;box-shadow:0 3px 0 #1943b7}
.category-button[aria-pressed="true"] svg{color:white}
.category-button[aria-pressed="true"]:hover{background:var(--blue-hover);border-color:var(--blue-hover)}
.category-button[aria-pressed="true"]:active{box-shadow:0 1px 0 #1943b7}
.category-count{font-size:12px;padding:0 6px;border-radius:5px;color:#687995;background:#edf1f8;font-variant-numeric:tabular-nums}
.category-button[aria-pressed="true"] .category-count{color:white;background:#ffffff2b}
.catalog-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:31px}.catalog-heading{display:flex;align-items:center;gap:11px}.catalog-heading h2{font-size:21px;font-weight:650;letter-spacing:-.4px}.catalog-heading>span{font-size:13px;color:var(--muted)}.search-box{height:43px;display:flex;align-items:center;gap:10px;width:302px;background:white;border:1px solid var(--line);border-radius:9px;padding:0 13px;color:#8a96a9}.search-box:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #2458e610}.search-box>span svg{width:17px;height:17px}.search-box input{width:100%;min-width:0;border:0;background:transparent;outline:none;color:var(--ink);font-size:14px;padding:8px 0}.search-box input:focus-visible{outline:none}.search-box input::placeholder{color:#939bad}.search-box kbd{white-space:nowrap;font-family:inherit;font-size:11px;border:1px solid #e6eaf2;border-radius:4px;padding:0 4px;background:#f8f9fc}.category-description{color:var(--muted);font-size:13px;margin:2px 0 22px}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.product-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:23px 24px 0;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;flex-direction:column;position:relative;min-width:0}.product-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#b9c9f4}.card-topline{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:9px;min-height:23px}.card-topline .company-name{min-width:0;font-size:14px;line-height:1.6;color:#6b778c;font-weight:500;overflow-wrap:anywhere}.card-topline .new-badge,.card-topline .card-category{flex-shrink:0}.company-mark{display:grid;place-items:center;min-width:38px;width:38px;height:38px;border-radius:10px;font-size:19px;letter-spacing:-1px;font-weight:750;background:var(--mark-bg,#edf2ff);color:var(--mark-color,#2458e6)}.card-category{font-size:12px;color:var(--muted)}.new-badge{display:flex;align-items:center;gap:5px;background:#edf8f3;color:var(--green);border:1px solid #ddf1e6;border-radius:5px;padding:2px 7px;font-size:10px;font-weight:650;letter-spacing:.6px}.new-badge:before{content:"";width:4px;height:4px;border-radius:50%;background:var(--green)}.product-card h3{font-size:21px;line-height:1.35;font-weight:650;letter-spacing:-.45px;min-height:60px}.product-link:after{content:"";position:absolute;inset:0;border-radius:var(--radius)}.product-link:focus-visible{outline:none}.product-card:focus-within{outline:3px solid #9bb6ff;outline-offset:3px}.job-meta{display:flex;gap:7px;align-items:center;flex-wrap:wrap;color:#68748a;font-size:12px;margin-top:4px}.job-meta svg{width:13px;height:13px}.meta-separator{color:#c8d0de;margin-inline:2px}.product-description{color:#677286;font-size:14px;line-height:1.8;margin-top:16px;max-width:310px;flex:1}.card-format{font-size:11px;letter-spacing:.4px;color:#8a95a7;display:flex;align-items:center;gap:5px;margin-top:12px}.card-format svg{width:13px;height:13px}.card-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #edf0f5;margin-top:20px;padding:16px 0 18px}.price{font-size:24px;letter-spacing:-.9px;font-weight:650;line-height:1.2;font-variant-numeric:tabular-nums}.price .currency{font-size:13px;letter-spacing:0;font-weight:500;margin-right:4px}.price .decimals{font-size:17px}.card-cta{display:flex;align-items:center;gap:8px;color:var(--blue);font-size:13px;font-weight:600}.card-cta svg{width:16px;height:16px;transition:transform .15s}.product-card:hover .card-cta svg{transform:translateX(3px)}.catalog-end{display:flex;justify-content:center;align-items:center;gap:18px;margin:37px 0 50px;color:#8b96a8;font-size:12px}.catalog-end>span{width:45px;height:1px;background:#dfe5ef}.empty-state{text-align:center;padding:70px 20px;border:1px dashed #d7dfed;border-radius:16px;background:white}.empty-state>span{display:inline-flex;padding:15px;background:var(--blue-soft);border-radius:50%;color:var(--blue);margin-bottom:15px}.empty-state h3{font-size:20px}.empty-state p{color:var(--muted);font-size:14px;margin:8px 0 20px}.button{border:1px solid transparent;padding:12px 18px;border-radius:9px;font-size:14px;font-weight:600;display:inline-flex;justify-content:center;align-items:center;gap:8px;line-height:1.5;transition:background .15s,border-color .15s}.button-primary{background:var(--blue);color:white}.button-primary:hover{background:var(--blue-hover)}.button-primary:disabled{background:#edf0f6;color:#8e98ab}.button-secondary{background:white;border-color:var(--line)}.button-secondary:hover{background:#f4f7fe;border-color:#b9c9f4}.button-block{width:100%}.button svg{width:18px;height:18px}
.site-footer{display:flex;align-items:center;gap:24px;flex-wrap:wrap;font-size:12px;color:#8691a4;padding-block:26px 32px;border-top:1px solid var(--line)}.footer-brand{font-size:14px;font-weight:650;color:#5a6780}.footer-brand span{font-size:12px;font-weight:400;margin-left:13px;color:#8993a5}.site-footer>div:nth-child(2){margin-left:auto}.footer-preview{border:1px solid #e0e5ee;border-radius:5px;padding:2px 7px;font-size:10px}
.breadcrumb{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:27px 0}.breadcrumb a:hover{color:var(--blue)}.breadcrumb svg{width:13px;height:13px}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 342px;gap:28px;align-items:start;margin-bottom:58px}.detail-main,.purchase-panel{background:white;border:1px solid var(--line);border-radius:16px}.detail-main{padding:32px}.detail-brandline{display:flex;align-items:center;justify-content:space-between;gap:16px}.detail-brandline .company-mark{width:48px;height:48px;font-size:23px;border-radius:12px}.detail-tags{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.tag{background:#f1f4fa;border:1px solid #e7ebf4;color:#61708a;font-size:12px;padding:3px 9px;border-radius:6px}.tag-blue{color:var(--blue);background:var(--blue-soft);border-color:#e0e8ff}.detail-main .product-title{font-size:32px;letter-spacing:-.8px;line-height:1.3;margin:24px 0 15px;overflow-wrap:anywhere}.detail-main .product-title .company-name{display:block;color:#68758c;font-size:19px;font-weight:500;letter-spacing:0;margin-bottom:8px}.detail-description{color:var(--muted);font-size:16px;line-height:1.8}.detail-metadata{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;padding:23px 0;margin-top:12px;border-bottom:1px solid var(--line)}.detail-metadata dt{font-size:12px;color:#8b95a6;display:flex;align-items:center;gap:5px;margin-bottom:5px}.detail-metadata dt svg{width:14px;height:14px}.detail-metadata dd{margin:0;font-size:14px;color:#40516d}.source-note{font-size:12px;color:#8b95a6;line-height:1.8;margin-top:10px}.detail-section{margin-top:30px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.section-title h2{font-size:17px;font-weight:650}.section-title>span{color:#94a0b2;font-size:12px}.file-row{display:flex;align-items:center;gap:14px;padding:17px;background:#f8faff;border:1px solid #e8edf7;border-radius:10px}.file-row+.file-row{margin-top:10px}.file-icon{padding:11px;background:white;border:1px solid #e5ebf5;border-radius:8px;color:var(--blue)}.file-row h3{font-size:14px;font-weight:550;overflow-wrap:anywhere}.file-row p{font-size:12px;color:#8b95a7;margin-top:3px}.file-type{margin-left:auto;font-size:11px;color:#8b96a8;letter-spacing:.8px}.preview-image-wrap{overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#f6f8fc;padding:12px}.preview-image-wrap img{display:block;width:100%;height:auto;border:1px solid #edf0f6}.preview-caption{text-align:center;color:#8a96a9;font-size:12px;margin-top:10px}.purchase-panel{padding:26px;position:sticky;top:24px;box-shadow:var(--shadow)}.purchase-eyebrow{font-size:13px;color:#68768e;margin-bottom:13px}.purchase-price{font-size:44px;letter-spacing:-1.9px;font-weight:650;line-height:1.2}.purchase-price small{font-size:21px;letter-spacing:0;font-weight:500;margin-right:5px}.purchase-price .decimals{font-size:31px}.purchase-subtitle{font-size:12px;color:#93a0b2;margin-top:6px}.purchase-features{list-style:none;margin:25px 0;padding:0;display:grid;gap:12px}.purchase-features li{display:flex;align-items:center;gap:9px;font-size:14px;color:#61718a}.purchase-features svg{width:16px;height:16px;color:var(--blue)}.purchase-panel .button{padding-block:14px;font-size:15px}.purchase-tip{text-align:center;font-size:11px;line-height:1.8;color:#93a0b2;margin-top:11px}.package-summary{border-top:1px solid var(--line);margin-top:23px;padding-top:19px;display:flex;align-items:center;gap:12px}.package-summary>span{color:#8b99b0}.package-summary strong{font-size:12px;font-weight:550;display:block;overflow-wrap:anywhere}.package-summary p{font-size:11px;color:#95a0b1;margin-top:2px}.success-panel{background:#f0f9f5;border:1px solid #d2ecdf;border-radius:10px;padding:14px;margin:20px 0 15px}.success-panel strong{display:flex;align-items:center;gap:7px;color:var(--green);font-size:14px}.success-panel p{font-size:12px;color:#6b8b7d;margin-top:5px}.sample-note{font-size:12px;line-height:1.8;color:#8390a5;margin-top:12px}.sample-note a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}.back-link{display:inline-flex;gap:7px;align-items:center;color:#627595;font-size:13px;margin-top:24px}.back-link svg{width:15px;height:15px}.back-link:hover{color:var(--blue)}
.downloads-dialog{width:min(540px,calc(100% - 32px));padding:28px;border:1px solid var(--line);border-radius:18px;color:var(--ink);box-shadow:0 25px 100px #14234330;max-height:85dvh;overflow:auto}.downloads-dialog::backdrop{background:#15274360;backdrop-filter:blur(4px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.dialog-heading h2{font-size:24px;margin-top:4px}.icon-button{width:34px;height:34px;padding:7px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:white}.icon-button:hover{background:#f1f5fb}.dialog-description{font-size:13px;color:var(--muted);margin:12px 0 24px}.download-item{border:1px solid var(--line);border-radius:10px;padding:15px;display:flex;align-items:center;gap:12px}.download-item+.download-item{margin-top:10px}.download-item h3{font-size:14px;font-weight:600}.download-item p{font-size:12px;color:var(--muted);margin-top:3px}.download-item>a{margin-left:auto;color:var(--blue);font-size:13px;flex-shrink:0}.download-item>a:hover{text-decoration:underline}.download-item .company-mark{flex-shrink:0}.downloads-empty{text-align:center;padding:35px 16px;color:var(--muted);font-size:14px;background:#f8faff;border-radius:10px}.downloads-empty svg{width:28px;height:28px;margin:0 auto 10px;color:#8296bd}.dialog-footer{border-top:1px solid var(--line);padding-top:17px;margin-top:23px;display:flex;gap:15px;align-items:center;justify-content:space-between;color:#8b97aa;font-size:11px}.text-button{border:0;background:none;padding:4px 0;color:#657795;font-size:12px}.text-button:hover{color:var(--blue)}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:12px 22px;border-radius:10px;box-shadow:var(--shadow);z-index:30;font-size:14px;max-width:calc(100% - 32px);text-align:center}.noscript-message{margin:30px;padding:20px;background:#fff1df}
@media(min-width:1600px){.container{width:1280px}.shop-intro{padding-top:50px;padding-bottom:45px}.product-card{padding-top:27px}.product-card h3{min-height:60px}}
@media(max-width:1120px){.container{width:calc(100% - 48px)}.shop-intro h1{font-size:32px}.category-button{gap:7px;padding-inline:7px;font-size:13px}.category-count{padding-inline:4px}.product-grid{gap:16px}.product-card{padding-inline:20px}.product-card h3{font-size:20px;min-height:60px}.detail-layout{grid-template-columns:minmax(0,1fr) 310px;gap:20px}.detail-main{padding:25px}.detail-main .product-title{font-size:29px}.purchase-panel{padding:23px}}
@media(max-width:860px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-nav{overflow-x:auto;scrollbar-width:none}.category-nav::-webkit-scrollbar{display:none}.category-button{flex:0 0 auto;min-width:145px;padding:12px 16px}.category-button:first-child{min-width:125px}.product-card h3{min-height:60px}.detail-layout{grid-template-columns:minmax(0,1fr) 290px;gap:16px}.detail-main{padding:22px}.detail-main .product-title{font-size:27px}.detail-metadata{grid-template-columns:1fr;gap:11px}.detail-metadata>div{display:flex;justify-content:space-between;gap:12px}.detail-metadata dt{margin:0}.file-row{padding:12px;gap:10px}.file-icon{padding:8px}.file-type{display:none}.purchase-panel{padding:20px}.site-footer>div:nth-child(2){display:none}}
@media(max-width:640px){.container{width:calc(100% - 32px)}.header-inner{height:73px;gap:12px}.brand{font-size:20px;gap:9px}.brand strong{font-size:18px}.brand-mark{width:36px;height:36px;border-radius:10px;font-size:31px}.brand-mark>span{font-size:15px;right:3px;top:2px}.header-caption{display:none}.downloads-button{padding:8px 10px;gap:6px;font-size:12px}.downloads-button svg{width:16px;height:16px}.shop-intro{padding:29px 0 25px}.eyebrow{font-size:9px;letter-spacing:1.4px}.shop-intro h1{font-size:28px;line-height:1.5;letter-spacing:-.9px;margin-top:10px}.shop-intro h1 span{display:block}.shop-intro p{font-size:13px;line-height:1.8;margin-top:9px;max-width:290px}.category-nav{padding:3px 0 6px;gap:9px}.category-button{min-height:48px}.category-button{font-size:12px;min-width:135px;padding:11px 13px}.category-button:first-child{min-width:113px}.category-button svg{width:16px;height:16px}.catalog-toolbar{margin-top:23px;gap:14px;align-items:flex-start;flex-direction:column}.catalog-heading h2{font-size:20px}.search-box{width:100%;height:43px}.search-box kbd{display:none}.category-description{font-size:12px;margin:12px 0 17px}.product-grid{gap:14px;grid-template-columns:minmax(0,1fr)}.product-card{padding:20px 22px 0}.card-topline{margin-bottom:9px}.product-card h3{font-size:23px;min-height:0}.job-meta{margin-top:10px;font-size:12px}.product-description{font-size:14px;margin-top:14px;max-width:none}.card-format{margin-top:11px}.card-footer{margin-top:17px;padding:15px 0 17px}.catalog-end{margin:30px 0 35px;gap:10px;font-size:10px}.catalog-end>span{width:24px}.site-footer{padding-block:23px;gap:14px;justify-content:space-between}.footer-brand{font-size:13px}.footer-brand span{display:block;margin:3px 0 0;font-size:11px}.footer-preview{font-size:9px}.breadcrumb{margin:21px 0;font-size:12px;gap:5px}.detail-layout{display:flex;flex-direction:column;margin-bottom:35px;gap:17px}.detail-main{width:100%;padding:22px}.detail-main .product-title{font-size:28px;margin-top:20px}.detail-main .product-title .company-name{font-size:16px}.detail-description{font-size:14px}.detail-tags{max-width:210px;gap:5px}.tag{font-size:10px;padding:3px 6px}.detail-section{margin-top:25px}.detail-metadata{padding:18px 0}.detail-metadata dt{font-size:12px}.detail-metadata dd{font-size:13px}.section-title h2{font-size:16px}.file-row h3{font-size:12px}.file-row p{font-size:11px}.preview-image-wrap{padding:8px}.purchase-panel{width:100%;position:static;padding:24px}.purchase-price{font-size:40px}.purchase-features{margin-block:20px}.package-summary{margin-top:20px;padding-top:17px}.back-link{margin-top:18px}.downloads-dialog{padding:22px}.dialog-footer{font-size:10px}.download-item{padding:12px;gap:9px}.download-item h3{font-size:12px}.download-item .company-mark{width:30px;height:30px;min-width:30px;font-size:16px}.download-item>a{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Product quick view: keep the catalog visible behind a native modal. */
html { scrollbar-gutter: stable; }
html.has-open-dialog { overflow: hidden; }
.product-dialog {
  width: min(1120px, calc(100% - 64px));
  max-width: none;
  max-height: calc(100dvh - 64px);
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--bg);
  color: var(--ink);
  box-shadow: 0 30px 100px #15274340;
}
.product-dialog[open] { display: flex; flex-direction: column; }
.product-dialog::backdrop { background: #15274370; backdrop-filter: blur(4px); }
.product-dialog-header {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 15px 24px;
  border-bottom: 1px solid var(--line);
  background: white;
}
.product-dialog-label { font-size: 15px; font-weight: 600; }
.product-dialog-actions { display: flex; align-items: center; gap: 9px; }
.product-dialog-actions .icon-button { width: 38px; height: 38px; }
#expand-product { color: var(--blue); border-color: #d9e3fb; background: #f6f8ff; }
#expand-product:hover { border-color: #91adef; background: var(--blue-soft); }
.product-dialog-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 24px; }
.product-dialog .detail-layout { grid-template-columns: minmax(0, 1fr) 310px; margin: 0; gap: 22px; }
.product-dialog .detail-main { padding: 26px; }
.product-dialog .purchase-panel { top: 0; padding: 23px; }
.product-dialog .detail-main .product-title { font-size: 29px; }
.product-dialog button.back-link { border: 0; background: none; padding: 0; font-family: inherit; }
.product-dialog-status { flex: 0 0 auto; background: #edf8f3; color: var(--green); font-size: 13px; padding: 11px 24px; border-top: 1px solid #d2ecdf; }
@media (max-width: 860px) {
  .product-dialog { width: calc(100% - 32px); max-height: calc(100dvh - 32px); }
  .product-dialog-body { padding: 16px; }
  .product-dialog .detail-layout { grid-template-columns: minmax(0, 1fr) 275px; gap: 16px; }
  .product-dialog .detail-main, .product-dialog .purchase-panel { padding: 20px; }
}
@media (max-width: 720px) {
  .product-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 20px); border-radius: 15px; }
  .product-dialog-header { padding: 11px 16px; }
  .product-dialog-actions .icon-button { width: 40px; height: 40px; }
  .product-dialog-body { padding: 12px; }
  .product-dialog .detail-layout { display: flex; flex-direction: column; gap: 14px; }
  .product-dialog .detail-main, .product-dialog .purchase-panel { width: 100%; padding: 21px; }
  .product-dialog .purchase-panel { position: static; }
  .product-dialog .detail-main .product-title { font-size: 27px; }
  .product-dialog-status { padding: 10px 16px; font-size: 12px; }
}

/* Consistent card sections: company, role and location, then purchase details. */
.product-card { padding: 24px; height: 100%; }
.product-card .card-topline {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  min-height: 24px;
  margin: 0;
  gap: 10px;
}
.product-card .company-name { color: #5b6a83; font-weight: 600; line-height: 1.5; }
.product-card .new-badge, .product-card .card-category {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 7px;
  border-radius: 6px;
  line-height: 1.4;
  white-space: nowrap;
}
.product-card .card-category {
  color: #718098;
  background: #f6f8fc;
  border: 1px solid #e5eaf3;
  font-size: 11px;
}
.card-summary { flex: 1; min-width: 0; margin-top: 16px; }
.product-card h3 {
  min-height: 2.8em;
  font-size: 21px;
  font-weight: 550;
  line-height: 1.4;
  letter-spacing: -.4px;
  overflow-wrap: anywhere;
}
.product-card .job-meta { margin-top: 12px; gap: 6px; font-size: 13px; line-height: 1.6; }
.product-card .card-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin-top: 22px;
  padding: 18px 0 0;
}
.card-purchase-info { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.free-label { color: var(--blue); font-size: 32px; font-weight: 650; line-height: 1.35; letter-spacing: 0; }
.card-purchase-info .free-label { font-size: 18px; }
.product-card .card-format {
  margin: 0;
  padding: 0;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0;
  color: #7e8ba0;
  gap: 6px;
}
.product-card .card-cta {
  justify-content: center;
  min-height: 40px;
  padding: 9px 12px;
  border: 1px solid #e0e8ff;
  border-radius: 8px;
  background: #f1f5ff;
  white-space: nowrap;
  transition: background .16s, border-color .16s;
}
.product-card:hover .card-cta { background: #e7eeff; border-color: #cbd9ff; }
.document-previews > .section-title { align-items: flex-start; flex-wrap: wrap; }
.preview-document { margin: 0; }
.preview-document + .preview-document { margin-top: 24px; }
.preview-document-title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  color: #40516d;
  font-size: 14px;
  font-weight: 600;
}
.preview-document-title svg { width: 17px; height: 17px; color: var(--blue); }
.detail-main .product-title { margin-bottom: 0; }
.detail-main .detail-metadata {
  margin-top: 22px;
  padding: 20px 0;
}
.shop-intro { padding: 30px 0 28px; }
.shop-intro h1 { margin-top: 0; }
.catalog-toolbar { margin-top: 24px; margin-bottom: 18px; }
.category-description { margin: -6px 0 18px; }
.detail-tags { justify-content: flex-start; }
.download-note { margin: 8px 0 22px; color: var(--muted); font-size: 14px; }
.mobile-download-bar { display: none; }

/* Read only the existing cropped preview, with room to enlarge and scroll. */
.preview-trigger { display: block; width: 100%; cursor: zoom-in; text-align: left; }
.preview-trigger:hover { border-color: #91adef; }
.preview-enlarge-hint { display: flex; justify-content: center; align-items: center; gap: 6px; padding-top: 10px; color: var(--blue); font-size: 14px; }
.preview-enlarge-hint svg { width: 16px; height: 16px; }
.preview-dialog {
  width: min(1200px, calc(100% - 32px));
  height: calc(100dvh - 32px);
  max-width: none;
  max-height: none;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--bg);
  color: var(--ink);
  box-shadow: 0 30px 100px #15274340;
}
.preview-dialog[open] { display: flex; flex-direction: column; }
.preview-dialog::backdrop { background: #15274385; backdrop-filter: blur(4px); }
.preview-dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 20px; background: white; }
.preview-dialog-header h2 { font-size: 17px; font-weight: 600; }
.preview-dialog-header .icon-button { width: 44px; height: 44px; }
.preview-toolbar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; padding: 0 20px 12px; border-bottom: 1px solid var(--line); background: white; }
.preview-toolbar > span { color: var(--muted); font-size: 12px; }
.preview-size-controls { display: flex; gap: 6px; }
.preview-size-controls button { min-height: 40px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 7px; background: white; font-size: 14px; }
.preview-size-controls button[aria-pressed="true"] { background: var(--blue-soft); border-color: #b7c8f7; color: var(--blue); }
.preview-dialog-header, .preview-toolbar { flex: 0 0 auto; }
.preview-reader { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 16px; }
.preview-reader:focus-visible { outline: 3px solid #9bb6ff; outline-offset: -3px; }
.preview-reader-image { display: block; width: 100%; max-width: none; height: auto; background: white; }
.preview-reader[data-size="read"] .preview-reader-image { width: max(100%, 1000px); }
@media (max-width: 720px) {
  .detail-layout { display: flex; flex-direction: column; margin-bottom: calc(108px + env(safe-area-inset-bottom, 0px)); }
  .detail-main { width: 100%; }
  .purchase-panel { display: none; }
  .mobile-download-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(120px, .85fr);
    align-items: center;
    gap: 16px;
    flex: 0 0 auto;
    padding: 12px 16px max(12px, env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--line);
    background: white;
    box-shadow: 0 -4px 18px #19243a08;
  }
  #detail-view > .mobile-download-bar { position: fixed; z-index: 10; inset: auto 0 0; }
  .mobile-download-summary { display: flex; flex-direction: column; gap: 2px; }
  .mobile-download-summary strong { color: var(--blue); font-size: 19px; font-weight: 650; }
  .mobile-download-summary span { color: var(--muted); font-size: 12px; }
  .mobile-download-bar .button { min-height: 46px; font-size: 15px; }
  .preview-dialog { width: calc(100% - 12px); height: calc(100dvh - 12px); border-radius: 12px; }
  .preview-dialog-header { padding: 10px 12px; }
  .preview-toolbar { padding: 0 12px 10px; }
  .preview-reader { padding: 8px; }
}
@media (max-width: 1040px) {
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .shop-intro { padding: 20px 0 18px; }
  .shop-intro h1 { margin-top: 0; font-size: 27px; line-height: 1.4; }
  .catalog-toolbar { margin-top: 18px; gap: 12px; }
  .product-grid { grid-template-columns: minmax(0, 1fr); }
  .product-card { padding: 22px; }
  .card-summary { margin-top: 14px; }
  .product-card h3 { min-height: 0; }
  .product-card .card-footer { margin-top: 20px; padding-top: 16px; }
  .detail-main .detail-metadata { margin-top: 18px; }
}
