/* GamiPress and its add-ons (Notifications, Progress, Submissions, Nominations, Reports, Frontend Reports,
   Expirations, e-mail settings) in the Observatory design. Their own sheets are dequeued; this one restyles every
   front-end surface on the theme tokens (--bg, --surface, --hair, --t1..t3, --accent, --mono, --sans, --r): plates
   with corner ticks, hairlines, mono readouts, red for what was earned. No external requests: share buttons are hidden. */

:where([class^="gamipress"],[class*=" gamipress"],.gamipress_notifyjs-corner){
	--gp-bg:var(--bg,#000);--gp-surface:var(--surface,#0a0a0a);--gp-elev:var(--elev,#111);
	--gp-hair:var(--hair,rgba(255,255,255,.09));--gp-hair2:var(--hair2,rgba(255,255,255,.22));
	--gp-t1:var(--t1,#fff);--gp-t2:var(--t2,#d4d4d4);--gp-t3:var(--t3,#a3a3a3);
	--gp-accent:var(--accent,#FF3326);--gp-strong:var(--accent-strong,#E0241A);--gp-on:var(--on-accent,#fff);
	--gp-tint:var(--accent-tint,rgba(255,51,38,.12));
	--gp-mono:var(--mono,"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace);
	--gp-sans:var(--sans,"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif);
	--gp-r:var(--r,5px)
}
@media (prefers-color-scheme:light){:root:not([data-theme=dark]) :where([class^="gamipress"],[class*=" gamipress"],.gamipress_notifyjs-corner){--gp-bg:var(--bg,#fff);--gp-surface:var(--surface,#f6f6f5);--gp-elev:var(--elev,#efefee);--gp-hair:var(--hair,rgba(0,0,0,.09));--gp-hair2:var(--hair2,rgba(0,0,0,.22));--gp-t1:var(--t1,#0a0a0a);--gp-t2:var(--t2,#2b2b2b);--gp-t3:var(--t3,#5c5c5c);--gp-accent:var(--accent,#E0241A);--gp-tint:var(--accent-tint,#FFF1EF)}}
:root[data-theme=light] :where([class^="gamipress"],[class*=" gamipress"],.gamipress_notifyjs-corner){--gp-bg:var(--bg,#fff);--gp-surface:var(--surface,#f6f6f5);--gp-elev:var(--elev,#efefee);--gp-hair:var(--hair,rgba(0,0,0,.09));--gp-hair2:var(--hair2,rgba(0,0,0,.22));--gp-t1:var(--t1,#0a0a0a);--gp-t2:var(--t2,#2b2b2b);--gp-t3:var(--t3,#5c5c5c);--gp-accent:var(--accent,#E0241A);--gp-tint:var(--accent-tint,#FFF1EF)}

:where([class^="gamipress"],[class*=" gamipress"]){box-sizing:border-box;font-family:var(--gp-sans);color:var(--gp-t1)}
:where([class^="gamipress"],[class*=" gamipress"]) :where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--gp-accent);outline-offset:2px}
.gamipress-share-buttons,.gamipress-share-button,.gamipress-share-buttons-label{display:none!important}
.gamipress-spinner{border-color:var(--gp-hair2)!important;border-top-color:var(--gp-accent)!important}

/* ---------- plates: achievements, ranks, points types ---------- */
.gamipress-achievements-list{display:block;margin:0 0 20px}
#gamipress-achievements-filters-wrap{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:0 0 14px}
#gamipress-achievements-filters-wrap :is(#gamipress-achievements-filter,#gamipress-achievements-search){float:none;margin:0}
#gamipress-achievements-search form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px}
#gamipress-achievements-filters-wrap label{display:block;margin:0 0 4px;font:500 12px/1.3 var(--gp-mono);color:var(--gp-t3)}
#gamipress-achievements-filters-wrap :is(select,input[type=text],input[type=search]){min-height:40px;padding:6px 10px;border:1px solid var(--gp-hair2);border-radius:var(--gp-r);background:var(--gp-bg);color:var(--gp-t1);font:400 14px/1.3 var(--gp-sans)}
.gamipress-extras-window{display:none}
.gamipress-open-close-switch a{font:500 12px/1.4 var(--gp-mono);color:var(--gp-t2)}
.gamipress-achievement-steps-heading,.gamipress-rank-requirements-heading{margin:6px 0 0!important;font:500 11px/1.3 var(--gp-mono)!important;letter-spacing:.1em;text-transform:uppercase;color:var(--gp-t3)!important}
:is(.gamipress-achievements-container,.gamipress-ranks-container,.gamipress-points-types){display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:14px;margin:0 0 20px}
:is(.gamipress-achievement,.gamipress-rank,.gamipress-points-type){position:relative;display:flex!important;flex-direction:column;gap:10px;width:auto!important;float:none!important;margin:0!important;padding:18px!important;border:1px solid var(--gp-hair);border-radius:var(--gp-r);background:var(--gp-surface);color:var(--gp-t1)}
:is(.gamipress-achievement,.gamipress-rank)[class*="user-has-earned"],:is(.gamipress-achievement,.gamipress-rank).user-has-earned{border-color:color-mix(in srgb,var(--gp-accent) 55%,var(--gp-hair))}
:is(.gamipress-achievement,.gamipress-rank).user-has-not-earned :is(.gamipress-achievement-image,.gamipress-rank-image) img{filter:grayscale(1);opacity:.55}
:is(.gamipress-achievement-image,.gamipress-rank-image,.gamipress-points-type-image,.gamipress-user-points-image){float:none!important;margin:0!important;width:56px;flex:0 0 auto}
:is(.gamipress-achievement-image,.gamipress-rank-image,.gamipress-points-type-image,.gamipress-user-points-image) img{display:block;width:56px;height:56px;object-fit:cover;border-radius:var(--gp-r);border:1px solid var(--gp-hair)}
:is(.gamipress-achievement-title,.gamipress-rank-title,.gamipress-points-type-title),:is(.gamipress-achievement,.gamipress-rank,.gamipress-points-type) :is(h2,h3,h4){margin:0!important;font:600 16px/1.3 var(--gp-sans)!important;letter-spacing:-.005em;color:var(--gp-t1)}
:is(.gamipress-achievement-title,.gamipress-rank-title) a{color:inherit;text-decoration:none}
:is(.gamipress-achievement-description,.gamipress-rank-description,.gamipress-points-type-description){font-size:14px;line-height:1.55;color:var(--gp-t2)}
:is(.gamipress-achievement-description,.gamipress-rank-description,.gamipress-points-type-description) p{margin:0 0 6px}
:is(.gamipress-achievement-points,.gamipress-achievement-congratulations,.gamipress-rank-congratulations){font:500 12px/1.4 var(--gp-mono);letter-spacing:.04em;color:var(--gp-t3)}
:is(.gamipress-achievement-congratulations,.gamipress-rank-congratulations){padding:8px 10px;border-left:2px solid var(--gp-accent);background:var(--gp-tint);color:var(--gp-t1)}
:is(.gamipress-required-achievements,.gamipress-required-requirements){margin:0;padding:10px 0 0;border-top:1px solid var(--gp-hair);font-size:13px;color:var(--gp-t2)}
:is(.gamipress-required-achievements,.gamipress-required-requirements) ol,:is(.gamipress-required-achievements,.gamipress-required-requirements) ul{margin:6px 0 0;padding-left:18px}
:is(.gamipress-required-achievements,.gamipress-required-requirements) li{margin:3px 0}
:is(.gamipress-required-achievements,.gamipress-required-requirements) li.user-has-earned{color:var(--gp-t1)}
:is(.gamipress-required-achievements,.gamipress-required-requirements) li.user-has-earned::marker{color:var(--gp-accent)}
:is(.gamipress-achievement-earners-list,.gamipress-rank-earners-list){display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
:is(.gamipress-achievement-earners-list,.gamipress-rank-earners-list) img{width:28px;height:28px;border-radius:50%;border:1px solid var(--gp-hair)}
:is(.gamipress-achievement-unlock-with-points,.gamipress-rank-unlock-with-points){display:none!important} /* Points never buy a level or a badge. */
.gamipress-layout-left,.gamipress-layout-right{flex-direction:row!important;align-items:flex-start}
.gamipress-layout-right{flex-direction:row-reverse!important}

/* A badge without an uploaded image gets the drawn hexagon plate (no image request). */
:is(.gamipress-achievement-image,.gamipress-rank-image):not(:has(img)){width:48px;height:48px;background:var(--gp-hair2);-webkit-mask:var(--gp-hex) center/contain no-repeat;mask:var(--gp-hex) center/contain no-repeat;--gp-hex:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 56'%3E%3Cpath d='M28 3l21.7 12.5v25L28 53 6.3 40.5v-25z' fill='none' stroke='%23000' stroke-width='2.4'/%3E%3Ccircle cx='28' cy='28' r='10' fill='none' stroke='%23000' stroke-width='2.4'/%3E%3Cpath d='M28 12v8M28 36v8M12 28h8M36 28h8' stroke='%23000' stroke-width='2.4'/%3E%3C/svg%3E")}
:is(.gamipress-achievement,.gamipress-rank).user-has-earned :is(.gamipress-achievement-image,.gamipress-rank-image):not(:has(img)){background:var(--gp-accent)}
:is(.gamipress-achievement-image,.gamipress-rank-image):not(:has(img)) a{display:block;width:100%;height:100%}

/* ---------- points readouts ---------- */
:is(.gamipress-user-points,.gamipress-points){display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:0 0 20px}
:is(.gamipress-user-points,.gamipress-points) :is(.gamipress-points-type,.gamipress-user-points-type){padding:14px!important}
.gamipress-user-points-amount,.gamipress-points-amount,.gamipress-user-points .gamipress-points-amount{font:600 26px/1.1 var(--gp-mono);font-variant-numeric:tabular-nums slashed-zero;color:var(--gp-t1)}
.gamipress-user-points-label,.gamipress-points-label{display:block;font:500 10.5px/1.3 var(--gp-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gp-t3)}
:is(.gamipress-inline-points,.gamipress-inline-achievement,.gamipress-inline-rank){display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border:1px solid var(--gp-hair2);border-radius:999px;font:500 12px/1.6 var(--gp-mono);color:var(--gp-t1);vertical-align:middle}
:is(.gamipress-inline-points-thumbnail,.gamipress-inline-achievement-thumbnail,.gamipress-inline-rank-thumbnail) img{width:16px;height:16px;border-radius:3px}
.gamipress-points-awards,.gamipress-points-deducts{margin:0;padding:0;list-style:none;font-size:13px;color:var(--gp-t2)}

/* ---------- tables: earnings, reports, e-mail settings ---------- */
:where([class^="gamipress"],[class*=" gamipress"]) table{width:100%;border-collapse:collapse;margin:0 0 20px;border:1px solid var(--gp-hair);background:var(--gp-surface);font-size:14px}
:where([class^="gamipress"],[class*=" gamipress"]) :is(th,td){padding:10px 12px;border:0;border-bottom:1px solid var(--gp-hair);text-align:left;vertical-align:middle;color:var(--gp-t1);background:none}
:where([class^="gamipress"],[class*=" gamipress"]) th{font:500 10.5px/1.3 var(--gp-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gp-t3)}
:where([class^="gamipress"],[class*=" gamipress"]) tr:last-child td{border-bottom:0}
:is(.gamipress-earnings-col-date,.gamipress-earnings-col-points){font-family:var(--gp-mono);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--gp-t2)}
.gamipress-earnings-col-thumbnail img{width:32px;height:32px;border-radius:4px}
.gamipress-points-awards .gamipress-earnings-col-points,.gamipress-earnings-col-points.gamipress-points-awards{color:var(--gp-t1)}
.gamipress-no-results{padding:18px;border:1px dashed var(--gp-hair2);border-radius:var(--gp-r);color:var(--gp-t2);font-size:14px}
.gamipress-email-settings :is(.gamipress-email-settings-column-yes,.gamipress-email-settings-column-no,.gamipress-email-settings-header-yes,.gamipress-email-settings-header-no){text-align:center;width:72px}
.gamipress-email-settings input[type=radio]{accent-color:var(--gp-accent);width:18px;height:18px}

#gamipress-earnings-table td.gamipress-earnings-col-empty{padding:0;width:0}
@media (max-width:700px){:where([class^="gamipress"],[class*=" gamipress"]) table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}#gamipress-earnings-table :is(th,td).gamipress-earnings-col-thumbnail{display:none}}

/* ---------- progress (Progress add-on) ---------- */
.gamipress-progress{margin:6px 0 12px}
.gamipress-progress-bar-wrapper{width:100%}
.gamipress-progress-bar{display:flex;height:6px!important;min-height:0!important;padding:0!important;border-radius:999px;background:var(--gp-hair)!important;overflow:hidden;border:0!important}
.gamipress-progress-bar .gamipress-progress-bar-completed{min-height:6px!important;height:6px;background:var(--gp-accent)!important;background-image:none!important;font-size:0!important;color:transparent!important;animation:none!important;transition:width .4s ease}
.gamipress-progress-text,.gamipress-progress-bar-wrapper + :is(span,div){display:block;margin-top:6px;font:500 12px/1.3 var(--gp-mono);font-variant-numeric:tabular-nums;color:var(--gp-t3)}
.gamipress-progress-radial-bar{width:96px;height:96px;background:conic-gradient(var(--gp-accent) var(--gp-pct,0%),var(--gp-hair) 0)!important}
.gamipress-progress-radial-bar .gamipress-progress-radial-bar-overlay{background:var(--gp-surface)!important;font:600 16px/1 var(--gp-mono);color:var(--gp-t1)}
.gamipress-progress-image img{width:32px;height:32px;filter:grayscale(1);opacity:.45}
.gamipress-progress-image img.gamipress-progress-image-completed,.gamipress-progress-image .completed img{filter:none;opacity:1}

/* ---------- notifications (Notifications add-on) ---------- */
.gamipress_notifyjs-corner{z-index:100000!important;margin:16px!important}
.gamipress_notifyjs-corner :is(.gamipress_notifyjs-wrapper,.gamipress_notifyjs-container){margin:0 0 10px!important}
.gamipress-notification{position:relative;width:min(380px,calc(100vw - 32px))!important;margin:0!important;padding:16px 48px 16px 18px!important;border:1px solid var(--gp-hair2)!important;border-left:3px solid var(--gp-accent)!important;border-radius:var(--gp-r)!important;background:var(--gp-elev)!important;color:var(--gp-t1)!important;box-shadow:0 18px 40px -18px rgba(0,0,0,.55)!important;font:400 14px/1.5 var(--gp-sans)}
.gamipress-notification :is(h2,h3,h4,.gamipress-achievement-title,.gamipress-rank-title){margin:0 0 4px!important;font:600 15px/1.3 var(--gp-sans)!important;color:var(--gp-t1)!important}
.gamipress-notification :is(p,.gamipress-achievement-description,.gamipress-rank-description){margin:0!important;font-size:13.5px;color:var(--gp-t2)!important}
.gamipress-notification :is(.gamipress-achievement,.gamipress-rank,.gamipress-points-type){padding:0!important;border:0!important;background:none!important;flex-direction:row!important;align-items:flex-start}
.gamipress-notification img{width:44px;height:44px;border-radius:var(--gp-r)}
.gamipress-notification .gamipress-notification-close{position:absolute!important;top:6px!important;right:6px!important;display:grid;place-items:center;width:36px;height:36px;font-family:var(--gp-sans)!important;font-size:0!important;color:var(--gp-t2);border-radius:var(--gp-r);cursor:pointer}
.gamipress-notification .gamipress-notification-close::before{content:""!important;width:14px;height:14px;background:linear-gradient(45deg,transparent 46%,currentColor 46% 54%,transparent 54%),linear-gradient(-45deg,transparent 46%,currentColor 46% 54%,transparent 54%)}
.gamipress-notification .gamipress-notification-close:hover{background:var(--gp-hair);color:var(--gp-t1)}
.gamipress-notification .gamipress-notification-close:focus-visible{outline:2px solid var(--gp-accent);outline-offset:1px}
@media (max-width:782px){.gamipress_notifyjs-corner{left:0!important;right:0!important;top:auto!important;bottom:0!important;width:auto!important;margin:12px!important}.gamipress-notification{width:100%!important}}

/* ---------- forms: submissions, nominations ---------- */
:is(.gamipress-submission-form,.gamipress-nomination-form,.gamipress-nominations-user-wrap) :is(input[type=text],input[type=search],input[type=email],textarea,select){width:100%;min-height:40px;padding:8px 12px;border:1px solid var(--gp-hair2);border-radius:var(--gp-r);background:var(--gp-bg);color:var(--gp-t1);font:400 15px/1.4 var(--gp-sans)}
:is(.gamipress-submission-form,.gamipress-nomination-form) label{display:block;margin:0 0 6px;font-weight:500;font-size:14px}
:where([class^="gamipress"],[class*=" gamipress"]) :is(button,input[type=submit],.button){display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 16px;border:1px solid transparent;border-radius:var(--gp-r);background:var(--gp-strong);color:var(--gp-on);font:500 14px/1 var(--gp-sans);cursor:pointer}
:where([class^="gamipress"],[class*=" gamipress"]) :is(button,input[type=submit],.button):hover{background:var(--gp-accent)}
.gamipress-notification .gamipress-notification-close:is(button){background:none;min-height:0;padding:0}
.gamipress-nominations-user-wrap .ui-autocomplete{border:1px solid var(--gp-hair2)!important;border-radius:var(--gp-r);background:var(--gp-elev)!important;color:var(--gp-t1)}
.gamipress-nominations-user-wrap .ui-autocomplete li:hover,.gamipress-nominations-user-wrap .ui-autocomplete .ui-state-active{background:var(--gp-hair)!important}

/* ---------- expirations, frontend reports ---------- */
.gamipress-expirations-expiration{font:500 12px/1.4 var(--gp-mono);color:var(--gp-t3)}
.gamipress-frontend-reports-chart{display:grid;gap:4px;padding:14px;border:1px solid var(--gp-hair);border-radius:var(--gp-r);background:var(--gp-surface)}
.gamipress-frontend-reports-chart-stat{font:600 26px/1.1 var(--gp-mono);font-variant-numeric:tabular-nums}
.gamipress-frontend-reports-graph{padding:14px;border:1px solid var(--gp-hair);border-radius:var(--gp-r);background:var(--gp-surface)}
:is(.gamipress-frontend-reports-graph-period-wrapper,.gamipress-frontend-reports-graph-range-wrapper) select{min-height:36px;padding:4px 10px;border:1px solid var(--gp-hair2);border-radius:var(--gp-r);background:var(--gp-bg);color:var(--gp-t1);font:500 13px/1 var(--gp-mono)}

@media (prefers-reduced-motion:reduce){:where([class^="gamipress"],[class*=" gamipress"],.gamipress_notifyjs-corner),:where([class^="gamipress"],[class*=" gamipress"],.gamipress_notifyjs-corner) *{animation:none!important;transition:none!important}}
