/* TorqBound Hub + TorqVale map */
.tb-hub{padding-top:30px;padding-bottom:60px}.tb-hub-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);gap:28px;align-items:center;overflow:hidden;padding:34px;border:1px solid #5b3b33;border-radius:20px;background:linear-gradient(105deg,#0a0b0ff2 0%,#11131ae8 48%,#24100eb5 100%),url('/assets/img/backgrounds/torqvale-fullscreen.jpg') center 46%/cover;box-shadow:0 22px 55px #0009}.tb-hub-hero:after{content:"";position:absolute;inset:auto -8% -55% auto;width:54%;height:90%;border:1px solid #ffc85b35;border-radius:50%;box-shadow:0 0 0 28px #ffc85b08,0 0 0 58px #e7473507;pointer-events:none}.tb-hub-welcome{display:flex;gap:18px;align-items:center;position:relative;z-index:1}.tb-hub-avatar{width:76px;height:76px;border-radius:18px;object-fit:cover;border:1px solid #ffc85b70;box-shadow:0 0 24px #ffc85b18}.tb-hub-welcome h1{margin:3px 0 8px;font-family:var(--font-display);font-size:clamp(34px,5vw,58px);line-height:1.05;text-transform:uppercase}.tb-hub-welcome p{margin:0;color:#c6c8cf}.tb-hub-progress-card{position:relative;z-index:1;padding:22px;border:1px solid #ffffff18;border-radius:16px;background:#080a0ecf;backdrop-filter:blur(8px)}.tb-hub-progress-card .tb-progress-head{display:flex;justify-content:space-between;gap:15px;align-items:end}.tb-hub-progress-card h2{margin:0;font-size:22px}.tb-hub-progress-card strong{font-size:28px;color:var(--gold,#ffc85b)}.tb-hub-progress-track{height:12px;border-radius:999px;background:#ffffff10;overflow:hidden;margin:14px 0 8px;box-shadow:inset 0 0 0 1px #ffffff12}.tb-hub-progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#d73337,#ffc85b);box-shadow:0 0 20px #ffc85b38}.tb-hub-section{margin-top:22px}.tb-hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.tb-hub-card{position:relative;display:flex;min-width:0;flex-direction:column;gap:10px;padding:20px;border:1px solid #ffffff15;border-radius:14px;background:linear-gradient(160deg,#11141bea,#0c0d12ea);text-decoration:none;color:#fff;transition:transform .18s ease,border-color .18s ease}.tb-hub-card:hover{transform:translateY(-2px);border-color:#ffc85b65}.tb-hub-card .ui-icon{width:30px;height:30px}.tb-hub-card h3{margin:2px 0 0;font-size:20px}.tb-hub-card p{margin:0;color:#b8bbc3;line-height:1.5}.tb-hub-card .tb-card-meta{margin-top:auto;padding-top:8px;color:#ffc85b;font-weight:700;font-size:12px}.tb-hub-account-grid .tb-hub-card strong{font-size:28px;color:#ffc85b}.tb-hub-card.is-muted{opacity:.78}.tb-hub-event{position:relative;min-height:250px;overflow:hidden;border:1px solid #ffffff18;border-radius:18px;background:#0d0f14}.tb-hub-event img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.48}.tb-hub-event:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#08090cf7 0%,#0a0b0edc 42%,#0a0b0e44 100%)}.tb-hub-event-copy{position:relative;z-index:2;display:flex;min-height:250px;max-width:720px;flex-direction:column;justify-content:center;padding:30px}.tb-hub-event h2{margin:6px 0 8px;font-family:var(--font-display);font-size:clamp(34px,4.5vw,58px)}.tb-hub-countdown{font-size:clamp(18px,2.4vw,30px);font-weight:800;color:#ffc85b;font-variant-numeric:tabular-nums}.tb-hub-feature-card{min-height:195px}.tb-hub-feature-card h3{font-size:24px}.tb-hub-feature-card .tb-feature-badge{align-self:flex-start;padding:5px 8px;border-radius:999px;background:#ffffff0e;border:1px solid #ffffff18;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.tb-hub-feature-card.is-tester{border-color:#cf9a4e55;background:linear-gradient(155deg,#24130fe6,#0d0f15ee)}

