/* Gravity Ranger members app. Same look as the public site ("Low orbit"):
   dark by default, light when the visitor picks it (shared switch, saved as gr-theme).
   The sidebar is always night side, like the public site's header band. */
.gr-app{
	--gr-display:'Big Shoulders Display','Arial Narrow',sans-serif;
	--gr-body:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
	--gr-mono:'JetBrains Mono',ui-monospace,Menlo,Consolas,monospace;
	--gr-radius:12px; --gr-side:256px;
	--gr-top:var(--wp-admin--admin-bar--height,0px);
	/* Night side (default) */
	--gr-bg:#02030A; --gr-surface:#070B16; --gr-hover:rgba(124,203,255,.07);
	--gr-line:rgba(220,227,238,.14); --gr-line-soft:rgba(220,227,238,.08); --gr-field:rgba(220,227,238,.24); --gr-hover-line:rgba(220,227,238,.42); --gr-dash:rgba(220,227,238,.22);
	--gr-heading:#FFFFFF; --gr-ink:#DCE3EE; --gr-ink-2:#C9D2E0; --gr-muted:#929DB0;
	--gr-blue:#7CCBFF; --gr-blue-dark:#B5E2FF; --gr-blue-soft:rgba(124,203,255,.12); --gr-blue-soft-2:rgba(124,203,255,.24);
	--gr-accent:#FFC27A; --gr-accent-hover:#FFD29C; --gr-on-accent:#1A0E00;
	--gr-amber:#FFC27A; --gr-amber-bg:rgba(255,194,122,.07); --gr-amber-soft:rgba(255,194,122,.13);
	--gr-green:#7BD8A0; --gr-green-soft:rgba(123,216,160,.12); --gr-green-line:rgba(123,216,160,.42);
	--gr-danger:#FF8A80; --gr-tint:rgba(220,227,238,.08); --gr-avatar-bg:rgba(124,203,255,.16);
	--gr-solid:#FFFFFF; --gr-on-solid:#02030A;
	--gr-code-bg:#050812; --gr-code-bar:#0B1222;
	--gr-glow:radial-gradient(ellipse 70% 420px at 75% -60px,rgba(124,203,255,.11),transparent 70%);
	margin:0; background:var(--gr-bg); color:var(--gr-ink);
	font-family:var(--gr-body); font-size:16px; line-height:1.55;
	-webkit-font-smoothing:antialiased;
	color-scheme:dark;
}
/* Day side */
html[data-theme="light"] .gr-app{
	--gr-bg:#F5F7FB; --gr-surface:#FFFFFF; --gr-hover:rgba(28,103,168,.06);
	--gr-line:rgba(14,20,34,.12); --gr-line-soft:rgba(14,20,34,.07); --gr-field:rgba(14,20,34,.2); --gr-hover-line:rgba(14,20,34,.34); --gr-dash:rgba(14,20,34,.22);
	--gr-heading:#0E1422; --gr-ink:#1B2230; --gr-ink-2:#3E4859; --gr-muted:#596377;
	--gr-blue:#1C67A8; --gr-blue-dark:#124B80; --gr-blue-soft:#E8F0F9; --gr-blue-soft-2:#D3E3F4;
	--gr-accent:#FFC27A; --gr-accent-hover:#FFB45C; --gr-on-accent:#1A0E00;
	--gr-amber:#8A4A08; --gr-amber-bg:#FDF6EC; --gr-amber-soft:#FDF0DE;
	--gr-green:#1E6B3A; --gr-green-soft:#E6F3EA; --gr-green-line:#BCDCC6;
	--gr-danger:#B3261E; --gr-tint:#EEF0F3; --gr-avatar-bg:#DCE6F2;
	--gr-solid:#0E1422; --gr-on-solid:#FFFFFF;
	--gr-code-bg:#0E1422; --gr-code-bar:#1F2633;
	--gr-glow:radial-gradient(ellipse 70% 420px at 75% -60px,rgba(28,103,168,.08),transparent 70%);
	color-scheme:light;
}
/* The sidebar is always night side. */
.gr-app .gr-side{
	--gr-surface:#070B16; --gr-hover:rgba(124,203,255,.08);
	--gr-line:rgba(124,203,255,.18); --gr-line-soft:rgba(220,227,238,.08); --gr-field:rgba(220,227,238,.24);
	--gr-heading:#FFFFFF; --gr-ink:#DCE3EE; --gr-ink-2:#B9C3D3; --gr-muted:#8C97AA;
	--gr-blue:#7CCBFF; --gr-blue-dark:#B5E2FF; --gr-blue-soft:rgba(124,203,255,.12);
	--gr-accent:#FFC27A; --gr-accent-hover:#FFD29C; --gr-on-accent:#1A0E00;
	color-scheme:dark;
}
.gr-app *,.gr-app *::before,.gr-app *::after{box-sizing:border-box}
.gr-app a{color:var(--gr-blue)} .gr-app a:hover{color:var(--gr-blue-dark)}
.gr-app h1,.gr-app h2,.gr-app h3{color:var(--gr-heading);margin:0;line-height:1.25;letter-spacing:-.015em;font-weight:600;font-family:inherit}
.gr-app h1{font-weight:700}
.gr-app h1{font-size:26px}
.gr-app :focus-visible{outline:2px solid var(--gr-blue);outline-offset:2px}
.gr-app .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.gr-skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--gr-accent);color:var(--gr-on-accent)!important;padding:8px 12px;border-radius:8px}
.gr-skip:focus{left:8px}
.gr-mono{font-family:var(--gr-mono);font-size:12px;color:var(--gr-muted)}
.gr-muted{color:var(--gr-muted)} .gr-small{font-size:13px;margin:0}
.gr-icon{flex:0 0 auto}

/* Shell: fixed 232px sidebar, content takes the rest. */
.gr-shell{display:flex;flex-wrap:wrap;align-items:flex-start;min-height:calc(100vh - var(--gr-top))}
.gr-side{flex:1 1 var(--gr-side);max-width:100%;display:flex;flex-direction:column;gap:4px;padding:20px 16px;background:var(--gr-surface);border-right:1px solid var(--gr-line)}
.gr-main{flex:999 1 560px;min-width:0;padding:28px 32px 48px;outline:none}
@media (min-width:800px){
	.gr-side{flex:0 0 var(--gr-side);position:sticky;top:var(--gr-top);height:calc(100vh - var(--gr-top));overflow-y:auto}
}
.gr-brand{display:flex;align-items:center;gap:10px;padding:6px 10px 18px;text-decoration:none;color:var(--gr-ink)!important}
.gr-brand__mark{width:30px;height:30px;border-radius:8px;background:var(--gr-solid);color:var(--gr-on-solid);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.gr-brand__name{font-weight:700;font-size:17px;letter-spacing:-.01em}
.gr-nav{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border-radius:8px;color:var(--gr-ink-2)!important;text-decoration:none}
.gr-nav:hover{background:var(--gr-hover)}
.gr-nav.is-active{background:var(--gr-blue-soft);color:var(--gr-blue-dark)!important;font-weight:600}
.gr-side__foot{margin-top:auto;padding-top:16px;display:flex;flex-direction:column;gap:8px}
.gr-member{padding:14px;border:1px solid var(--gr-line);border-radius:10px;display:flex;flex-direction:column;gap:8px}
.gr-member__row{display:flex;align-items:center;gap:10px}
.gr-member__text{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.gr-member__name{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gr-member__plan{font-size:13px;color:var(--gr-muted)}
.gr-member__up{font-size:13px;font-weight:600;text-decoration:none}
.gr-avatar{flex:0 0 32px;width:32px;height:32px;border-radius:50%;background:var(--gr-avatar-bg);color:var(--gr-blue-dark);display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:13px}
.gr-avatar--sm{flex-basis:28px;width:28px;height:28px;font-size:11px}
.gr-avatar--host{background:var(--gr-solid);color:var(--gr-on-solid)}

/* Layout helpers */
.gr-cols{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start}
.gr-col-main{flex:999 1 520px;min-width:0;display:flex;flex-direction:column;gap:16px}
.gr-col-rail{flex:1 1 260px;min-width:0;max-width:360px;display:flex;flex-direction:column;gap:16px}
.gr-page{display:flex;flex-direction:column;gap:18px}
.gr-page--narrow{max-width:820px}
.gr-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}
.gr-head--stack{flex-direction:column;align-items:flex-start;gap:6px}
.gr-lede{margin:4px 0 0;color:var(--gr-ink-2)}
.gr-row-between{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.gr-eyebrow{margin:0;font-size:13px!important;text-transform:uppercase;letter-spacing:.06em!important;color:var(--gr-muted)!important;font-weight:600}
.gr-card{background:var(--gr-surface);border:1px solid var(--gr-line);border-radius:var(--gr-radius);padding:18px 22px}
.gr-empty{background:var(--gr-surface);border:1px dashed var(--gr-dash);border-radius:var(--gr-radius);padding:32px 24px;text-align:center;color:var(--gr-ink-2)}
.gr-empty p{margin:6px 0}
.gr-back{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:14px;font-weight:600;text-decoration:none}

/* Controls */
.gr-search{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;background:var(--gr-surface);border:1px solid var(--gr-field);border-radius:8px;flex:0 1 300px;color:var(--gr-muted)}
.gr-search input{-webkit-appearance:none;appearance:none;border:0!important;box-shadow:none!important;padding:0!important;outline:0;background:transparent!important;font:inherit;font-size:14px;width:100%;color:var(--gr-ink);min-height:40px}
.gr-chips{display:flex;flex-wrap:wrap;gap:8px}
.gr-chip{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--gr-field);background:var(--gr-surface);color:var(--gr-ink-2)!important;font-size:14px;text-decoration:none}
.gr-chip.is-on{background:var(--gr-solid);border-color:var(--gr-solid);color:var(--gr-on-solid)!important}
.gr-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:8px;border:1px solid var(--gr-field);background:var(--gr-surface);color:var(--gr-ink)!important;font:inherit;font-size:14px;font-weight:600;text-decoration:none;cursor:pointer}
.gr-btn--primary{background:var(--gr-accent);border-color:var(--gr-accent);color:var(--gr-on-accent)!important}
.gr-btn--primary:hover{background:var(--gr-accent-hover);border-color:var(--gr-accent-hover)}
.gr-btn--small{min-height:32px;padding:0 12px;font-size:13px}

/* Badges */
.gr-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.5;white-space:nowrap}
.gr-badge--public,.gr-badge--free{background:var(--gr-tint);color:var(--gr-ink-2)}
.gr-badge--insider{background:var(--gr-blue-soft);color:var(--gr-blue-dark)}
.gr-badge--insider_plus{background:var(--gr-amber-soft);color:var(--gr-amber)}
.gr-badge--elite{background:var(--gr-solid);color:var(--gr-on-solid)}

