/* Shared CAral components: public, member and organisation pages. */
:root{--caral-bg:#070a10;--caral-panel:#0e1623;--caral-line:#5a83ae55;--caral-blue:#71caff;--caral-gold:#f3c881;--caral-text:#f4f3ef;--caral-muted:#b3bdcd;--caral-radius:20px}
body{background:radial-gradient(ellipse at 8% 12%,#12528d17,transparent 45%),radial-gradient(ellipse at 95% 45%,#ab24810d,transparent 38%),var(--caral-bg);color:var(--caral-text)}
p,.muted{color:var(--caral-muted)}
body :is(.button,.mini-button,.profile-open,.home-shortcuts a,.module-links a){display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:9px;min-height:46px;padding:12px 20px;border-radius:12px;border:1px solid var(--caral-line);background:linear-gradient(125deg,#142439,#101522);color:var(--caral-text);font-family:Manrope,Arial,sans-serif;font-weight:700;font-size:13px;line-height:1.35;letter-spacing:0;vertical-align:middle;text-decoration:none;transition:border-color .22s,box-shadow .22s,transform .22s}
body :is(.button.light,.button.primary){color:#181510;background:linear-gradient(120deg,#ffe2ad,#e5b86e);border-color:#e5c58a}
body :is(.button,.mini-button,.profile-open,.home-shortcuts a,.module-links a):is(:hover,:focus-visible){border-color:var(--caral-blue);box-shadow:0 0 22px #369dff28;transform:translateY(-2px)}
body :is(.button,.mini-button):disabled{opacity:.5;cursor:wait;transform:none;box-shadow:none}
body :is(.card,.home-card,.admin-panel,.admin-stat,.road-card,.care-card,.care-panel,.forum-topic,.special){border:1px solid var(--caral-line);border-radius:var(--caral-radius);background:linear-gradient(135deg,#111c2b,#0b101a 65%,#15101b);box-shadow:0 12px 35px #0002;transition:border-color .25s,box-shadow .25s}
body :is(.card,.home-card,.admin-panel,.road-card,.care-card,.forum-topic,.special):focus-within{border-color:var(--caral-blue);box-shadow:0 0 28px #318dce17}
@media(hover:hover){body :is(.card,.home-card,.road-card,.care-card,.forum-topic,.special):hover{border-color:#78bded88;box-shadow:0 8px 32px #318dce18}}
body :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){color:var(--caral-text);background:#090f19;border-color:#6b87a855;border-radius:12px;font-size:16px;min-height:46px}
body dialog{border:1px solid var(--caral-line);border-radius:24px;background:linear-gradient(140deg,#111c2b,#080d16);color:var(--caral-text);box-shadow:0 30px 100px #000b}
body dialog::backdrop{background:#030711bd;backdrop-filter:blur(8px)}
body dialog[open]{animation:caral-dialog .24s ease-out}
body .actions{align-items:center;gap:12px}body .actions form{margin:0}
.member-home{position:relative;isolation:isolate}.member-home>h1{max-width:850px}.member-home>.eyebrow{color:var(--caral-gold)}
.member-home:before{content:'';position:absolute;z-index:-1;top:0;right:0;left:0;height:470px;background:linear-gradient(0deg,var(--caral-bg),#070a10b3 45%,#070a1070),url('/assets/hero-1122.webp') center 65%/cover;mask-image:linear-gradient(#000 65%,transparent);pointer-events:none}
.home-intro{max-width:600px;font-size:17px}.home-shortcuts{padding:18px 0;border-bottom:1px solid var(--caral-line)}
.caral-enter{animation:caral-enter .55s cubic-bezier(.2,.75,.2,1) both}
@keyframes caral-enter{from{opacity:.2;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes caral-dialog{from{opacity:.2;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:650px){body :is(.button,.mini-button,.profile-open){min-height:46px;padding:12px 16px}body .actions>*{max-width:100%}.member-home:before{height:350px}.home-shortcuts{gap:10px}.home-card h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){body *,body *:before,body *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.caral-enter{transform:none}}
@media print{body{background:white;color:black}.caral-enter{animation:none}}

.module-heading{position:relative;isolation:isolate;padding:36px 0 30px}.module-heading:before{content:"";position:absolute;z-index:-1;inset:-30px -25px 0;background:linear-gradient(90deg,#070a10e8,#070a10b0),url("/assets/duo-1122.webp") center/cover;mask-image:linear-gradient(#000,transparent);pointer-events:none}.forum-category,.battle-card,.thread-post,.topic-list{border:1px solid var(--caral-line);border-radius:20px;background:linear-gradient(135deg,#111c2b,#0b101a);overflow:hidden}.forum-category{transition:box-shadow .25s,border-color .25s}.forum-category:hover{border-color:var(--caral-blue);box-shadow:0 0 25px #369dff25}

.garage-primary{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));margin:16px 0}.garage-tools{margin:22px 0 12px;border-top:1px solid var(--caral-line);padding-top:16px}.garage-tools summary{cursor:pointer;color:var(--caral-gold);font-weight:700;min-height:44px;display:list-item;line-height:44px}.garage-tools p{margin:10px 0 16px}#garage-content>.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,470px),1fr))}#garage-content .card-body{padding:28px}#garage-content .subhead{color:var(--caral-text);border-top:1px solid var(--caral-line);padding-top:28px;margin-top:40px}@media(max-width:600px){.garage-primary{grid-template-columns:1fr}#garage-content .card-body{padding:20px}}

/* Keep the heading backdrop inside narrow screens. */
.module-heading:before{inset-inline:calc(-1 * min(25px,5vw))}

/* Garage+ product entry: shared by landing, garage and member home. */
.plus-promo{max-width:1180px;margin:56px auto 80px;display:grid;grid-template-columns:1.15fr .85fr;overflow:hidden;border:1px solid #c79d5d66;border-radius:26px;background:radial-gradient(ellipse at 0 0,#254d6b45,transparent 65%),linear-gradient(130deg,#101a28,#080d16);box-shadow:0 24px 70px #0005}
.plus-promo-copy{padding:clamp(24px,4vw,52px);min-width:0}.plus-promo h2{font-size:clamp(30px,4vw,52px);line-height:1.13;letter-spacing:-.035em;margin:14px 0 24px}.plus-promo p{line-height:1.7}.plus-promo ul{list-style:none;padding:0;display:grid;gap:20px;margin:26px 0}.plus-promo li{border-left:2px solid #eac386;padding-left:16px}.plus-promo li strong,.plus-promo li span{display:block}.plus-promo li span{margin-top:5px;color:#bfcadc;font-size:14px;line-height:1.6}.plus-promo .actions{display:flex;flex-wrap:wrap;gap:12px}.plus-promo .plus-promo-note{font-size:12px;color:#bcc5d4;margin-top:18px}.plus-promo-visual{position:relative;min-height:440px;isolation:isolate;display:flex;align-items:flex-end}.plus-promo-visual>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:42% center;z-index:-2}.plus-promo-visual:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#080d16 0%,#080d16bb 35%,transparent 90%);z-index:-1}.plus-promo-file{padding:32px}.plus-promo-file>span{font-size:10px;letter-spacing:.16em;color:#edc98b}.plus-promo-file h3{font-size:clamp(26px,3vw,36px);line-height:1.15;margin:15px 0}.plus-promo-file a{color:#f3cf91;text-decoration:underline;text-underline-offset:5px}.plus-promo-compact{display:block}.plus-promo-compact .plus-promo-copy{padding:28px 34px}.plus-promo-compact h2{font-size:clamp(28px,3.5vw,40px)}.plus-promo-compact h2 br{display:none}.plus-promo-compact ul{grid-template-columns:repeat(3,minmax(0,1fr))}.plus-promo-compact .plus-promo-copy>p:not(.eyebrow):not(.plus-promo-note){max-width:760px}.plus-promo a:focus-visible{outline:3px solid #83cfff;outline-offset:5px}.plus-promo .button:hover{box-shadow:0 0 25px #d4ab592e;transform:translateY(-2px)}
@media(max-width:760px){.plus-promo{grid-template-columns:1fr;margin:32px 20px 50px}.member-home .plus-promo{margin:30px 0 45px}.plus-promo-visual{min-height:330px}.plus-promo-compact ul{grid-template-columns:1fr;gap:16px}.plus-promo-compact .plus-promo-copy{padding:26px 22px}.plus-promo .actions{align-items:stretch;flex-direction:column}.plus-promo .button{width:100%}.plus-promo-file{padding:26px}.plus-promo h2{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.plus-promo .button:hover{transform:none}.plus-promo .button{transition:none}}
/* Visible launchpad cards share the full row even when a module is hidden. */
.quick-grid{display:flex;flex-wrap:wrap}.quick-grid>.quick-card{flex:1 1 240px;min-width:0}.quick-grid>.quick-card[hidden]{display:none}@media(max-width:600px){.quick-grid>.quick-card{flex-basis:100%;min-height:230px}}
.roadmap:has(>.road-card:only-child){grid-template-columns:minmax(0,1fr)}
