/* Product catalog: six cards per batch, grouped by the work a visitor wants to do. */
.plugin-toolbar{align-items:center;flex-wrap:wrap;gap:24px}
.plugin-toolbar>div:first-child{flex:0 0 auto}
.plugin-toolbar>div>span{font-size:11px;color:#69768c}
.plugin-filters{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;background:transparent;border-radius:0;padding:0;max-width:860px}
.plugin-filters button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 13px;border:1px solid #e7ebf7;background:#f8f9fd;border-radius:999px;font-size:11px;color:#65728a;line-height:1.5;white-space:nowrap;transition:background .2s,color .2s,border-color .2s,box-shadow .2s}
.plugin-filters button small{font:500 9px/1.5 var(--font-body);min-width:16px;text-align:center;padding:1px 4px;border-radius:5px;background:#eaf0fa;color:#7b89a2}
.plugin-filters button:hover{border-color:#ccd5f4;color:#5d70bc;background:#f1f4ff}
.plugin-filters button[aria-pressed=true]{background:linear-gradient(105deg,#7185e8,#9d7edb);border-color:transparent;color:#fff;box-shadow:0 5px 12px #8185c71a}
.plugin-filters button[aria-pressed=true] small{background:#ffffff25;color:#fff}
.plugin-viewport{position:relative;overflow:clip;overflow-clip-margin:16px;isolation:isolate}
.plugin-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:240px;gap:19px;align-content:start}
.plugin-grid-outgoing{position:absolute;inset:0 0 auto;pointer-events:none}
.plugin-grid[data-paginated=true]{min-height:499px}
.plugin-card{height:240px;min-height:240px;padding:24px 22px 19px;gap:12px;border-color:#e7ebf5;border-radius:17px}
.plugin-card[hidden]{display:none}
.plugin-card-head{min-height:45px;align-items:center;flex-wrap:nowrap;gap:12px}
.plugin-card-head .plugin-icon{width:38px;height:38px;background:color-mix(in srgb,var(--plugin-tone) 13%,#fff);color:color-mix(in srgb,var(--plugin-tone) 75%,#485a86)}
.plugin-card-head h4{min-width:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;font-size:14px;line-height:1.6;font-weight:600;letter-spacing:0;color:#43516b;flex:1}
.plugin-card p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;flex:1;font-size:12px;line-height:1.8;color:#65738b;margin:0}
.plugin-card-source{font-size:10px;line-height:1.8;color:#6b7890;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}
.plugin-card-bottom{padding-top:12px;border-top:1px solid #edf0f7;gap:10px;font-family:var(--font-body);font-size:10px;color:#7b879f;letter-spacing:0;flex-shrink:0}
.plugin-card .plugin-card-bottom .plugin-installable{display:inline-flex;align-items:center;gap:5px;font-size:inherit;line-height:1.6;color:#3b816b;white-space:nowrap}
.plugin-installable i{width:4px;height:4px;display:inline-block;border-radius:50%;background:#82b7a5}
.plugin-installable b{font-size:14px;font-weight:400;color:#93a2c1;margin-left:4px}
.plugin-card:hover{border-color:#c4cff2;box-shadow:0 14px 32px #7c8bd215}
.plugin-pagination{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:21px;min-height:32px}
.plugin-pagination[hidden]{display:none}
.plugin-page-dot{display:grid;place-items:center;width:30px;height:30px;padding:0;background:transparent;border:0;border-radius:999px;flex-shrink:0}
.plugin-page-dot:before{content:'';display:block;width:7px;height:7px;background:#ced6ec;border-radius:999px;transition:width .22s ease,background .22s ease}
.plugin-page-dot:hover:before{background:#9aa9dc}
.plugin-page-dot[aria-current=page]:before{width:22px;background:linear-gradient(100deg,#7185e8,#a580df)}
.plugin-pagination .plugin-page-dot:focus-visible{outline:2px solid #7c8ce3;outline-offset:1px;border-radius:999px}
.plugin-note{font-size:10px;color:#8190a6;margin-top:18px}

/* Details preserve the full capability and source; installation happens in the client. */
#info-dialog[data-variant=plugin]{width:calc(100% - 48px);max-width:720px;border-radius:20px}
#info-dialog[data-variant=plugin] .info-dialog-inner{padding:35px 36px 30px}
#info-dialog[data-variant=plugin] #dialog-title{font-size:25px;line-height:1.6;color:#28354c;padding-right:12px}
.plugin-detail-meta{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 18px}
.plugin-detail-meta>span{font-size:10px;color:#7c83af;background:#f2f3fc;border:1px solid #e9ecfa;border-radius:999px;padding:4px 10px}
.plugin-detail-meta>.plugin-detail-available{color:#478b74;background:#eff8f3;border-color:#e3f0e9}
#info-dialog .plugin-detail-description{font-size:14px;line-height:2;color:#58677f}
.plugin-detail-deliverables{background:linear-gradient(120deg,#f2f5ff,#f6f3fd);border-radius:12px;padding:16px 19px;margin-top:21px}
.plugin-detail-deliverables>strong{font-size:11px;font-weight:500;color:#8a93af}
#info-dialog .plugin-detail-deliverables p{font-size:13px;line-height:1.9;color:#647492;margin-top:5px}
.plugin-detail-requirement{display:flex;align-items:flex-start;gap:8px;padding:13px 15px;border:1px solid #e9eef8;border-radius:10px;margin-top:15px;font-size:12px;line-height:1.9;color:#7585a2}
.plugin-detail-requirement .icon{width:16px;height:16px;flex-shrink:0;margin-top:3px;color:#8a9ac1}
#info-dialog .plugin-detail-credit{font-size:11px;line-height:1.9;color:#6f7e96;margin-top:19px}
.plugin-detail-actions{display:flex;align-items:center;flex-wrap:wrap;gap:15px;margin-top:22px;border-top:1px solid #edf0f7;padding-top:20px}
.plugin-detail-actions .sw-button{font-size:13px;padding:11px 21px;line-height:1.6}
.plugin-detail-actions>span{font-size:11px;color:#718099;line-height:1.9}
@media(max-width:1199px){
  .plugin-toolbar{gap:22px}
  .plugin-filters{max-width:none;justify-content:flex-start}
  .plugin-card{padding:23px 19px 18px}
  .plugin-card-head{gap:10px}
  .plugin-card-head h4{font-size:13px}
}
@media(max-width:900px){
  .plugin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .plugin-grid[data-paginated=true]{min-height:758px}
}
@media(max-width:600px){
  .plugin-toolbar{align-items:center;gap:20px}
  .plugin-filters{justify-content:center;gap:7px}
  .plugin-filters button{padding:8px 10px;font-size:10px;gap:5px}
  .plugin-filters button small{font-size:8px;min-width:14px;padding:1px 3px}
  .plugin-grid{grid-template-columns:1fr;grid-auto-rows:216px;gap:13px}
  .plugin-grid[data-paginated=true]{min-height:0}
  .plugin-card{height:216px;min-height:216px;padding:21px 21px 17px;gap:10px}
  .plugin-card-head{min-height:40px;gap:11px}
  .plugin-card-head h4{font-size:13px}
  .plugin-card-head .plugin-icon{width:35px;height:35px}
  .plugin-card p{font-size:11px;line-height:1.8}
  .plugin-card-source{font-size:9px}
  .plugin-card-bottom{font-size:9px;padding-top:10px}
  .plugin-note{font-size:9px}
  .plugin-pagination{margin-top:18px}
  #info-dialog[data-variant=plugin]{width:calc(100% - 30px);border-radius:15px}
  #info-dialog[data-variant=plugin] .info-dialog-inner{padding:29px 22px 25px}
  #info-dialog[data-variant=plugin] #dialog-title{font-size:21px;line-height:1.7}
  #info-dialog .plugin-detail-description{font-size:12px;line-height:2}
  .plugin-detail-meta{gap:6px;margin-bottom:16px}
  .plugin-detail-meta>span{font-size:9px;padding:4px 8px}
  .plugin-detail-deliverables{padding:14px 16px;margin-top:17px}
  #info-dialog .plugin-detail-deliverables p{font-size:11px}
  .plugin-detail-requirement{font-size:11px;padding:12px 13px}
  #info-dialog .plugin-detail-credit{font-size:10px}
  .plugin-detail-actions{gap:11px;align-items:flex-start;flex-direction:column;margin-top:18px;padding-top:18px}
  .plugin-detail-actions>span{font-size:10px}
}
@media(prefers-reduced-motion:reduce){.plugin-page-dot:before{transition:none}}