/* Feed */
.gr-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;color:var(--gr-muted)}
.gr-meta__who{font-weight:600;color:var(--gr-ink)}
.gr-meta__end{margin-left:auto}
.gr-post{display:flex;flex-direction:column;gap:10px}
.gr-post__title{font-size:19px!important}
.gr-post__title a{color:var(--gr-ink)!important;text-decoration:none}
.gr-post__title a:hover{text-decoration:underline}
.gr-post__excerpt{margin:0;color:var(--gr-ink-2)}
.gr-lock{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:7px 12px;background:var(--gr-amber-bg);border-radius:8px;font-size:13px;color:var(--gr-amber)}
.gr-lock a{margin-left:auto;font-weight:600;color:var(--gr-amber)!important}
.gr-pager{display:flex;justify-content:space-between;gap:12px}
.gr-pager a{font-weight:600;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}

/* Rail */
.gr-rail-box{display:flex;flex-direction:column;gap:10px;padding:18px}
.gr-rail-box p{margin:0}
.gr-rail-box__title{font-weight:600;font-size:16px;color:var(--gr-ink)!important;text-decoration:none;line-height:1.35}
.gr-rail-list{display:flex;flex-direction:column;gap:10px;padding:4px}
.gr-rail-list a,.gr-file-list a{display:flex;justify-content:space-between;gap:8px;font-size:14px;text-decoration:none}
.gr-outline{margin:0;padding-left:18px;font-size:14px;color:var(--gr-ink-2);display:flex;flex-direction:column;gap:6px}

/* Classrooms */
.gr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.gr-class-card{padding:0;overflow:hidden;display:flex;flex-direction:column}
.gr-cover{height:132px;background:var(--gr-code-bg);color:#9FB6CE;display:flex;align-items:center;justify-content:center;overflow:hidden}
.gr-cover img{width:100%;height:100%;object-fit:cover}
.gr-class-card__body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1 1 auto}
.gr-class-card h3{font-size:17px}
.gr-class-card h3 a{color:var(--gr-ink)!important;text-decoration:none}
.gr-class-card p{margin:0;font-size:14px}
.gr-class-card__foot{margin-top:auto;padding-top:8px}
.gr-link-go,.gr-link-lock{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;font-size:14px;text-decoration:none}
.gr-link-lock{color:var(--gr-amber)!important}

/* Articles */
.gr-article{display:flex;flex-direction:column;gap:14px;padding:26px 30px}
.gr-article h1{font-size:28px}
.gr-prose{font-size:16px;line-height:1.65;color:var(--gr-ink)}
.gr-prose > *{margin:0 0 1em} .gr-prose > *:last-child{margin-bottom:0}
.gr-prose h2{font-size:20px;margin-top:1.4em} .gr-prose h3{font-size:17px;margin-top:1.2em}
.gr-prose pre,.gr-code pre{margin:0;padding:16px 18px;background:var(--gr-code-bg);color:#E6EDF5;border-radius:10px;font-family:var(--gr-mono);font-size:13px;line-height:1.6;overflow-x:auto}
.gr-prose img{max-width:100%;height:auto;border-radius:8px}
.gr-code{border-radius:10px;overflow:hidden;background:var(--gr-code-bg)}
.gr-code__bar{display:flex;justify-content:space-between;align-items:center;padding:8px 10px 8px 16px;background:var(--gr-code-bar)}
.gr-code__bar .gr-mono{color:#9FB6CE}
.gr-code pre{border-radius:0}

/* Class lessons list */
.gr-lesson-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}
.gr-lesson-list a{display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 10px;border-radius:8px;color:var(--gr-ink)!important;text-decoration:none}
.gr-lesson-list a:hover{background:var(--gr-hover)}
.gr-lesson-list a.is-current{background:var(--gr-blue-soft);color:var(--gr-blue-dark)!important;font-weight:600}
.gr-lesson-list__title{flex:1 1 auto}
.gr-lesson-list__lock{color:var(--gr-amber);display:inline-flex}
.gr-step{flex:0 0 26px;height:26px;border-radius:50%;background:var(--gr-tint);color:var(--gr-ink-2);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}
.gr-lesson-list--compact a{font-size:14px}

/* Lesson focus layout */
.gr-topbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px}
.gr-topbar__title{font-weight:600;flex:1 1 240px;min-width:0}
.gr-lesson{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
.gr-lesson__main{flex:999 1 560px;min-width:0;max-width:900px;display:flex;flex-direction:column;gap:18px}
.gr-lesson__title{font-size:24px!important}
.gr-lesson__list{flex:1 1 280px;min-width:0;max-width:380px;padding:14px 10px}
.gr-lesson__list .gr-eyebrow{padding:0 10px}
.gr-video{aspect-ratio:16/9;width:100%;border-radius:12px;background:var(--gr-code-bg);display:flex;align-items:center;justify-content:center;overflow:hidden}
.gr-video__play{width:68px;height:68px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;display:flex;align-items:center;justify-content:center}
.gr-video__play svg{fill:#fff;stroke:none}
.gr-tabs__list{display:flex;gap:4px;border-bottom:1px solid var(--gr-line);margin-bottom:16px}
.gr-tabs__list button{min-height:44px;padding:0 14px;border:0;background:none;font:inherit;font-size:14px;cursor:pointer;margin-bottom:-1px;border-bottom:2px solid transparent;color:var(--gr-muted)}
.gr-tabs__list button[aria-selected="true"]{border-bottom-color:var(--gr-blue);color:var(--gr-blue-dark);font-weight:600}
.gr-count{display:inline-block;margin-left:4px;padding:0 6px;border-radius:999px;background:var(--gr-tint);font-size:12px;color:var(--gr-ink-2)}
.gr-file-list{display:flex;flex-direction:column;gap:8px}
.gr-file-list a{min-height:44px;align-items:center;padding:0 14px;background:var(--gr-surface);border:1px solid var(--gr-line);border-radius:8px}
.gr-prevnext{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--gr-line);padding-top:16px;font-size:14px}
.gr-prevnext a{text-decoration:none;font-weight:600}

/* Vault table */
.gr-table-wrap{padding:0;overflow-x:auto}
.gr-table{width:100%;min-width:680px;border-collapse:collapse;font-size:14px}
.gr-table th,.gr-table td{padding:12px 18px;border-bottom:1px solid var(--gr-line-soft);text-align:left;vertical-align:middle}
.gr-table thead th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--gr-muted);font-weight:600;border-bottom-color:var(--gr-line)}
.gr-table tbody th{font-weight:600}
.gr-table tbody th a{color:var(--gr-ink)!important;text-decoration:none}
.gr-table tbody tr:last-child > *{border-bottom:0}
.gr-table__action{text-align:right;white-space:nowrap}
.gr-table__action a{font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:6px;min-height:40px}
.gr-tag{padding:2px 6px;border-radius:4px;background:var(--gr-tint);color:var(--gr-ink-2)}

/* Saved */
.gr-saved-list{list-style:none;margin:0;padding:0}
.gr-saved-list li{padding:16px 18px;border-bottom:1px solid var(--gr-line-soft);display:flex;flex-direction:column;gap:4px}
.gr-saved-list li:last-child{border-bottom:0}
.gr-saved-list a{font-weight:600;font-size:16px;color:var(--gr-ink)!important;text-decoration:none}

/* Paywall card inside the app */
.gr-app .gr-paywall{margin-top:8px}
@media (max-width:640px){
	.gr-main{padding:20px 16px 40px}
	.gr-article{padding:20px}
}
.gr-container{width:100%;max-width:1200px}
.gr-container--narrow{max-width:1000px}

.gr-side__top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:12px}
.gr-side__top .gr-brand{padding:6px 10px}
.gr-side__toggle{display:none;flex:0 0 auto;width:36px;height:36px;border:0;border-radius:8px;background:none;color:var(--gr-muted);cursor:pointer;align-items:center;justify-content:center}
.gr-side__toggle:hover{background:var(--gr-hover);color:var(--gr-ink)}
.gr-member--guest{display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--gr-ink-2)}
.gr-member--guest p{margin:0 0 4px}

@media (min-width:800px){
	.gr-side__toggle{display:inline-flex}
	.gr-app--collapsed .gr-side{flex-basis:72px;padding:20px 12px}
	.gr-app--collapsed .gr-label{display:none!important}
	.gr-app--collapsed .gr-side__top{flex-direction:column;padding-bottom:8px}
	.gr-app--collapsed .gr-side__top .gr-brand{padding:6px 0}
	.gr-app--collapsed .gr-nav{justify-content:center;padding:0}
	.gr-app--collapsed .gr-member{padding:6px 0;border:0;align-items:center}
	.gr-app--collapsed .gr-member--guest{display:none}
}
.gr-side__top .gr-brand{padding:6px 4px;gap:8px;min-width:0}
.gr-brand__name{white-space:nowrap;font-size:16px}
.gr-side__toggle{width:32px;height:32px}
/* Sidebar "Learn" group */
.gr-side__group{display:flex;flex-direction:column;gap:4px;margin-top:14px;padding-top:12px;border-top:1px solid var(--gr-line-soft)}
.gr-side__label{margin:0 0 2px;padding:0 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--gr-muted)}
@media (min-width:800px){.gr-app--collapsed .gr-side__group{margin-top:8px;padding-top:8px}}
/* Tutorials / Help Docs list */
.gr-article-list{list-style:none;margin:0;padding:0}
.gr-article-list li{padding:16px 20px;border-bottom:1px solid var(--gr-line-soft);display:flex;flex-direction:column;gap:4px}
.gr-article-list li:last-child{border-bottom:0}
.gr-article-list p{margin:0;font-size:14px}
.gr-article-list__title{font-weight:600;font-size:17px;color:var(--gr-ink)!important;text-decoration:none;line-height:1.35}
.gr-article-list__title:hover{text-decoration:underline}
.gr-rail-list--read a{flex-direction:column;gap:0}

