/* Layout adapted from Snap Updates. Copyright (c) 2026 Alan Pope. MIT. */
:root{--ink:#111;--muted:#626262;--line:#e5e5e5;--blue:#24598f;--green:#0e8420}
body{color:var(--ink);background:white}a{color:#075b9c}small,.muted{color:var(--muted)}.container{max-width:1200px;margin:0 auto;padding:0 24px}.stat-bar{display:flex;gap:1.5rem;flex-wrap:wrap;padding:.5rem 0;font-size:.875rem;color:#666}.stat-bar strong{color:var(--ink);font-weight:400}.stat-bar .positive{color:var(--green)}.notice{background:#fff8e8;border-bottom:1px solid #eddcb1;font-size:.875rem;padding:10px 0;color:#55451c}.notice strong{font-weight:500}.inline-notice{padding:16px;margin:20px 0;border:1px solid #eddcb1}.notice p{margin:.5rem 0}main.container{min-height:65vh;padding-top:32px;padding-bottom:48px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-bottom:24px}.page-heading p{margin-bottom:0;max-width:760px}.page-heading .search{width:310px;flex-shrink:0}.search{display:flex;position:relative;margin-bottom:20px}.search input{width:100%;margin:0;padding-right:45px;height:40px}.search button{position:absolute;right:1px;top:1px;border:0;background:transparent;height:38px;padding:10px 12px;min-width:40px;margin:0}.search-wide{max-width:650px}.result-count{margin:24px 0;color:var(--muted);font-size:.875rem}.app-icon{display:inline-flex;position:relative;flex-shrink:0;align-items:center;justify-content:center;width:32px;height:32px;border-radius:4px;background:#eee;color:#888;font-size:20px;vertical-align:middle;overflow:hidden}.app-icon img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:white}.app-icon.large{width:48px;height:48px}.app-icon.hero{width:96px;height:96px;font-size:40px}.table-app{display:flex;align-items:center;gap:12px}.table-app>div{min-width:0}.table-app small,td>small{display:block;font-size:.875rem;line-height:1.5}.table-app small a{color:var(--muted)}.changes{table-layout:fixed}.changes th:first-child{width:43%}.changes th:nth-child(2){width:15%}.changes th:nth-child(3){width:25%}.changes th:nth-child(4){width:17%}.changes th,.developers th{font-size:1rem;padding:12px 8px}.changes td,.developers td{padding:16px 8px;vertical-align:middle;font-size:1rem;overflow-wrap:anywhere}.changes tr:hover,.developers tr:hover{background:#fafafa}.changes th a{color:var(--ink);text-decoration:none}.changes code{font-size:.875rem;white-space:normal;overflow-wrap:anywhere}.badge{display:inline-block;padding:2px 10px;border-radius:14px;font-size:.875rem;white-space:nowrap}.badge-new{background:var(--green);color:white}.badge-updated{background:var(--blue);color:white}.badge-returned{background:#674b9a;color:white}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:32px;font-size:.875rem}.pagination .p-button{margin:0}.app-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:24px 0}.app-card{display:flex;flex-direction:column;margin:0;padding:16px;min-width:0}.app-card-header{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}.app-card-header>div{min-width:0}.app-card h3{margin:0;overflow-wrap:anywhere}.app-card small{font-size:.875rem}.app-card p{font-size:.875rem;flex:1}.app-card code{overflow-wrap:anywhere;white-space:normal}.verified{font-size:.75rem;color:#087327;display:inline-block;white-space:nowrap}.category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.category-card{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid var(--line);padding:20px;color:var(--ink);text-decoration:none;font-size:1rem}.category-card:hover{background:#f7f7f7;border-color:#aaa;text-decoration:none}.category-count{color:var(--muted);font-size:.8rem;white-space:nowrap}.category-count span{margin-left:8px}.filters{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:28px}.filters label{font-size:.875rem;font-weight:400;min-width:180px}.filters select{margin:6px 0 0}.filters button{margin:0 0 8px}.developers th:first-child{width:40%}.breadcrumb{font-size:.875rem;color:var(--muted);margin-bottom:28px}.app-hero{display:flex;gap:24px;align-items:flex-start;margin-bottom:32px}.app-hero>div{flex:1;min-width:0}.app-subtitle{font-size:1.15rem;color:#555;margin-bottom:8px}.app-hero p{margin-bottom:8px}.app-hero code{color:var(--muted);font-size:.75rem;overflow-wrap:anywhere}.store-button{white-space:nowrap}.detail-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr);gap:48px}.description{max-width:800px}.metadata{border-left:1px solid var(--line);padding-left:24px;overflow-wrap:anywhere}.metadata p{font-size:.875rem}.meta-label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}.category-tag{display:inline-block;background:#f7f7f7;padding:3px 8px;font-size:.75rem;margin:3px 0}.external-links{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0 40px}.external-links a{background:#f7f7f7;padding:6px 12px;font-size:.875rem}.feed-link{font-size:.875rem;white-space:nowrap}.screenshots{display:flex;overflow-x:auto;gap:20px;padding-bottom:12px;margin-bottom:32px}.screenshots figure{margin:0;min-width:80%;max-width:95%}.screenshots img{max-height:450px;object-fit:contain;border:1px solid var(--line);background:#f7f7f7}.screenshots figcaption{font-size:.75rem;color:var(--muted);padding-top:8px}.release{border-top:1px solid var(--line);padding:16px 0}.release summary{cursor:pointer;display:flex;justify-content:space-between;gap:20px;font-size:.875rem}.release summary strong{font-weight:400}.release summary span{color:var(--muted)}.release>div{padding-top:20px}.detail-grid section{margin-bottom:32px}.empty{text-align:center;padding:50px 20px;color:var(--muted)}.prose{max-width:850px}.prose h2{margin-top:32px}.prose dd{margin-bottom:12px}footer{border-top:1px solid var(--line);padding:24px 0;background:#fafafa}.footer-inner{display:flex;justify-content:space-between;gap:24px}.footer-inner p{font-size:.75rem;color:var(--muted);margin:0}.footer-inner p:last-child{display:flex;gap:20px;white-space:nowrap}.skip-link{position:absolute;top:-100px;padding:10px;background:white;z-index:9}.skip-link:focus{top:0}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #075b9c;outline-offset:3px}
@media(min-width:1400px){.container{max-width:1280px}}
@media(max-width:1050px){.app-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.app-hero{flex-wrap:wrap}.store-button{margin-left:120px}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:772px){.container{padding-left:16px;padding-right:16px}.stat-bar{display:flex;gap:1.5rem;flex-wrap:wrap;padding:.5rem 0;font-size:.875rem;color:#666}.page-heading{display:block;margin-bottom:24px}.page-heading .search{width:100%;margin-top:20px}.page-heading .feed-link{display:inline-block;margin-top:12px}main.container{padding-top:24px}.app-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.app-card{padding:12px}.app-card-header{display:block}.app-card .app-icon{margin-bottom:8px}.app-card h3{font-size:1rem}.category-grid{grid-template-columns:1fr}.changes thead,.developers thead{display:none}.changes tr,.developers tr{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}.changes td,.developers td{padding:0;border:0;display:block;font-size:1rem}.changes td:first-child,.developers td:first-child{grid-column:1/-1}.changes td[data-label="Version"]{grid-column:1/-1;grid-row:3}.changes td[data-label="When"]{grid-column:2;grid-row:2;text-align:right}.changes td[data-label="When"] small{display:inline;margin-left:8px}.changes .table-app small{font-size:.875rem}.developers td:not(:first-child):before{content:attr(data-label) ': ';color:var(--muted)}.pagination{font-size:.75rem}.pagination .p-button{padding:8px 10px}.app-hero{gap:16px}.app-icon.hero{width:64px;height:64px}.app-hero>div{min-width:0;flex-basis:calc(100% - 80px)}.app-hero h1{overflow-wrap:anywhere}.store-button{margin:0}.detail-grid{display:flex;flex-direction:column-reverse;gap:24px}.metadata{border:1px solid var(--line);padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.metadata h2{grid-column:1/-1;margin-bottom:8px}.metadata p{margin:0}.detail-grid .changes td:first-child{display:none}.detail-grid .changes td[data-label="Version"]{grid-row:2}.screenshots figure{min-width:95%}.footer-inner{display:block}.footer-inner p:last-child{margin-top:12px;flex-wrap:wrap}.filters{gap:12px}.filters label{flex:1;min-width:130px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.event-card .app-card-header h2{margin:0;overflow-wrap:anywhere}.event-card .event-version{flex:0;margin-top:auto;margin-bottom:16px;font-size:.875rem}.event-card-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--muted);font-size:.75rem}.example-label{background:#fff8e8;color:#55451c;border-radius:3px;padding:1px 6px}.event-card{min-height:170px}

/* The activity chart follows the Snap Updates SVG layout and Vanilla controls. */
.activity-section{padding:0 0 1rem;margin-bottom:1rem}
.activity-section h2{margin-bottom:.5rem}
.activity-ranges{display:flex;gap:1.25rem;flex-wrap:wrap;margin-bottom:.5rem}
.activity-ranges .p-button,.activity-ranges .p-button--positive{margin:0 0 .5rem}
.activity-legend{margin:.5rem 0 1.25rem}
.legend-total{color:#0e8420}.legend-new{color:#c7162b}.legend-updated{color:#24598f}
.activity-chart-scroll{overflow-x:auto}
.activity-chart{display:block;width:100%;min-width:600px}
.activity-chart text{font:14px Ubuntu,sans-serif;fill:#111}
.activity-tooltip{display:none}
.activity-day:hover .activity-tooltip,.activity-day:focus .activity-tooltip{display:block}
.activity-day:focus{outline:none}
.activity-day:focus-visible>rect{stroke:#075b9c;stroke-width:1}
.activity-coverage{font-size:.875rem;color:var(--muted);margin:.5rem 0 0}
@media(max-width:772px){.activity-ranges{gap:.5rem}.activity-ranges a{padding:.375rem .75rem}.activity-legend{font-size:.875rem}}
/* Use the same Vanilla navigation/grid and statistics spacing as Snap Updates. */
@media(max-width:1035px){.p-navigation__nav{display:flex;flex-direction:column}}
.stats-strip.p-strip--light.is-shallow{padding:.5rem 0}
@media(min-width:1036px){
 /* Keep the sister sites' tab positions stable despite the different labels. */
 .p-navigation__nav .p-navigation__link[href="/new"]{min-width:6.9rem}
 .p-navigation__nav .p-navigation__link[href="/publishers"]{min-width:6.63rem;padding-right:.5rem}
}

@media(max-width:1035px){.p-navigation__nav .p-navigation__items{display:flex;flex-wrap:wrap;margin:0}}
