/* GhostOPS 2.0 // enhanced tactical UI */
:root{--gs-olive:#94bd64;--gs-line:rgba(159,204,119,.18);--gs-night:#0a1110}
.gs-app .gs-bar-label{display:flex;gap:12px;justify-content:space-between;font-size:.86rem;margin-top:13px;margin-bottom:5px}
.gs-app .gs-bar-track{height:7px;border-radius:4px;background:#223029;overflow:hidden}
.gs-app .gs-bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,#627f4d,#b2e17d);animation:gs-bar 950ms ease-out}
@keyframes gs-bar{from{width:0}}
.gs-app .gs-table{color:inherit}
.gs-app .gs-table td,.gs-app .gs-table th{border-color:rgba(255,255,255,.13);vertical-align:middle}
.gs-app .gs-safety-note{font-size:.8rem;padding:12px 16px;border-left:3px solid #b7c97e;background:rgba(125,165,75,.09);border-radius:2px 10px 10px 2px;margin-bottom:20px}
.gs-app .gs-ops-stats{grid-template-columns:repeat(auto-fit,minmax(155px,1fr))}
.gs-app .gs-audit-table code{white-space:normal;color:#b6d796}
.gs-app .gs-slim-cta{display:flex;flex-wrap:wrap;gap:10px;padding:12px 0 24px}
.gs-app .gs-slim-cta .btn{margin:0}
.gs-app #editable-table td{min-width:142px}
.gs-app #editable-table select,.gs-app #editable-table input{min-width:120px}
.gs-app .table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* Cinematic broadcast, fully responsive, no external assets */
.gs-broadcast{background:radial-gradient(ellipse at 50% 0%,#1c3429 0%,#0d1813 46%,#070e0c 100%);color:#e8f3e4;min-height:100vh;margin:0;font:500 16px system-ui,-apple-system,Segoe UI,sans-serif;overflow-x:hidden}
.gs-broadcast *{box-sizing:border-box}
.gs-broadcast-grid{position:fixed;inset:0;background-image:linear-gradient(rgba(123,168,112,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(123,168,112,.045) 1px,transparent 1px);background-size:52px 52px;mask-image:linear-gradient(to bottom,#000,transparent);pointer-events:none}
.gs-tv-header,.gs-tv-footer{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px clamp(18px,4vw,62px);border-bottom:1px solid var(--gs-line)}
.gs-tv-brand{color:#f1f4ed;text-decoration:none;font-size:clamp(1.4rem,3vw,2rem);font-weight:900;letter-spacing:.13em}.gs-tv-brand span{color:var(--gs-olive)}.gs-tv-brand small{display:block;font-size:.55rem;letter-spacing:.23em;font-weight:500;color:#93a99a}
.gs-live-pill{margin-left:auto;display:inline-flex;gap:10px;align-items:center;font-size:.8rem;letter-spacing:.14em;font-weight:800;color:#b8e290}.gs-live-pill i{width:9px;height:9px;border-radius:50%;background:#8fdf70;box-shadow:0 0 20px #96da78;animation:gs-pulse 1.7s infinite}
@keyframes gs-pulse{50%{opacity:.4}}
#fullscreen{padding:11px 15px;border:1px solid var(--gs-line);background:#1b2a22;color:#e2efd9;border-radius:8px;cursor:pointer}
.gs-tv-content{position:relative;width:min(1320px,calc(100% - 36px));margin:clamp(32px,6vw,78px) auto}
.gs-tv-kicker,.gs-tv-label{letter-spacing:.24em;font-size:clamp(.67rem,1.2vw,.82rem);color:#a1c18b;font-weight:800}
.gs-tv-content h1{font-size:clamp(1.9rem,4.2vw,4rem);line-height:1.08;margin:12px 0 22px;letter-spacing:-.035em}
#broadcastStatus{color:#9fb3a6;min-height:1.5em}
.gs-tv-winner{position:relative;text-align:center;border:1px solid #3c6344;background:linear-gradient(138deg,rgba(107,142,74,.19),rgba(10,22,15,.8));padding:clamp(24px,5vw,72px) 18px;margin:30px auto;box-shadow:inset 0 0 100px #0005,0 24px 80px #0008;overflow:hidden;clip-path:polygon(15px 0,100% 0,100% calc(100% - 15px),calc(100% - 15px) 100%,0 100%,0 15px)}
.gs-tv-winner[hidden]{display:none}
.gs-tv-number{font-size:clamp(2.3rem,8vw,7rem);font-weight:900;color:#b5e787;line-height:1.1;text-shadow:0 0 35px #97c4734a;margin:15px 0}
.gs-tv-winner h2{font-size:clamp(2rem,6vw,5.4rem);line-height:1.07;margin:0 0 16px;text-transform:uppercase;letter-spacing:-.045em}
.gs-tv-winner p:last-of-type{font-size:clamp(1rem,2vw,1.55rem);color:#b0c7ad}
.gs-tv-glow{position:absolute;bottom:-90px;left:12%;width:75%;height:160px;background:#89b87630;filter:blur(75px);pointer-events:none}
.gs-tv-enter{animation:gs-winner-reveal .85s ease-out both}
@keyframes gs-winner-reveal{from{opacity:0;transform:translateY(32px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.gs-tv-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,200px);gap:25px;margin-top:40px}
.gs-tv-history-row{display:grid;grid-template-columns:95px minmax(0,1fr) 25%;gap:12px;padding:13px 4px;border-bottom:1px solid var(--gs-line)}
.gs-tv-history-row b{color:var(--gs-olive)}.gs-tv-history-row small{color:#a4b3a8}.gs-tv-stat{align-self:start;text-align:center;border:1px solid var(--gs-line);padding:27px 12px}.gs-tv-stat strong{display:block;font-size:clamp(2.3rem,5vw,4rem);color:var(--gs-olive)}.gs-tv-stat span{font-size:.7rem;letter-spacing:.1em;color:#9daf9a}
.gs-tv-footer{font-size:.72rem;letter-spacing:.13em;color:#83998a;border-top:1px solid var(--gs-line);border-bottom:none;margin-top:60px}
@media(max-width:640px){.gs-tv-header{flex-wrap:wrap}.gs-live-pill{margin-left:auto}.gs-tv-content{margin-top:30px}.gs-tv-bottom{grid-template-columns:1fr}.gs-tv-history-row{grid-template-columns:60px 1fr}.gs-tv-history-row small{display:none}.gs-tv-stat{max-width:none}#fullscreen{width:100%}}
@media(prefers-reduced-motion:reduce){.gs-tv-enter,.gs-live-pill i,.gs-app .gs-bar-fill{animation:none}}

/* GhostOPS 2.9 — visual consolidation. Presentation only; no business or permission rules. */
:root {
  --gs29-focus: #d6f59f;
  --gs29-border: rgba(193,222,173,.18);
  --gs29-layer: rgba(17,30,32,.90);
  --gs29-card: rgba(24,40,43,.92);
  --gs29-muted: #b6c8bd;
}
body.gs-app { color-scheme: dark; text-rendering: optimizeLegibility; }
body.gs-app main.container, body.gs-app main.gs-event-main { padding-bottom: clamp(46px,7vh,92px); }
body.gs-app :is(.gs-panel,.gs-team-card,.gs-stat,.gs-operation-stat,.gs-operation-band,.gs-checkin-stat,.gs-player-row) {
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}
body.gs-app :is(.gs-panel,.gs-team-card,.gs-stat,.gs-operation-stat) { border-color: var(--gs29-border); }
body.gs-app .gs-panel { padding: clamp(15px,2.4vw,25px); }
body.gs-app .gs-panel:focus-within { border-color: rgba(198,239,119,.33); }
body.gs-app .gs-stat { min-width:0; }
body.gs-app .gs-stat strong { font-variant-numeric: tabular-nums; }
body.gs-app :is(.gs-subtext,.text-muted,.gs-player-meta,.gs-operation-team small) { overflow-wrap: anywhere; }
body.gs-app :is(.btn,.form-control,.custom-select,button,select,textarea,input):focus-visible,
body.gs-app a:focus-visible, body.gs-app summary:focus-visible,
.gs-mobile-dock a:focus-visible { outline: 3px solid var(--gs29-focus) !important; outline-offset: 3px; }
body.gs-app :is(.btn,button,summary) { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
body.gs-app .btn { transition: background-color .16s ease, border-color .16s ease, transform .14s ease; }
@media (hover:hover) and (pointer:fine) {
  body.gs-app .btn:not(:disabled):active { transform: translateY(1px); }
  body.gs-app .gs-team-card:hover { border-color:rgba(195,241,132,.3); box-shadow:0 15px 36px rgba(0,0,0,.25); }
}
body.gs-app :is(.form-control,.custom-select,select,textarea) { max-width:100%; }
body.gs-app .gs-section-title { line-height:1.3; overflow-wrap:anywhere; }
body.gs-app .alert { border-radius:12px; padding:13px 16px; line-height:1.55; overflow-wrap:anywhere; }
body.gs-app .alert-success { border-left:4px solid #7fca87; }
body.gs-app .alert-danger { border-left:4px solid #ed8686; }
body.gs-app .alert-warning { border-left:4px solid #e7bd70; }
body.gs-app :is(.table-responsive,.dataTables_wrapper) { max-width:100%; }
body.gs-app .table-responsive { scrollbar-width: thin; scrollbar-color:#5c7b61 #101b1a; }
body.gs-app .table th { white-space:normal; font-size:.81rem; letter-spacing:.025em; }
body.gs-app .table td { line-height:1.45; }
body.gs-app .gs-chart-help { font-size:.84rem; color:var(--gs29-muted); line-height:1.55; }
body.gs-app .gs-team-chart { display:grid; gap:5px; }
body.gs-app .gs-team-chart .gs-bar-label { align-items:baseline; min-width:0; }
body.gs-app .gs-team-chart .gs-bar-label span { min-width:0; overflow-wrap:anywhere; }
body.gs-app .gs-team-chart .gs-bar-label b { font-variant-numeric:tabular-nums; flex-shrink:0; }
body.gs-app .gs-team-chart .gs-bar-track { height:10px; border-radius:7px; }
body.gs-app .gs-team-chart .gs-bar-fill { min-width:2px; border-radius:7px; }
body.gs-app .gs-chart-legend { display:flex; align-items:center; gap:9px; margin:16px 0 4px; font-size:.77rem; color:var(--gs29-muted); }
body.gs-app .gs-chart-legend:before { content:''; width:24px; height:5px; border-radius:6px; background:linear-gradient(90deg,#627f4d,#b2e17d); flex:none; }
body.gs-app .gs-event-main .gs-ribbon-instruction { line-height:1.15; overflow-wrap:anywhere; }
body.gs-app .gs-event-main .gs-player-row { scroll-margin-top:90px; }
body.gs-app .gs-event-main .gs-player-action button:disabled { opacity:.65; cursor:not-allowed; }
body.gs-app .gs-topbar .gs-nav-details[open] > .dropdown-menu { z-index: 1040; }
body.gs-app .gs-topbar .gs-nav-details > summary { min-height:44px; }
body.gs-app .gs-topbar .dropdown-item { min-height:42px; display:flex; align-items:center; }
body.gs-app .gs-mobile-dock a { border-radius:10px; }
body.gs-app .gs-mobile-dock a.active { background:rgba(175,231,113,.08); }
@media (max-width:767.98px) {
  body.gs-app .container { padding-left:14px; padding-right:14px; }
  body.gs-app main.container { padding-top:8px; }
  body.gs-app :is(.gs-panel,.gs-panel-plain) { padding:15px; border-radius:14px; }
  body.gs-app .gs-ops-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  body.gs-app .gs-stat { padding:12px 10px; }
  body.gs-app .gs-page-kicker { font-size:.64rem; line-height:1.5; letter-spacing:.12em; }
  body.gs-app h1 { overflow-wrap:anywhere; }
  body.gs-app .gs-search-form .btn, body.gs-app .gs-player-action .btn,
  body.gs-app .gs-event-main .gs-registration-form .btn { min-height:50px; }
  body.gs-app .gs-event-main .gs-confirmation { padding:17px 12px; }
  body.gs-app .gs-event-main .gs-ribbon-instruction { font-size:clamp(1.4rem,6vw,2.1rem); }
  body.gs-app .gs-event-main .gs-operation-overview { grid-template-columns:repeat(3,minmax(0,1fr)); }
  body.gs-app .gs-bar-label { font-size:.85rem; }
  body.gs-app .gs-mobile-dock { padding-bottom:max(10px,env(safe-area-inset-bottom)); }
  body.gs-app :is(.gs-slim-cta,.gs-hero-actions) { gap:9px; }
}
@media (max-width:360px) {
  body.gs-app .gs-topbar .gs-brand-word { font-size:.87rem; }
  body.gs-app .gs-topbar .gs-brand-icon { width:34px;height:34px; }
  body.gs-app .gs-operation-stat strong { font-size:1.35rem; }
  body.gs-app .gs-mobile-dock a { min-width:0; padding-inline:2px; }
}
@media (prefers-reduced-motion:reduce) {
  body.gs-app *, body.gs-app *::before, body.gs-app *::after { animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important; }
}