/* Progress (step 4) */
.gr-progress{height:6px;border-radius:3px;background:var(--gr-line-soft);overflow:hidden}
.gr-progress span{display:block;height:100%;background:var(--gr-green);border-radius:3px}
.gr-class-progress{display:flex;flex-direction:column;gap:6px;margin:4px 0 8px}
.gr-class-card .gr-class-progress{margin:0 0 4px}
.gr-step--done{background:var(--gr-green);color:var(--gr-on-solid)}
.gr-lesson__actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.gr-done-btn{gap:8px}
.gr-done-btn .gr-icon{color:var(--gr-muted)}
.gr-done-btn.is-on{background:var(--gr-green-soft);border-color:var(--gr-green-line);color:var(--gr-green)!important}
.gr-done-btn.is-on .gr-icon{color:var(--gr-green)}
.gr-resume{margin:8px 0 0;font-size:13px;color:var(--gr-muted)}
.gr-linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--gr-blue);text-decoration:underline;cursor:pointer}
/* Save button */
.gr-meta__end{display:inline-flex;align-items:center;gap:6px}
.gr-save{display:inline-flex;align-items:center;gap:6px;min-height:32px;min-width:32px;justify-content:center;padding:0 8px;border:1px solid transparent;border-radius:8px;background:none;color:var(--gr-muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.gr-save:hover{background:var(--gr-hover);color:var(--gr-ink)}
.gr-save.is-on{color:var(--gr-blue)}
.gr-save.is-on svg{fill:currentColor}

/* Discussions (step 5) */
.gr-discussion-card{padding:20px 22px}
.gr-discussion__title{font-size:17px!important;margin-bottom:14px!important}
.gr-discussion{display:flex;flex-direction:column;gap:16px}
.gr-composer{display:flex;flex-direction:column;gap:8px}
.gr-composer textarea,.gr-edit textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--gr-field);border-radius:10px;font:inherit;font-size:15px;line-height:1.5;resize:vertical;background:var(--gr-surface);color:var(--gr-ink)}
.gr-composer textarea:focus,.gr-edit textarea:focus{outline:2px solid var(--gr-blue);outline-offset:0;border-color:var(--gr-blue)}
.gr-composer__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.gr-composer__error{margin:0;color:var(--gr-danger);font-size:13px}
.gr-composer--reply{margin:10px 0 0 40px}
.gr-threads{display:flex;flex-direction:column}
.gr-thread{padding:16px 0;border-top:1px solid var(--gr-line-soft)}
.gr-thread__replies{margin-left:40px;display:flex;flex-direction:column}
.gr-thread__replies:not(:empty){margin-top:10px;padding-left:14px;border-left:2px solid var(--gr-line-soft)}
.gr-reply{display:flex;gap:12px;padding:6px 0;scroll-margin-top:80px}
.gr-reply.is-target{background:var(--gr-blue-soft);border-radius:8px;box-shadow:0 0 0 6px var(--gr-blue-soft)}
.gr-reply.is-hidden{opacity:.6}
.gr-reply.is-pinned>.gr-reply__main{border-left:3px solid var(--gr-green);padding-left:10px}
.gr-reply__main{flex:1 1 auto;min-width:0}
.gr-reply__head{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px}
.gr-reply__time{font-size:13px;text-decoration:none}
.gr-reply__body{margin-top:2px;font-size:15px;overflow-wrap:anywhere}
.gr-reply__body p{margin:0 0 8px}
.gr-reply__body p:last-child{margin-bottom:0}
.gr-reply__body pre{margin:8px 0}
.gr-reply__body code{font-family:var(--gr-mono);font-size:13px}
.gr-reply__body :not(pre)>code{background:var(--gr-tint);padding:1px 5px;border-radius:4px}
.gr-reply__actions{display:flex;flex-wrap:wrap;gap:2px;margin-top:4px;margin-left:-8px}
.gr-act{min-height:32px;padding:0 8px;border:0;border-radius:6px;background:none;color:var(--gr-muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.gr-act:hover{background:var(--gr-hover);color:var(--gr-ink)}
.gr-act.is-on{color:var(--gr-blue)}
.gr-act.is-danger{color:var(--gr-danger)}
.gr-act__count:empty{display:none}
.gr-edit{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.gr-badge--staff{background:var(--gr-solid);color:var(--gr-on-solid);font-size:11px;padding:1px 7px}
.gr-badge--answer{background:var(--gr-green-soft);color:var(--gr-green)}
.gr-badge--hidden{background:var(--gr-amber-bg);color:var(--gr-amber)}
.gr-discussion__empty{margin:0}
.gr-post__talk{display:inline-flex;align-items:center;gap:8px;min-height:32px;font-size:13px;font-weight:600;color:var(--gr-ink-2)!important;text-decoration:none;align-self:flex-start}
.gr-post__talk:hover{color:var(--gr-blue)!important}
.gr-faces{display:inline-flex}
.gr-avatar--xs{flex:0 0 22px;width:22px;height:22px;font-size:9px;border:2px solid var(--gr-surface);margin-left:-6px}
.gr-faces .gr-avatar--xs:first-child{margin-left:0}
.gr-check{display:flex;gap:8px;align-items:flex-start;font-size:15px}
.gr-check input{margin-top:4px;width:16px;height:16px}
@media (max-width:600px){.gr-thread__replies,.gr-composer--reply{margin-left:12px}}
/* Button states (explicit, so no theme rule can change them) */
.gr-app button{-webkit-tap-highlight-color:transparent}
.gr-btn:hover,.gr-btn:focus{background:var(--gr-hover);border-color:var(--gr-hover-line);color:var(--gr-ink)!important}
.gr-btn--primary:hover,.gr-btn--primary:focus{background:var(--gr-accent-hover);border-color:var(--gr-accent-hover);color:var(--gr-on-accent)!important}
.gr-done-btn.is-on:hover,.gr-done-btn.is-on:focus{background:var(--gr-green-soft);border-color:var(--gr-green-line);color:var(--gr-green)!important}
.gr-btn:active{transform:translateY(1px)}
.gr-tabs__list button:hover{background:none;color:var(--gr-ink)}
.gr-tabs__list button:focus{background:none;outline:none}
.gr-tabs__list button:focus-visible{outline:2px solid var(--gr-blue);outline-offset:-2px;border-radius:6px 6px 0 0}
.gr-tabs__list button[aria-selected="true"]:hover{color:var(--gr-blue-dark)}
.gr-chip:hover{border-color:var(--gr-hover-line);color:var(--gr-ink)!important}
.gr-chip.is-on:hover{background:var(--gr-solid);color:var(--gr-on-solid)!important}
.gr-save:focus,.gr-act:focus,.gr-side__toggle:focus,.gr-linkbtn:focus{background:none}
.gr-save:focus-visible,.gr-act:focus-visible,.gr-side__toggle:focus-visible{background:var(--gr-hover)}
.gr-linkbtn:hover{background:none;color:var(--gr-blue-dark)}
.gr-save:hover,.gr-act:hover,.gr-side__toggle:hover{background:var(--gr-hover);color:var(--gr-ink)}
.gr-save.is-on:hover,.gr-act.is-on:hover{color:var(--gr-blue-dark)}
/* "In this post": stays in view and marks the section you're reading */
@media (min-width:800px){.gr-rail-box--sticky{position:sticky;top:calc(var(--gr-top) + 24px);max-height:calc(100vh - var(--gr-top) - 48px);overflow-y:auto}}
.gr-outline a{color:var(--gr-ink-2)!important;text-decoration:none;display:block;padding:2px 0}
.gr-outline a:hover{color:var(--gr-blue)!important}
.gr-outline a.is-current{color:var(--gr-blue-dark)!important;font-weight:600}
.gr-outline__extra{margin-top:4px;padding-top:6px;border-top:1px solid var(--gr-line-soft);list-style:none;margin-left:-18px}
.gr-prose h2[id],.gr-prose h3[id],#discussion{scroll-margin-top:calc(var(--gr-top) + 20px)}
@media (min-width:800px){.gr-col-rail--sticky{align-self:stretch}}

/* ---- Labs ---- */
.gr-head__text{display:flex;flex-direction:column;gap:6px;max-width:640px}
.gr-chips--small .gr-chip{min-height:32px;font-size:13px}
.gr-stage{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.5;white-space:nowrap;background:var(--gr-tint);color:var(--gr-ink-2)}
.gr-stage--progress{background:var(--gr-blue-soft);color:var(--gr-blue-dark)}
.gr-stage--testing{background:var(--gr-amber-soft);color:var(--gr-amber)}
.gr-stage--shipped{background:var(--gr-green-soft);color:var(--gr-green)}
.gr-timeline .gr-stage{padding:0 6px;font-size:11px}
.gr-lab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
@media (max-width:420px){.gr-lab-grid{grid-template-columns:1fr}}
.gr-lab-card{padding:20px;display:flex;flex-direction:column;gap:12px}
.gr-lab-card__top{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px}
.gr-lab-card__title{font-size:18px!important;line-height:1.3}
.gr-lab-card__title a{color:var(--gr-ink)!important;text-decoration:none}
.gr-lab-card__title a:hover{color:var(--gr-blue)!important}
.gr-lab-card__sum{margin:0;font-size:14px;color:var(--gr-ink-2)}
.gr-lab-card__stats{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--gr-muted)}
.gr-lab-card__stats span{display:inline-flex;align-items:center;gap:6px}
.gr-lab-card__foot{margin-top:auto;padding-top:4px;display:flex;align-items:center;gap:12px}
.gr-lab-card .gr-link-lock{color:var(--gr-amber)!important}
.gr-lab-you{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:13px;font-weight:600;color:var(--gr-green)}
.gr-rail-box .gr-lab-you{font-size:14px}
.gr-lab-you--follow{color:var(--gr-blue-dark)}
.gr-col-main--lab{max-width:780px;gap:20px}
.gr-lab{padding:28px 32px;display:flex;flex-direction:column;gap:16px}
.gr-lab h1{font-size:30px;letter-spacing:-.02em}
.gr-lab__lede{margin:0;font-size:17px;color:var(--gr-ink-2)}
@media (max-width:600px){.gr-lab{padding:20px}.gr-lab h1{font-size:24px}}
.gr-stages{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.gr-stages__step{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--gr-muted)}
.gr-stages__bar{display:block;height:6px;border-radius:3px;background:var(--gr-line)}
.gr-stages__step.is-done{color:var(--gr-ink-2)}
.gr-stages__step.is-done .gr-stages__bar,.gr-stages__step.is-current .gr-stages__bar{background:var(--gr-blue)}
.gr-stages__step.is-current{font-weight:600;color:var(--gr-blue-dark)}
.gr-lab-ask{background:var(--gr-blue-soft);border-radius:10px;padding:16px 18px;display:flex;flex-direction:column;gap:6px;color:var(--gr-blue-dark)}
.gr-lab-ask h2{font-size:15px!important;color:var(--gr-blue-dark)!important}
.gr-lab-ask ul{margin:0;padding-left:20px;font-size:14px;display:flex;flex-direction:column;gap:2px}
.gr-poll{border:1px solid var(--gr-line);border-radius:10px;padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.gr-poll h2{font-size:15px!important}
.gr-poll__opts{display:flex;flex-direction:column;gap:8px}
.gr-app .gr-poll__opt{position:relative;overflow:hidden;display:flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;text-align:left;border-radius:8px;border:1px solid var(--gr-field);background:var(--gr-surface);color:var(--gr-ink);font:inherit;font-size:14px;cursor:pointer}
.gr-poll__opt::before{content:"";position:absolute;inset:0 auto 0 0;width:var(--gr-pct,0%);background:var(--gr-tint);border-radius:8px;transition:width .3s ease}
.gr-poll__opt.is-mine{border-color:var(--gr-blue)}
.gr-poll__opt.is-mine::before{background:var(--gr-blue-soft-2)}
.gr-app .gr-poll__opt:hover,.gr-app .gr-poll__opt:focus{background:var(--gr-surface);border-color:var(--gr-hover-line);color:var(--gr-ink)}
.gr-app .gr-poll__opt.is-mine:hover{border-color:var(--gr-blue-dark)}
.gr-poll__opt>span{position:relative}
.gr-poll__label{font-weight:600}
.gr-poll__mine{display:none;font-size:12px;font-weight:600;color:var(--gr-blue-dark)}
.gr-poll__opt.is-mine .gr-poll__mine{display:inline}
.gr-poll__pct{margin-left:auto;font-size:13px;color:var(--gr-ink-2)}
.gr-poll__hint{margin:0}
.gr-poll.is-busy{opacity:.7}
.gr-lab-notes,.gr-lab-updates{padding:22px 24px;display:flex;flex-direction:column;gap:14px}
.gr-lab-notes h2,.gr-lab-updates h2{font-size:18px}
.gr-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.gr-timeline li{display:flex;gap:14px;padding:12px 0;border-top:1px solid var(--gr-line-soft)}
.gr-timeline__date{flex:0 0 72px;font-size:13px;color:var(--gr-muted)}
.gr-timeline__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}
.gr-timeline__head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.gr-timeline p{margin:0;font-size:14px;color:var(--gr-ink-2)}
.gr-lab-testers{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--gr-ink-2)}
.gr-lab-testers .gr-avatar--xs{flex-basis:28px;width:28px;height:28px;font-size:10px;margin-left:-8px}
.gr-lab-testers .gr-avatar--xs:first-child{margin-left:0}
.gr-builds{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.gr-build{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--gr-line);border-radius:10px;text-decoration:none;color:var(--gr-ink)!important}
.gr-build:hover{border-color:var(--gr-hover-line);background:var(--gr-hover)}
.gr-build__ext{flex:0 0 36px;height:36px;border-radius:8px;background:var(--gr-tint);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;color:var(--gr-ink-2)}
.gr-build__text{display:flex;flex-direction:column;line-height:1.35;min-width:0;font-size:14px}
.gr-build__text .gr-muted{font-size:13px}
.gr-build__go{margin-left:auto;font-weight:600;font-size:14px;color:var(--gr-blue)}
.gr-rail-box .gr-linkbtn{align-self:flex-start;min-height:32px;color:var(--gr-muted)}
.gr-follow{gap:6px;min-height:40px}
.gr-app .gr-follow.is-on{border-color:var(--gr-blue);background:var(--gr-blue-soft);color:var(--gr-blue-dark)!important}
.gr-follow.is-on svg{fill:currentColor}
.gr-rail-box--plain{padding:4px}
.gr-rail-box--plain a{font-size:14px;text-decoration:none}

/* Paywall buttons inside the app keep their own colors. */
.gr-app a.gr-plan__button--primary,.gr-app a.gr-plan__button--primary:hover{color:#1A0E00}
.gr-app a.gr-inline-lock__btn{color:#1A0E00}


/* ==== Low orbit frame (shared by every members page) ==== */
.gr-app :focus-visible{outline-color:var(--gr-accent)}
.gr-main{background:var(--gr-glow),var(--gr-bg);padding:40px clamp(20px,4vw,52px) 64px}
.gr-app .gr-card,.gr-app .gr-empty{background:var(--gr-surface);border-color:var(--gr-line)}
.gr-app .gr-empty{border-color:var(--gr-dash)}

/* Sidebar: cockpit */
.gr-side{background:linear-gradient(180deg,#071226,#02030A 70%);border-right:1px solid rgba(124,203,255,.18);padding:22px 16px;gap:0}
.gr-side .gr-icon{opacity:.85}
.gr-brand{color:#FFFFFF!important}
.gr-brand__mark{width:40px;height:40px;flex:0 0 40px;border-radius:0;background:none;animation:gr-hover 4s ease-in-out infinite}
.gr-brand__name{font-family:var(--gr-display);font-weight:900;font-size:21px;letter-spacing:.04em;text-transform:uppercase;line-height:1}
@keyframes gr-hover{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media (prefers-reduced-motion:reduce){.gr-brand__mark{animation:none}}
.gr-side__top{padding-bottom:18px}
.gr-side__group{border-top:0;margin-top:18px;padding-top:0;gap:2px}
.gr-side__group--main{margin-top:0}
.gr-side__label{padding:0 10px 8px;font-family:var(--gr-mono);font-size:11px;font-weight:400;letter-spacing:.18em;color:var(--gr-muted)}
.gr-nav{position:relative;gap:12px;min-height:42px;padding:0 10px;border-radius:6px;font-size:15px;color:var(--gr-ink-2)!important}
.gr-nav:hover{background:var(--gr-hover);color:#FFFFFF!important}
.gr-nav.is-active{background:rgba(124,203,255,.10);color:#FFFFFF!important;font-weight:600}
.gr-nav.is-active .gr-icon{color:var(--gr-blue);opacity:1}
.gr-nav__dot{margin-left:auto;width:8px;height:8px;flex:0 0 8px;border-radius:50%;opacity:0}
.gr-nav.is-active .gr-nav__dot{opacity:1;background:var(--gr-accent);box-shadow:0 0 10px var(--gr-accent)}
.gr-side__toggle{color:var(--gr-muted)}
.gr-side__toggle:hover,.gr-side__toggle:focus-visible{background:var(--gr-hover);color:#FFFFFF}
.gr-side__foot{gap:12px;padding-top:22px}

/* Light / dark switch */
.gr-mode{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid rgba(220,227,238,.18);border-radius:999px;background:transparent;color:var(--gr-ink-2);font:inherit;font-size:13px;cursor:pointer}
.gr-mode:hover,.gr-mode:focus{background:transparent;border-color:var(--gr-blue);color:#FFFFFF}
.gr-mode__moon,.gr-mode__text--dark{display:none}
html[data-theme="light"] .gr-mode__sun,html[data-theme="light"] .gr-mode__text--light{display:none}
html[data-theme="light"] .gr-mode__moon,html[data-theme="light"] .gr-mode__text--dark{display:inline}
html[data-theme="light"] .gr-mode__moon{display:block}

/* Member card with the plan's orbit badge */
.gr-member{padding:12px;border:1px solid rgba(124,203,255,.22);border-radius:10px;background:#070B16}
.gr-member__row{gap:12px}
.gr-member__name{color:#FFFFFF;font-size:15px}
.gr-member__plan{font-family:var(--gr-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#DCE3EE}
.gr-member__plan--insider{color:#7CCBFF}
.gr-member__plan--insider_plus,.gr-member__plan--elite,.gr-member__plan--staff{color:#FFC27A}
.gr-member__up{color:var(--gr-blue)!important}
.gr-member__up:hover{color:#FFFFFF!important}
.gr-orbit{flex:0 0 40px}
.gr-orbit__ring{fill:none;stroke:rgba(124,203,255,.4);stroke-dasharray:2 3}
.gr-orbit__core{fill:#7CCBFF}
.gr-orbit__sat{fill:#FFC27A}
.gr-member--guest{color:var(--gr-ink-2)}
.gr-side .gr-btn{background:transparent;border-color:rgba(220,227,238,.24);color:#FFFFFF!important}
.gr-side .gr-btn:hover,.gr-side .gr-btn:focus{background:var(--gr-hover);border-color:var(--gr-blue)}
.gr-side .gr-btn--primary,.gr-side .gr-btn--primary:hover,.gr-side .gr-btn--primary:focus{background:var(--gr-accent);border-color:var(--gr-accent);color:var(--gr-on-accent)!important}

@media (min-width:800px){
	.gr-app--collapsed .gr-side{flex-basis:76px;padding:22px 12px}
	.gr-app--collapsed .gr-nav__dot{position:absolute;right:4px;top:50%;margin-top:-3px;width:6px;height:6px}
	.gr-app--collapsed .gr-mode{align-self:center;padding:0;width:40px;justify-content:center}
	.gr-app--collapsed .gr-member{background:none}
}

/* Page headers: mono eyebrow + big display title, like the public pages */
.gr-kicker{margin:0;font-family:var(--gr-mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gr-blue)}
.gr-head{gap:18px;align-items:flex-end}
.gr-head--stack{gap:10px;align-items:flex-start}
.gr-head__text{gap:10px}
.gr-app .gr-main h1{font-family:var(--gr-display);font-weight:800;font-size:clamp(32px,4vw,44px)!important;line-height:1;letter-spacing:0;text-transform:uppercase}
.gr-app .gr-head h1{font-family:var(--gr-display);font-weight:900;font-size:clamp(44px,6vw,64px)!important;line-height:.95;letter-spacing:0;text-transform:uppercase}
.gr-app .gr-lede{margin:0;font-size:17px;color:var(--gr-ink-2);max-width:640px}
.gr-page{gap:26px}
.gr-col-main{gap:18px}
.gr-app h2,.gr-app h3{letter-spacing:-.01em}
.gr-eyebrow{font-family:var(--gr-mono);font-size:11px!important;font-weight:400;letter-spacing:.18em!important;color:var(--gr-muted)!important}

/* Chips: outlined pills, lit when on */
.gr-chip{min-height:40px;padding:0 16px;border-color:var(--gr-line);background:transparent;color:var(--gr-ink-2)!important}
.gr-chip:hover{border-color:var(--gr-hover-line);background:transparent}
.gr-chip.is-on,.gr-chip.is-on:hover{background:var(--gr-blue-soft);border-color:var(--gr-blue);color:var(--gr-heading)!important;font-weight:600}

/* Buttons and fields */
.gr-btn{border-radius:6px;background:transparent;border-color:var(--gr-field);color:var(--gr-heading)!important}
.gr-btn:hover,.gr-btn:focus{background:var(--gr-hover);border-color:var(--gr-blue);color:var(--gr-heading)!important}
.gr-btn--primary{background:var(--gr-accent);border-color:var(--gr-accent);color:var(--gr-on-accent)!important;font-weight:700}
.gr-btn--primary:hover,.gr-btn--primary:focus{background:var(--gr-accent-hover);border-color:var(--gr-accent-hover);color:var(--gr-on-accent)!important}
.gr-search{background:var(--gr-surface);border-color:var(--gr-field)}
.gr-search:focus-within{border-color:var(--gr-blue)}
.gr-search input::placeholder{color:var(--gr-muted)}

/* Plan tags: same as the Join page plan cards */
.gr-badge{padding:3px 9px;border:1px solid currentColor;background:transparent!important;font-family:var(--gr-mono);font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase}
.gr-badge--public,.gr-badge--free{color:var(--gr-ink-2);border-color:var(--gr-field)}
.gr-badge--insider{color:var(--gr-blue)}
.gr-badge--insider_plus,.gr-badge--elite{color:var(--gr-amber)}
.gr-badge--staff{color:var(--gr-amber);font-size:10px;padding:1px 7px}
.gr-badge--answer{color:var(--gr-green)}
.gr-badge--hidden{color:var(--gr-amber)}

/* Phones: the sidebar becomes a top bar with a menu button */
.gr-side__toggle-phone{display:none}
@media (max-width:799px){
	.gr-side{position:sticky;top:0;z-index:30;padding:10px 16px;border-right:0;border-bottom:1px solid rgba(124,203,255,.18);background:#050A16}
	.gr-side__top{padding-bottom:0}
	.gr-side__toggle{display:inline-flex;width:44px;height:44px}
	.gr-side__toggle-desk{display:none}
	.gr-side__toggle-phone{display:block}
	.gr-app:not(.gr-app--menu) .gr-side > :not(.gr-side__top){display:none}
	.gr-app--menu .gr-side{max-height:100vh;overflow-y:auto;padding-bottom:20px}
	.gr-app--menu .gr-side__group--main{margin-top:14px}
	.gr-main{padding:28px 16px 48px}
}

/* ==== Classrooms ==== */
/* Continue your mission */
.gr-mission{display:flex;flex-wrap:wrap;align-items:center;gap:20px 24px;padding:22px 26px;border:1px solid rgba(124,203,255,.28);border-radius:12px;background:linear-gradient(180deg,#071226,#02030A);color:#DCE3EE}
.gr-mission .gr-ring{flex:0 0 64px}
.gr-mission .gr-ring__track{stroke:rgba(220,227,238,.14)}
.gr-mission .gr-ring__arc{stroke:#7CCBFF}
.gr-mission__text{flex:1 1 280px;min-width:0;display:flex;flex-direction:column;gap:4px}
.gr-mission__eyebrow{margin:0;font-family:var(--gr-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#8C97AA}
.gr-app .gr-mission__title{font-family:var(--gr-display);font-weight:800;font-size:28px;line-height:1.05;text-transform:uppercase;letter-spacing:0;color:#FFFFFF}
.gr-mission__next{margin:0;font-size:15px;color:#B9C3D3}
.gr-app .gr-mission__go{min-height:48px;padding:0 24px}

/* Orbit progress ring */
.gr-ring{flex:0 0 auto}
.gr-ring__track{fill:none;stroke:var(--gr-line);stroke-width:3}
.gr-ring__arc{fill:none;stroke:var(--gr-blue);stroke-width:3;stroke-linecap:round}
.gr-mission .gr-ring__track,.gr-mission .gr-ring__arc{stroke-width:4}

/* Class cards */
.gr-grid--classes{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.gr-class-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--gr-line);border-radius:12px;background:var(--gr-surface);transition:border-color .15s,transform .15s}
.gr-class-card:hover{border-color:var(--gr-blue-soft-2);transform:translateY(-2px)}
@media (prefers-reduced-motion:reduce){.gr-class-card{transition:none}.gr-class-card:hover{transform:none}}
.gr-app .gr-cover{position:relative;display:block;height:150px;overflow:hidden;background:
	radial-gradient(circle at 20% 30%,rgba(255,255,255,.35) 0 1px,transparent 2px),
	radial-gradient(circle at 70% 20%,rgba(255,255,255,.3) 0 1px,transparent 2px),
	radial-gradient(circle at 85% 70%,rgba(255,255,255,.25) 0 1px,transparent 2px),
	radial-gradient(circle at 40% 80%,rgba(255,255,255,.2) 0 1px,transparent 2px),
	radial-gradient(circle at 55% 45%,rgba(255,255,255,.18) 0 1px,transparent 2px),
	linear-gradient(180deg,#071226,#02030A)}
.gr-cover img{display:block;width:100%;height:100%;object-fit:cover}
.gr-planet{position:absolute;inset:0}
.gr-planet__body{position:absolute;right:26px;top:26px;width:92px;height:92px;border-radius:50%;background:radial-gradient(circle at 32% 30%,hsl(var(--gr-hue) 80% 72%),hsl(var(--gr-hue) 55% 38%) 55%,hsl(var(--gr-hue) 60% 14%) 100%);box-shadow:0 0 40px hsla(var(--gr-hue),80%,60%,.35);transition:transform .4s ease}
.gr-planet__ring{display:none;position:absolute;right:2px;top:60px;width:140px;height:26px;border-radius:50%;border:2px solid rgba(255,194,122,.55);transform:rotate(-14deg)}
.gr-planet.has-ring .gr-planet__ring{display:block}
.gr-planet__moon{position:absolute;right:136px;top:34px;width:12px;height:12px;border-radius:50%;background:#DCE3EE;opacity:.8}
.gr-planet__stars{position:absolute;left:14px;top:12px;font-family:var(--gr-mono);font-size:11px;letter-spacing:.12em;color:#FFC27A}
.gr-class-card:hover .gr-planet__body{transform:scale(1.04)}
@media (prefers-reduced-motion:reduce){.gr-planet__body{transition:none}.gr-class-card:hover .gr-planet__body{transform:none}}
.gr-class-card__body{flex:1;display:flex;flex-direction:column;gap:10px;padding:18px 18px 16px}
.gr-class-card__meta{display:flex;align-items:center;justify-content:space-between;gap:8px}
.gr-class-card__level{font-family:var(--gr-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gr-muted)}
.gr-app .gr-class-card__title{font-family:var(--gr-display);font-weight:800;font-size:24px;line-height:1.05;letter-spacing:0;text-transform:uppercase}
.gr-class-card__title a{color:var(--gr-heading)!important;text-decoration:none}
.gr-class-card__title a:hover{color:var(--gr-blue)!important}
.gr-class-card__blurb{margin:0;font-size:14px;line-height:1.5;color:var(--gr-ink-2)}
.gr-class-card__foot{margin-top:auto;padding-top:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--gr-line-soft)}
.gr-class-card__progress{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--gr-ink-2)}
.gr-class-card__progress .gr-icon{color:var(--gr-amber)}
.gr-class-card__go{display:inline-flex;align-items:center;min-height:44px;font-weight:600;font-size:14px;text-decoration:none;color:var(--gr-blue)!important;white-space:nowrap}
.gr-class-card__go:hover{color:var(--gr-blue-dark)!important}
.gr-class-card__go.gr-link-lock{color:var(--gr-amber)!important}
.gr-class-card.is-locked .gr-planet{filter:saturate(.55) brightness(.8)}

.gr-ring.is-empty .gr-ring__arc{display:none}

/* ==== Feed ==== */
.gr-post{gap:12px;padding:22px 24px;border-radius:12px;transition:border-color .15s}
.gr-post:hover{border-color:var(--gr-blue-soft-2)}
.gr-post .gr-meta{gap:10px;font-size:13px}
.gr-post .gr-avatar--host{background:var(--gr-avatar-bg);color:var(--gr-blue);box-shadow:0 0 0 1px var(--gr-blue-soft-2)}
.gr-meta__who{color:var(--gr-heading)}
.gr-kind,.gr-meta__when{font-family:var(--gr-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gr-muted)}
.gr-kind{color:var(--gr-blue)}
.gr-kind--live{display:inline-flex;align-items:center;gap:6px;color:#FF8A80}
.gr-kind--live::before{content:"";width:7px;height:7px;border-radius:50%;background:#FF6B5E;box-shadow:0 0 8px #FF6B5E}
html[data-theme="light"] .gr-kind--live{color:#B3261E}
.gr-kind--announcements{color:var(--gr-amber)}
.gr-post--announcements{border-color:rgba(255,194,122,.35)}
html[data-theme="light"] .gr-post--announcements{border-color:rgba(190,110,25,.4)}
.gr-app .gr-post__title{font-family:var(--gr-display);font-weight:800;font-size:28px!important;line-height:1.05;letter-spacing:0;text-transform:uppercase}
.gr-post__title a{color:var(--gr-heading)!important}
.gr-post__title a:hover{color:var(--gr-blue)!important;text-decoration:none}
.gr-post__excerpt{font-size:15px;line-height:1.6}
.gr-post__talk{color:var(--gr-blue)!important}
.gr-post__talk:hover{color:var(--gr-blue-dark)!important}
.gr-lock{background:var(--gr-amber-bg);border:1px solid rgba(255,194,122,.25)}
html[data-theme="light"] .gr-lock{border-color:rgba(190,110,25,.25)}
.gr-save.is-on{color:var(--gr-amber)}

/* Pager: same buttons as the public site */
.gr-pager{justify-content:center;gap:10px;padding-top:8px}
.gr-pager a{min-height:44px;padding:0 18px;border:1px solid var(--gr-field);border-radius:6px;color:var(--gr-heading)!important;font-size:14px}
.gr-pager a:hover{border-color:var(--gr-blue);background:var(--gr-hover)}

/* Right rail */
.gr-rail-box{border-radius:12px}
.gr-app .gr-rail-box--mission{border-color:rgba(124,203,255,.28);background:linear-gradient(180deg,#071226,#02030A);
	--gr-heading:#FFFFFF; --gr-ink:#DCE3EE; --gr-ink-2:#B9C3D3; --gr-muted:#8C97AA; --gr-blue:#7CCBFF; --gr-line:rgba(220,227,238,.14)}
.gr-rail-box--mission .gr-rail-box__title{font-family:var(--gr-display);font-weight:800;font-size:22px;line-height:1.05;text-transform:uppercase;color:#FFFFFF!important}
.gr-rail-box--mission .gr-rail-box__title:hover{color:#7CCBFF!important}
.gr-rail-box--mission .gr-muted{color:#B9C3D3}
.gr-rail-box__progress{display:flex;align-items:center;gap:10px;font-size:13px;color:#B9C3D3}
.gr-rail-list{gap:12px;padding:4px 2px}
.gr-rail-list a{color:var(--gr-ink)!important;line-height:1.4}
.gr-rail-list a:hover{color:var(--gr-blue)!important}
.gr-rail-list .gr-mono{font-size:11px;letter-spacing:.1em;color:var(--gr-muted)}
.gr-rail-list--read .gr-small{font-family:var(--gr-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gr-muted)}

/* ==== Vault ==== */
.gr-app .gr-manifest{border-radius:12px;overflow:hidden}
.gr-table th,.gr-table td{padding:14px 20px;border-bottom-color:var(--gr-line-soft)}
.gr-table thead th{font-family:var(--gr-mono);font-size:11px;font-weight:400;letter-spacing:.16em;color:var(--gr-muted);background:var(--gr-hover)}
.gr-table tbody tr{transition:background .12s}
.gr-table tbody tr:hover{background:var(--gr-hover)}
.gr-table tbody th a{color:var(--gr-heading)!important;font-size:15px}
.gr-table tbody th a:hover{color:var(--gr-blue)!important}
.gr-table td.gr-muted a{color:var(--gr-ink-2)}
.gr-table__action a{color:var(--gr-blue)!important}
.gr-table__action a.gr-link-lock{color:var(--gr-amber)!important}
.gr-tag{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;background:var(--gr-tint);color:var(--gr-ink-2)}
.gr-tag--php,.gr-tag--js,.gr-tag--css{background:rgba(124,203,255,.12);color:var(--gr-blue)}
.gr-tag--json,.gr-tag--form{background:rgba(123,216,160,.12);color:var(--gr-green)}
.gr-tag--kit,.gr-tag--zip,.gr-tag--template{background:var(--gr-amber-soft);color:var(--gr-amber)}
.gr-tag--guide,.gr-tag--pdf{background:rgba(196,160,255,.14);color:#C9B0FF}
html[data-theme="light"] .gr-tag--guide,html[data-theme="light"] .gr-tag--pdf{background:#F1EAFE;color:#5B3BA6}
/* Code panel: always dark, copy button readable on it */
.gr-code{border:1px solid rgba(124,203,255,.18)}
.gr-code__bar{border-bottom:1px solid rgba(220,227,238,.08)}
.gr-code__bar .gr-mono{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#8C97AA}
.gr-app .gr-code .gr-btn{background:transparent;border-color:rgba(220,227,238,.28);color:#FFFFFF!important}
.gr-app .gr-code .gr-btn:hover,.gr-app .gr-code .gr-btn:focus{border-color:#7CCBFF;background:rgba(124,203,255,.1)}
.gr-app .gr-tag{font-weight:500;font-size:11px}
.gr-app .gr-tag--php,.gr-app .gr-tag--js,.gr-app .gr-tag--css{background:rgba(124,203,255,.16);color:#9AD7FF}
.gr-app .gr-tag--json,.gr-app .gr-tag--form{background:rgba(123,216,160,.16);color:#8FE3B0}
.gr-app .gr-tag--kit,.gr-app .gr-tag--zip,.gr-app .gr-tag--template{background:rgba(255,194,122,.16);color:#FFCF94}
.gr-app .gr-tag--guide,.gr-app .gr-tag--pdf{background:rgba(196,160,255,.18);color:#D6C2FF}
html[data-theme="light"] .gr-app .gr-tag--php,html[data-theme="light"] .gr-app .gr-tag--js,html[data-theme="light"] .gr-app .gr-tag--css{background:#E8F0F9;color:#124B80}
html[data-theme="light"] .gr-app .gr-tag--json,html[data-theme="light"] .gr-app .gr-tag--form{background:#E6F3EA;color:#1E6B3A}
html[data-theme="light"] .gr-app .gr-tag--kit,html[data-theme="light"] .gr-app .gr-tag--zip,html[data-theme="light"] .gr-app .gr-tag--template{background:#FDF0DE;color:#8A4A08}
html[data-theme="light"] .gr-app .gr-tag--guide,html[data-theme="light"] .gr-app .gr-tag--pdf{background:#F1EAFE;color:#5B3BA6}

/* ==== Labs ==== */
.gr-lab-card{border-radius:12px;padding:22px;transition:border-color .15s,transform .15s}
.gr-lab-card:hover{border-color:var(--gr-blue-soft-2);transform:translateY(-2px)}
@media (prefers-reduced-motion:reduce){.gr-lab-card{transition:none}.gr-lab-card:hover{transform:none}}
.gr-app .gr-lab-card__title{font-family:var(--gr-display);font-weight:800;font-size:26px!important;line-height:1.05;letter-spacing:0;text-transform:uppercase}
.gr-lab-card__title a{color:var(--gr-heading)!important}
.gr-lab-card__top{font-family:var(--gr-mono);font-size:11px;letter-spacing:.06em}
.gr-lab-card__top .gr-badge{margin-left:auto}
.gr-lab-card__foot{border-top:1px solid var(--gr-line-soft);padding-top:12px}
/* Stage pills = status lights */
.gr-stage{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border:1px solid currentColor;background:transparent!important;font-family:var(--gr-mono);font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--gr-muted)}
.gr-stage::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.gr-stage--progress{color:var(--gr-blue)}
.gr-stage--testing{color:var(--gr-amber)}
.gr-stage--testing::before{box-shadow:0 0 8px currentColor}
.gr-stage--shipped{color:var(--gr-green)}
/* Lab page */
.gr-app .gr-lab{border-radius:12px}
.gr-stages__bar{height:4px;background:var(--gr-line)}
.gr-stages__step.is-done .gr-stages__bar{background:var(--gr-blue)}
.gr-stages__step.is-current .gr-stages__bar{background:var(--gr-accent);box-shadow:0 0 10px var(--gr-accent)}
.gr-stages__step{font-family:var(--gr-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.gr-stages__step.is-current{color:var(--gr-amber)}
.gr-lab-ask{border:1px solid rgba(124,203,255,.25);color:var(--gr-ink)}
.gr-app .gr-lab-ask h2{color:var(--gr-blue)!important;font-family:var(--gr-mono);font-size:11px!important;font-weight:400;letter-spacing:.16em;text-transform:uppercase}
.gr-poll{border-radius:12px}
.gr-poll__opt::before{background:var(--gr-blue-soft)}
.gr-poll__opt.is-mine::before{background:var(--gr-blue-soft-2)}
.gr-poll__mine{color:var(--gr-amber)}
.gr-lab-you{color:var(--gr-green)}
.gr-build{border-radius:10px}
.gr-build__ext{font-family:var(--gr-mono);text-transform:uppercase;letter-spacing:.06em}
.gr-app .gr-follow.is-on{border-color:var(--gr-blue);background:var(--gr-blue-soft);color:var(--gr-heading)!important}

/* ==== Sidebar account panel: who you are, appearance, help, log out ==== */
.gr-side__foot{padding-top:22px}
.gr-member{gap:10px;padding:10px}
.gr-member__row{display:flex;align-items:center;gap:12px;padding:6px;border-radius:8px;text-decoration:none;color:inherit!important}
.gr-member__row:hover{background:rgba(124,203,255,.08)}
.gr-member__row:hover .gr-member__name{color:#7CCBFF}
.gr-member__up{padding:0 6px}
.gr-mode,.gr-mode:hover,.gr-mode:focus{display:flex;align-self:stretch;width:auto;gap:3px;min-height:0;padding:3px;border:1px solid rgba(220,227,238,.14);border-radius:8px;background:#02030A}
.gr-app .gr-mode__opt{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 8px;border:0;border-radius:6px;background:transparent;color:#8C97AA;font:inherit;font-size:13px;cursor:pointer}
.gr-app .gr-mode__opt:hover,.gr-app .gr-mode__opt:focus{background:transparent;color:#FFFFFF}
.gr-app .gr-mode__opt[aria-pressed="true"],.gr-app .gr-mode__opt[aria-pressed="true"]:hover{background:rgba(124,203,255,.16);color:#FFFFFF;font-weight:600}
.gr-app .gr-mode__opt[aria-pressed="true"] .gr-icon{color:#FFC27A}
.gr-app .gr-mode__opt:focus-visible{outline:2px solid #FFC27A;outline-offset:1px}
.gr-member__links{display:flex;gap:4px;padding-top:8px;border-top:1px solid rgba(220,227,238,.08)}
.gr-member__link{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;border-radius:6px;color:#B9C3D3!important;font-size:13px;text-decoration:none}
.gr-member__link:hover,.gr-member__link:focus-visible{background:rgba(124,203,255,.08);color:#FFFFFF!important}
.gr-member--guest .gr-mode{margin-top:4px}
@media (min-width:800px){
	.gr-app--collapsed .gr-member{padding:6px 0;border:0;background:none;align-items:stretch}
	.gr-app--collapsed .gr-member__row{justify-content:center;padding:4px 0}
	.gr-app--collapsed .gr-mode,.gr-app--collapsed .gr-member__links{flex-direction:column}
	.gr-app--collapsed .gr-mode__opt{padding:0}
}

/* ==== Right rail lists: card, header with "See all", one clear row per item ==== */
.gr-app .gr-rail-box--list{gap:6px;padding:16px 10px 10px}
.gr-rail-box__head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px 4px}
.gr-rail-box__all{font-size:13px;font-weight:600;text-decoration:none;color:var(--gr-blue)!important}
.gr-rail-box__all:hover{color:var(--gr-blue-dark)!important}
.gr-rail-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.gr-rail-items li{margin:0}
.gr-rail-items li + li{border-top:1px solid var(--gr-line-soft)}
.gr-rail-item{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 8px;border-radius:8px;text-decoration:none;color:var(--gr-heading)!important}
.gr-rail-item:hover,.gr-rail-item:focus-visible{background:var(--gr-hover)}
.gr-rail-item .gr-tag{flex:0 0 46px;text-align:center;padding:3px 0}
.gr-rail-item__text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.gr-rail-item__title{flex:1 1 auto;min-width:0;font-size:14px;font-weight:500;line-height:1.35}
.gr-rail-item__meta{font-family:var(--gr-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gr-muted)}
.gr-rail-item__icon{flex:0 0 32px;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--gr-blue-soft);color:var(--gr-blue)}
.gr-rail-item__icon.is-doc{background:var(--gr-amber-soft);color:var(--gr-amber)}
.gr-rail-item__icon .gr-icon{opacity:1}
.gr-rail-item__go{flex:0 0 auto;color:var(--gr-muted);transition:transform .15s,color .15s}
.gr-rail-item:hover .gr-rail-item__go{color:var(--gr-blue);transform:translateX(2px)}
.gr-rail-item:hover .gr-rail-item__title{color:var(--gr-blue)}
@media (prefers-reduced-motion:reduce){.gr-rail-item__go{transition:none}}

/* ==== Member posts ==== */
.gr-share{padding:0;border-radius:12px;overflow:hidden}
.gr-share__open{display:flex;align-items:center;gap:12px;padding:14px 18px;cursor:pointer;list-style:none}
.gr-share__open::-webkit-details-marker{display:none}
.gr-share__open:hover{background:var(--gr-hover)}
.gr-share__prompt{flex:1 1 auto;color:var(--gr-muted);font-size:15px}
.gr-share[open] .gr-share__open{border-bottom:1px solid var(--gr-line-soft)}
.gr-share[open] .gr-share__open .gr-btn{display:none}
.gr-share__form{display:flex;flex-direction:column;gap:6px;padding:16px 18px 18px}
.gr-share__label{font-family:var(--gr-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gr-muted);margin-top:6px}
.gr-share__form input,.gr-share__form select,.gr-share__form textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--gr-field);border-radius:8px;background:var(--gr-bg);color:var(--gr-ink);font:inherit;font-size:15px}
.gr-share__form select{appearance:none;-webkit-appearance:none;padding-right:36px;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.gr-share__form textarea{resize:vertical;line-height:1.5}
.gr-share__form input:focus,.gr-share__form select:focus,.gr-share__form textarea:focus{outline:2px solid var(--gr-blue);outline-offset:0;border-color:var(--gr-blue)}
.gr-share__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}
.gr-share__foot .gr-small{flex:1 1 260px}
.gr-share-lock{margin:0;padding:12px 16px;border:1px dashed var(--gr-dash);border-radius:12px;font-size:14px;color:var(--gr-ink-2)}
.gr-share-lock a{font-weight:600;text-decoration:none}

/* ==== Members-only popup ==== */
.gr-lockbox{width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 32px);padding:30px 28px 24px;border:1px solid rgba(124,203,255,.3);border-radius:16px;background:linear-gradient(180deg,#071226,#02030A);color:#DCE3EE;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.6);font-family:var(--gr-body)}
.gr-lockbox::backdrop{background:rgba(2,3,10,.72);backdrop-filter:blur(3px)}
.gr-lockbox[open]{animation:gr-lockbox-in .18s ease-out}
@keyframes gr-lockbox-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.gr-lockbox[open]{animation:none}}
.gr-lockbox__close-form{position:absolute;top:10px;right:10px;margin:0}
.gr-app .gr-lockbox__close{width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:#8C97AA;font-size:24px;line-height:1;cursor:pointer}
.gr-app .gr-lockbox__close:hover,.gr-app .gr-lockbox__close:focus-visible{background:rgba(124,203,255,.1);color:#FFFFFF}
.gr-lockbox__badge{width:56px;height:56px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#FFC27A;background:rgba(255,194,122,.1);box-shadow:0 0 0 1px rgba(255,194,122,.35),0 0 24px rgba(255,194,122,.18)}
.gr-lockbox__eyebrow{margin:0 0 8px;font-family:var(--gr-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#7CCBFF}
.gr-app .gr-lockbox__title{margin:0 0 10px;font-family:var(--gr-display);font-weight:800;font-size:28px;line-height:1.05;text-transform:uppercase;letter-spacing:0;color:#FFFFFF}
.gr-lockbox__need{margin:0 0 14px;font-size:15px;color:#B9C3D3}
.gr-lockbox__list{list-style:none;margin:0 auto 20px;padding:12px 0 0;display:flex;flex-direction:column;gap:6px;max-width:300px;border-top:1px solid rgba(220,227,238,.1);text-align:left;font-size:14px;color:#DCE3EE}
.gr-lockbox__list li{display:flex;gap:10px;align-items:baseline}
.gr-lockbox__list li::before{content:"";flex:0 0 6px;height:6px;border-radius:50%;background:#FFC27A;transform:translateY(-2px)}
.gr-lockbox__actions{display:flex;flex-direction:column;gap:10px}
.gr-app .gr-lockbox .gr-btn{width:100%;min-height:46px}
.gr-app .gr-lockbox .gr-btn:not(.gr-btn--primary){background:transparent;border-color:rgba(220,227,238,.24);color:#FFFFFF!important}
.gr-app .gr-lockbox .gr-btn:not(.gr-btn--primary):hover{border-color:#7CCBFF;background:rgba(124,203,255,.08)}
.gr-app .gr-lockbox .gr-btn--primary{background:#FFC27A;border-color:#FFC27A;color:#1A0E00!important}
.gr-lockbox__fine{margin:14px 0 0;font-size:12px;color:#8C97AA}
.gr-post[data-gr-lock] .gr-post__title a::after{content:" 🔒";font-size:.6em;vertical-align:middle;opacity:.7}
.gr-lockbox [hidden]{display:none!important}

/* ==== Likes ==== */
.gr-like{display:inline-flex;align-items:center;gap:6px;min-height:32px;min-width:32px;justify-content:center;padding:0 8px;border:1px solid transparent;border-radius:8px;background:none;color:var(--gr-muted);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.gr-app .gr-like:hover,.gr-app .gr-like:focus-visible{background:var(--gr-hover);color:var(--gr-heading)}
.gr-app .gr-like:focus{background:none}
.gr-like.is-on,.gr-app .gr-like.is-on:hover{color:var(--gr-blue)}
.gr-like.is-on svg{fill:currentColor;fill-opacity:.25}
.gr-like__count{font-family:var(--gr-mono);font-size:12px;font-weight:500}
.gr-like--static{cursor:default}
.gr-like--static:hover{background:none}

/* ==== Code blocks in posts: same as the public site (follows light/dark) ==== */
.gr-app{--gr-code-soft:#050812}
html[data-theme="light"] .gr-app{--gr-code-soft:#F1F4F9}
.gr-app .gr-prose :not(pre)>code{font-family:var(--gr-mono);font-size:.86em;padding:2px 6px;border-radius:4px;background:var(--gr-code-soft);border:1px solid var(--gr-line-soft);color:var(--gr-heading)}
.gr-app .gr-prose pre{margin:0 0 1.2em;padding:16px;border:1px solid var(--gr-line);border-radius:6px;background:var(--gr-code-soft);color:var(--gr-ink);font-family:var(--gr-mono);font-size:14px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.gr-app .gr-prose pre code{padding:0;border:0;background:none;font-size:inherit;color:inherit}
.gr-app .gr-code--prose{margin:0 0 1.2em;border:1px solid var(--gr-line);border-radius:6px;overflow:hidden;background:var(--gr-code-soft)}
.gr-app .gr-code--prose pre{margin:0;border:0;border-radius:0}
.gr-app .gr-code--prose .gr-code__bar{background:transparent;border-bottom:1px solid var(--gr-line-soft);padding:8px 14px}
.gr-app .gr-code--prose .gr-code__bar .gr-mono{font-size:12px;letter-spacing:.04em;text-transform:none;color:var(--gr-muted)}
.gr-app .gr-code--prose .gr-btn{min-height:32px;padding:0 12px;border-radius:4px;border:1px solid var(--gr-blue);background:transparent;color:var(--gr-blue)!important;font-family:var(--gr-mono);font-size:12px;font-weight:400}
.gr-app .gr-code--prose .gr-btn:hover{background:var(--gr-blue-soft)}

/* Show code exactly as typed (no "=>" arrows). */
.gr-app pre,.gr-app code,.gr-app .gr-mono{font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0}

/* ==== Members-only gate (logged out): log in or pick a plan ==== */
.gr-gate{width:min(780px,calc(100vw - 32px));padding:32px 32px 28px}
.gr-gate__intro{max-width:520px;margin:0 auto 24px;text-align:center}
.gr-gate__intro .gr-lockbox__need{margin:0}
.gr-gate__cols{display:grid;grid-template-columns:1fr 1.15fr;gap:0;text-align:left;border:1px solid rgba(124,203,255,.18);border-radius:12px;background:rgba(2,3,10,.45);overflow:hidden}
.gr-gate__login,.gr-gate__plans{padding:22px 22px 20px;display:flex;flex-direction:column;gap:12px;min-width:0}
.gr-gate__plans{border-left:1px solid rgba(124,203,255,.18);background:rgba(124,203,255,.03)}
.gr-app .gr-gate__h{margin:0 0 2px;font-family:var(--gr-mono);font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#7CCBFF}
.gr-gate__field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:#B9C3D3}
.gr-app .gr-gate__field input{width:100%;min-height:44px;padding:0 12px;border:1px solid rgba(220,227,238,.24);border-radius:8px;background:#02030A;color:#FFFFFF;font:inherit;font-size:16px;font-weight:400}
.gr-app .gr-gate__field input:focus{outline:none;border-color:#7CCBFF;box-shadow:0 0 0 3px rgba(124,203,255,.18)}
.gr-gate__row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;color:#B9C3D3}
.gr-gate__check{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.gr-gate__check input{accent-color:#FFC27A;width:16px;height:16px;margin:0}
.gr-app .gr-gate a:not(.gr-btn):not(.gr-gate__plan){color:#7CCBFF;text-decoration:none}
.gr-app .gr-gate a:not(.gr-btn):not(.gr-gate__plan):hover{color:#B5E2FF;text-decoration:underline}
.gr-app .gr-gate .gr-btn--primary{width:100%;min-height:46px;margin-top:4px;background:#FFC27A;border-color:#FFC27A;color:#1A0E00!important;font-weight:700}
.gr-app .gr-gate .gr-btn--primary:hover{background:#FFD29C;border-color:#FFD29C}
.gr-gate__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.gr-app .gr-gate__plan{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid rgba(220,227,238,.12);border-radius:10px;background:rgba(7,11,22,.8);color:#DCE3EE;text-decoration:none;transition:border-color .15s,background .15s}
.gr-app .gr-gate__plan:hover,.gr-app .gr-gate__plan:focus-visible{border-color:#7CCBFF;background:rgba(124,203,255,.08)}
.gr-gate__plan .gr-orbit{flex:0 0 34px;width:34px;height:34px}
.gr-gate__plan-text{display:flex;flex-direction:column;min-width:0;flex:1}
.gr-gate__plan-name{font-family:var(--gr-display);font-weight:800;font-size:18px;line-height:1.1;text-transform:uppercase;color:#FFFFFF}
.gr-gate__plan-blurb{font-size:12.5px;line-height:1.35;color:#929DB0}
.gr-gate__price{font-family:var(--gr-mono);font-size:15px;font-weight:500;color:#FFC27A;white-space:nowrap}
.gr-gate__price small{font-size:11px;color:#929DB0}
.gr-gate__plan--elite{border-color:rgba(255,194,122,.35)}
.gr-gate__compare{align-self:flex-start;font-size:13px;font-weight:600}
@media (max-width:720px){
	.gr-gate{padding:28px 18px 20px}
	.gr-gate__cols{grid-template-columns:1fr}
	.gr-gate__plans{border-left:0;border-top:1px solid rgba(124,203,255,.18)}
}
/* Same gate, inline on a members-only page opened directly. */
.gr-gate--page{width:auto;max-width:820px;margin:4vh auto 0;border:1px solid rgba(124,203,255,.3);border-radius:16px;background:linear-gradient(180deg,#071226,#02030A);color:#DCE3EE;box-shadow:0 30px 80px rgba(2,3,10,.35)}

/* ==== Lesson without a video yet ==== */
.gr-video--soon{flex-direction:column;gap:10px;text-align:center}
.gr-video--soon .gr-video__play{opacity:.45}
.gr-video__soon{margin:0;font-family:var(--gr-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#B9C3D3}
.gr-video__soon-note{margin:0;max-width:340px;font-size:12px;color:#8C97AA}

/* ==== Tutorial lessons: screenshots, tables, lists ==== */
.gr-prose ul,.gr-prose ol{padding-left:1.4em}
.gr-prose li{margin:0 0 .4em}
.gr-prose li > ul,.gr-prose li > ol{margin:.4em 0 0}
.gr-prose figure.gr-shot{margin:1.4em 0 1.6em}
.gr-prose figure.gr-shot img{display:block;width:auto;max-width:100%;border:1px solid var(--gr-line);border-radius:8px;box-shadow:0 6px 22px rgba(10,20,40,.10)}
.gr-prose figure.gr-shot figcaption{margin-top:8px;font-size:13px;line-height:1.5;color:var(--gr-muted,#6B7486)}
.gr-prose table{width:100%;border-collapse:collapse;font-size:14px;margin:0 0 1.2em;display:block;overflow-x:auto}
.gr-prose th,.gr-prose td{padding:8px 12px;border:1px solid var(--gr-line);text-align:left;vertical-align:top}
.gr-prose thead th{background:var(--gr-code-soft);font-weight:600;color:var(--gr-heading)}

/* ==== Class + lesson sidebars: lessons, then the buttons; stays in view on desktop ==== */
.gr-col-rail--class{flex:1 1 300px;max-width:380px}
.gr-class-rail{padding:14px 10px}
.gr-class-rail .gr-eyebrow{padding:0 10px;margin:0}
.gr-class-rail__empty{padding:0 10px}
.gr-class-rail__cta,.gr-lesson__actions--rail{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:16px 10px 6px;margin:12px 0 0;border-top:1px solid var(--gr-line-soft)}
.gr-class-rail__cta .gr-class-progress{margin:0}
.gr-lesson__actions--rail:empty{display:none}
.gr-btn--block{display:flex;width:100%;justify-content:center}
@media (min-width:800px){
	.gr-col-rail--class{margin-top:62px;position:sticky;top:calc(var(--gr-top) + 24px);align-self:flex-start}
	.gr-class-rail,.gr-lesson__list{max-height:calc(100vh - var(--gr-top) - 48px);overflow-y:auto}
	.gr-lesson__list{position:sticky;top:calc(var(--gr-top) + 24px);align-self:flex-start}
}

/* ==== Vault: class filter ==== */
.gr-vault-class{margin-left:auto}
.gr-vault-class select{min-height:36px;max-width:280px;padding:0 34px 0 14px;border-radius:999px;border:1px solid var(--gr-field);background:var(--gr-surface,transparent);color:var(--gr-ink);font:inherit;font-size:14px;cursor:pointer}
@media (max-width:640px){.gr-vault-class{margin-left:0;width:100%}.gr-vault-class select{width:100%;max-width:none}}

/* ==== Member post attachments ==== */
.gr-share__files{display:flex;flex-direction:column;gap:6px}
.gr-share__form input[type=file]{min-height:0;padding:10px;font-size:14px;cursor:pointer}
.gr-share__files .gr-small{margin:0}
.gr-share__picked{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--gr-ink-2)}
.gr-post-files{display:flex;flex-direction:column;gap:12px;margin-top:1.2em}
.gr-post-files__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.gr-post-files__img{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:8px;border:1px solid var(--gr-line)}
.gr-prose .gr-post-files__img img,.gr-post-files__img img{width:100%;height:100%;object-fit:cover;border-radius:0;display:block}
.gr-post-files__docs{display:flex;flex-direction:column;gap:8px}
.gr-post-files__doc{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--gr-line);border-radius:8px;text-decoration:none;color:var(--gr-ink)!important}
.gr-post-files__doc:hover{background:var(--gr-hover)}
.gr-post-files__badge{flex:none;font-family:var(--gr-mono);font-size:11px;letter-spacing:.1em;padding:3px 7px;border-radius:4px;background:#E5484D;color:#fff}
.gr-post-files__name{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
.gr-post-files__size{flex:none;font-size:13px;color:var(--gr-muted)}
.gr-share__form input[type=file]::file-selector-button{margin-right:12px;padding:7px 14px;border:1px solid var(--gr-field);border-radius:999px;background:var(--gr-hover,transparent);color:var(--gr-ink);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.gr-share__form input[type=file]::file-selector-button:hover{border-color:var(--gr-hover-line)}

/* ==== Member post tag ==== */
.gr-app .gr-badge--member{color:#7CCBFF;border-color:rgba(124,203,255,.45)}
:root[data-theme="light"] .gr-app .gr-badge--member{color:#1F5FBF;border-color:rgba(31,95,191,.4)}
