[hidden]{display:none!important}:root{--ink:#1d2a27;--muted:#6b7772;--paper:#f6f5ef;--card:#fffefa;--green:#176b55;--green2:#dff0e8;--line:#dde2dc;--gold:#dc9f27;--shadow:0 12px 35px rgba(34,51,45,.09)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button,a{min-height:44px}.topbar{height:72px;padding:0 max(20px,calc((100% - 1120px)/2));display:flex;align-items:center;justify-content:space-between;background:rgba(246,245,239,.94);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:4;backdrop-filter:blur(10px)}.logo{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none;font-weight:800}.logo span,.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--green);color:white;font:bold 22px Georgia}.avatar{width:44px;border:0;border-radius:50%;background:var(--green2);color:var(--green);font-weight:800;cursor:pointer}.shell{max-width:1120px;margin:auto;padding:52px 20px 80px}.hero{max-width:620px}.eyebrow,.category{color:var(--green);letter-spacing:.14em;font-size:.72rem;font-weight:800;margin:0 0 8px;text-transform:uppercase}.hero h1{font:700 clamp(2.3rem,8vw,4.6rem)/1.02 Georgia,serif;margin:0}.hero>p:last-child{font-size:1.12rem;color:var(--muted)}.tools{display:flex;gap:12px;margin-top:38px}.search{display:flex;align-items:center;gap:10px;padding:0 16px;border:1px solid var(--line);border-radius:14px;background:white;flex:1;box-shadow:0 2px 8px #24342d08}.search span{font-size:24px;color:var(--muted)}.search input{border:0;background:none;outline:0;width:100%;height:50px}.sort-label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.88rem}.sort-label select{height:50px;border:1px solid var(--line);border-radius:14px;background:white;padding:0 38px 0 14px;color:var(--ink)}.result-count{color:var(--muted);font-size:.86rem;margin:22px 2px 12px}.app-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.app-card{background:var(--card);padding:24px;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);display:flex;flex-direction:column}.card-top{display:flex;justify-content:space-between}.app-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;font-size:30px;background:#e2efe9}.icon-rowing{background:#dcebf3}.icon-wear{background:#eee5f1}.icon-renewals{background:#fae9ce}.favourite,.icon-btn{border:0;background:transparent;font-size:30px;color:#b54755;cursor:pointer}.category{margin-top:20px}.app-card h2{font:700 1.65rem Georgia;margin:0}.description{color:var(--muted);min-height:48px}.rating-line{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:.82rem}.stars{color:var(--gold);letter-spacing:1px}.my-review{font-size:.84rem;color:var(--muted);border-left:3px solid var(--green2);padding-left:9px}.card-actions{display:flex;gap:8px;margin-top:auto;padding-top:10px}.open-app,.primary,.secondary,.danger{display:inline-flex;align-items:center;justify-content:center;border-radius:12px;padding:10px 15px;text-decoration:none;font-weight:700;cursor:pointer}.open-app,.primary{color:white;background:var(--green);border:1px solid var(--green)}.open-app{flex:1;justify-content:space-between}.secondary{background:white;color:var(--green);border:1px solid var(--line)}.danger{width:100%;background:#fff5f4;color:#a33e3e;border:1px solid #efd6d2;margin-top:24px}.review-form{border-top:1px solid var(--line);margin-top:16px;padding-top:15px}.review-form[hidden],.empty[hidden],.panel[hidden],.scrim[hidden],#admin[hidden],#invite-box[hidden]{display:none}.review-form label,.auth-card label,#invite-box label{display:grid;gap:5px;margin-bottom:12px;font-size:.85rem;font-weight:700}.review-form select,.review-form textarea,.auth-card input,#invite-url{border:1px solid #cbd3cc;border-radius:10px;padding:11px;background:white}.review-form textarea{min-height:82px;resize:vertical}.empty{text-align:center;padding:70px}.empty span{font-size:44px}.panel{position:fixed;z-index:8;right:0;top:0;width:min(92vw,430px);height:100dvh;background:var(--card);padding:26px;box-shadow:-20px 0 60px #1c302b33;overflow:auto}.panel-head{display:flex;justify-content:space-between}.panel h2{font:700 2rem Georgia;margin:0}.panel hr{border:0;border-top:1px solid var(--line);margin:25px 0}.scrim{position:fixed;inset:0;background:#10271e70;z-index:7}.small{font-size:.85rem}.muted{color:var(--muted)}#create-invite{width:100%}#invite-box{background:var(--green2);padding:14px;border-radius:14px;margin:12px 0}.success{font-size:.78rem;color:var(--green);margin:0}.user-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);gap:8px}.user-row span{display:grid}.user-row small{color:var(--muted)}.auth-page{min-height:100dvh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 70% 10%,#dceee4,transparent 38%),var(--paper)}.auth-card{width:min(100%,420px);padding:36px;background:var(--card);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)}.auth-card h1{font:700 2.4rem Georgia;margin:8px 0}.auth-card form{margin-top:28px}.auth-card input{height:50px}.auth-card .primary{width:100%}.error{color:#a33e3e;min-height:24px;font-size:.85rem}.privacy-note{text-align:center;color:var(--muted);font-size:.78rem;margin-top:22px}.link-button{margin-top:16px}.brand-mark{margin-bottom:22px}.icon-btn{font-size:28px}@media(max-width:680px){.shell{padding-top:32px}.app-grid{grid-template-columns:1fr}.tools{flex-direction:column}.sort-label{justify-content:space-between}.sort-label select{flex:1}.card-actions{flex-direction:column}.hero h1{font-size:2.55rem}.auth-card{padding:28px 22px}.topbar{height:64px}.app-card{padding:20px}}

/* Compact launcher; use Details for reviews without losing an unsaved draft. */
.view-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}
.view-bar .result-count{margin:0}.view-switch{display:flex;border:1px solid #bacac1;border-radius:12px;padding:3px;gap:3px;background:white}
.view-switch button{border:0;border-radius:9px;padding:7px 12px;background:transparent;color:var(--green);font-weight:700;cursor:pointer}
.view-switch button[aria-pressed=true]{background:var(--green);color:white}
.view-hint{font-size:.8rem;color:#52615a;margin:8px 0 12px}.app-grid{margin-top:12px}
.app-grid[data-view=grid]{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
[data-view=grid] .app-card{position:relative;aspect-ratio:1;min-width:0;padding:18px;gap:8px;border-radius:20px;box-shadow:0 4px 14px #22332d09}
[data-view=grid] .card-top{height:44px;flex-shrink:0;align-items:center}
[data-view=grid] .app-icon{height:40px;width:40px;font-size:26px;border-radius:12px}
[data-view=grid] .favourite{position:absolute;right:4px;top:4px;z-index:2;width:44px;height:44px;padding:0}
[data-view=grid] h2{font:700 20px/1.15 ui-sans-serif,system-ui,sans-serif;margin:0;overflow-wrap:anywhere}
[data-view=grid] .description{font-size:14px;line-height:1.4;color:#52615a;min-height:0;margin:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
[data-view=grid] .category,[data-view=grid] .rating-line,[data-view=grid] .my-review,[data-view=grid] .review-toggle,[data-view=grid] .review-form{display:none}
[data-view=grid] .card-actions{display:contents}
[data-view=grid] .open-app{position:absolute;inset:0;z-index:1;background:transparent;border:0;border-radius:inherit;padding:0}
[data-view=grid] .open-app span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.open-app:focus-visible,.favourite:focus-visible,.view-switch button:focus-visible{outline:3px solid #176b55;outline-offset:3px}
[data-view=grid] .app-card:has(.open-app:hover){border-color:var(--green)}
@media(max-width:1000px){.app-grid[data-view=grid]{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.app-grid[data-view=grid]{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}[data-view=grid] .app-card{padding:12px;gap:6px}[data-view=grid] .card-top{height:34px}[data-view=grid] .app-icon{height:32px;width:32px;font-size:23px}[data-view=grid] h2{font-size:16px;line-height:1.1}[data-view=grid] .description{font-size:12px;line-height:1.3;-webkit-line-clamp:2}}
@media(max-width:350px){[data-view=grid] .app-card{padding:8px;gap:3px}[data-view=grid] h2{font-size:14px}[data-view=grid] .card-top{height:32px}}

.tile-description{display:none}
[data-view=grid] .full-description{display:none}
[data-view=grid] .tile-description{display:-webkit-box}
body[data-app-view=grid] .shell{padding-top:22px}
body[data-app-view=grid] .hero .eyebrow,body[data-app-view=grid] .hero>p:last-child{display:none}
body[data-app-view=grid] .hero h1{font-size:clamp(1.5rem,5vw,2.2rem);line-height:1.15}
body[data-app-view=grid] .tools{margin-top:20px}