.torq-map-page{padding-top:28px}.torq-map-shell{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:18px;align-items:stretch}.torq-map{position:relative;min-height:650px;overflow:hidden;border:1px solid #ffffff18;border-radius:20px;background:radial-gradient(circle at 50% 40%,#27313d33,#080b10 63%),url('/assets/img/backgrounds/torqvale-fullscreen.jpg') center/cover}.torq-map:after{content:"";position:absolute;inset:0;background:linear-gradient(#0a0c1126,#06070abf),repeating-linear-gradient(0deg,transparent 0 42px,#ffffff05 43px 44px),repeating-linear-gradient(90deg,transparent 0 42px,#ffffff05 43px 44px);pointer-events:none}.torq-map-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.torq-map-filter{border:1px solid #ffffff1c;border-radius:999px;background:#11141b;color:#ddd;padding:9px 14px;cursor:pointer}.torq-map-filter.is-active{border-color:#ffc85b88;color:#ffc85b;background:#ffc85b0d}.torq-map-marker{position:absolute;z-index:2;display:grid;width:46px;height:46px;place-items:center;border:1px solid #ffc85b88;border-radius:50%;background:#0c0d12e8;color:#fff;box-shadow:0 0 0 6px #ffc85b0a,0 0 24px #000;cursor:pointer;transform:translate(-50%,-50%);transition:transform .18s,opacity .18s,border-color .18s}.torq-map-marker:hover,.torq-map-marker.is-active{transform:translate(-50%,-50%) scale(1.12);border-color:#fff}.torq-map-marker.is-hidden{opacity:.12;pointer-events:none}.torq-map-marker img{width:23px;height:23px;object-fit:contain}.torq-map-info{padding:24px}.torq-map-info h2{font-size:30px;margin:8px 0}.torq-map-info p{color:#b8bbc4;line-height:1.65}.torq-map-legend{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.torq-map-legend span{padding:10px;border:1px solid #ffffff10;border-radius:9px;background:#ffffff05;font-size:12px}.torq-map-note{margin-top:18px;padding:14px;border-left:3px solid #ffc85b;background:#ffc85b08;color:#d5d0c6}

.eco-locked-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}.eco-locked-preview article{padding:18px;border:1px solid #ffffff12;border-radius:12px;background:#ffffff04}.eco-locked-preview h3{margin:8px 0}.eco-locked-preview p{margin:0;color:#aaaeb7;font-size:13px}

.tester-bug-panel{margin-top:24px}.tester-bug-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:18px}.tester-bug-list{display:flex;flex-direction:column;gap:10px}.tester-bug-row{padding:14px;border:1px solid #ffffff12;border-radius:10px;background:#ffffff04}.tester-bug-row-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.tester-bug-row h4{margin:0}.tester-bug-row p{margin:6px 0 0;color:#aeb1ba}.bug-status{display:inline-flex;padding:4px 8px;border-radius:999px;border:1px solid #ffffff1d;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.bug-status-reviewing{color:#ffc85b}.bug-status-fixed{color:#82e6a6}.bug-status-rejected{color:#ff8d8d}.bug-severity-critical{color:#ff6565}.bug-severity-high{color:#ff9f64}

@media(max-width:980px){.tb-hub-hero,.torq-map-shell,.tester-bug-grid{grid-template-columns:1fr}.tb-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.torq-map{min-height:520px}.eco-locked-preview{grid-template-columns:1fr}}
@media(max-width:640px){.tb-hub{padding-top:18px}.tb-hub-hero{padding:22px}.tb-hub-welcome{align-items:flex-start}.tb-hub-avatar{width:58px;height:58px;border-radius:14px}.tb-hub-grid{grid-template-columns:1fr}.torq-map{min-height:460px}.torq-map-marker{width:40px;height:40px}.tb-hub-event-copy{padding:22px}.torq-map-legend{grid-template-columns:1fr}}

/* HUB v2 — moving welcome strip + hidden future modules controlled by Owner */
.tb-hub-welcome-strip{position:relative;z-index:20;width:100%;overflow:hidden;border-top:1px solid #ffffff12;border-bottom:1px solid #6d3d2e;background:linear-gradient(90deg,#10090a,#22100d 45%,#10090a);box-shadow:0 12px 32px #0008}
.tb-hub-welcome-strip:before,.tb-hub-welcome-strip:after{content:"";position:absolute;z-index:2;top:0;bottom:0;width:8vw;pointer-events:none}.tb-hub-welcome-strip:before{left:0;background:linear-gradient(90deg,#0b0809,transparent)}.tb-hub-welcome-strip:after{right:0;background:linear-gradient(270deg,#0b0809,transparent)}
.tb-hub-welcome-track{display:flex;width:max-content;will-change:transform;animation:tbHubWelcomeScroll 24s linear infinite}
.tb-hub-welcome-group{display:flex;align-items:center;flex:none;gap:34px;padding:15px 34px}
.tb-hub-welcome-group span{white-space:nowrap;font-family:var(--font-display);font-size:clamp(28px,3.7vw,52px);line-height:1;text-transform:uppercase;letter-spacing:.035em;color:#fff;text-shadow:0 0 22px #d7333740}
.tb-hub-welcome-group i{font-style:normal;font-size:22px;color:#ffc85b;text-shadow:0 0 18px #ffc85b80}
@keyframes tbHubWelcomeScroll{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
.tb-hub-intro{position:relative;z-index:1}.tb-hub-intro h1{margin:4px 0 10px;font-family:var(--font-display);font-size:clamp(34px,5vw,58px);line-height:1.05;text-transform:uppercase}.tb-hub-intro p{max-width:720px;margin:0;color:#c6c8cf;font-size:16px;line-height:1.6}
@media(max-width:640px){.tb-hub-welcome-group{gap:22px;padding:13px 22px}.tb-hub-welcome-group span{font-size:clamp(24px,8vw,38px)}.tb-hub-welcome-group i{font-size:16px}}
@media(prefers-reduced-motion:reduce){.tb-hub-welcome-track{animation:none}.tb-hub-welcome-strip{overflow-x:auto}.tb-hub-welcome-group[aria-hidden="true"]{display:none}}

/* HUB V7 — activity centre, release mode and tester QA 2.0 */
.tb-activity-section .section-head{align-items:flex-end}
.tb-activity-list{display:grid;gap:9px}
.tb-activity-item{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) auto 8px;gap:12px;align-items:center;padding:12px 14px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(9,10,13,.78);color:inherit;text-decoration:none;transition:border-color .18s ease,transform .18s ease,background .18s ease}
.tb-activity-item:hover{transform:translateY(-1px);border-color:rgba(226,185,90,.42);background:rgba(20,15,15,.92)}
.tb-activity-item.is-unread{border-color:rgba(226,185,90,.45);background:linear-gradient(90deg,rgba(95,53,22,.22),rgba(10,10,13,.88))}
.tb-activity-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(226,185,90,.24);border-radius:10px;background:#140e0f;color:#e2b95a}
.tb-activity-icon .ui-icon{width:21px;height:21px}
.tb-activity-copy{display:grid;gap:4px;min-width:0}
.tb-activity-copy strong{color:#fff2df;font-size:14px}
.tb-activity-copy small{overflow:hidden;color:#b8a9a1;text-overflow:ellipsis;white-space:nowrap}
.tb-activity-item time{color:#8f817b;font-size:11px;white-space:nowrap}
.tb-activity-item>i{width:7px;height:7px;border-radius:50%;background:#e2b95a;box-shadow:0 0 12px rgba(226,185,90,.5)}

.tb-hub-release-card{border-color:rgba(226,185,90,.46);background:linear-gradient(145deg,rgba(73,36,18,.36),rgba(12,10,12,.92))}
.tb-hub-release-card p{margin:12px 0 0;color:#cbb9ad}
.tb-release-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.tb-release-tile{display:grid;gap:7px;min-height:150px;padding:17px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:linear-gradient(150deg,rgba(31,17,18,.94),rgba(9,10,13,.94))}
.tb-release-tile>.ui-icon{width:24px;height:24px;color:#e2b95a}
.tb-release-tile>span{color:#bca79c;font:700 11px/1.2 var(--font-body);letter-spacing:.07em;text-transform:uppercase}
.tb-release-tile>strong{color:#fff4e4;font:800 18px/1.15 var(--font-display);letter-spacing:.02em;text-transform:uppercase}
.tb-release-tile>small{color:#8f817b;line-height:1.35}

.tester-bug-thread-card{scroll-margin-top:110px}
.bug-team-note{margin:10px 0;padding:10px 12px;border-left:3px solid #e2b95a;border-radius:8px;background:rgba(226,185,90,.08)}
.bug-team-note p{margin:5px 0 0!important;color:#e2d7cf!important}
.bug-attachment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:12px 0}
.bug-attachment-grid a{display:grid;gap:5px;padding:6px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#0d0b0d;color:#cbb9ad;text-decoration:none;font-size:10px}
.bug-attachment-grid img{width:100%;height:92px;object-fit:cover;border-radius:7px;background:#08080a}
.bug-thread{display:grid;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}
.bug-thread h5{margin:0;color:#f4d58d;font:800 14px/1.2 var(--font-display);text-transform:uppercase;letter-spacing:.04em}
.bug-comment{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;padding:10px;border:1px solid rgba(255,255,255,.07);border-radius:9px;background:rgba(255,255,255,.025)}
.bug-comment.is-staff{border-color:rgba(226,185,90,.26);background:rgba(226,185,90,.06)}
.bug-comment strong{color:#fff0dc;font-size:12px}.bug-comment time{color:#83746d;font-size:10px}.bug-comment p{grid-column:1/-1;margin:2px 0 0!important;color:#c7b9b0!important}
.bug-comment-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}
.bug-comment-form textarea{grid-column:1/-1;min-height:78px}
.bug-attach-field{display:flex;flex-direction:column;gap:5px;color:#cbb9ad;font-size:11px}.bug-attach-field input{max-width:260px}
.bug-history{margin-top:10px;border-top:1px solid rgba(255,255,255,.08);padding-top:8px}.bug-history summary{cursor:pointer;color:#d9bd83}.bug-history p{font-size:11px!important;color:#91847d!important}
.bug-status-confirmed{color:#75c7ff}.bug-status-to_fix{color:#ffb55f}.bug-status-duplicate{color:#c29cff}

@media(max-width:980px){.tb-release-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){
  .tb-release-grid{grid-template-columns:minmax(0,1fr)}
  .tb-activity-item{grid-template-columns:36px minmax(0,1fr) 7px;padding:10px}
  .tb-activity-icon{width:36px;height:36px}.tb-activity-item time{grid-column:2/3;grid-row:2;font-size:10px}.tb-activity-item>i{grid-column:3;grid-row:1/3}
  .bug-comment-form{grid-template-columns:minmax(0,1fr)}.bug-comment-form textarea{grid-column:auto}.bug-attach-field input{max-width:100%}
}
