/* RIFLR Obsidian Gold visual system — v6 layout (single stylesheet, one surface level, compact controls) */
:root{--accent:#d7c57b;--accent-rgb:215,197,123;--accent-strong:#e4d596;--accent-ink:#15130b;--accent-soft:rgba(215,197,123,.1);
  --bg:#070809;--panel:#0d0f11;--surface:#131619;--surface-2:#1a1e22;--hover:rgba(255,255,255,.035);--panel-raised:#121519;
  --border:#22262b;--border-strong:#343a41;--text:#f3f1ea;--muted:#8d949d;--faint:#626971;
  --danger:#ef7078;--danger-soft:rgba(239,112,120,.1);--success:#66cf98;--success-soft:rgba(102,207,152,.1);--orange:#d99b56;--orange-soft:rgba(217,155,86,.12);
  --radius:10px;--radius-sm:6px;--control-height:34px;--control-small:28px;--layout-gap:8px;--gutter:24px;
  --shadow-pop:0 18px 50px rgba(0,0,0,.5);color-scheme:dark}
html[data-theme="light"]{--accent:#9b8030;--accent-rgb:155,128,48;--accent-strong:#846b24;--accent-ink:#fffdf5;--accent-soft:rgba(155,128,48,.1);
  --bg:#f2f0ea;--panel:#fbfaf6;--surface:#f3f0e8;--surface-2:#e9e5da;--hover:rgba(0,0,0,.035);--panel-raised:#fff;
  --border:#dedace;--border-strong:#c3bcaa;--text:#171817;--muted:#63665f;--faint:#76786f;
  --danger:#b4323c;--danger-soft:rgba(180,50,60,.08);--success:#2f7d52;--success-soft:rgba(47,125,82,.1);--orange:#9a5b12;--orange-soft:rgba(154,91,18,.1);
  --shadow-pop:0 18px 50px rgba(30,25,10,.16);color-scheme:light}

/* Base */
*{box-sizing:border-box}
html{background:var(--bg);scrollbar-gutter:stable}
body{margin:0;min-width:320px;min-height:100vh;color:var(--text);background:var(--bg);font-family:'Manrope',system-ui,sans-serif;font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
img{max-width:100%}
h1,h2,h3,h4{margin:0;font-family:'Space Grotesk',system-ui,sans-serif;font-weight:600;letter-spacing:-.02em;line-height:1.2}
p{margin:0}
kbd{padding:1px 5px;border:1px solid var(--border-strong);border-radius:4px;color:var(--muted);background:var(--surface);font:500 10px/1.4 'JetBrains Mono',monospace}
:focus-visible{outline:2px solid rgba(var(--accent-rgb),.7);outline-offset:2px}
::selection{background:rgba(var(--accent-rgb),.3)}
*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}
.ui-icon{width:18px;height:18px;display:block;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* Controls */
.btn{height:var(--control-height);padding:0 13px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:12px;font-weight:700;line-height:1;white-space:nowrap;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-primary{color:var(--accent-ink);background:var(--accent)}
.btn-primary:hover:not(:disabled){background:var(--accent-strong)}
.btn-secondary{color:var(--text);border-color:var(--border);background:var(--surface-2)}
.btn-secondary:hover:not(:disabled){border-color:var(--border-strong)}
.btn-secondary.active{border-color:rgba(var(--accent-rgb),.5);color:var(--accent);background:var(--accent-soft)}
.btn-ghost{color:var(--muted);background:transparent}
.btn-ghost:hover:not(:disabled){color:var(--text);background:var(--hover)}
.btn-danger{color:var(--danger);border-color:rgba(239,112,120,.28);background:transparent}
.btn-danger:hover:not(:disabled){background:var(--danger-soft)}
.btn-small,.btn-compact{height:var(--control-small);padding:0 10px;font-size:11px}
.btn-full{width:100%}
.btn-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--layout-gap)}
.btn input[type="file"],.image-control input[type="file"],.proof-file{display:none}
.icon-btn{width:var(--control-height);height:var(--control-height);padding:0;display:inline-grid;place-items:center;flex:0 0 auto;border:0;border-radius:var(--radius-sm);color:var(--muted);background:transparent;font-size:15px;line-height:1}
.icon-btn:hover{color:var(--text);background:var(--hover)}
input,select,textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);outline:0;color:var(--text);background:var(--surface);font-size:13px;transition:border-color .15s,box-shadow .15s}
input,select{height:var(--control-height);padding:0 10px}
input[type="checkbox"],input[type="radio"]{width:auto;height:auto}
textarea{min-height:88px;padding:9px 10px;line-height:1.55;resize:vertical}
input::placeholder,textarea::placeholder{color:var(--faint)}
input:focus,select:focus,textarea:focus{border-color:rgba(var(--accent-rgb),.6);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.1)}
input[readonly],textarea[readonly]{color:var(--muted)}
[aria-invalid="true"]{border-color:rgba(239,112,120,.6)}
.field{display:grid;gap:5px;margin-bottom:12px}
.field label{color:var(--muted);font-size:11px;font-weight:700}
.field-hint{color:var(--faint);font-size:11px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}
.form-grid .field.full,.field.full,.full{grid-column:1/-1}
.form-divider{margin:4px 0 12px;display:flex;align-items:center;gap:10px;color:var(--faint);font-size:11px;font-weight:700}
.form-divider::after{content:'';height:1px;flex:1;background:var(--border)}
.tag{height:20px;padding:0 7px;display:inline-flex;align-items:center;gap:5px;border-radius:999px;color:var(--muted);background:var(--surface-2);font-size:11px;font-weight:700;white-space:nowrap}
.tag.green,.tag.ready{color:var(--accent);background:var(--accent-soft)}
.tag i{width:6px;height:6px;border-radius:50%;background:var(--faint)}
.tag.ready i{background:var(--success)}
.eyebrow,.kicker{margin:0 0 6px;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.notice{padding:9px 11px;border-radius:var(--radius-sm);color:var(--muted);background:var(--surface);font-size:12px;line-height:1.5}
.empty{padding:22px 12px;color:var(--muted);font-size:12px;text-align:center}
.role,.muted{color:var(--muted);font-size:12px}
.progress{height:4px;overflow:hidden;border-radius:999px;background:var(--border-strong)}
.progress>span{display:block;height:100%;border-radius:inherit;background:var(--accent)}
.avatar{width:28px;height:28px;flex:0 0 auto;display:inline-grid;place-items:center;overflow:hidden;border-radius:7px;color:var(--accent-ink);background:var(--accent);font:700 11px 'Space Grotesk',sans-serif;object-fit:cover}
.person{min-width:0;display:flex;align-items:center;gap:10px}
.person strong,.person small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.person small{color:var(--muted);font-size:11px}
.grid{display:grid;gap:12px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.section-gap{margin-top:12px}
.quick-links{display:flex;flex-wrap:wrap;gap:6px}

/* Surfaces */
.card{padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.card-title{min-height:24px;margin:0 0 10px;display:flex;align-items:center;gap:8px;font:600 13px/1.3 'Space Grotesk',sans-serif;letter-spacing:-.01em}
.card-title.section-gap{margin-top:20px}
.card-title>small{color:var(--muted);font:500 11px 'Manrope',sans-serif;letter-spacing:0}
.card-title>.btn,.card-title>.btn-row,.card-title>span.btn-row{margin-left:auto}
.card-title>span:first-child{display:flex;align-items:center;gap:8px}

/* App shell */
.app-shell{min-height:100vh;display:grid;grid-template-columns:224px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;padding:14px 10px 12px;display:flex;flex-direction:column;gap:12px;border-right:1px solid var(--border);background:var(--panel);z-index:40}
.sidebar-toggle{width:22px;height:22px;padding:0;position:absolute;top:22px;right:-11px;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:50%;color:var(--muted);background:var(--panel);z-index:2}
.sidebar-toggle:hover{color:var(--text)}
.sidebar-toggle .ui-icon{width:12px;height:12px}
.app-shell.sidebar-collapsed .sidebar-toggle .ui-icon{transform:rotate(180deg)}
.brand{min-height:32px;padding:0 6px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px}
.brand-logo-crop{width:142px;height:28px;flex:0 0 auto;display:block;overflow:hidden}
.brand-logo-crop img{width:100%;height:100%;display:block;object-fit:contain;object-position:left center}
.brand>span:not(.brand-logo-crop){display:none}
.sidebar .brand{padding:4px 0 2px;align-items:center}
.sidebar .brand-logo-crop img{object-position:center}
.beta-note{height:18px;padding:0 8px;display:inline-flex;align-items:center;border:1px solid rgba(var(--accent-rgb),.35);border-radius:999px;color:var(--accent);background:var(--accent-soft);font-size:10.5px;font-weight:700;letter-spacing:.04em;white-space:nowrap}
.app-shell.sidebar-collapsed .beta-note{display:none}
html[data-theme="light"] .sidebar .brand-logo-crop img,html[data-theme="light"] .public-nav .brand-logo-crop img,html[data-theme="light"] .login-art .brand-logo-crop img{filter:invert(1) brightness(.35)}
.team-status{min-width:0;padding:7px 8px;display:flex;align-items:center;gap:9px;border-radius:var(--radius-sm);background:var(--surface)}
.team-status-mark,.team-status .team-logo{width:26px;height:26px;flex:0 0 auto;display:grid;place-items:center;border-radius:6px;color:var(--accent);background:var(--accent-soft);font:700 10px 'Space Grotesk',sans-serif;object-fit:cover}
.team-status .team-logo+.team-status-mark{display:none}
.team-status-copy{min-width:0;display:grid}
.team-status b{overflow:hidden;font-size:12px;white-space:nowrap;text-overflow:ellipsis}
.team-status small{color:var(--faint);font-size:10px}
.nav{min-height:0;flex:1;display:flex;flex-direction:column;gap:1px;overflow-y:auto}
.nav-label{margin:10px 8px 4px;color:var(--faint);font-size:10px;font-weight:700;letter-spacing:.08em}
.nav-divider{height:1px;margin:6px 8px;flex:0 0 auto;background:var(--border)}
.nav-btn{width:100%;height:32px;padding:0 8px;display:flex;align-items:center;gap:10px;flex:0 0 auto;border:0;border-radius:var(--radius-sm);color:var(--muted);background:transparent;font-size:12.5px;font-weight:600;text-align:left}
.nav-btn:hover{color:var(--text);background:var(--hover)}
.nav-btn.active{color:var(--text);background:var(--accent-soft)}
.nav-btn.active .nav-icon{color:var(--accent)}
.nav-icon{width:18px;display:grid;place-items:center;flex:0 0 auto}
.nav-beta{margin-left:auto;padding:2px 5px;border:1px solid rgba(210,164,67,.45);border-radius:3px;color:#e4bd67;background:rgba(210,164,67,.1);font:700 8px 'JetBrains Mono',monospace;letter-spacing:.02em;white-space:nowrap}
.nav-icon .ui-icon{width:17px;height:17px}
.nav-text{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.sidebar-bottom{padding-top:8px;border-top:1px solid var(--border)}
.version-chip{width:100%;margin-bottom:6px;padding:6px 8px;display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);text-align:left;cursor:pointer}
.version-chip:hover{background:var(--hover);color:var(--text)}
.version-chip span{height:16px;padding:0 6px;display:inline-flex;align-items:center;border-radius:999px;color:var(--accent);background:var(--accent-soft);font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.version-chip b{color:var(--text);font:600 12px 'Space Grotesk',sans-serif}
.version-chip i{margin-left:auto;color:var(--faint);font-size:10.5px;font-style:normal}
.app-shell.sidebar-collapsed .version-chip span,.app-shell.sidebar-collapsed .version-chip i{display:none}
.app-shell.sidebar-collapsed .version-chip{justify-content:center;padding:6px 2px}
.changelog-modal{width:min(560px,100%)}
.changelog-list{display:grid;gap:10px;max-height:62vh;overflow:auto}
.changelog-entry{padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}
.changelog-entry.current{border-color:rgba(var(--accent-rgb),.4)}
.changelog-entry header{display:flex;align-items:center;gap:8px}
.changelog-entry header b{min-width:0;font-size:13px}
.changelog-entry header em{margin-left:auto;color:var(--accent);font-size:11px;font-style:normal;font-weight:700;white-space:nowrap}
.changelog-entry ul{margin:8px 0 0;padding-left:18px;color:var(--muted);font-size:12.5px;line-height:1.55}
.user-chip{min-width:0;padding:4px;display:flex;align-items:center;gap:9px}
.user-chip>div{min-width:0;flex:1}
.user-chip strong,.user-chip small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.user-chip strong{font-size:12px}
.user-chip small{color:var(--faint);font-size:10.5px}
.logout{width:28px;height:28px;display:grid;place-items:center;flex:0 0 auto;border:0;border-radius:var(--radius-sm);color:var(--muted);background:transparent}
.logout:hover{color:var(--danger);background:var(--danger-soft)}
.logout .ui-icon{width:16px;height:16px}
.app-shell.sidebar-collapsed{grid-template-columns:72px minmax(0,1fr)}
.app-shell.sidebar-collapsed .sidebar{padding-inline:12px;align-items:center}
.app-shell.sidebar-collapsed .brand-logo-crop{width:36px}
.app-shell.sidebar-collapsed .team-status{padding:5px;justify-content:center;background:transparent}
.app-shell.sidebar-collapsed .team-status-copy,.app-shell.sidebar-collapsed .nav-text,.app-shell.sidebar-collapsed .nav-beta,.app-shell.sidebar-collapsed .nav-label,.app-shell.sidebar-collapsed .user-chip>div,.app-shell.sidebar-collapsed .logout{display:none}
.app-shell.sidebar-collapsed .nav{width:100%}
.app-shell.sidebar-collapsed .nav-btn{justify-content:center;padding:0}
.app-shell.sidebar-collapsed .nav-divider{margin-inline:6px}
.app-shell.sidebar-collapsed .user-chip{justify-content:center}
.main{min-width:0;padding:0 var(--gutter) 28px;display:flex;flex-direction:column;min-height:100vh}
.topbar{height:56px;margin:0 calc(var(--gutter) * -1);padding:0 var(--gutter);position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px)}
.topbar-title{min-width:0;display:flex;align-items:center;gap:8px}
.breadcrumbs{margin:0;overflow:hidden;font:600 17px/1.2 'Space Grotesk',sans-serif;letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis}
.mobile-menu{display:none}
.top-actions{display:flex;align-items:center;gap:6px}
.global-search-trigger{height:32px;min-width:220px;padding:0 8px 0 10px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--faint);background:var(--surface);font-size:12px}
.global-search-trigger:hover{border-color:var(--border-strong);color:var(--muted)}
.global-search-trigger kbd{background:var(--panel)}
.sync-state{height:32px;padding:0 9px;display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-sm);color:var(--muted);font-size:11px;font-weight:600;white-space:nowrap}
.sync-state::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--faint)}
.sync-state.online::before{background:var(--success)}
.sync-state.saving::before{background:var(--orange);animation:sync-pulse .8s ease infinite alternate}
.sync-state.offline,.sync-state.error{color:var(--danger)}
.sync-state.offline::before,.sync-state.error::before{background:var(--danger)}
.approval-badge{height:28px;padding:0 10px;border:0;border-radius:999px;color:var(--orange);background:var(--orange-soft);font-size:11px;font-weight:700}
.theme-toggle{width:32px;height:32px}
.notification-wrap{position:relative}
.notification-button{width:32px;height:32px;position:relative;display:grid;place-items:center;border:0;border-radius:var(--radius-sm);color:var(--muted);background:transparent}
.notification-button:hover{color:var(--text);background:var(--hover)}
.notification-count{min-width:16px;height:16px;padding:0 4px;position:absolute;top:1px;right:0;display:grid;place-items:center;border-radius:999px;color:var(--accent-ink);background:var(--accent);font:700 9.5px/1 'Manrope',sans-serif;font-style:normal}
.notification-panel{width:min(380px,calc(100vw - 24px));position:absolute;top:40px;right:0;z-index:60;overflow:hidden;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-pop)}
.notification-panel-head{padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border)}
.notification-panel-head>div{display:grid;gap:1px}
.notification-panel-head b{font:600 13px 'Space Grotesk',sans-serif}
.notification-panel-head small{color:var(--muted);font-size:11px}
.notification-panel-head button{padding:4px 6px;border:0;border-radius:4px;color:var(--accent);background:transparent;font-size:11px;font-weight:700}
.notification-tabs{padding:0 14px;display:flex;gap:16px;border-bottom:1px solid var(--border)}
.notification-tabs button{height:34px;padding:0;border:0;border-bottom:2px solid transparent;color:var(--muted);background:transparent;font-size:12px;font-weight:600}
.notification-tabs button.active{color:var(--text);border-color:var(--accent)}
.notification-tabs span{margin-left:3px;color:var(--accent)}
.notification-list{max-height:380px;overflow:auto}
.notification-item{width:100%;min-height:48px;padding:8px 14px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;border:0;border-bottom:1px solid var(--border);color:var(--text);background:transparent;text-align:left}
.notification-item:last-child{border-bottom:0}
.notification-item:hover{background:var(--hover)}
.notification-item.unread{box-shadow:inset 2px 0 var(--accent)}
.notification-item .avatar{width:28px;height:28px;color:var(--accent);background:var(--surface-2)}
.notification-item strong,.notification-item em{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.notification-item strong{font-size:12px}
.notification-item em{color:var(--muted);font-size:11.5px;font-style:normal}
.notification-item time{color:var(--faint);font-size:11px;font-variant-numeric:tabular-nums}
.notification-empty{padding:22px;color:var(--muted);font-size:12px;text-align:center}
.offline-banner{margin-top:12px;padding:9px 12px;border-radius:var(--radius-sm);color:var(--danger);background:var(--danger-soft);font-size:12px;font-weight:600}
.offline-readonly [data-modal],.offline-readonly form button[type="submit"],.offline-readonly [data-delete-team],.offline-readonly [data-save-tactic]{pointer-events:none;opacity:.42}
.page{width:100%;max-width:1440px;margin:0 auto;padding-top:18px;padding-bottom:32px}
.page-actions{margin-bottom:12px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--layout-gap)}
.admin-healthbar{margin-bottom:12px;display:flex;flex-wrap:wrap;gap:6px}
.app-footer{width:100%;max-width:1440px;margin:auto auto 0;padding-top:14px;display:flex;flex-wrap:wrap;gap:4px 14px;border-top:1px solid var(--border);color:var(--faint);font-size:11px}
.app-footer span:last-child{margin-left:auto}
.app-footer a,.public-footer a{color:var(--accent)}
.app-footer a:hover,.public-footer a:hover{color:var(--text)}

/* Dashboard */
.dashboard-metrics,.training-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--border)}
.metric{min-width:0;padding:12px 14px;display:grid;align-content:start;gap:3px;background:var(--panel)}
.metric-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.metric-label{color:var(--muted);font-size:11.5px;font-weight:600}
.metric-icon{color:var(--faint)}
.metric-icon .ui-icon{width:16px;height:16px}
.metric-value{font:600 22px/1.15 'Space Grotesk',sans-serif;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.metric-value small{color:var(--muted);font-size:13px;font-weight:500}
.metric .progress{margin:3px 0 1px}
.metric-foot{overflow:hidden;color:var(--muted);font-size:11.5px;white-space:nowrap;text-overflow:ellipsis}
.metric-foot.good{color:var(--success)}
.card.metric{padding:14px}
.dashboard-grid{grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);align-items:start}
.dashboard-primary-stack{min-width:0;display:grid;align-content:start;gap:12px}
.event-list{display:grid}
.event{padding:9px 0;display:flex;align-items:center;gap:11px;border-bottom:1px solid var(--border)}
.event:first-child{padding-top:2px}
.event:last-child{padding-bottom:0;border-bottom:0}
.event-date{width:40px;flex:0 0 40px;padding:4px 0;border-radius:var(--radius-sm);color:var(--muted);background:var(--surface);font-size:10px;font-weight:700;text-align:center;line-height:1.2}
.event-date b{display:block;color:var(--text);font:600 16px/1.1 'Space Grotesk',sans-serif}
.event strong{display:block;font-size:12.5px}
.event p{margin-top:1px;color:var(--muted);font-size:11.5px}
.dash-hero{min-height:112px;padding:16px 18px;position:relative;display:flex;align-items:center;gap:18px;overflow:hidden;border-left:3px solid var(--calendar-color,var(--accent));background:radial-gradient(circle at 0% 50%,color-mix(in srgb,var(--calendar-color,var(--accent)) 12%,transparent),transparent 45%),var(--panel)}
.dash-hero.empty{min-height:96px;border-left-color:var(--border-strong);background:var(--panel)}
.dash-hero-empty-icon{color:var(--faint)}
.dash-hero-empty-icon .ui-icon{width:34px;height:34px;stroke-width:1.3}
.dash-hero-map{width:64px;height:64px;flex:0 0 auto;object-fit:contain}
.dash-hero-copy{min-width:0;flex:1;display:grid;gap:3px}
.dash-kicker{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11.5px;font-weight:700}
.dash-hero h2{overflow:hidden;font-size:21px;white-space:nowrap;text-overflow:ellipsis}
.dash-hero p{overflow:hidden;color:var(--muted);font-size:12.5px;white-space:nowrap;text-overflow:ellipsis;text-transform:none}
.dash-hero-side{display:grid;justify-items:end;gap:8px;flex:0 0 auto}
.dash-countdown{font:700 20px/1.1 'Space Grotesk',sans-serif;letter-spacing:-.02em;white-space:nowrap}
.dash-clear{padding:10px 0 2px;color:var(--muted);font-size:12.5px}
.dash-action-list{display:grid}
.dash-action{min-height:48px;padding:7px 0;display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:12px;border-bottom:1px solid var(--border)}
.dash-action:last-child{border-bottom:0}
.dash-action>i{width:8px;height:8px;border-radius:50%;background:var(--faint)}
.dash-action.tone-orange>i{background:var(--orange)}
.dash-action.tone-danger>i{background:var(--danger)}
.dash-action.tone-accent>i{background:var(--accent)}
.dash-action b,.dash-action small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.dash-action b{font-size:13px}
.dash-action small{color:var(--muted);font-size:11.5px}
.task-list.compact.mine .task-row{grid-template-columns:minmax(0,1fr) 78px 262px}
.task-list.compact.mine .task-player-cell{display:none}
.dash-roles{display:grid;gap:6px}
.dash-role{width:100%;padding:9px 10px;display:flex;align-items:flex-start;gap:10px;border:0;border-radius:var(--radius-sm);color:var(--text);background:var(--surface);text-align:left}
.dash-role:hover{background:var(--surface-2)}
.dash-role>span:last-child{min-width:0;display:grid;gap:2px}
.dash-role b{font-size:13px}
.dash-role small{color:var(--muted);font-size:12px;line-height:1.5}
.dash-roster{display:grid}
.dash-roster-row{width:100%;min-height:40px;padding:5px 4px;display:grid;grid-template-columns:24px minmax(60px,110px) minmax(0,1fr) 92px;align-items:center;gap:10px;border:0;border-bottom:1px solid var(--border);border-radius:0;color:var(--text);background:transparent;text-align:left}
.dash-roster-row:last-child{border-bottom:0}
.dash-roster-row:hover{background:var(--hover)}
.dash-roster-row .avatar{width:24px;height:24px;border-radius:6px;font-size:10px}
.dash-roster-row b{overflow:hidden;font-size:12.5px;white-space:nowrap;text-overflow:ellipsis}
.dash-roster-row small{color:var(--muted);font-size:11.5px;text-align:right;white-space:nowrap}
.dash-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.dash-day{min-width:0;min-height:86px;padding:6px 4px;display:flex;flex-direction:column;align-items:center;gap:3px;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text);background:var(--surface)}
.dash-day:hover{border-color:var(--border-strong)}
.dash-day.today{border-color:rgba(var(--accent-rgb),.6);background:var(--accent-soft)}
.dash-day.past{opacity:.6}
.dash-day>span{color:var(--muted);font-size:10.5px;font-weight:700;text-transform:capitalize}
.dash-day>b{font:600 15px/1.1 'Space Grotesk',sans-serif}
.dash-day>i{width:100%;height:16px;display:grid;place-items:center;border-radius:3px;color:var(--calendar-color,var(--muted));background:color-mix(in srgb,var(--calendar-color,#8d9690) 16%,transparent);font-size:10px;font-style:normal;font-weight:700;font-variant-numeric:tabular-nums}
html[data-theme="light"] .dash-day>i{color:color-mix(in srgb,var(--calendar-color,#8d9690) 60%,#000)}
.dash-day>em{color:var(--faint);font-size:10px;font-style:normal}
.dash-day>small{margin-top:auto;color:var(--muted);font-size:10.5px;font-weight:700}
.dash-day>small.done{color:var(--success)}
.dash-form-body{display:flex;align-items:center;justify-content:space-between;gap:12px}
.dash-form-body>div{display:grid;grid-template-columns:auto auto auto;align-items:baseline;column-gap:6px}
.dash-form-body strong{font:600 28px/1 'Space Grotesk',sans-serif}
.dash-form-body span{color:var(--muted)}
.dash-form-body em{font-size:12px;font-style:normal;font-weight:700}
.dash-form-body em.up{color:var(--success)}
.dash-form-body em.down{color:var(--danger)}
.dash-form-body small{grid-column:1/-1;margin-top:4px;color:var(--faint);font-size:11.5px}
.dash-spark{width:132px;height:34px;flex:0 0 auto}
.dash-spark polyline{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.dash-news{padding:0}
.dash-news summary{min-height:48px;padding:0 14px;display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none}
.dash-news summary::-webkit-details-marker{display:none}
.dash-news summary b{min-width:0;flex:1;overflow:hidden;font-size:12.5px;white-space:nowrap;text-overflow:ellipsis}
.dash-news summary small{color:var(--faint);font-size:11px;white-space:nowrap}
.dash-news summary::after{content:'›';color:var(--muted);font-size:16px;transition:transform .15s}
.dash-news[open] summary::after{transform:rotate(90deg)}
.dash-news .release-feed{padding:0 14px 14px}
.release-feed{display:grid;gap:12px}
.release-history{display:flex;flex-wrap:wrap;gap:6px}
.release-history button{height:28px;padding:0 10px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:999px;color:var(--muted);background:transparent;font-size:11.5px}
.release-history button b{color:var(--text);font-weight:700}
.release-history button small{font-size:10.5px}
.release-history button.active{border-color:rgba(var(--accent-rgb),.5);background:var(--accent-soft)}
.release-detail h2{font-size:15px}
.release-detail>small{display:block;margin:2px 0 8px;color:var(--faint);font-size:11px}
.release-detail>div{color:var(--muted);font-size:12.5px;line-height:1.6}

/* Training: tasks as a table */
.task-list{display:grid}
.task-list-head,.task-row{display:grid;grid-template-columns:140px minmax(0,1fr) 100px 300px;align-items:center;column-gap:14px}
.task-list-head{padding:0 10px 7px;border-bottom:1px solid var(--border);color:var(--faint);font-size:11px;font-weight:700}
.task-list-head span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.task-list-head span:last-child{text-align:right}
.task-row{min-height:48px;padding:7px 10px;position:relative;border-bottom:1px solid var(--border);cursor:pointer;transition:background-color .12s}
.task-row:last-child{border-bottom:0}
.task-row:hover,.task-row.expanded{background:var(--hover)}
.task-cell{min-width:0}
.task-cell-label{display:none}
.task-player-cell{display:flex;align-items:center;gap:8px}
.task-player-cell .avatar{width:24px;height:24px;border-radius:6px;font-size:10px}
.task-player-cell b{overflow:hidden;font-size:12.5px;font-weight:700;white-space:nowrap;text-overflow:ellipsis}
.task-style-head{min-width:0;display:flex;align-items:center;gap:7px}
.task-style-head strong{min-width:0;overflow:hidden;font-size:13px;font-weight:700;white-space:nowrap;text-overflow:ellipsis}
.task-category{height:18px;padding:0 6px;display:inline-flex;align-items:center;flex:0 0 auto;border-radius:4px;color:var(--muted);background:var(--surface-2);font-size:10.5px;font-weight:700}
.task-style-cell p{margin-top:1px;overflow:hidden;color:var(--muted);font-size:11.5px;white-space:nowrap;text-overflow:ellipsis}
.task-value-cell strong{font:600 13px 'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap}
.task-assigner-cell{display:flex;align-items:center;gap:7px}
.task-assigner-cell .avatar{width:22px;height:22px;border-radius:6px;font-size:9.5px;color:var(--text);background:var(--surface-2)}
.task-assigner-cell>span{min-width:0}
.task-assigner-cell b{display:block;overflow:hidden;font-size:12px;font-weight:600;white-space:nowrap;text-overflow:ellipsis}
.task-date-cell b{display:block;font-size:12px;font-weight:600;white-space:nowrap}
.task-date-cell small{display:block;color:var(--faint);font-size:11px}
.task-status-cell{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}
.task-status{height:22px;padding:0 8px;display:inline-flex;align-items:center;border-radius:999px;color:var(--muted);background:var(--surface-2);font-size:11px;font-weight:700;white-space:nowrap}
.task-status.completed{color:var(--success);background:var(--success-soft)}
.task-status.submitted{color:var(--orange);background:var(--orange-soft)}
.task-status.failed{color:var(--danger);background:var(--danger-soft)}
.task-row.failed .task-style-cell strong{color:var(--muted)}
.tag.red{color:var(--danger);background:var(--danger-soft)}
.setting-row .tag{display:inline-flex;font-size:11.5px}
.task-actions{display:flex;align-items:center;gap:5px}
.task-actions .btn{height:28px;padding:0 9px;font-size:11px}
.task-expand-icon{width:16px;color:var(--faint);font-size:12px;text-align:center;transition:transform .15s}
.task-row.expanded .task-expand-icon{transform:rotate(180deg)}
.task-row.completed .task-style-head strong{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--faint)}
.task-rejection{grid-column:2/-1;margin-top:3px;color:var(--danger);font-size:11.5px}
.task-expanded-detail{grid-column:1/-1;margin-top:9px;padding:11px 12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px;border-radius:var(--radius-sm);background:var(--surface);cursor:default}
.task-expanded-detail .task-cell-label{display:block;margin-bottom:3px;color:var(--faint);font-size:11px;font-weight:700}
.task-expanded-copy{grid-column:1/-1;display:block;font-size:13px}
.task-expanded-copy p{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.55}
.task-expanded-meta span{display:block;color:var(--faint);font-size:11px;font-weight:700}
.task-expanded-meta b{display:block;margin-top:3px;font-size:12.5px}
.task-list.compact .task-list-head,.task-list.compact .task-row{grid-template-columns:108px minmax(0,1fr) 78px 262px}
.task-list.compact .task-assigner-cell,.task-list.compact .task-date-cell{display:none}
.task-list.compact .task-expanded-detail{grid-template-columns:repeat(2,minmax(0,1fr))}
.task-list.compact .task-expanded-copy{grid-column:1/-1}
.row-menu{position:relative}
.row-menu-trigger{width:28px;height:28px;font-size:16px;letter-spacing:1px}
.row-menu-list{min-width:150px;padding:4px;position:absolute;top:calc(100% + 4px);right:0;z-index:25;display:none;border:1px solid var(--border-strong);border-radius:8px;background:var(--panel);box-shadow:var(--shadow-pop)}
.row-menu.open .row-menu-list{display:grid}
.row-menu-item{height:30px;padding:0 10px;border:0;border-radius:5px;color:var(--text);background:transparent;font-size:12px;font-weight:600;text-align:left}
.row-menu-item:hover{background:var(--hover)}
.row-menu-item.danger{color:var(--danger)}
.row-menu-item.danger:hover{background:var(--danger-soft)}
.training-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.training-player-filter{min-width:0;flex:1;display:flex;flex-wrap:wrap;gap:5px}
.training-player-filter button{height:30px;padding:0 11px 0 8px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:999px;color:var(--muted);background:transparent;font-size:12px;font-weight:600}
.training-player-filter button:first-child:not(:has(.avatar)){padding-left:11px}
.training-player-filter button:hover{color:var(--text);border-color:var(--border-strong)}
.training-player-filter button.active{color:var(--text);border-color:rgba(var(--accent-rgb),.5);background:var(--accent-soft)}
.training-player-filter .avatar{width:18px;height:18px;border-radius:50%;font-size:8.5px}
.training-search{width:260px}
.training-search input{height:32px}
.mini-calendar{margin-top:12px;padding:8px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.mini-calendar-head{height:40px;padding:0 10px 0 6px;display:flex;align-items:center;gap:12px;border:0;border-right:1px solid var(--border);color:var(--text);background:transparent;text-align:left}
.mini-calendar-head>span:first-child{display:grid}
.mini-calendar-head b{font:600 13px 'Space Grotesk',sans-serif}
.mini-calendar-head small{color:var(--muted);font-size:11px;text-transform:capitalize}
.mini-calendar-open{color:var(--accent);font-size:11px;font-weight:700;white-space:nowrap}
.mini-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.mini-day{height:40px;position:relative;display:grid;place-items:center;align-content:center;gap:0;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--muted);background:transparent}
.mini-day:hover{color:var(--text);background:var(--hover)}
.mini-day small{color:var(--faint);font-size:10px;font-weight:700;line-height:1.1}
.mini-day b{font:600 13px/1.2 'Space Grotesk',sans-serif}
.mini-day.is-today:not(.selected){border-color:rgba(var(--accent-rgb),.45);color:var(--text)}
.mini-day.selected{color:var(--accent-ink);background:var(--accent)}
.mini-day.selected small{color:rgba(0,0,0,.6)}
.mini-day i{min-width:15px;height:15px;padding:0 4px;position:absolute;top:-5px;right:-3px;display:grid;place-items:center;border-radius:999px;color:var(--text);background:var(--surface-2);font-size:9.5px;font-style:normal;font-weight:700}
.mini-day.selected i{color:var(--accent);background:var(--accent-ink)}
.calendar-peek{display:none}
.training-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.training-stat{min-width:0;padding:10px 12px;display:grid;align-content:start;gap:2px;background:var(--panel)}
.training-stat>span{overflow:hidden;color:var(--muted);font-size:11.5px;font-weight:600;white-space:nowrap;text-overflow:ellipsis}
.training-stat b{font:600 18px/1.25 'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums}
.training-stat b small{color:var(--muted);font-size:11.5px;font-weight:500}
.training-stat em{color:var(--faint);font-size:11px;font-style:normal}
.training-stat .progress{margin-top:4px}
.page:not(:has(.training-controls)) .training-stats{grid-template-columns:repeat(5,minmax(0,1fr))}
#training-program .card-title .tag{height:18px}

/* Stratbook */
.strat-map-rail{padding:4px;display:flex;gap:2px;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.strat-map-card{height:40px;min-width:max-content;padding:0 10px 0 6px;flex:1 0 auto;display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:var(--radius-sm);color:var(--muted);background:transparent}
.strat-map-card:hover{color:var(--text);background:var(--hover)}
.strat-map-card.active{color:var(--text);background:var(--surface-2)}
.strat-map-card img{width:26px;height:26px;object-fit:contain;filter:grayscale(1);opacity:.6}
.strat-map-card.active img,.strat-map-card:hover img{filter:none;opacity:1}
.strat-map-card span{font-size:12.5px;font-weight:600}
.map-count-badge{min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border-radius:999px;color:var(--muted);background:var(--surface-2);font-size:10.5px;font-weight:700}
.strat-map-card.active .map-count-badge{color:var(--accent-ink);background:var(--accent)}
.strat-workspace{display:grid;grid-template-columns:250px minmax(0,1fr);gap:12px;align-items:start}
.tactic-list-panel{position:sticky;top:68px}
.side-switch{padding:2px;display:grid;grid-template-columns:1fr 1fr;gap:2px;border-radius:var(--radius-sm);background:var(--surface)}
.side-switch button{height:28px;border:0;border-radius:5px;color:var(--muted);background:transparent;font:700 11.5px 'Space Grotesk',sans-serif;letter-spacing:.04em}
.side-switch button:hover{color:var(--text)}
.side-switch button.active{color:var(--accent-ink);background:var(--accent)}
.tactic-list-panel .side-switch{margin-bottom:8px}
.strat-search{margin-bottom:8px;display:grid;gap:6px}
.strat-search input,.strat-search select{height:30px;font-size:12px}
.tactic-list{display:grid;gap:1px}
.tactic-list-item{width:100%;min-width:0;height:36px;padding:0 8px;display:flex;align-items:center;border:0;border-radius:var(--radius-sm);color:var(--muted);background:transparent;text-align:left}
.tactic-list-item:hover{color:var(--text);background:var(--hover)}
.tactic-list-item.active{color:var(--text);background:var(--accent-soft)}
.tactic-list-item>span{min-width:0;flex:1;display:flex;align-items:center;gap:8px}
.tactic-list-item i{color:var(--faint);font:600 10.5px 'JetBrains Mono',monospace;font-style:normal}
.tactic-list-item b{min-width:0;flex:1;overflow:hidden;font-size:12.5px;font-weight:600;white-space:nowrap;text-overflow:ellipsis}
.tactic-list-item em{height:18px;padding:0 6px;display:inline-flex;align-items:center;flex:0 0 auto;border-radius:4px;color:var(--muted);background:var(--surface-2);font-size:10.5px;font-style:normal;font-weight:700}
.tactic-list-item.active em{color:var(--accent)}
.tactic-list-item small{display:none}
.tactic-list-panel .empty{padding:14px 6px}
.strat-canvas{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.dashboard-primary-stack,.team-roster-panel,.team-control-panel,.wiki-content,.position-board-shell{grid-template-columns:minmax(0,1fr)}
.strat-main-detail,.player-plans{padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.strat-detail-head{margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.strat-detail-title{font:600 16px 'Space Grotesk',sans-serif;letter-spacing:-.02em}
.strat-detail-actions,.protocol-actions,.analysis-v117-history-actions{display:flex;align-items:center;justify-content:flex-end;gap:2px}
.strat-main-detail textarea{min-height:110px}
.strat-main-detail p{color:var(--muted);line-height:1.7;white-space:pre-line}
.detail-save-row{margin-top:8px;display:flex;justify-content:flex-end;gap:var(--layout-gap)}
.strat-block-head{margin-bottom:10px}
.strat-block-head b{display:block;font:600 13px 'Space Grotesk',sans-serif}
.strat-block-head small{display:block;color:var(--muted);font-size:11.5px}
.player-plan-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.player-plan-card{min-width:0;padding:9px;display:flex;flex-direction:column;gap:6px;border-radius:8px;background:var(--surface)}
.player-plan-card.editable{box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.22)}
.player-plan-head{min-width:0;padding:2px;margin:-2px;border-radius:6px;display:flex;align-items:center;gap:8px}
.player-plan-head[data-open-player]{cursor:pointer}
.player-plan-head[data-open-player]:hover{background:var(--hover)}
.player-plan-head .avatar{width:24px;height:24px;font-size:10px}
.player-plan-head>div{min-width:0;flex:1}
.player-plan-head b,.player-plan-head small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.player-plan-head b{font-size:12.5px}
.player-plan-head small{color:var(--faint);font-size:11px}
.edit-mark{color:var(--accent);font-size:10.5px;font-weight:700}
.player-plan-card select{height:30px;font-size:12px}
.player-plan-card textarea{min-height:92px;max-height:180px;padding:8px;background:var(--panel);font-size:12px;line-height:1.5}
.player-plan-card textarea[readonly]{border-color:transparent;cursor:default}
.player-plan-card .btn{height:28px;font-size:11px}
.read-only-note{padding:4px 0;color:var(--faint);font-size:11px}
.strat-visual-board{padding:12px 14px}
.strat-visual-board-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.strat-visual-board-head .card-title{margin:0}
.strat-visual-board-actions{display:flex;gap:6px}
.strat-visual-board .tactic-board-workspace{margin-top:12px}
.strat-visual-board .tactic-panel{max-height:620px;overflow:auto}
.strat-visual-board.expanded{position:fixed;inset:12px;z-index:90;overflow:auto;background:var(--bg);box-shadow:var(--shadow-pop)}
.strat-visual-board.expanded .tactic-stage{max-width:calc(100vh - 110px)}
.strat-visual-board.expanded .tactic-panel{max-height:calc(100vh - 110px)}
.strat-empty-state{padding:14px;display:flex;align-items:center;gap:12px;border:1px dashed var(--border-strong);border-radius:var(--radius);background:transparent}
.strat-empty-state>span{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;color:var(--accent);background:var(--accent-soft)}
.strat-empty-state>div{display:grid;gap:1px}
.strat-empty-state strong{font-size:13px}
.strat-empty-state small{color:var(--muted);font-size:12px}
.strat-empty-state .btn{margin-left:auto}
.empty-plan-drawer{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.empty-plan-drawer summary{height:40px;padding:0 14px;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:600;cursor:pointer;list-style:none}
.empty-plan-drawer summary::-webkit-details-marker{display:none}
.empty-plan-drawer summary::before{content:'+';color:var(--accent);font-weight:700}
.empty-plan-drawer[open] summary::before{content:'−'}
.empty-plan-drawer summary span{margin-left:auto;color:var(--faint)}
.empty-plan-drawer .player-plans{border:0;border-top:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius)}

/* Map positions */
.side-switch.position-side-switch{width:max-content;max-width:100%;display:flex;align-items:center}
.position-side-switch button{padding:0 16px}
.position-side-switch>small{padding:0 10px 0 12px;color:var(--muted);font-size:11.5px;white-space:nowrap}
.map-position-workspace{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:12px;align-items:start}
.position-board-shell{min-width:0;display:grid;gap:8px;justify-items:center}
.position-tool{width:100%;max-width:720px;padding:6px;display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.position-tool input{width:200px;height:30px}
.position-tool .btn{height:30px}
.position-tool .icon-btn{width:30px;height:30px}
.position-tool small{margin-left:auto;padding-right:6px;color:var(--muted);font-size:11.5px}
.position-radar{width:100%;max-width:720px;aspect-ratio:1;position:relative;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background-color:#161a1c;background-position:center;background-repeat:no-repeat;background-size:contain}
.position-radar.placing{cursor:crosshair;border-color:rgba(var(--accent-rgb),.65)}
.placement-hint{padding:7px 11px;position:absolute;top:12px;left:50%;z-index:5;border:1px solid rgba(var(--accent-rgb),.4);border-radius:var(--radius-sm);color:#f3f1ea;background:rgba(10,12,13,.92);font-size:12px;white-space:nowrap;transform:translateX(-50%);pointer-events:none}
.map-position-spot{min-width:78px;padding:6px 8px;position:absolute;z-index:3;display:grid;justify-items:center;gap:3px;border:1px solid rgba(215,197,123,.45);border-radius:7px;color:#f3f1ea;background:rgba(10,12,13,.9);box-shadow:0 6px 18px rgba(0,0,0,.4);text-align:center;transform:translate(-50%,-50%)}
.map-position-spot b{font-size:11px}
.map-position-spot small{color:#9aa0a7;font-size:10px}
.map-position-spot.drag-over{border-color:#d7c57b;transform:translate(-50%,-50%) scale(1.06)}
.spot-move,.spot-delete{width:20px;height:20px;padding:0;position:absolute;top:-9px;display:grid;place-items:center;border:1px solid #343a41;border-radius:50%;color:#f3f1ea;background:#131619;font-size:11px;line-height:1}
.spot-move{left:-9px;color:#15130b;border-color:#d7c57b;background:#d7c57b;cursor:grab;touch-action:none}
.spot-move .ui-icon{width:12px;height:12px;stroke-width:2.1}
.spot-move:active{cursor:grabbing}
.spot-delete{right:-9px;color:#ffb8bc;border-color:rgba(239,112,120,.45)}
.position-board-shell.side-ct .spot-move{color:#102034;border-color:#8cb9ef;background:#8cb9ef}
.position-board-shell.side-t .spot-move{color:#3a2b05;border-color:#f4d97e;background:#f4d97e}
.spot-players{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.spot-player{min-width:0;max-width:48px;display:grid;justify-items:center;gap:2px}
.spot-avatar{width:22px;height:22px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;color:#15130b;background:#d7c57b;font:700 9.5px 'Space Grotesk',sans-serif}
.spot-player small{max-width:100%;overflow:hidden;color:#c7cbcf;font-size:9px;font-weight:600;line-height:1.15;white-space:nowrap;text-overflow:ellipsis}
.position-board-shell.side-ct .map-position-spot{border-color:rgba(140,185,239,.5)}
.position-board-shell.side-ct .spot-avatar{color:#102034;background:#8cb9ef}
.position-board-shell.side-t .map-position-spot{border-color:rgba(244,217,126,.5)}
.position-board-shell.side-t .spot-avatar{color:#3a2b05;background:#f4d97e}
.position-roster{position:sticky;top:68px}
.position-help{margin:-4px 0 10px;color:var(--muted);font-size:12px}
.position-player-list{display:grid;gap:2px}
.position-player{padding:7px 8px;display:flex;align-items:center;gap:9px;border-radius:var(--radius-sm)}
.position-player:hover{background:var(--hover)}
.position-player[draggable="true"]{cursor:grab}
.position-player[draggable="true"]:active{cursor:grabbing}
.position-player>div{min-width:0;flex:1}
.position-player b,.position-player small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.position-player b{font-size:12.5px}
.position-player small{color:var(--muted);font-size:11px}
.position-player i{color:var(--accent);font-size:11px;font-style:normal}
.position-roster .notice{margin-top:10px}

/* Tactic board */
.tactic-board-workspace{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:12px;align-items:start}
.tactic-board-workspace>*{min-width:0}
.tactic-stage{width:100%;max-width:760px;aspect-ratio:1;position:relative;justify-self:center;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background-color:#161a1c;background-position:center;background-repeat:no-repeat;background-size:contain}
#tactic-canvas{position:absolute;inset:0;z-index:2;cursor:crosshair;touch-action:none}
.board-object{width:32px;height:32px;padding:0;position:absolute;z-index:4;display:grid;place-items:center;border:2px solid rgba(255,255,255,.75);border-radius:50%;color:#101410;background:#eee;box-shadow:0 5px 14px rgba(0,0,0,.45);transform:translate(-50%,-50%);cursor:grab;touch-action:none;font:800 10.5px 'Space Grotesk',sans-serif}
.board-object:active{cursor:grabbing}
.board-object.type-ct{color:#102034;background:#8cb9ef}
.board-object.type-t{color:#3a2b05;background:#f4d97e}
.board-object.type-bomb{width:32px;height:22px;border-radius:5px;color:#fff;border-color:#ff4d73;background:#ca2249}
.board-object.type-smoke{color:#fff;background:#7c8585}
.board-object.type-molly{color:#fff;background:#d16b35}
.board-object.type-flash{color:#171717;background:#f0f2e9}
.board-object.type-he{color:#fff;background:#59635d}
.tactic-panel{width:100%;position:sticky;top:68px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.tactic-panel>section{padding:11px 12px;border-bottom:1px solid var(--border)}
.tactic-panel label{display:block;margin-bottom:7px;color:var(--muted);font-size:11px;font-weight:700}
.tactic-colors{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}
.tactic-colors button{aspect-ratio:1;padding:0;border:0;border-radius:5px;background:var(--swatch)}
.tactic-colors button.active{outline:2px solid var(--text);outline-offset:2px}
.tactic-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.tactic-tools button{min-width:0;height:42px;padding:0 2px;display:grid;place-items:center;align-content:center;gap:2px;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--muted);background:var(--surface)}
.tactic-tools button:hover{color:var(--text)}
.tactic-tools button b{font-size:15px;line-height:1}
.tactic-tools button small{font-size:10.5px}
.tactic-tools button.active{color:var(--accent);border-color:rgba(var(--accent-rgb),.4);background:var(--accent-soft)}
.tactic-speed{margin-top:8px;display:grid;grid-template-columns:1fr 1fr;gap:4px}
.tactic-speed select{height:30px;grid-column:1/-1;font-size:12px}
#tactic-weapon { display:none; }
.tactic-speed button{height:28px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);background:transparent;font-size:11.5px;font-weight:600}
.tactic-speed button.active{color:var(--accent-ink);border-color:var(--accent);background:var(--accent)}
.tactic-objects{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.tactic-objects button{min-width:0;padding:6px 2px;display:grid;place-items:center;gap:3px;border:0;border-radius:var(--radius-sm);color:var(--muted);background:var(--surface);cursor:grab}
.tactic-objects button b{min-width:24px;height:24px;padding:0 4px;display:grid;place-items:center;border-radius:50%;color:#111;background:#ddd;font:800 10px 'Space Grotesk',sans-serif}
.tactic-objects button small{font-size:10px}
.tactic-objects .type-ct b{background:#8cb9ef}
.tactic-objects .type-t b{background:#f4d97e}
.tactic-objects .type-bomb b{height:18px;border-radius:4px;color:#fff;background:#ca2249}
.tactic-objects .type-smoke b{color:#fff;background:#7c8585}
.tactic-objects .type-molly b{color:#fff;background:#d16b35}
.tactic-objects .type-he b{color:#fff;background:#59635d}
.tactic-panel-actions{padding:11px 12px;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.tactic-panel-actions .notice{grid-column:1/-1;font-size:11.5px}

/* Economy */
.economy-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:12px;align-items:start}
.economy-console-head,.economy-readout-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.economy-console-head .eyebrow{margin-bottom:2px}
.economy-round{font:600 15px 'Space Grotesk',sans-serif}
.economy-side{padding:2px;display:flex;gap:2px;border-radius:var(--radius-sm);background:var(--surface)}
.economy-side button{height:28px;padding:0 14px;border:0;border-radius:5px;color:var(--muted);background:transparent;font-weight:700}
.economy-side button.active{color:var(--accent-ink);background:var(--accent)}
.economy-result-grid{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.economy-big{height:64px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);background:var(--surface);font:600 16px 'Space Grotesk',sans-serif}
.economy-big small{padding:1px 6px;border-radius:4px;background:var(--surface-2);font-size:11px}
.economy-big:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}
.economy-big.active.ours{color:var(--success);border-color:rgba(102,207,152,.55);background:var(--success-soft)}
.economy-big.active.theirs{color:var(--danger);border-color:rgba(239,112,120,.55);background:var(--danger-soft)}
.economy-sidetag{margin-left:10px;padding:2px 8px;border-radius:999px;color:var(--accent);background:var(--accent-soft);font-size:11.5px;font-weight:700;vertical-align:middle}
.economy-guide{margin:10px 0 0;color:var(--muted);font-size:12.5px;line-height:1.5}
.economy-guide b{color:var(--text)}
.economy-setup{margin-top:12px;padding:10px 12px;display:grid;gap:10px;border:1px dashed var(--border-strong);border-radius:var(--radius-sm)}
.economy-setup-side{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12.5px;font-weight:600}
.economy-setup-side small{display:block;color:var(--muted);font-size:11.5px;font-weight:400}
.economy-step{margin:16px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font:600 13px 'Space Grotesk',sans-serif}
.economy-step i{width:20px;height:20px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;color:var(--accent);background:var(--accent-soft);font-size:11px;font-style:normal}
.economy-step small{width:100%;padding-left:28px;color:var(--muted);font:400 11.5px 'Manrope',system-ui,sans-serif}
.economy-call-note{margin:4px 0 12px;color:var(--muted);font-size:12.5px;line-height:1.5}
.economy-cash-label{color:var(--muted);font-size:11.5px}
.economy-big:disabled{cursor:not-allowed}
.economy-quick-row{margin-top:8px;display:flex;flex-wrap:wrap;gap:5px}
.economy-chip{height:30px;padding:0 11px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);background:transparent;font-size:12px;font-weight:600}
.economy-chip:hover:not(:disabled){color:var(--text)}
.economy-chip.active{color:var(--accent);border-color:rgba(var(--accent-rgb),.55);background:var(--accent-soft)}
.economy-console .card-title.section-gap{margin:14px 0 0}
.economy-submit{width:100%;margin-top:12px}
.economy-call{margin:10px 0 2px;font:700 clamp(22px,2.6vw,32px)/1.1 'Space Grotesk',sans-serif;letter-spacing:-.02em}
.economy-cash{font:600 16px 'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums}
.economy-confidence{margin-top:8px}
.economy-metrics{margin-top:12px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;border-radius:var(--radius-sm);background:var(--border)}
.economy-metrics div{padding:9px 10px;background:var(--surface)}
.economy-metrics span,.economy-metrics small{display:block;color:var(--muted);font-size:10.5px;font-weight:600}
.economy-metrics b{display:block;margin:2px 0;font:600 14px 'Space Grotesk',sans-serif}
.economy-history{margin-top:12px}
.economy-history-row{min-height:40px;padding:6px 2px;display:grid;grid-template-columns:44px 104px 44px minmax(0,1fr) auto;align-items:center;gap:10px;border-bottom:1px solid var(--border);font-size:12px}
.economy-history-row:last-child{border-bottom:0}
.economy-history-row b{color:var(--faint);font:600 11.5px 'JetBrains Mono',monospace}
.economy-history-row strong{font-size:11.5px}
.economy-history-row .won{color:var(--success)}
.economy-history-row .lost{color:var(--danger)}
.economy-history-row span{color:var(--muted)}
.economy-history-row small{color:var(--muted);font-variant-numeric:tabular-nums}
.economy-empty{padding:22px;color:var(--muted);text-align:center}

/* Calendar */
.type-training{--calendar-color:var(--accent)}
.type-event{--calendar-color:#68a7ff}
.type-match{--calendar-color:#ff9b50}
.type-tournament{--calendar-color:#b982ff}
.type-meeting{--calendar-color:#54d8d0}
.type-vod{--calendar-color:#f084c7}
.type-bootcamp{--calendar-color:#e8cf62}
.type-deadline{--calendar-color:#ff625d}
.type-other{--calendar-color:#8d9690}
html[data-theme="light"] [class*='type-']{--calendar-color-ink:color-mix(in srgb,var(--calendar-color) 60%,#000)}
.calendar-type-pill{height:18px;padding:0 6px;display:inline-flex;align-items:center;flex:0 0 auto;border-radius:4px;color:var(--calendar-color,var(--muted));background:color-mix(in srgb,var(--calendar-color,#8d9690) 14%,transparent);font-size:10.5px;font-weight:700;white-space:nowrap}
html[data-theme="light"] .calendar-type-pill{color:var(--calendar-color-ink,var(--muted))}
.legend-dot{width:7px;height:7px;display:inline-block;flex:0 0 auto;border-radius:50%;background:var(--calendar-color,var(--muted))}
.legend-dot.green{background:var(--accent)}
.legend-dot.orange{background:var(--orange)}
.team-calendar-shell{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.team-calendar-toolbar{min-height:52px;padding:8px 12px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;border-bottom:1px solid var(--border)}
.team-calendar-nav{display:flex;align-items:center;gap:4px}
.team-calendar-nav .icon-btn{width:30px;height:30px}
.team-calendar-nav .btn{height:30px}
.team-calendar-title span{display:none}
.team-calendar-title h2{font-size:16px;text-transform:capitalize}
.team-calendar-title small{color:var(--muted);font-size:11.5px}
.calendar-legend{margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;color:var(--muted);font-size:11.5px}
.calendar-legend span{display:inline-flex;align-items:center;gap:6px}
.calendar-legend em{margin-left:auto;color:var(--faint);font-style:normal}
.calendar-legend.compact{margin:0;justify-content:flex-end;gap:4px 10px;font-size:11px}
.calendar-shortcuts{padding:6px 12px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;border-bottom:1px solid var(--border);color:var(--faint);font-size:11px}
.calendar-shortcuts b{color:var(--muted);font-weight:700}
.calendar-shortcuts em{margin-left:auto;color:var(--accent);font-style:normal;font-weight:600}
.team-calendar-scroll{overflow-x:auto}
.team-calendar-weekdays,.team-calendar-grid{min-width:720px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.team-calendar-weekdays{border-bottom:1px solid var(--border)}
.team-calendar-weekdays span{padding:6px 10px;color:var(--faint);font-size:11px;font-weight:700}
.team-calendar-day{height:78px;padding:5px 6px;position:relative;overflow:hidden;border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:pointer;transition:background-color .12s}
.team-calendar-day:nth-child(7n){border-right:0}
.team-calendar-grid>.team-calendar-day:nth-last-child(-n+7){border-bottom:0}
.team-calendar-day:hover{background:var(--hover)}
.team-calendar-day.outside{background:color-mix(in srgb,var(--bg) 55%,var(--panel));cursor:default}
.team-calendar-day.selected{background:rgba(var(--accent-rgb),.05);box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.4)}
.team-calendar-day.primary-selected{box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.75)}
.team-day-head{height:22px;margin-bottom:3px;display:flex;align-items:center;justify-content:space-between}
.team-day-head b{min-width:22px;height:22px;padding:0 4px;display:grid;place-items:center;border-radius:5px;color:var(--muted);font:600 12px 'Space Grotesk',sans-serif}
.team-calendar-day.today .team-day-head b{color:var(--accent-ink);background:var(--accent)}
.calendar-selected-mark{margin-left:auto;margin-right:4px;color:var(--accent);font-size:11px;font-weight:800}
.calendar-day-add{width:22px;height:22px;display:grid;place-items:center;border:0;border-radius:5px;color:var(--muted);background:transparent;opacity:0;transition:opacity .12s}
.team-calendar-day:hover .calendar-day-add,.calendar-day-add:focus-visible{opacity:1}
.calendar-day-add:hover{color:var(--accent);background:var(--accent-soft)}
.team-day-events{display:grid;gap:2px}
.calendar-event-chip{width:100%;min-width:0;height:21px;padding:0 5px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:5px;border:0;border-left:2px solid var(--calendar-color,var(--muted));border-radius:3px;color:var(--text);background:color-mix(in srgb,var(--calendar-color,#8d9690) 12%,transparent);text-align:left}
.calendar-event-chip:hover{background:color-mix(in srgb,var(--calendar-color,#8d9690) 22%,transparent)}
.calendar-event-chip span{color:var(--muted);font-size:10.5px;font-variant-numeric:tabular-nums}
.calendar-event-chip b{overflow:hidden;font-size:11px;font-weight:600;white-space:nowrap;text-overflow:ellipsis}
.calendar-event-chip small{display:none}
.calendar-event-chip.clipboard-selected,.calendar-detail-event.clipboard-selected{outline:1px solid rgba(var(--accent-rgb),.8);outline-offset:-1px}
.calendar-more{padding:0 5px;color:var(--faint);font-size:10.5px}
.calendar-multi-btn.active{color:var(--accent);border-color:rgba(var(--accent-rgb),.5);background:var(--accent-soft)}
.calendar-detail-card{padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.calendar-detail-head{margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.calendar-detail-head .eyebrow{margin-bottom:2px}
.calendar-detail-head h3{font-size:15px;text-transform:capitalize}
.calendar-selection-summary{display:block;margin-top:2px;color:var(--muted);font-size:11.5px}
.calendar-detail-list{display:grid}
.calendar-detail-event{min-height:48px;padding:7px 8px 7px 10px;display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:12px;border-bottom:1px solid var(--border);box-shadow:inset 2px 0 var(--calendar-color,var(--muted));cursor:pointer}
.calendar-detail-event:last-child{border-bottom:0}
.calendar-detail-event:hover{background:var(--hover)}
.calendar-event-time{color:var(--muted);font:600 12.5px 'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums}
.calendar-event-info{min-width:0}
.calendar-event-info>div{display:flex;align-items:center;gap:8px}
.calendar-event-info h4{overflow:hidden;font-size:13px;white-space:nowrap;text-overflow:ellipsis}
.calendar-event-info p{margin-top:2px;color:var(--muted);font-size:12px}
.calendar-edit{width:30px;height:30px}
.calendar-empty{padding:16px}
.calendar-type-preview{margin-top:4px;display:flex;flex-wrap:wrap;gap:5px}
.calendar-multi-date-field{padding:10px;border-radius:var(--radius-sm);background:var(--surface)}
.calendar-multi-date-field>small{display:block;margin-top:6px;color:var(--muted);font-size:11.5px}
.calendar-date-badges{display:flex;flex-wrap:wrap;gap:4px}
.calendar-date-badges span{height:22px;padding:0 7px;display:inline-flex;align-items:center;border-radius:999px;color:var(--text);background:var(--accent-soft);font-size:11.5px;text-transform:capitalize}
.calendar-weekdays{margin-bottom:4px;display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.calendar-weekdays span{color:var(--faint);font-size:11px;font-weight:700;text-align:center}
.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.month-day{min-height:70px;padding:6px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--muted);background:var(--surface);text-align:left}
.month-day:hover{border-color:var(--border-strong)}
.month-day>b{font:600 12px 'Space Grotesk',sans-serif}
.month-day.today>b{min-width:22px;height:22px;display:grid;place-items:center;border-radius:5px;color:var(--accent-ink);background:var(--accent)}
.month-day.selected{border-color:rgba(var(--accent-rgb),.6);background:var(--accent-soft)}
.month-day.empty-day{background:transparent;cursor:default}
.calendar-task-dot{color:var(--accent);font-size:10.5px;font-weight:700}
.month-day small{color:var(--orange);font-size:10.5px}

/* Protocols & codes */
.toolbar{margin-bottom:10px;display:flex;align-items:center;gap:8px}
.toolbar input{max-width:320px;height:32px}
.protocol-list{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.protocol-list>.empty{padding:28px}
.protocol-row{padding:12px 14px;border-bottom:1px solid var(--border)}
.protocol-row:last-child{border-bottom:0}
.protocol-row:hover{background:var(--hover)}
.protocol-row-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.protocol-row-body{min-width:0}
.protocol-row-body strong{display:block;font:600 13px 'Space Grotesk',sans-serif;letter-spacing:.01em}
.protocol-row-body p{margin:2px 0 0;color:var(--muted);font-size:12.5px;line-height:1.5}
.protocol-example{min-width:0;margin-top:8px;padding:7px 10px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;border-left:2px solid rgba(var(--accent-rgb),.4);border-radius:0 6px 6px 0;background:var(--surface);color:var(--text);font-size:12px;line-height:1.5}
.protocol-example span{flex:0 0 auto;color:var(--faint);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.protocol-action-btn{height:26px;padding:0 8px;border:0;border-radius:5px;color:var(--muted);background:transparent;font-size:11.5px;font-weight:600;white-space:nowrap}
.protocol-action-btn:hover{color:var(--text);background:var(--hover)}
.protocol-action-btn.danger{color:color-mix(in srgb,var(--danger) 80%,var(--muted))}
.protocol-action-btn.danger:hover{color:var(--danger);background:var(--danger-soft)}

/* Coach analysis */
.analysis-v117-toolbar{margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.analysis-v117-periods{padding:2px;display:flex;gap:2px;border-radius:var(--radius-sm);background:var(--surface)}
.analysis-v117-periods button{height:28px;padding:0 12px;border:0;border-radius:5px;color:var(--muted);background:transparent;font-size:12px;font-weight:700}
.analysis-v117-periods button.active{color:var(--accent-ink);background:var(--accent)}
.analysis-v117-period-label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}
.analysis-v117-period-label b{color:var(--text)}
.analysis-calendar-card{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);gap:20px}
.analysis-calendar-head{margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.analysis-calendar-head .eyebrow{margin-bottom:1px}
.analysis-calendar-head h3{font-size:15px}
.analysis-calendar-nav{display:flex;align-items:center;gap:4px}
.analysis-calendar-nav .icon-btn{width:28px;height:28px}
.analysis-calendar-nav b{min-width:112px;font-size:12.5px;text-align:center;text-transform:capitalize}
.analysis-calendar-weekdays,.analysis-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.analysis-calendar-weekdays span{padding:3px;color:var(--faint);font-size:10.5px;font-weight:700;text-align:center}
.analysis-calendar-day{height:40px;padding:4px 5px;position:relative;border:1px solid transparent;border-radius:5px;color:var(--text);background:var(--surface);text-align:left}
.analysis-calendar-day:hover{border-color:var(--border-strong)}
.analysis-calendar-day.selected{border-color:var(--accent)}
.analysis-calendar-day.empty{visibility:hidden}
.analysis-calendar-day b{position:absolute;top:3px;left:5px;color:var(--muted);font-size:10.5px;font-weight:600}
.analysis-calendar-day span{position:absolute;right:5px;bottom:3px;font:700 11.5px 'Space Grotesk',sans-serif}
.analysis-calendar-day.low{background:rgba(239,112,120,.14)}
.analysis-calendar-day.mid{background:rgba(217,155,86,.16)}
.analysis-calendar-day.high{background:rgba(var(--accent-rgb),.16)}
.analysis-calendar-legend{margin-top:8px;display:flex;gap:12px;color:var(--muted);font-size:11px}
.analysis-calendar-legend i{width:7px;height:7px;margin-right:5px;display:inline-block;border-radius:50%}
.analysis-calendar-legend .low{background:var(--danger)}
.analysis-calendar-legend .mid{background:var(--orange)}
.analysis-calendar-legend .high{background:var(--accent)}
.analysis-day-summary{padding:4px 0 4px 20px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;border-left:1px solid var(--border)}
.analysis-day-summary h3{font-size:18px}
.analysis-day-score{display:flex;align-items:baseline;gap:3px}
.analysis-day-score strong{color:var(--accent);font:700 34px/1 'Space Grotesk',sans-serif}
.analysis-day-score span{color:var(--muted)}
.analysis-day-summary small{color:var(--muted);font-size:12px}
.analysis-day-summary p{color:var(--muted);font-size:12.5px;line-height:1.6}
.analysis-day-summary .btn{margin-top:6px}
.analysis-v117-summary{margin-top:12px;display:grid;grid-template-columns:1.3fr repeat(3,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--border)}
.analysis-v117-score-card,.analysis-v117-mini-card{min-width:0;padding:12px 14px;display:grid;align-content:start;gap:3px;background:var(--panel)}
.analysis-v117-score-card>span,.analysis-v117-mini-card>span{color:var(--muted);font-size:11.5px;font-weight:600}
.analysis-v117-score-card>div{display:flex;align-items:baseline;gap:4px}
.analysis-v117-score-card strong{font:600 24px/1.15 'Space Grotesk',sans-serif}
.analysis-v117-score-card em{color:var(--muted);font-style:normal}
.analysis-v117-score-card b{margin-left:6px;height:20px;padding:0 7px;display:inline-flex;align-items:center;border-radius:999px;color:var(--accent);background:var(--accent-soft);font-size:11px}
.analysis-v117-mini-card strong{font:600 20px/1.2 'Space Grotesk',sans-serif}
.analysis-v117-mini-card strong.positive,.analysis-v117-metric-meta .positive{color:var(--success)}
.analysis-v117-mini-card strong.negative,.analysis-v117-metric-meta .negative{color:var(--danger)}
.analysis-v117-score-card small,.analysis-v117-mini-card small{color:var(--faint);font-size:11px}
.analysis-v117-main-grid{margin-top:12px;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:12px}
.analysis-v117-chart{width:100%;height:auto;display:block}
.analysis-v117-gridline{stroke:var(--border-strong);stroke-width:1;stroke-dasharray:4 5}
.analysis-v117-line{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
.analysis-v117-point{fill:var(--panel);stroke:var(--accent);stroke-width:2}
.analysis-v117-empty{padding:30px;color:var(--muted);text-align:center}
.analysis-v117-chart-foot{margin-top:6px;display:flex;justify-content:space-between;color:var(--faint);font-size:11px}
.analysis-v117-insight-item{padding:10px 0;display:grid;gap:2px;border-top:1px solid var(--border)}
.analysis-v117-insight-item:first-of-type{border-top:0;padding-top:0}
.analysis-v117-insight-item span{color:var(--muted);font-size:11.5px;font-weight:600}
.analysis-v117-insight-item strong{font:600 15px 'Space Grotesk',sans-serif}
.analysis-v117-insight-item small{color:var(--faint);font-size:11.5px}
.analysis-v117-metrics{display:grid}
.analysis-v117-metric-row{min-height:36px;padding:6px 0;display:grid;grid-template-columns:minmax(150px,200px) minmax(0,1fr) minmax(210px,260px);align-items:center;gap:14px;border-bottom:1px solid var(--border)}
.analysis-v117-metric-row:last-child{border-bottom:0}
.analysis-v117-metric-name{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.analysis-v117-metric-name strong{font-size:12.5px}
.analysis-v117-metric-name span{color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums}
.analysis-v117-metric-track{height:6px;overflow:hidden;border-radius:999px;background:var(--surface-2)}
.analysis-v117-metric-track i{height:100%;display:block;border-radius:inherit;background:var(--accent)}
.analysis-v117-metric-meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums}
.analysis-player-list{display:grid}
.analysis-player-row{min-height:44px;padding:6px 8px;margin:0 -8px;border-radius:var(--radius-sm);display:grid;grid-template-columns:26px minmax(80px,140px) minmax(0,1fr) 42px minmax(96px,auto) 48px;align-items:center;column-gap:12px;border-bottom:1px solid var(--border);cursor:pointer}
.analysis-player-row:hover{background:var(--hover)}
.analysis-player-row:last-child{border-bottom:0}
.analysis-player-row .avatar{width:26px;height:26px;font-size:10px}
.analysis-player-row b{overflow:hidden;font-size:12.5px;white-space:nowrap;text-overflow:ellipsis}
.analysis-player-row strong{font:600 15px 'Space Grotesk',sans-serif;text-align:right}
.analysis-player-row small{color:var(--muted);font-size:11.5px;white-space:nowrap}
.analysis-player-row span{font-size:12px;font-weight:700;text-align:right}
.analysis-player-row span.positive{color:var(--success)}
.analysis-player-row span.negative{color:var(--danger)}
.analysis-player-row em{grid-column:3/-1;overflow:hidden;color:var(--faint);font-size:11.5px;font-style:normal;white-space:nowrap;text-overflow:ellipsis}
.analysis-history-players{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px}
.analysis-history-players span{height:20px;padding:0 7px;display:inline-flex;align-items:center;gap:4px;border-radius:999px;color:var(--muted);background:var(--surface-2);font-size:11px;cursor:pointer}
.analysis-history-players span:hover{background:var(--accent-soft);color:var(--text)}
.analysis-history-players b{color:var(--text)}
.analysis-player-grid{margin-bottom:12px;padding:12px;display:grid;gap:6px;border-radius:var(--radius-sm);background:var(--surface)}
.analysis-player-field{display:grid;grid-template-columns:minmax(110px,160px) 84px minmax(0,1fr);align-items:center;gap:8px}
.analysis-player-field>span{min-width:0;display:flex;align-items:center;gap:8px}
.analysis-player-field .avatar{width:22px;height:22px;font-size:9.5px}
.analysis-player-field b{overflow:hidden;font-size:12.5px;white-space:nowrap;text-overflow:ellipsis}
.analysis-player-field select,.analysis-player-field input{height:30px;font-size:12px}
@media (max-width:620px){.analysis-player-row{grid-template-columns:26px minmax(0,1fr) 42px 48px}.analysis-player-row .analysis-v117-metric-track,.analysis-player-row small{display:none}.analysis-player-row em{grid-column:2/-1}.analysis-player-field{grid-template-columns:minmax(0,1fr) 84px}.analysis-player-field input{grid-column:1/-1}}
.analysis-v117-history-list{display:grid}
.analysis-v117-history-row{padding:9px 0;display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;align-items:center;gap:12px;border-bottom:1px solid var(--border)}
.analysis-v117-history-row:last-child{border-bottom:0}
.analysis-v117-history-date{height:42px;display:grid;place-items:center;align-content:center;border-radius:var(--radius-sm);background:var(--surface);line-height:1.1}
.analysis-v117-history-date b{font:600 15px 'Space Grotesk',sans-serif}
.analysis-v117-history-date span{color:var(--muted);font-size:10px;font-weight:700}
.analysis-v117-history-main{min-width:0}
.analysis-v117-history-main strong{font-size:12.5px}
.analysis-v117-history-main small{display:block;color:var(--muted);font-size:11.5px}
.analysis-v117-history-main p{margin-top:2px;overflow:hidden;color:var(--faint);font-size:12px;white-space:nowrap;text-overflow:ellipsis}
.analysis-v117-history-score{display:flex;align-items:baseline;gap:2px}
.analysis-v117-history-score strong{color:var(--accent);font:600 18px 'Space Grotesk',sans-serif}
.analysis-v117-history-score span{color:var(--faint);font-size:11px}

/* Demo Analizi */
.demo-library{max-width:1100px}.demo-library-upload{position:relative;white-space:nowrap}.demo-library-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}.demo-library-upload.disabled{opacity:.65;pointer-events:none}.demo-library-tabs{display:flex;gap:8px;margin:18px 0 14px;padding-bottom:16px;border-bottom:1px solid var(--border)}.demo-library-tabs button{min-height:34px;padding:0 12px;border:1px solid var(--border-strong);border-radius:4px;background:transparent;color:var(--muted);font:600 12px 'Space Grotesk',sans-serif}.demo-library-tabs button.active{border-color:#a58b53;background:#27251f;color:#f5db9f}.demo-library-tabs b{margin-left:4px;color:var(--faint)}.demo-library-head,.demo-library-row{display:grid;grid-template-columns:106px 86px minmax(150px,1fr) 66px minmax(150px,1fr) 82px 28px;align-items:center;gap:10px}.demo-library-head{padding:0 10px 7px;color:var(--faint);font:700 10px 'JetBrains Mono',monospace}.demo-library-row{min-height:58px;padding:8px 10px;border-top:1px solid var(--border);background:rgba(255,255,255,.012)}.demo-library-row:hover{background:var(--hover)}.demo-library-date{display:grid;gap:3px;font-size:12px}.demo-library-date b{font-weight:600}.demo-library-date small{color:var(--faint);font-size:10px}.demo-library-map{color:var(--muted);font:600 11px 'JetBrains Mono',monospace;text-transform:uppercase}.demo-library-team{display:flex;align-items:center;gap:8px;min-width:0}.demo-library-team b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.demo-library-team.t{justify-content:flex-end;text-align:right}.demo-team-dot{flex:0 0 auto;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#25485d;color:#b6d8ef;font:700 8px 'JetBrains Mono',monospace}.demo-library-team.t .demo-team-dot{background:#5b4320;color:#f1d18b}.demo-library-score{text-align:center;color:var(--muted);font:600 14px 'JetBrains Mono',monospace}.demo-library-replay{min-height:32px;padding:0 10px}.demo-library-delete{color:var(--faint)}.demo-library-delete:hover{color:var(--danger)}.demo-library-empty{min-height:190px;display:grid;place-items:center;align-content:center;gap:8px;border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--muted);text-align:center}.demo-library-empty strong{color:var(--text);font:600 16px 'Space Grotesk',sans-serif}.demo-library-empty .demo-library-upload{margin-top:8px}
.demo-library-head,.demo-library-row{grid-template-columns:106px 100px 58px minmax(130px,1fr) 66px minmax(130px,1fr) 82px 76px 28px}.demo-library-map{display:flex;align-items:center;gap:6px}.demo-library-map img{width:22px;height:22px;object-fit:contain}.demo-source{padding:3px 4px;border:1px solid var(--border-strong);border-radius:3px;color:var(--muted);font:700 8px 'JetBrains Mono',monospace;text-align:center}.demo-source.hltv{color:#e3bd65;border-color:#8b6a2d}.demo-source.faceit{color:#ff756d;border-color:#8b3935}.demo-source.custom{color:#9dc2eb;border-color:#426785}.demo-library-ai{min-height:32px;padding:0 8px;font-size:11px}
.demo-upload-card{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.demo-upload-btn{position:relative;cursor:pointer}
.demo-upload-btn.disabled{opacity:.6;cursor:not-allowed;pointer-events:none}
.demo-upload-error{margin:0;color:var(--danger);font-size:12px}
.demo-report-list{display:grid}
.demo-report-row{width:100%;padding:9px 0;display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;align-items:center;gap:12px;border:0;border-bottom:1px solid var(--border);background:transparent;text-align:left;color:var(--text)}
.demo-report-row:last-child{border-bottom:0}
.demo-report-row:hover,.demo-report-row.active{background:var(--hover)}
.demo-report-date{height:42px;display:grid;place-items:center;align-content:center;border-radius:var(--radius-sm);background:var(--surface);line-height:1.1}
.demo-report-date b{font:600 15px 'Space Grotesk',sans-serif}
.demo-report-date small{color:var(--muted);font-size:10px;font-weight:700}
.demo-report-main{min-width:0;display:grid;gap:1px}
.demo-report-main strong{overflow:hidden;font-size:12.5px;white-space:nowrap;text-overflow:ellipsis}
.demo-report-main small{color:var(--muted);font-size:11.5px}
.demo-report-score{font:600 15px 'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums}
.demo-detail{padding:14px}
.demo-utility-grid{display:grid;gap:1px;margin-bottom:10px;border-radius:var(--radius-sm);overflow:hidden;background:var(--border)}
.demo-utility-row{padding:8px 10px;display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:var(--panel);font-size:12px}
.demo-utility-row b{min-width:120px;font-size:12.5px}
.demo-utility-row span{color:var(--muted)}
.demo-round-list{max-height:360px;overflow:auto;display:grid}
.demo-round-row{padding:6px 4px;display:grid;grid-template-columns:32px 34px minmax(0,1fr) auto;align-items:center;gap:10px;border-bottom:1px solid var(--border);font-size:12px}
.demo-round-row:last-child{border-bottom:0}
.demo-round-num{color:var(--faint);font:600 11px 'JetBrains Mono',monospace}
.demo-round-side{font:700 10.5px 'Space Grotesk',sans-serif;text-align:center}
.demo-round-side.tone-ct{color:#8cb9ef}
.demo-round-side.tone-t{color:#f4d97e}
.demo-round-cond{color:var(--muted)}
.demo-round-kills{color:var(--faint);font-size:11px;white-space:nowrap}
.demo-watch-btn{flex:0 0 auto}
.demo-replay-page{min-height:100vh;display:flex;flex-direction:column;background:#0b0d0f;padding:20px clamp(16px,4vw,48px) 40px}
.demo-replay-page-head{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.demo-replay-page-head h1{margin:0;font:700 18px 'Space Grotesk',sans-serif;color:var(--text)}
.demo-replay-page-body{flex:1;width:100%;max-width:1440px;margin:0 auto}
.demo-replay-toolbar{min-height:40px;margin:-2px 0 12px;display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px}.demo-replay-map{font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.demo-replay-layout{display:grid;grid-template-columns:minmax(180px,250px) minmax(360px,860px) minmax(180px,250px);justify-content:center;align-items:start;gap:16px}
.demo-replay-stage{width:100%;aspect-ratio:1;margin:0 auto;position:relative;overflow:hidden;border:1px solid #3a4248;border-radius:var(--radius);background-color:#161a1c;background-position:center;background-repeat:no-repeat;background-size:contain;box-shadow:0 12px 36px rgba(0,0,0,.35)}
.demo-replay-map-layer{position:absolute;inset:0;background:var(--radar) center/contain no-repeat;transform-origin:0 0;will-change:transform}
.demo-replay-stage.diagram-mode{background-color:#222;isolation:isolate}
.demo-replay-stage.diagram-mode .demo-replay-map-layer{filter:grayscale(1) invert(1) brightness(.3);mix-blend-mode:screen}
.demo-replay-stage.zoomed{cursor:grab}.demo-replay-stage.panning{cursor:grabbing}
.demo-replay-zoom{position:absolute;left:8px;bottom:8px;z-index:6;display:flex;align-items:center;gap:4px;padding:3px;border:1px solid rgba(255,255,255,.14);border-radius:6px;background:rgba(9,12,14,.82)}
.demo-replay-zoom button{width:26px;height:26px;border:0;border-radius:4px;background:#1c2226;color:#e6ebee;font:700 14px 'JetBrains Mono',monospace;cursor:pointer}.demo-replay-zoom button:hover{background:#2a343b}
.demo-replay-zoom span{min-width:40px;text-align:center;color:#9aa4aa;font:700 10px 'JetBrains Mono',monospace}
.demo-replay-style-toggle{position:absolute;right:8px;bottom:8px;z-index:6;border:1px solid rgba(72,210,238,.62);border-radius:4px;background:rgba(9,17,20,.82);color:#8de4f5;padding:4px 7px;font:700 9px 'JetBrains Mono',monospace;cursor:pointer}
.demo-replay-style-toggle:hover{background:#153139;color:#d6f8ff}
.demo-replay-stage::after{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;background:radial-gradient(circle at 50% 48%,transparent 45%,rgba(7,10,14,.14) 76%,rgba(7,10,14,.36) 100%);box-shadow:inset 0 0 70px rgba(0,0,0,.2)}
.demo-replay-stage canvas{position:absolute;inset:0}
.demo-replay-team-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:0 2px 8px;margin-bottom:4px;border-bottom:1px solid #283139}
.demo-replay-team-head b{flex:1;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.t-team .demo-replay-team-head b{text-align:right}
.demo-logo{width:24px;height:24px;flex:0 0 auto}
.demo-replay-team-head span{font:700 16px 'Space Grotesk',sans-serif;color:var(--text)}
.demo-replay-scoreboard{min-height:52px;margin:0 0 10px;padding:0 14px;display:flex;justify-content:center;align-items:center;gap:16px;border:1px solid #252a2e;border-radius:6px;background:#101214;color:#f2f3f4;font:700 14px 'JetBrains Mono',monospace}
.demo-replay-score-team{flex:1;min-width:0;display:flex;align-items:center;gap:9px}.demo-replay-score-team.tone-ct{justify-content:flex-end}.demo-replay-score-team.tone-t{justify-content:flex-start}.demo-replay-score-team em{overflow:hidden;font-style:normal;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.demo-replay-score-team .demo-logo{width:28px;height:28px}
.demo-replay-clock{min-width:76px;padding:5px 11px;border-radius:6px;background:#181c1f;color:#e8ecee;text-align:center;font:700 15px 'JetBrains Mono',monospace;font-variant-numeric:tabular-nums}.demo-replay-clock:empty{display:none}.demo-replay-clock.freeze{color:#8fa0aa}.demo-replay-clock.bomb{color:#ff7468;background:#2b1715}
.demo-replay-scoreboard b{min-width:26px;text-align:center;font-size:24px}.demo-replay-scoreboard i{color:#697177;font-style:normal}.demo-replay-scoreboard .tone-ct{color:#66a8ee}.demo-replay-scoreboard .tone-t{color:#e4bf51}
.demo-replay-rounds{margin-top:10px;padding:7px 3px 8px;display:flex;align-items:stretch;gap:0;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#394148 transparent}
.demo-replay-round-group{flex:0 0 auto;padding:0 9px;display:grid;align-content:center;gap:5px;border-left:1px solid #343b40}.demo-replay-round-group:first-child{padding-left:2px;border-left:0}.demo-replay-round-group>small{color:#737c82;font:700 8px 'JetBrains Mono',monospace;letter-spacing:.09em}.demo-replay-round-group>div{display:flex;gap:3px}
.demo-replay-round-tab{width:38px;height:43px;padding:3px 2px;flex:0 0 auto;display:grid;place-items:center;align-content:center;gap:2px;border:1px solid #2b3339;border-radius:4px;background:#15191c;color:#c1c8cd;cursor:pointer;transition:background .12s,border-color .12s,transform .12s}
.demo-replay-round-tab i{min-height:12px;color:#939ba0;font:700 8px 'JetBrains Mono',monospace;font-style:normal;line-height:12px}.demo-replay-round-tab b{font:700 10px 'JetBrains Mono',monospace}
.demo-replay-round-tab.tone-ct{border-color:rgba(91,155,219,.42);background:rgba(29,58,83,.42)}.demo-replay-round-tab.tone-ct i{color:#8dbce9}
.demo-replay-round-tab.tone-t{border-color:rgba(212,173,69,.45);background:rgba(78,62,25,.42)}.demo-replay-round-tab.tone-t i{color:#e4c361}
.demo-replay-round-tab:hover:not(:disabled){transform:translateY(-2px);border-color:#aeb8bf}.demo-replay-round-tab.active{outline:2px solid #f2f2ec;outline-offset:1px;filter:brightness(1.3)}.demo-replay-round-tab:disabled{opacity:.35;cursor:not-allowed}
.demo-replay-team-list{display:grid;gap:8px}
.demo-replay-player{position:relative;overflow:hidden;border-radius:4px;background:#1c1d1f;cursor:pointer;transition:opacity .15s}
.demo-replay-player-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 9px;background:#2f6f9f;color:#fff;font-size:12.5px;font-weight:700;line-height:1.2}
.demo-replay-player.t .demo-replay-player-head{background:#855a1f}
.demo-replay-player-head b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.demo-replay-player-head span{font:700 12px 'JetBrains Mono',monospace;white-space:nowrap}
.demo-replay-player-body{display:flex;align-items:center;gap:8px;padding:7px 9px 9px;min-height:42px}
.demo-replay-shield{width:18px;height:18px;flex:0 0 auto;fill:#45484c}.demo-replay-shield.on{fill:#9aa0a6}
.demo-replay-weapon{flex:1;min-width:0;display:flex;align-items:center}
.demo-replay-weapon img{max-height:26px;max-width:100%;width:auto;object-fit:contain;filter:brightness(.62)}
.demo-replay-weapon small{color:#6d7378;font-size:10px}
.demo-replay-utils{display:flex;align-items:center;gap:3px;flex:0 0 auto}
.demo-replay-utils img{height:20px;width:auto;max-width:22px;object-fit:contain;filter:brightness(.62)}
.demo-replay-hp{position:absolute;left:0;bottom:0;height:3px;background:#59c57b}
.demo-replay-player.dead{opacity:.42}
.demo-weapon-icon{height:22px;width:auto;max-width:64px;object-fit:contain;flex:0 0 auto}
.demo-replay-controls{margin-top:10px;padding:8px 12px;display:flex;align-items:center;gap:10px;border:1px solid #252a2e;border-radius:6px;background:#101214}
.demo-replay-ctl-group{display:flex;align-items:center;gap:4px}.demo-replay-ctl-group+.demo-replay-ctl-group{padding-left:10px;border-left:1px solid #2b3339}
.demo-replay-help{margin-left:auto;position:relative}.demo-replay-help summary{list-style:none;padding:4px 10px;border:1px solid #2b3339;border-radius:5px;color:var(--muted);font-weight:700;cursor:pointer}.demo-replay-help summary::-webkit-details-marker{display:none}.demo-replay-help[open] summary{background:#182026;color:var(--text)}
.demo-replay-help>div{position:absolute;right:0;top:calc(100% + 6px);z-index:30;width:min(430px,86vw);padding:10px 12px;border:1px solid #2b3339;border-radius:6px;background:#12171a;color:#cfd6da;line-height:1.6;box-shadow:0 10px 30px rgba(0,0,0,.45)}
.demo-replay-play{background:var(--accent);color:#16130c}
.demo-replay-controls input[type="range"]{flex:1;width:auto}
.demo-replay-speed{width:60px;min-height:30px;padding:3px 6px;flex:0 0 auto}
.demo-replay-round-label{color:var(--muted);font-size:11.5px;font-weight:700;white-space:nowrap}
.demo-replay-killfeed{position:absolute;top:8px;left:50%;transform:translateX(-50%);z-index:5;display:flex;flex-direction:column;gap:3px;pointer-events:none;align-items:center}
.demo-replay-killfeed-item{display:flex;align-items:center;gap:6px;padding:4px 9px;border-radius:5px;background:rgba(10,12,14,.78);font:700 11px 'JetBrains Mono',monospace;color:#dfe5e9;white-space:nowrap}
.demo-replay-killfeed-item .tone-ct{color:#8cb9ef}
.demo-replay-killfeed-item .tone-t{color:#f4d97e}
.demo-replay-killfeed-item b{color:var(--muted);font-weight:700}
.demo-replay-player{cursor:pointer}.demo-replay-player.focused{outline:2px solid #f2f2ec;outline-offset:1px}
.demo-replay-killfeed-weapon{height:15px;width:auto;max-width:44px;object-fit:contain;flex:0 0 auto}
.demo-replay-killfeed-hs{padding:1px 4px;border-radius:3px;background:#b8322a;color:#fff;font:800 9px 'JetBrains Mono',monospace;font-style:normal}
.demo-replay-killfeed-item.focused{outline:1px solid rgba(255,255,255,.75)}
.demo-replay-jump-kill,.demo-replay-jump-plant{min-width:36px;font-size:11px;font-weight:800;white-space:nowrap}
.demo-replay-summary{margin-top:10px;padding:10px 12px;border:1px solid #252a2e;border-radius:6px;background:#101214}
.demo-replay-summary-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:12px}.demo-replay-summary-head span{color:var(--muted)}
.demo-replay-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.demo-replay-summary-row{display:grid;grid-template-columns:minmax(0,1fr) 30px 30px 32px 52px minmax(70px,auto);align-items:center;gap:6px;padding:3px 6px;border-radius:4px;font-size:11.5px;cursor:pointer}
.demo-replay-summary-row.head{cursor:default;color:var(--muted);font:700 9.5px 'JetBrains Mono',monospace;letter-spacing:.04em}
.demo-replay-summary-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.demo-replay-summary-row span{text-align:right;font:600 11px 'JetBrains Mono',monospace}
.demo-replay-summary-row em{display:flex;gap:5px;justify-content:flex-end;font-style:normal}
.demo-replay-summary-row i{font:700 10px 'JetBrains Mono',monospace;font-style:normal}
.demo-replay-summary-row small{color:var(--muted)}
.demo-replay-summary-row:not(.head):hover{background:#182026}.demo-replay-summary-row.focused{background:#1f2a33;outline:1px solid #f2f2ec}
.demo-replay-summary-team.tone-ct .head b{color:#8cb9ef}.demo-replay-summary-team.tone-t .head b{color:#f4d97e}
.u-flash{color:#f4e58a}.u-smoke{color:#c4d0de}.u-he{color:#ff7777}.u-molotov{color:#ff9a4d}
@media (max-width:900px){.demo-replay-summary-grid{grid-template-columns:minmax(0,1fr)}}
.demo-replay-time{color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums;white-space:nowrap}
.demo-replay-legend{margin-top:8px;display:flex;gap:14px;font-size:11.5px;font-weight:700}.demo-replay-legend small{margin-left:auto;color:var(--muted);font-weight:500}
.demo-replay-legend .tone-ct{color:#8cb9ef}
.demo-replay-legend .tone-t{color:#f4d97e}
/* ---- Per-round timeline with kill markers ---- */
.demo-replay-timeline{position:relative;flex:1;min-width:140px;display:flex;align-items:center}
.demo-replay-timeline input[type="range"]{flex:none;width:100%}
.demo-replay-markers{position:absolute;inset:0;pointer-events:none}
.demo-replay-markers .m{position:absolute;top:50%;transform:translate(-50%,-50%);pointer-events:auto;cursor:pointer;font-style:normal}
.demo-replay-markers .m.kill{width:11px;height:11px;border-radius:50%;border:2px solid #0b0d0f;background:#8b949a;box-shadow:0 0 0 1px rgba(255,255,255,.6)}
.demo-replay-markers .m.kill.ct{background:#4da3ff}.demo-replay-markers .m.kill.t{background:#ffb13d}
.demo-replay-markers .m.kill.hs{width:13px;height:13px;box-shadow:0 0 0 2px #ff5a4f}
.demo-replay-markers .m.kill:hover{transform:translate(-50%,-50%) scale(1.35)}
.demo-replay-markers .m.bomb,.demo-replay-markers .m.defuse,.demo-replay-markers .m.boom{padding:1px 4px;border-radius:3px;font:800 8px 'JetBrains Mono',monospace;line-height:1.2;color:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.55)}
.demo-replay-markers .m.bomb{background:#c2432f}.demo-replay-markers .m.defuse{background:#2f9a5b}.demo-replay-markers .m.boom{background:#e0742b;font-size:11px}
/* ---- Replay page: one-screen layout, centred dock, CS2-style round tiles ---- */
.demo-replay-page-head{flex:0 0 auto;margin-bottom:8px}
.demo-replay-toolbar{flex:1;min-width:0;min-height:0;margin:0;display:flex;align-items:center;gap:10px}
.demo-replay-spacer{flex:1}
.demo-replay-help{margin-left:0}
.demo-replay-summary-pop>div{width:min(980px,94vw);max-height:72vh;overflow:auto}
.demo-replay-summary-pop .demo-replay-summary{margin:0;padding:0;border:0;background:none}
.demo-replay-scoreboard{flex:0 0 auto;margin:0}
.demo-replay-dock{flex:0 0 auto;display:grid;justify-items:center;gap:8px}
.demo-replay-controls{width:min(100%,1180px);margin:0;justify-content:center}
.demo-replay-controls input[type="range"]{-webkit-appearance:none;appearance:none;flex:1;min-width:140px;height:22px;background:transparent;cursor:pointer}
.demo-replay-controls input[type="range"]::-webkit-slider-runnable-track{height:8px;border-radius:4px;background:var(--segments,#252b30);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.demo-replay-controls input[type="range"]::-moz-range-track{height:8px;border-radius:4px;background:var(--segments,#252b30);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.demo-replay-controls input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:20px;margin-top:-6px;border-radius:3px;background:#f2f2ec;border:2px solid #0b0d0f;box-shadow:0 0 0 1px rgba(255,255,255,.35)}
.demo-replay-controls input[type="range"]::-moz-range-thumb{width:8px;height:18px;border-radius:3px;background:#f2f2ec;border:2px solid #0b0d0f}
.demo-replay-rounds{width:100%;margin:0;padding:2px 0 4px;display:flex;overflow-x:auto}
.demo-replay-rounds-inner{display:flex;align-items:stretch;margin:0 auto}
.demo-replay-round-group{padding:0 12px;justify-items:center}
.demo-replay-round-group>small{text-align:center}
.demo-replay-round-group>div{gap:4px}
.demo-replay-round-tab{width:34px;height:42px;padding:4px 2px 3px;gap:3px;border:0;border-radius:5px;background:#2a3036;color:#fff;box-shadow:inset 0 -2px 0 rgba(0,0,0,.28)}
.demo-replay-round-tab svg{width:16px;height:16px;display:block}
.demo-replay-round-tab i,.demo-replay-round-tab.tone-ct i,.demo-replay-round-tab.tone-t i{display:grid;place-items:center;min-height:16px;color:#fff;font-style:normal}
.demo-replay-round-tab b{font:800 10px 'JetBrains Mono',monospace}
.demo-replay-round-tab.tone-ct{border:0;background:linear-gradient(#3b7db3,#275b86)}
.demo-replay-round-tab.tone-t{border:0;background:linear-gradient(#bb8326,#8a5d19)}
.demo-replay-round-tab.active{outline:2px solid #fff;outline-offset:1px;filter:none;transform:translateY(-2px)}
@media (min-width:901px) and (min-height:520px){
  .demo-replay-page{height:100vh;min-height:0;padding:8px clamp(12px,2vw,28px);overflow:hidden}
  .demo-replay-page-body{min-height:0;max-width:1760px;display:flex;flex-direction:column;gap:8px}
  .demo-replay-layout{flex:1;min-height:0;grid-template-columns:clamp(170px,17vw,260px) minmax(0,1fr) clamp(170px,17vw,260px);align-items:stretch}
  .demo-replay-team{min-height:0;display:flex;flex-direction:column;overflow:hidden}
  .demo-replay-team-list{min-height:0;overflow:auto;gap:clamp(4px,.9vh,8px);scrollbar-width:none}
  .demo-replay-mapcol{min-width:0;min-height:0;container-type:size;display:grid;place-items:center}
  .demo-replay-stage{width:min(100cqw,100cqh);height:min(100cqw,100cqh);aspect-ratio:auto}
  .demo-replay-player-body{min-height:clamp(30px,5vh,44px);padding-block:clamp(3px,.8vh,8px)}
  .demo-replay-player-head{padding-block:clamp(2px,.5vh,5px)}
}
.modal.demo-ai-modal{width:min(1080px,100%)}
.demo-ai-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.demo-ai-card{padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}
.demo-ai-card h3{margin:0 0 8px;font:700 12.5px 'Space Grotesk',sans-serif}
.demo-ai-heatmap-card,.demo-ai-wide{grid-column:1/-1}
.demo-ai-table{width:100%;border-collapse:collapse;font-size:12px}
.demo-ai-table th{padding:4px 6px;color:var(--muted);font-size:10.5px;font-weight:700;text-align:left}
.demo-ai-table td{padding:4px 6px;border-top:1px solid var(--border)}
.demo-ai-table .tone-ct{color:#8cb9ef}
.demo-ai-table .tone-t{color:#f4d97e}
.demo-ai-metric-row{display:flex;gap:18px;margin-bottom:6px}
.demo-ai-metric{display:flex;flex-direction:column}
.demo-ai-metric b{font:700 20px 'Space Grotesk',sans-serif}
.demo-ai-metric small{color:var(--muted);font-size:10.5px}
.demo-ai-note{margin:4px 0 0;color:var(--muted);font-size:11px}
.demo-ai-heatmap-stage{width:100%;max-width:520px;aspect-ratio:1;margin:0 auto;position:relative;overflow:hidden;border:1px solid #3a4248;border-radius:var(--radius);background-color:#161a1c;background-position:center;background-repeat:no-repeat;background-size:contain}
.demo-ai-heatmap-stage canvas{position:absolute;inset:0}
@media (max-width:720px){.demo-ai-grid{grid-template-columns:1fr}}
.faceit-import{margin-bottom:14px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}
.faceit-import-form{display:flex;gap:8px}
.faceit-import-form input{flex:1}
.faceit-match-list{margin-top:10px;display:grid;gap:1px;border-radius:var(--radius-sm);overflow:hidden;background:var(--border)}
.faceit-match-row{padding:8px 10px;display:flex;align-items:center;gap:12px;background:var(--panel);font-size:12px}
.faceit-match-date{color:var(--muted);white-space:nowrap}
.faceit-match-teams{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.faceit-match-teams b{font-family:'JetBrains Mono',monospace}
.modal.analysis-v117-modal{width:min(780px,100%)}
.analysis-v117-score-grid{margin-bottom:12px;padding:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;border-radius:var(--radius-sm);background:var(--surface)}
.analysis-v117-score-grid-head{grid-column:1/-1;display:flex;justify-content:space-between;color:var(--muted);font-size:12px}
.analysis-v117-score-grid-head strong{color:var(--text)}
.analysis-v117-score-field{display:grid;gap:4px}
.analysis-v117-score-field label{overflow:hidden;color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap;text-overflow:ellipsis}

/* Admin */
.admin-user-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.admin-user-card{display:grid;align-content:start;gap:8px}
.admin-user-card-head{min-width:0;display:flex;align-items:center;gap:10px}
.admin-user-card-head .person{flex:1}
.admin-user-card-head .avatar{width:32px;height:32px}
.admin-public-id{color:var(--accent);font:600 11px 'JetBrains Mono',monospace}
.admin-user-meta{display:flex;flex-wrap:wrap;gap:4px}
.admin-user-card>.btn{justify-self:start}
.modal.admin-control-modal{width:min(960px,100%)}
.admin-profile-summary{margin-bottom:14px;padding:12px;display:flex;align-items:center;gap:14px;border-radius:var(--radius-sm);background:var(--surface)}
.admin-profile-summary>div{min-width:0;flex:1;display:grid;gap:4px}
.admin-profile-summary h3{font-size:16px}
.admin-email{color:var(--muted);font-size:12px}
.profile-image{width:56px;height:56px;flex:0 0 auto;border-radius:12px;object-fit:cover}
span.profile-image{display:grid;place-items:center;color:var(--accent-ink);background:var(--accent);font:700 18px 'Space Grotesk',sans-serif}
.admin-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.admin-control-block{padding:12px;display:grid;align-content:start;gap:10px;border:1px solid var(--border);border-radius:var(--radius-sm)}
.admin-control-block h4{font-size:13px}
.admin-control-block form{display:grid;gap:4px}
.admin-control-block form .field{margin-bottom:6px}
.admin-control-block>small{color:var(--muted);font-size:11.5px}
.admin-info-list{display:grid}
.admin-info-list div{padding:5px 0;display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border);font-size:12px}
.admin-info-list div:last-child{border-bottom:0}
.admin-info-list span{color:var(--muted)}
.admin-history{max-height:160px;display:grid;gap:6px;overflow:auto;color:var(--muted);font-size:12px}
.admin-history b{color:var(--text)}
.release-admin{padding-top:24px}
.release-admin-list{padding:0}
.release-admin-list>div{padding:9px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border)}
.release-admin-list>div:last-child{border-bottom:0}
.release-admin-list b,.release-admin-list small{display:block}
.release-admin-list small{color:var(--muted);font-size:11.5px}

/* Watchparty */
.watchparty-shell{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:12px;align-items:start}
.watchparty-main{min-width:0;display:grid;gap:10px}
.watchparty-stage{width:100%;aspect-ratio:16/9;max-height:calc(100vh - 190px);position:relative;display:grid;place-items:center;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);color:#f3f1ea;background:radial-gradient(circle at 50% 42%,rgba(215,197,123,.07),transparent 46%),#030405}
.watchparty-stage:fullscreen{max-height:none;border:0;border-radius:0}
.watchparty-video{width:100%;height:100%;position:absolute;inset:0;display:block;object-fit:contain;background:#000}
.watchparty-stage.has-video .watchparty-empty{display:none}
.watchparty-empty{max-width:460px;padding:28px;display:grid;justify-items:center;gap:8px;text-align:center}
.watchparty-empty .ui-icon{width:34px;height:34px;color:#d7c57b}
.watchparty-empty h2{color:#f3f1ea;font-size:19px}
.watchparty-empty p{color:#9aa0a7;line-height:1.6}
.watchparty-empty .btn{margin-top:6px}
.watchparty-empty small{color:#6f757c;font-size:11.5px}
.watchparty-overlay{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;justify-content:space-between;padding:12px;pointer-events:none}
.watchparty-overlay-top,.watchparty-overlay-bottom{display:flex;align-items:center;gap:8px}
.watchparty-overlay-top{justify-content:space-between}
.watchparty-live,.watchparty-stats{height:26px;padding:0 10px;display:inline-flex;align-items:center;gap:7px;border-radius:999px;color:#f3f1ea;background:rgba(3,5,6,.72);backdrop-filter:blur(10px);font-size:11.5px;font-weight:700}
.watchparty-live i{width:7px;height:7px;border-radius:50%;background:#ff4f5e;box-shadow:0 0 10px #ff4f5e}
.watchparty-stats{font-variant-numeric:tabular-nums}
.watchparty-stats:empty{display:none}
.watchparty-stage:not(.has-video) .watchparty-live{display:none}
.watchparty-overlay-bottom{padding:6px 8px;border-radius:10px;background:linear-gradient(0deg,rgba(3,5,6,.85),rgba(3,5,6,.55));opacity:0;transform:translateY(6px);transition:opacity .18s,transform .18s;pointer-events:auto}
.watchparty-stage.has-video:hover .watchparty-overlay-bottom,.watchparty-stage.has-video:focus-within .watchparty-overlay-bottom{opacity:1;transform:none}
.watchparty-stage:not(.has-video) .watchparty-overlay-bottom{display:none}
@media (hover:none){.watchparty-stage.has-video .watchparty-overlay-bottom{opacity:1;transform:none}}
.watchparty-icon{width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:7px;color:#f3f1ea;background:transparent}
.watchparty-icon:hover{background:rgba(255,255,255,.12)}
.watchparty-overlay-bottom input[type="range"]{width:110px;height:auto;padding:0;border:0;background:transparent;accent-color:#d7c57b;box-shadow:none}
.watchparty-spacer{flex:1}
.watchparty-broadcast{padding:10px 12px;display:flex;flex-wrap:wrap;align-items:center;gap:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.watchparty-broadcast.live{border-color:rgba(239,112,120,.35);background:linear-gradient(90deg,rgba(239,112,120,.08),var(--panel) 60%)}
.watchparty-broadcast.live>div{min-width:0;flex:1;display:grid}
.watchparty-broadcast.live b{font-size:13px}
.watchparty-broadcast.live small{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.watchparty-diagnosis{margin-top:3px;color:var(--orange);font-size:12px;line-height:1.45}
.watchparty-diagnosis:empty{display:none}
.watchparty-compat{margin-top:6px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--orange);font-size:12px}
.watchparty-issue{max-width:460px;margin:0 auto;padding:12px 14px;display:grid;justify-items:center;gap:8px;border-radius:10px;color:#f3f1ea;background:rgba(3,5,6,.86);font-size:13px;line-height:1.5;text-align:center;pointer-events:auto}
.watchparty-issue[hidden]{display:none}
.watchparty-hint code{padding:1px 5px;border-radius:4px;background:var(--surface-2);font:500 11px 'JetBrains Mono',monospace}
.watchparty-quality{min-width:0;flex:1;display:grid;gap:3px}
.watchparty-quality span{color:var(--muted);font-size:11px;font-weight:700}
.watchparty-quality select{max-width:420px}
.watchparty-broadcast>.btn{align-self:end}
.watchparty-hint{flex-basis:100%;color:var(--muted);font-size:11.5px;line-height:1.5}
.watchparty-sidebar{min-width:0;max-height:calc(100vh - 92px);position:sticky;top:68px;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.watchparty-room-head,.watchparty-people,.watchparty-chat{padding:12px 14px;border-bottom:1px solid var(--border)}
.watchparty-room-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.watchparty-room-head b{display:block}
.watchparty-room-head small{color:var(--muted);font-size:11.5px}
.watchparty-people{max-height:220px;overflow:auto}
.watchparty-section-title{margin-bottom:6px;color:var(--muted);font-size:11.5px;font-weight:700}
.watchparty-participant{padding:5px 0;display:flex;align-items:center;gap:9px}
.watchparty-participant+.watchparty-participant{border-top:1px solid var(--border)}
.watchparty-participant .avatar{width:26px;height:26px;font-size:10px}
.watchparty-participant span{min-width:0}
.watchparty-participant b,.watchparty-participant small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.watchparty-participant b{font-size:12.5px}
.watchparty-participant small{color:var(--muted);font-size:11px}
.watchparty-participant em{margin-left:auto;height:20px;padding:0 7px;display:inline-flex;align-items:center;border-radius:999px;color:#ff7079;background:rgba(239,112,120,.12);font-size:10.5px;font-style:normal;font-weight:700}
.watchparty-chat{min-height:220px;flex:1;display:flex;flex-direction:column;border-bottom:0}
.watchparty-messages{min-height:80px;flex:1;display:flex;flex-direction:column;gap:6px;overflow:auto}
.watchparty-message{padding:7px 9px;border-radius:var(--radius-sm);background:var(--surface);font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.watchparty-message b{margin-right:6px;color:var(--accent)}
.watchparty-message time{float:right;margin-left:8px;color:var(--faint);font-size:10.5px}
.watchparty-chat-form{margin-top:8px;display:flex;gap:6px}
.watchparty-chat-form input{min-width:0;flex:1}
.watchparty-leave{margin:0 14px 12px;border:1px solid var(--border)}

/* Team profile */
.team-profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:12px;align-items:start}
.team-roster-panel{min-width:0;display:grid;gap:12px}
.team-profile-bar{padding:14px;display:flex;flex-wrap:wrap;align-items:center;gap:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.team-profile-media{flex:0 0 auto}
.team-profile-media-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.team-profile-bar-info{min-width:0;flex:1}
.team-profile-bar .eyebrow{margin-bottom:2px}
.team-profile-bar h2{font-size:20px}
.team-capacity{display:flex;gap:6px}
.team-capacity span{height:28px;padding:0 10px;display:inline-flex;align-items:center;gap:4px;border-radius:999px;color:var(--muted);background:var(--surface);font-size:12px}
.team-capacity b{color:var(--text);font-family:'Space Grotesk',sans-serif}
.image-control{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.image-control .team-logo,.image-control .profile-image,.image-control .avatar{width:40px;height:40px;border-radius:9px;object-fit:cover}
.team-roster-section{padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.team-roster-section .card-title{margin-bottom:4px}
.team-roster-grid{display:grid}
.roster-card{min-height:52px;padding:8px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border)}
.roster-card:last-child{border-bottom:0}
.roster-card .person .avatar{width:32px;height:32px;font-size:11.5px}
.roster-card.empty-slot .person{color:var(--faint)}
.roster-card.empty-slot .avatar{color:var(--faint);background:transparent;box-shadow:inset 0 0 0 1px var(--border-strong)}
.roster-card.empty-slot strong{font-weight:500}
.person-trigger{flex:1;min-width:0;margin:-4px;padding:4px;border:0;border-radius:var(--radius-sm);background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
.person-trigger:hover{background:var(--hover)}
.modal.player-profile-modal{width:min(680px,100%)}
.player-profile-modal .admin-profile-summary{align-items:flex-start}
.player-profile-modal .admin-profile-summary .profile-image{width:72px;height:72px;border-radius:14px}
.player-bio{margin:8px 0 0;color:var(--text);font-size:12.5px;line-height:1.55;white-space:pre-line;overflow-wrap:anywhere}
.player-bio.muted{color:var(--muted)}
.player-links{margin:-4px 0 4px;display:flex;flex-wrap:wrap;gap:6px}
.profile-form{display:grid;gap:4px}
.profile-form textarea{min-height:76px;resize:vertical}
.profile-form-actions{margin-top:4px;display:flex;flex-wrap:wrap;gap:8px}
.setting-note{margin:10px 0 0;color:var(--muted);font-size:12px}
.link-btn{padding:0;border:0;background:none;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}
.player-profile-modal .training-stats{grid-template-columns:repeat(5,minmax(0,1fr))}
.roster-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}
.roster-role span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.roster-role select{width:120px;height:30px;font-size:12px}
.captain-toggle{height:30px;padding:0 8px;position:relative;display:inline-flex;align-items:center;gap:8px;border-radius:var(--radius-sm);background:var(--surface);cursor:pointer}
.captain-toggle>span:first-child{display:grid;line-height:1.1}
.captain-toggle b{font-size:11.5px;font-weight:600}
.captain-toggle small{display:none}
.captain-toggle input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.toggle-track{width:30px;height:17px;padding:2px;flex:0 0 auto;display:flex;align-items:center;border-radius:999px;background:var(--border-strong);transition:background-color .15s}
.toggle-track::after{content:'';width:13px;height:13px;border-radius:50%;background:var(--text);transition:transform .15s}
.captain-toggle input:checked+.toggle-track{background:var(--accent)}
.captain-toggle input:checked+.toggle-track::after{background:var(--accent-ink);transform:translateX(13px)}
.captain-toggle input:focus-visible+.toggle-track{outline:2px solid var(--accent);outline-offset:2px}
.roster-controls .protocol-action-btn{height:30px}
.team-control-panel{display:grid;gap:12px}
.team-control-panel form .field:last-child{margin-bottom:10px}
.team-identity-card form{display:flex;gap:6px}
.team-identity-card form input{min-width:0;flex:1}
.team-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:var(--layout-gap)}
.team-card-actions form,.team-card-actions form .btn,.team-card-actions>.btn{width:100%}
.team-card-actions .role{font-size:12px}
.invite-ready{display:grid;gap:6px}
.invite-ready strong{color:var(--text);font-size:12px}
.team-danger-card .card-title{color:var(--danger)}
.team-activity-card{margin-top:12px}
.activity-list{display:grid}
.activity-row,.activity-item{min-height:44px;padding:6px 0;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border)}
.activity-row:last-child,.activity-item:last-child{border-bottom:0}
.activity-row .avatar,.activity-item .avatar{width:26px;height:26px;color:var(--accent);background:var(--surface-2);font-size:10px}
.task-main,.activity-item>div{min-width:0;flex:1}
.task-main strong,.task-main span,.activity-item strong,.activity-item span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.task-main strong,.activity-item strong{font-size:12.5px}
.task-main span,.activity-item span{color:var(--muted);font-size:11.5px}
.activity-row small,.activity-item time{color:var(--faint);font-size:11px;font-variant-numeric:tabular-nums}

/* Account */
.profile-page{max-width:640px}
.profile-layout{display:grid;gap:14px}
.profile-header-card{padding:14px}
.profile-header-card .profile-image{width:48px;height:48px}
.profile-header-info{flex:1;min-width:160px;display:grid;gap:3px}
.profile-header-info strong{font:600 16px 'Space Grotesk',sans-serif}
.profile-header-info span{color:var(--muted);font-size:12px}
.settings-panel{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.profile-stats-panel .training-stats{border:0;border-radius:0;border-bottom:1px solid var(--border)}
.danger-panel{border-color:rgba(239,112,120,.28)}
.card-title.danger-title{color:var(--danger)}
.setting-row{min-height:54px;padding:9px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;border-bottom:1px solid var(--border)}
.setting-row:last-child{border-bottom:0}
.setting-row strong,.setting-details summary strong{display:block;font-size:12.5px}
.setting-row span,.setting-details summary small{display:block;color:var(--muted);font-size:11.5px}
.session-list{padding:2px 14px;border-bottom:1px solid var(--border)}
.setting-details{border-bottom:1px solid var(--border)}
.setting-details:last-child{border-bottom:0}
.setting-details summary{min-height:54px;padding:9px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;cursor:pointer;list-style:none}
.setting-details summary::-webkit-details-marker{display:none}
.setting-details summary>b{color:var(--muted);font-size:16px;transition:transform .15s}
.setting-details[open] summary>b{transform:rotate(90deg)}
.setting-details summary:hover{background:var(--hover)}
.setting-details-body{padding:4px 14px 14px}
.setting-details-body form{max-width:680px}
.danger-setting summary strong{color:var(--danger)}

/* Wiki */
.wiki-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:12px;align-items:start}
.wiki-index{position:sticky;top:68px;display:grid;gap:1px}
.wiki-index button{height:32px;padding:0 8px;display:flex;align-items:center;gap:8px;border:0;border-radius:var(--radius-sm);color:var(--muted);background:transparent;font-size:12.5px;text-align:left}
.wiki-index button:hover{color:var(--text);background:var(--hover)}
.wiki-index button span{color:var(--faint);font:600 10.5px 'JetBrains Mono',monospace}
.wiki-content{min-width:0;display:grid;gap:12px}
.wiki-section{padding:18px 20px;scroll-margin-top:72px}
.wiki-section h2{margin-bottom:8px;font-size:18px}
.wiki-section h3{margin:16px 0 6px;font-size:14px}
.wiki-section p,.wiki-section li{color:var(--muted);font-size:13px;line-height:1.7}
.wiki-section ul,.wiki-section ol{margin:8px 0 0;padding-left:20px}
.wiki-section p+p{margin-top:8px}
.legal-content{display:grid;gap:14px}
.legal-nav{display:flex;flex-wrap:wrap;gap:6px}
.legal-nav-item{height:30px;padding:0 12px;border:1px solid var(--border);border-radius:999px;color:var(--muted);background:transparent;font-size:12px;font-weight:600}
.legal-nav-item:hover{color:var(--text);border-color:var(--border-strong)}
.legal-nav-item.active{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}
.legal-doc{max-width:760px}
.legal-updated{display:block;margin:-4px 0 6px;color:var(--faint);font-size:11.5px}
.legal-doc table{width:100%;margin-top:8px;border-collapse:collapse;font-size:12.5px}
.legal-doc th,.legal-doc td{padding:7px 10px;border:1px solid var(--border);text-align:left;color:var(--muted)}
.legal-doc th{color:var(--text);background:var(--surface)}
.legal-footer-links{display:flex;flex-wrap:wrap;gap:2px 10px}
.legal-footer-link{padding:0;border:0;background:transparent;color:var(--faint);font-size:11px;text-decoration:underline}
.legal-footer-link:hover{color:var(--muted)}
.terms-check{margin:2px 0 12px;display:flex;align-items:flex-start;gap:8px;color:var(--muted);font-size:12px;line-height:1.5}
.terms-check input{width:auto;flex:0 0 auto;margin-top:3px}
.link-inline{padding:0;border:0;background:transparent;color:var(--accent);font:inherit;text-decoration:underline}
.wiki-flow{margin:12px 0;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.wiki-flow span{height:26px;padding:0 10px;display:inline-flex;align-items:center;border-radius:999px;color:var(--text);background:var(--surface-2);font-size:12px;font-weight:600}
.wiki-flow i{color:var(--faint);font-style:normal}
.wiki-callout{margin:12px 0;padding:10px 12px;border-left:2px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text);background:var(--accent-soft);font-size:12.5px;line-height:1.6}
.wiki-role-grid{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.wiki-role{padding:10px 12px;display:grid;gap:3px;border-radius:var(--radius-sm);background:var(--surface)}
.wiki-role b{font-size:13px}
.wiki-role span{color:var(--muted);font-size:12px;line-height:1.55}

/* Modals */
.modal-backdrop{padding:24px 16px;position:fixed;inset:0;z-index:200;display:grid;place-items:center;overflow:auto;background:rgba(3,4,5,.66);backdrop-filter:blur(3px)}
html[data-theme="light"] .modal-backdrop{background:rgba(40,36,25,.35)}
.modal{width:min(620px,100%);max-height:calc(100vh - 48px);padding:18px;overflow:auto;border:1px solid var(--border-strong);border-radius:12px;background:var(--panel);box-shadow:var(--shadow-pop)}
.modal-head{margin-bottom:16px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.modal-head h2{font-size:17px}
.modal-head p{margin-top:3px;color:var(--muted);font-size:12.5px}
.modal-head .icon-btn{margin:-6px -6px 0 0}
.modal-actions{margin-top:6px;padding-top:14px;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--layout-gap);border-top:1px solid var(--border)}
.modal-spacer{flex:1}
.proof-note{color:var(--faint);font-size:11.5px}
.protocol-modal{width:min(560px,100%)}
.task-modal{width:min(720px,100%)}
.calendar-event-modal{width:min(640px,100%)}
.calendar-modal{width:min(820px,100%)}
.category-grid{margin-bottom:14px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.category-card{min-width:0;padding:9px 6px;display:grid;place-items:center;gap:1px;border:1px solid var(--border);border-radius:8px;color:var(--muted);background:transparent;text-align:center}
.category-card:hover{color:var(--text);border-color:var(--border-strong)}
.category-card span{color:var(--accent);font-size:17px;line-height:1.2}
.category-card b{font-size:12px}
.category-card small{overflow:hidden;max-width:100%;color:var(--faint);font-size:10.5px;white-space:nowrap;text-overflow:ellipsis}
.category-card.active{color:var(--text);border-color:rgba(var(--accent-rgb),.6);background:var(--accent-soft)}
.task-recipient-grid{display:flex;flex-wrap:wrap;gap:5px}
.task-recipient{height:32px;padding:0 10px 0 8px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:999px;cursor:pointer;font-size:12px}
.task-recipient:has(input:checked){border-color:rgba(var(--accent-rgb),.6);background:var(--accent-soft)}
.task-recipient.locked{border-color:rgba(var(--accent-rgb),.6);background:var(--accent-soft);cursor:default}
.task-recipient input{accent-color:var(--accent)}
.task-recipient .avatar{width:18px;height:18px;border-radius:50%;font-size:8.5px}
.task-date-builder{display:flex;gap:6px}
.task-date-builder input{max-width:200px}
.task-date-list{margin-top:6px;display:flex;flex-wrap:wrap;gap:4px}
.task-date-chip{height:24px;padding:0 8px;border:0;border-radius:999px;color:var(--text);background:var(--accent-soft);font-size:11.5px}
.task-date-chip:hover{color:var(--danger);background:var(--danger-soft)}
.task-proof-modal{width:min(900px,100%)}
.task-proof-modal img{width:100%;display:block;border-radius:var(--radius-sm)}
.global-search-modal{width:min(640px,100%);padding:0;align-self:start;margin-top:8vh}
.global-search-box{height:52px;padding:0 16px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent;font-size:15px}
.global-search-box:focus{box-shadow:none}
.global-search-results{max-height:55vh;overflow:auto}
.global-search-result{width:100%;min-height:48px;padding:8px 16px;display:grid;grid-template-columns:96px minmax(0,1fr) auto;align-items:center;gap:12px;border:0;border-bottom:1px solid var(--border);color:var(--text);background:transparent;text-align:left}
.global-search-result:last-child{border-bottom:0}
.global-search-result:hover{background:var(--hover)}
.global-search-result>span{color:var(--accent);font-size:11px;font-weight:700}
.global-search-result b,.global-search-result small{display:block}
.global-search-result small{color:var(--muted);font-size:11.5px}
.global-search-result em{color:var(--faint);font-style:normal}
.global-search-empty{padding:26px;color:var(--muted);text-align:center}

/* Toasts */
.toast-stack{width:min(400px,calc(100vw - 32px));position:fixed;top:14px;left:50%;z-index:300;display:grid;gap:6px;transform:translateX(-50%);pointer-events:none}
.toast{padding:10px 14px;border:1px solid var(--border-strong);border-left:3px solid var(--accent);border-radius:8px;color:var(--text);background:var(--panel);box-shadow:var(--shadow-pop);font-size:12.5px;animation:toast-in .2s ease both}
.toast.success{border-left-color:var(--success)}
.toast.error{border-left-color:var(--danger)}
.toast.info{border-left-color:#68a7ff}

/* Auth & landing */
.login-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:var(--bg)}
.login-art{padding:40px 48px;position:relative;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--border);background:radial-gradient(circle at 18% 22%,rgba(var(--accent-rgb),.12),transparent 38%),var(--panel)}
.login-art .brand-logo-crop,.public-nav .brand-logo-crop{width:150px;height:30px}
.login-hero{max-width:560px}
.login-hero h1{font-size:clamp(40px,5.2vw,68px);font-weight:700;line-height:1;letter-spacing:-.04em}
.login-hero h1 span{color:var(--muted)}
.login-hero p:not(.eyebrow){max-width:470px;margin-top:18px;color:var(--muted);font-size:15px;line-height:1.65}
.login-meta{display:flex;gap:20px;color:var(--faint);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.login-meta b{width:7px;height:7px;margin-right:7px;display:inline-block;border-radius:50%;background:var(--success)}
.login-panel{padding:40px clamp(24px,6vw,96px);display:flex;align-items:center}
.login-form{width:min(380px,100%);margin:auto}
.login-form h2{font-size:26px}
.login-form>p:not(.eyebrow){margin:6px 0 22px;color:var(--muted)}
.login-form .btn-full{height:38px;margin-top:6px}
.login-form .notice{margin-bottom:14px}
.login-error{min-height:18px;margin:-2px 0 4px;color:var(--danger);font-size:12px}
.auth-links{margin-top:14px;display:flex;flex-wrap:wrap;justify-content:center;gap:2px 16px}
.auth-link{padding:4px 2px;border:0;color:var(--muted);background:none;font-size:12px;font-weight:600}
.auth-link:hover,.auth-link:focus-visible{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.public-home{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at 78% 28%,rgba(var(--accent-rgb),.09),transparent 30%),var(--bg)}
.public-nav{width:min(1180px,calc(100% - 48px));height:72px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}
.public-nav-actions{display:flex;gap:8px}
.public-hero{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:64px 0 48px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);align-items:center;gap:48px}
.public-copy h1{font-size:clamp(44px,6vw,82px);font-weight:700;line-height:1;letter-spacing:-.045em;text-transform:uppercase;text-wrap:balance}
.public-copy h1 span{color:var(--muted)}
.public-copy>p:not(.eyebrow){max-width:600px;margin-top:20px;color:var(--muted);font-size:15px;line-height:1.7}
.public-cta{margin-top:26px;display:flex;flex-wrap:wrap;gap:8px}
.public-cta .btn,.public-nav .btn{height:40px;padding:0 18px;font-size:13px}
.public-proof{margin-top:22px;display:flex;flex-wrap:wrap;gap:6px}
.public-proof span{height:26px;padding:0 10px;display:inline-flex;align-items:center;border-radius:999px;color:var(--muted);background:var(--surface);font-size:12px;font-weight:600}
.public-logo-stage{aspect-ratio:1;display:grid;place-items:center;overflow:hidden;border:1px solid var(--border);border-radius:16px;background:radial-gradient(circle,rgba(var(--accent-rgb),.1),transparent 62%),var(--panel)}
.public-logo-stage img{width:min(640px,90%);height:auto;object-fit:contain;filter:drop-shadow(0 20px 40px rgba(0,0,0,.45))}
html[data-theme="light"] .public-logo-stage{background:radial-gradient(circle,rgba(var(--accent-rgb),.12),transparent 62%),#101214}
.public-features{width:min(1180px,calc(100% - 48px));margin:0 auto 56px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.public-feature{padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.public-feature .ui-icon{width:20px;height:20px;color:var(--accent)}
.public-feature h2{margin:16px 0 5px;font-size:15px}
.public-feature p{color:var(--muted);font-size:12.5px;line-height:1.6}
.public-footer{width:min(1180px,calc(100% - 48px));margin:auto auto 0;padding:18px 0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;border-top:1px solid var(--border);color:var(--faint);font-size:11.5px}

/* Responsive */
@media (max-width:1280px){
  .player-plan-grid{grid-template-columns:repeat(5,minmax(150px,1fr));overflow-x:auto;padding-bottom:4px}
  .global-search-trigger{min-width:170px}
}
@media (max-width:1100px){
  .page:not(:has(.training-controls)) .training-stats{grid-template-columns:repeat(5,minmax(0,1fr))}
  .dashboard-grid,.economy-hero,.analysis-v117-main-grid,.team-profile-layout,.watchparty-shell{grid-template-columns:minmax(0,1fr)}
  .watchparty-sidebar{position:static;max-height:none}
  .tactic-board-workspace{grid-template-columns:minmax(0,1fr)}
  .tactic-panel{position:static}
  .analysis-v117-metric-row{grid-template-columns:minmax(130px,170px) minmax(0,1fr)}
  .analysis-v117-metric-meta{grid-column:2}
}
@media (max-width:1100px) and (min-width:781px){
  .task-list-head,.task-row{grid-template-columns:120px minmax(0,1fr) 90px}
  .task-list:not(.compact) .task-list-head span:last-child{display:none}
  .task-list:not(.compact) .task-status-cell{grid-column:1/-1;justify-content:flex-start;padding:6px 0 2px}
}
@media (max-width:1000px){
  .global-search-trigger{min-width:32px;width:32px;padding:0;justify-content:center}
  .global-search-trigger span{display:none}
  .global-search-trigger kbd{display:none}
  .global-search-trigger::before{content:'⌕';font-size:16px}
}
@media (max-width:900px){
  .strat-workspace,.map-position-workspace,.analysis-calendar-card,.wiki-layout{grid-template-columns:minmax(0,1fr)}
  .tactic-list-panel,.position-roster,.wiki-index{position:static}
  .tactic-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .analysis-day-summary{padding:14px 0 0;border-left:0;border-top:1px solid var(--border)}
  .analysis-v117-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .wiki-index{display:flex;overflow-x:auto}
  .wiki-index .card-title{display:none}
  .wiki-index button{flex:0 0 auto}
  .category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-control-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:780px){
  :root{--gutter:14px}
  .app-shell,.app-shell.sidebar-collapsed{grid-template-columns:minmax(0,1fr)}
  .sidebar,.app-shell.sidebar-collapsed .sidebar{width:260px;padding:14px 10px 12px;position:fixed;left:0;top:0;align-items:stretch;transform:translateX(-102%);transition:transform .2s ease;box-shadow:var(--shadow-pop)}
  .sidebar.open{transform:translateX(0)}
  .sidebar-toggle{display:none}
  .app-shell.sidebar-collapsed .brand-logo-crop{width:142px}
  .app-shell.sidebar-collapsed .team-status{padding:7px 8px;justify-content:flex-start;background:var(--surface)}
  .app-shell.sidebar-collapsed .team-status-copy,.app-shell.sidebar-collapsed .nav-text,.app-shell.sidebar-collapsed .nav-label,.app-shell.sidebar-collapsed .user-chip>div,.app-shell.sidebar-collapsed .logout{display:revert}
  .app-shell.sidebar-collapsed .nav-btn{justify-content:flex-start;padding:0 8px}
  .mobile-menu{display:inline-grid}
  .topbar{height:52px}
  .breadcrumbs{font-size:15px}
  .sync-state{padding:0 6px;font-size:0}
  .sync-state::before{margin:0}
  .page{padding-top:14px}
  .page-actions{justify-content:stretch}
  .page-actions .btn{flex:1}
  .grid-2,.grid-3,.form-grid,.team-card-actions,.wiki-role-grid{grid-template-columns:minmax(0,1fr)}
  .dashboard-metrics,.training-stats,.page:not(:has(.training-controls)) .training-stats,.player-profile-modal .training-stats,.analysis-v117-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .training-stats>:last-child:nth-child(odd){grid-column:span 2}
  .training-search{width:100%}
  .mini-calendar{grid-template-columns:minmax(0,1fr)}
  .mini-calendar-head{height:auto;padding:0 2px 6px;justify-content:space-between;border-right:0;border-bottom:1px solid var(--border)}
  .task-list-head{display:none}
  .task-row,.task-list.compact .task-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'player status' 'style style' 'value value';row-gap:4px;padding:10px 4px}
  .task-player-cell{grid-area:player}
  .task-style-cell{grid-area:style}
  .task-value-cell{grid-area:value;color:var(--muted)}
  .task-status-cell{grid-area:status;flex-wrap:wrap}
  .task-assigner-cell,.task-date-cell{display:none}
  .task-list.compact.mine .task-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'style style' 'value status'}
  .dash-hero{flex-wrap:wrap;gap:12px}
  .dash-hero h2,.dash-hero p{white-space:normal}
  .dash-hero-side{width:100%;justify-items:start}
  .dash-roster-row{grid-template-columns:24px minmax(0,1fr) 70px auto}
  .task-expanded-detail,.task-list.compact .task-expanded-detail{grid-template-columns:repeat(2,minmax(0,1fr))}
  .task-expanded-copy{grid-column:1/-1}
  .task-rejection{grid-column:1/-1}
  .player-plan-grid{grid-template-columns:repeat(5,minmax(200px,1fr))}
  .strat-map-card span{display:none}
  .strat-map-card.active span{display:inline}
  .position-tool{flex-wrap:wrap}
  .position-tool input{width:auto;flex:1}
  .position-tool small{width:100%;margin:0;padding:0 4px}
  .economy-history-row{grid-template-columns:40px 72px minmax(0,1fr) auto}
  .economy-history-row>:nth-child(3){display:none}
  .roster-card{flex-wrap:wrap}
  .roster-controls{width:100%;justify-content:flex-start}
  .setting-row,.setting-details summary{grid-template-columns:minmax(0,1fr)}
  .login-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}
  .login-art{padding:24px;border-right:0;border-bottom:1px solid var(--border)}
  .login-hero{padding:32px 0 8px}
  .login-meta{display:none}
  .login-panel{padding:28px 20px 40px}
  .public-hero{grid-template-columns:minmax(0,1fr);padding:40px 0 32px}
  .public-logo-stage{max-width:420px}
  .public-features{grid-template-columns:repeat(2,minmax(0,1fr))}
  .analysis-v117-toolbar{flex-wrap:wrap}
  .demo-library-head{display:none}.demo-library-row{grid-template-columns:90px 66px minmax(0,1fr) 60px 80px 28px;gap:7px}.demo-library-team.t{display:none}.demo-library-team b{font-size:12px}
  .demo-replay-layout{grid-template-columns:112px minmax(0,1fr) 112px;gap:7px}.demo-replay-player-body{padding:5px}.demo-replay-player-head{font-size:10px}.demo-replay-toolbar{flex-wrap:wrap}.demo-replay-toolbar label{margin-left:0}.demo-replay-legend small{display:none}
  .calendar-legend.compact{display:none}
  .calendar-detail-event{grid-template-columns:54px minmax(0,1fr) auto}
  .modal{padding:16px}
}
@media (max-width: 760px){
  .team-calendar-toolbar{grid-template-columns:minmax(0,1fr);gap:8px}
  .team-calendar-nav{order:2}
  .calendar-shortcuts{display:none}
  .team-calendar-day{height:84px}
}
@media (max-width:620px){
  .public-nav,.public-hero,.public-features,.public-footer{width:calc(100% - 28px)}
  .public-nav-actions .btn-secondary{display:none}
  .public-features{grid-template-columns:minmax(0,1fr)}
  .toolbar input{max-width:none}
  .analysis-v117-history-row{grid-template-columns:40px minmax(0,1fr) auto}
  .analysis-v117-history-actions{grid-column:2/-1;justify-content:flex-start}
  .category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .analysis-v117-score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .protocol-row-head{flex-direction:column;gap:4px}
}
@media (max-width:520px){
  .app-footer span:last-child{margin-left:0}
  .modal-backdrop{padding:10px}
  .modal-actions .btn{flex:1}
  .team-capacity{width:100%}
  .demo-replay-layout{grid-template-columns:minmax(0,1fr);gap:8px}.demo-replay-team-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px}.demo-replay-team.t-team{order:3}.demo-replay-player{min-width:0}.demo-replay-player-head span,.demo-replay-utils{display:none}.demo-replay-player-head{padding:3px 5px;font-size:10.5px}.demo-replay-player-body{padding:4px;min-height:30px;gap:4px}.demo-replay-weapon img{max-height:18px}.demo-replay-toolbar{font-size:11px}.demo-replay-controls{gap:6px}.demo-replay-team-head b{font-size:11px}
  .demo-library-row{grid-template-columns:76px 44px minmax(0,1fr) 58px 28px;padding:8px 4px}.demo-library-date b{font-size:10px}.demo-library-date small{display:none}.demo-library-map{font-size:9px}.demo-team-dot{width:18px;height:18px;font-size:7px}.demo-library-replay{padding:0 7px;font-size:11px}
}

/* Demo library uses the full workspace width. */
.demo-library{width:100%;max-width:1120px;margin-inline:auto}
.demo-source{height:26px;display:grid;place-items:center}.demo-source img{max-width:20px;max-height:20px;object-fit:contain}

/* Motion */
@keyframes toast-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes sync-pulse{from{opacity:.45}to{opacity:1}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* ---- Header row carries the scoreboard; tighter page so the map gets the height ---- */
.demo-replay-page-head{gap:12px;margin-bottom:4px}
.demo-replay-page-head h1{font-size:15px;white-space:nowrap}
.demo-replay-toolbar .demo-replay-scoreboard{flex:0 1 660px;min-height:44px;margin:0;padding:0 12px;gap:12px}
@media (max-width:1250px){.demo-replay-map{display:none}}
@media (max-width:900px){.demo-replay-page-head{flex-wrap:wrap}.demo-replay-toolbar{flex-wrap:wrap}.demo-replay-toolbar .demo-replay-scoreboard{flex:1 1 100%;order:5}.demo-replay-spacer{display:none}}
@media (min-width:901px) and (min-height:520px){
  .demo-replay-page{padding:6px clamp(10px,1.6vw,24px)}
  .demo-replay-page-body{max-width:none;gap:6px}
  .demo-replay-layout{grid-template-columns:clamp(170px,15.5vw,300px) minmax(0,1fr) clamp(170px,15.5vw,300px);gap:12px}
  .demo-replay-dock{gap:6px}
  .demo-replay-controls{padding:6px 12px}
  .demo-replay-round-tab{height:38px;padding:3px 2px}
}

/* ---- Controls float over the bottom of the map; side panels use the free space beside it ---- */
.demo-replay-stage .demo-replay-controls{position:absolute;left:8px;right:8px;bottom:8px;z-index:7;width:auto;margin:0;padding:6px 10px;gap:8px;border-color:rgba(255,255,255,.12);background:rgba(10,13,16,.8);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.demo-replay-stage .demo-replay-zoom{top:8px;bottom:auto}
.demo-replay-stage .demo-replay-style-toggle{top:8px;bottom:auto}
.demo-replay-stage .demo-replay-killfeed{top:44px}
.demo-replay-sidepanel{display:none}
.demo-replay-log-item{display:flex;align-items:center;gap:7px;width:100%;padding:4px 7px;border:0;border-radius:4px;background:transparent;color:#dfe5e9;font:600 11.5px 'Manrope',sans-serif;text-align:left;cursor:pointer}
.demo-replay-log-item time{flex:0 0 34px;color:#7e888f;font:600 10.5px 'JetBrains Mono',monospace}
.demo-replay-log-item img{height:14px;width:auto;max-width:38px;object-fit:contain;filter:brightness(.85)}
.demo-replay-log-item em{padding:1px 4px;border-radius:3px;background:#b8322a;color:#fff;font:800 8.5px 'JetBrains Mono',monospace;font-style:normal}
.demo-replay-log-item .tone-ct{color:#8cb9ef}.demo-replay-log-item .tone-t{color:#f4d97e}
.demo-replay-log-item .log-bomb{color:#ff8a6b;font-weight:800}.demo-replay-log-item .log-defuse{color:#6fd49a;font-weight:800}.demo-replay-log-item .log-boom{color:#ffa24d;font-weight:800}
.demo-replay-log-item.future{opacity:.38}.demo-replay-log-item.current{background:#1d2830;outline:1px solid rgba(255,255,255,.3)}
.demo-replay-log-item:hover{background:#182026}
.demo-replay-log-empty{margin:6px 4px;color:var(--muted);font-size:11.5px}
@media (min-width:1280px) and (min-height:780px){
  .demo-replay-log{display:flex;flex-direction:column;flex:1 1 0;min-height:0;margin-top:10px;padding:10px;border:1px solid #252a2e;border-radius:6px;background:#101214;overflow:hidden}
  .demo-replay-sidepanel h3{flex:0 0 auto;margin:0 0 8px;color:var(--muted);font:700 10.5px 'JetBrains Mono',monospace;letter-spacing:.1em}
  .demo-replay-log-items{flex:1;min-height:0;overflow:auto;scrollbar-width:thin;display:grid;align-content:start;gap:2px}
  .demo-replay-team-list{flex:0 1 auto}
}
@media (min-width:1700px) and (min-height:780px){
  .demo-replay-summary-side{display:flex;flex-direction:column;flex:1 1 0;min-height:0;margin-top:10px;padding:10px;border:1px solid #252a2e;border-radius:6px;background:#101214;overflow:hidden}
  .demo-replay-summary-side .demo-replay-summary{flex:1;min-height:0;overflow:auto;scrollbar-width:thin;margin:0;padding:0;border:0;background:none}
  .demo-replay-summary-side .demo-replay-summary-grid{grid-template-columns:minmax(0,1fr);gap:8px}
  .demo-replay-summary-side .demo-replay-summary-row{grid-template-columns:minmax(0,1fr) 20px 20px 24px 40px 64px;gap:3px;padding:2px 4px;font-size:10.5px}
  .demo-replay-summary-side .demo-replay-summary-row em{overflow:hidden;gap:3px}
  .demo-replay-summary-side .demo-replay-summary-head{flex-wrap:wrap;gap:2px 8px;margin-bottom:4px;font-size:11px}
  .demo-replay-summary-pop{display:none}
}
/* compact overlay controls so the scrub line keeps its length on smaller maps */
.demo-replay-stage .demo-replay-controls .icon-btn{min-width:26px;height:28px;padding:0 5px;font-size:12px}
.demo-replay-stage .demo-replay-controls .demo-replay-speed{width:54px;min-height:28px}
.demo-replay-stage .demo-replay-ctl-group{gap:2px}
.demo-replay-stage .demo-replay-ctl-group+.demo-replay-ctl-group{padding-left:6px}
.demo-replay-stage .demo-replay-time{font-size:10.5px}
@media (max-width:1500px){.demo-replay-stage .demo-replay-controls [data-demo-replay-step]{display:none}}

/* ===== Full-screen replay: the radar fills the whole screen, everything else floats over it ===== */
.demo-replay-page.demo-replay-full{position:fixed;inset:0;z-index:50;height:100vh;min-height:0;padding:0;display:block;overflow:hidden;background:#0b0d0f}
.demo-replay-full .demo-replay-stage{position:absolute;inset:0;width:auto;height:auto;aspect-ratio:auto;margin:0;border:0;border-radius:0;box-shadow:none}
.demo-replay-full .demo-replay-map-layer{inset:auto;transform-origin:50% 50%}
.demo-replay-full .demo-replay-stage::after{background:radial-gradient(circle at 50% 50%,transparent 55%,rgba(5,7,9,.35) 100%);box-shadow:none}
.demo-replay-full .demo-replay-hud{position:absolute;z-index:10;pointer-events:none}
.demo-replay-full .demo-replay-hud>*{pointer-events:auto}
.demo-replay-hud-left{top:10px;left:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:calc(50vw - 380px);min-width:260px}
.demo-replay-hud-left .demo-replay-map{max-width:150px}
.demo-replay-hud-left .demo-replay-help>div{right:auto;left:0}
.demo-replay-hud-center{top:8px;left:50%;transform:translateX(-50%)}
.demo-replay-hud-center .demo-replay-scoreboard{margin:0;min-height:46px;padding:0 16px;gap:14px;border-color:rgba(255,255,255,.1);background:rgba(10,13,16,.84);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
.demo-replay-hud-tools{top:62px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px}
.demo-replay-full .demo-replay-zoom,.demo-replay-full .demo-replay-style-toggle{position:static}
.demo-replay-full .demo-replay-killfeed{position:absolute;top:10px;right:12px;left:auto;transform:none;z-index:10;align-items:flex-end;gap:4px;pointer-events:none}
.demo-replay-full .demo-replay-team{position:absolute;z-index:10;top:132px;bottom:12px;width:clamp(200px,15.5vw,300px);display:flex;flex-direction:column;pointer-events:none}
.demo-replay-full .demo-replay-team>*{pointer-events:auto}
.demo-replay-full .ct-team{left:12px}.demo-replay-full .t-team{right:12px}
.demo-replay-full .demo-replay-team-head{background:rgba(10,13,16,.72);padding:6px 8px;margin-bottom:6px;border:0;border-radius:6px}
.demo-replay-full .demo-replay-team-list{flex:0 1 auto}
.demo-replay-full .demo-replay-dock{position:absolute;z-index:10;left:50%;bottom:8px;transform:translateX(-50%);width:min(940px,calc(100vw - 2*clamp(200px,15.5vw,300px) - 60px));display:grid;gap:6px;justify-items:stretch}
.demo-replay-full .demo-replay-controls{position:static;width:auto;margin:0;padding:6px 10px;border-color:rgba(255,255,255,.12);background:rgba(10,13,16,.84);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
.demo-replay-full .demo-replay-rounds{padding:4px 8px;border-radius:8px;background:rgba(10,13,16,.72);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
.demo-replay-full .demo-replay-controls .icon-btn{min-width:28px;height:30px;padding:0 6px}
.demo-replay-log-pop>div{width:min(430px,92vw);max-height:70vh;overflow:auto}
.demo-replay-log-items{display:grid;align-content:start;gap:2px}
/* CS2-style kill feed, top right */
.demo-replay-killfeed-item{gap:8px;padding:5px 11px;border-radius:4px;background:rgba(8,10,12,.74);border:1px solid rgba(255,255,255,.09);font:700 13px 'Manrope',sans-serif}
.demo-replay-killfeed-item.new{animation:replayFeedIn .22s ease-out}
.demo-replay-killfeed-item.focused{border-color:#e0453a;box-shadow:0 0 0 1px rgba(224,69,58,.55)}
.demo-replay-killfeed-weapon{height:17px;max-width:58px}
.killfeed-hs{width:15px;height:15px;flex:0 0 auto;color:#ff4a3d}
@keyframes replayFeedIn{from{opacity:0;transform:translateX(22px)}to{opacity:1;transform:none}}
@media (max-width:1100px){
  .demo-replay-page.demo-replay-full{position:relative;inset:auto;height:auto;overflow:visible;padding:8px}
  .demo-replay-full .demo-replay-stage{position:relative;inset:auto;width:100%;aspect-ratio:1}
  .demo-replay-full .demo-replay-hud,.demo-replay-full .demo-replay-team,.demo-replay-full .demo-replay-dock,.demo-replay-full .demo-replay-killfeed{position:static;transform:none;width:auto;max-width:none;margin-top:8px}
  .demo-replay-hud-left{flex-wrap:wrap}
  .demo-replay-full .demo-replay-killfeed{align-items:stretch}
}

/* ---- Softer, thinner bottom bar with a fold-away arrow; summary panels hug their content ---- */
.demo-replay-full .demo-replay-dock{gap:4px;bottom:6px;width:min(880px,calc(100vw - 2*clamp(200px,15.5vw,300px) - 60px))}
.demo-replay-dock-toggle{justify-self:center;width:46px;height:20px;padding:0;display:grid;place-items:center;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:rgba(10,13,16,.62);color:#d3dade;line-height:1;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:transform .18s,color .12s,background .12s}
.demo-replay-dock-toggle:hover{background:rgba(30,36,42,.7);color:#fff}
.demo-replay-dock.collapsed .demo-replay-dock-toggle{transform:rotate(180deg)}
.demo-replay-dock.collapsed>:not(.demo-replay-dock-toggle){display:none}
.demo-replay-full .demo-replay-controls{padding:3px 12px;gap:8px;border-radius:999px;border:1px solid rgba(255,255,255,.07);background:rgba(10,13,16,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.demo-replay-full .demo-replay-controls .icon-btn{min-width:24px;height:24px;padding:0 4px;border-color:transparent;background:transparent;color:#b6bfc5;font-size:11px;box-shadow:none}
.demo-replay-full .demo-replay-controls .icon-btn:hover{background:rgba(255,255,255,.09);color:#fff}
.demo-replay-full .demo-replay-controls .demo-replay-play{min-width:30px;height:24px;border-radius:999px;background:rgba(228,216,164,.92);color:#16130c}
.demo-replay-full .demo-replay-controls .demo-replay-speed{width:48px;min-height:24px;padding:0 4px;border-color:rgba(255,255,255,.1);background:transparent;font-size:11px}
.demo-replay-full .demo-replay-ctl-group+.demo-replay-ctl-group{border-left-color:rgba(255,255,255,.08)}
.demo-replay-full .demo-replay-controls input[type="range"]{height:18px}
.demo-replay-full .demo-replay-controls input[type="range"]::-webkit-slider-runnable-track{height:4px;border-radius:2px;box-shadow:none}
.demo-replay-full .demo-replay-controls input[type="range"]::-moz-range-track{height:4px;border-radius:2px;box-shadow:none}
.demo-replay-full .demo-replay-controls input[type="range"]::-webkit-slider-thumb{width:8px;height:14px;margin-top:-5px;border-radius:3px;border-width:1.5px;box-shadow:none}
.demo-replay-full .demo-replay-controls input[type="range"]::-moz-range-thumb{width:6px;height:12px;border-radius:3px;border-width:1.5px}
.demo-replay-full .demo-replay-markers .m.kill{width:9px;height:9px;border-width:1.5px;box-shadow:0 0 0 1px rgba(255,255,255,.45)}
.demo-replay-full .demo-replay-markers .m.kill.hs{width:11px;height:11px;box-shadow:0 0 0 1.5px rgba(255,90,79,.9)}
.demo-replay-full .demo-replay-time{font-size:10px;color:#9aa4aa}
.demo-replay-full .demo-replay-rounds{padding:3px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.05);background:rgba(10,13,16,.42);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.demo-replay-full .demo-replay-round-group{padding:0 9px}
.demo-replay-full .demo-replay-round-group>small{font-size:7px;color:#6f7980}
.demo-replay-full .demo-replay-round-group>div{gap:3px}
.demo-replay-full .demo-replay-round-tab{width:26px;height:31px;padding:3px 1px 2px;gap:1px;border-radius:4px;box-shadow:none;opacity:.86}
.demo-replay-full .demo-replay-round-tab:hover:not(:disabled){opacity:1;transform:translateY(-1px)}
.demo-replay-full .demo-replay-round-tab svg{width:12px;height:12px}
.demo-replay-full .demo-replay-round-tab i,.demo-replay-full .demo-replay-round-tab.tone-ct i,.demo-replay-full .demo-replay-round-tab.tone-t i{min-height:12px}
.demo-replay-full .demo-replay-round-tab b{font-size:8.5px}
.demo-replay-full .demo-replay-round-tab.tone-ct{background:rgba(52,116,168,.82)}
.demo-replay-full .demo-replay-round-tab.tone-t{background:rgba(176,124,40,.82)}
.demo-replay-full .demo-replay-round-tab.active{opacity:1;outline-width:1.5px;transform:translateY(-1px)}
.demo-replay-summary-row.total{margin-top:3px;padding-top:5px;border-top:1px solid #2b3339;border-radius:0;color:#cfd6da;font-weight:700;cursor:default}
.demo-replay-summary-row.total:hover{background:transparent}
@media (min-width:1700px) and (min-height:780px){
  .demo-replay-summary-side{flex:0 1 auto}
  .demo-replay-summary-side .demo-replay-summary{flex:0 1 auto}
}
/* kill feed rows: thin red outline, brighter glow when the followed player is involved */
.demo-replay-killfeed-item{border:1px solid rgba(226,64,54,.85)}
.demo-replay-killfeed-item.focused{border-color:#ff5148;box-shadow:0 0 0 1px rgba(255,81,72,.35),0 0 10px rgba(255,81,72,.35)}

/* Admin: Sistem Durumu + Altyapı Kılavuzu */
.sys-page{display:grid;gap:14px;max-width:1280px}
.sys-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.sys-banner h2{margin:2px 0 4px;font-size:20px;display:flex;align-items:center;gap:10px}
.sys-banner p{margin:0;color:var(--muted);font-size:12.5px;line-height:1.5}
.sys-banner.ok{border-color:rgba(102,207,152,.35)}.sys-banner.warn{border-color:rgba(217,155,86,.45)}.sys-banner.down{border-color:rgba(239,112,120,.5)}
.sys-banner .sys-error{color:var(--danger);margin-top:4px}
.sys-note{margin:0;color:var(--faint);font-size:12px;line-height:1.5}
.sys-title{margin:8px 0 0;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.sys-dot{flex:none;display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--faint)}
.sys-dot.ok{background:var(--success);box-shadow:0 0 0 3px var(--success-soft)}
.sys-dot.warn{background:var(--orange);box-shadow:0 0 0 3px var(--orange-soft)}
.sys-dot.down{background:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}
.sys-dot.off{background:var(--faint)}
.sys-pill{flex:none;padding:3px 9px;border-radius:99px;font-size:11px;font-weight:600;background:var(--surface);color:var(--muted);white-space:nowrap}
.sys-pill.ok{color:var(--success);background:var(--success-soft)}.sys-pill.warn{color:var(--orange);background:var(--orange-soft)}.sys-pill.down{color:var(--danger);background:var(--danger-soft)}
.sys-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}
.sys-card{display:grid;align-content:start;gap:10px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.sys-card.down{border-color:rgba(239,112,120,.45)}.sys-card.warn{border-color:rgba(217,155,86,.4)}
.sys-card header{display:flex;align-items:center;gap:10px}
.sys-card header>div{flex:1;min-width:0}
.sys-card h3{margin:0;font-size:14px}
.sys-card small{color:var(--muted);font-size:11.5px}
.sys-detail{margin:0;font-size:12.5px;line-height:1.5}
.sys-latency{margin:0;font-size:12px;color:var(--muted)}
.sys-latency b{color:var(--text)}
.sys-facts{display:grid;gap:4px;margin:0}
.sys-facts div{display:flex;justify-content:space-between;gap:12px;font-size:12px;border-bottom:1px dashed var(--border);padding-bottom:4px}
.sys-facts dt{color:var(--muted)}.sys-facts dd{margin:0;text-align:right;overflow-wrap:anywhere}
.sys-limits{display:grid;gap:9px;padding-top:4px}
.sys-limits h4{margin:0;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.sys-limit{display:grid;gap:4px}
.sys-limit-head{display:flex;justify-content:space-between;gap:10px;font-size:12px}
.sys-limit-head span{color:var(--muted)}.sys-limit-head b{text-align:right;font-weight:600;overflow-wrap:anywhere}
.sys-limit small{font-size:11px;color:var(--faint);line-height:1.4}
.sys-bar{height:6px;border-radius:99px;background:var(--surface-2);overflow:hidden}
.sys-bar i{display:block;height:100%;border-radius:inherit;background:var(--success)}
.sys-bar i.warn{background:var(--orange)}.sys-bar i.down{background:var(--danger)}
.sys-sites{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:8px}
.sys-site{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel)}
.sys-site>div{flex:1;min-width:0}
.sys-site b{display:block;font-size:13px}.sys-site small{display:block;color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sys-site em{font-style:normal;color:var(--faint);font-size:11px;min-width:48px;text-align:right}
.sys-tables{display:grid;gap:6px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.sys-table-row{display:grid;grid-template-columns:150px 1fr 80px;align-items:center;gap:12px;font-size:12px}
.sys-table-row b{text-align:right;font-weight:600}
.guide-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:18px;align-items:start}
.guide-toc{position:sticky;top:12px;display:grid;gap:2px;padding:8px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.guide-toc button{text-align:left;padding:7px 9px;border:0;border-radius:var(--radius-sm);background:none;color:var(--muted);font:inherit;font-size:12.5px;cursor:pointer}
.guide-toc button:hover{background:var(--hover);color:var(--text)}
.guide-body{display:grid;gap:14px}
.guide-section{padding:16px 18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);scroll-margin-top:12px}
.guide-section h3{margin:0 0 10px;font-size:17px}
.guide-section h4{margin:16px 0 6px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.guide-section p,.guide-section li{font-size:13px;line-height:1.6}
.guide-section p{margin:0 0 10px}
.guide-section ul{margin:0 0 10px;padding-left:20px}
.guide-section pre{margin:0 0 10px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface);overflow:auto;font-size:12px}
.guide-table{overflow-x:auto;margin:0 0 12px;border:1px solid var(--border);border-radius:var(--radius-sm)}
.guide-table table{width:100%;border-collapse:collapse;font-size:12.5px}
.guide-table th{text-align:left;padding:8px 10px;background:var(--surface);color:var(--muted);font-weight:600;white-space:nowrap}
.guide-table td{padding:8px 10px;border-top:1px solid var(--border);vertical-align:top;line-height:1.5}
.guide-note{margin:0 0 12px;padding:10px 12px;border-left:3px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);font-size:12.5px;line-height:1.55}
.guide-note.warn{border-left-color:var(--orange);background:var(--orange-soft)}.guide-note.danger{border-left-color:var(--danger);background:var(--danger-soft)}.guide-note.ok{border-left-color:var(--success);background:var(--success-soft)}
@media (max-width:900px){.guide-layout{grid-template-columns:1fr}.guide-toc{position:static;grid-template-columns:1fr 1fr}.sys-banner{flex-direction:column;align-items:stretch}.sys-table-row{grid-template-columns:110px 1fr 70px}}
/* RIFLR-AI */
.scout-page{display:grid;gap:14px;max-width:1280px}
.scout-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px;border:1px solid rgba(var(--accent-rgb),.3);border-radius:var(--radius);background:linear-gradient(135deg,rgba(var(--accent-rgb),.09),transparent 60%),var(--panel)}
.scout-hero h2{margin:2px 0 6px;font-size:22px}
.scout-hero p{color:var(--muted);font-size:13px;line-height:1.55;max-width:760px}
.scout-hero .eyebrow{display:flex;align-items:center;gap:8px}
.scout-quota{flex:none;text-align:right}
.scout-quota b{display:block;font:600 22px 'Space Grotesk',sans-serif}
.scout-quota small{color:var(--muted);font-size:11px}
.scout-inputs{display:grid;gap:10px}
.scout-input{display:flex;gap:8px}
.scout-input input{flex:1}
.scout-hint{margin:0;color:var(--faint);font-size:12px;line-height:1.5}
.scout-drop{display:grid;gap:4px;place-items:center;text-align:center;padding:26px 16px;border:1px dashed var(--border-strong);border-radius:var(--radius);cursor:pointer;background:var(--surface)}
.scout-drop:hover{border-color:rgba(var(--accent-rgb),.6)}
.scout-drop.disabled{opacity:.55;pointer-events:none}
.scout-drop input{display:none}
.scout-drop span{color:var(--muted);font-size:12px;max-width:560px}
.scout-job .card-title small{margin-left:8px}
.scout-job .card-title .btn{margin-left:auto}
.scout-error{color:var(--danger)!important}
.scout-steps{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.scout-steps li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;font-size:12.5px}
.scout-steps li>span{width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:var(--surface-2);font-size:11px;font-weight:700}
.scout-steps li.done>span{color:var(--success);background:var(--success-soft)}
.scout-steps li.fail>span{color:var(--danger);background:var(--danger-soft)}
.scout-steps li em{font-style:normal;color:var(--muted);font-size:11.5px;text-align:right}
.scout-spin{width:10px;height:10px;border:2px solid var(--accent);border-right-color:transparent;border-radius:50%;animation:scout-spin .8s linear infinite}
@keyframes scout-spin{to{transform:rotate(360deg)}}
.scout-factions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.scout-faction{display:grid;gap:4px;text-align:left;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);position:relative}
.scout-faction:hover:not(:disabled){border-color:rgba(var(--accent-rgb),.6)}
.scout-faction:disabled{opacity:.55;cursor:not-allowed}
.scout-faction b{font-size:14px;padding-right:40px}
.scout-faction small{color:var(--muted);font-size:11.5px;line-height:1.5}
.scout-score{position:absolute;top:10px;right:14px;font:600 18px 'Space Grotesk',sans-serif}
.scout-mapbar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:10px}
.scout-mapbar>span{color:var(--muted);font-size:12px;margin-right:4px}
.scout-mapbar button{height:26px;padding:0 10px;border:1px solid var(--border);border-radius:99px;background:none;color:var(--muted);font-size:12px}
.scout-mapbar button.active{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}
.scout-candidates{display:grid;gap:4px;max-height:420px;overflow:auto}
.scout-candidate{display:grid;grid-template-columns:20px 100px 80px minmax(0,1fr) 80px;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--radius-sm);background:var(--surface);font-size:12.5px;cursor:pointer}
.scout-candidate.disabled{opacity:.5;cursor:default}
.scout-cand-date,.scout-cand-map{color:var(--muted)}
.scout-cand-teams{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scout-cand-flag{color:var(--success);font-size:11px;text-align:right}
.scout-start{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}
.scout-start small{color:var(--muted)}
.win{color:var(--success)}.loss{color:var(--danger)}
.scout-ready{color:var(--success)}
.scout-reports{display:grid;gap:6px}
.scout-report-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto auto auto;align-items:center;gap:12px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.scout-report-map img{width:44px;height:30px;object-fit:cover;border-radius:4px;display:block}
.scout-report-main b{display:block;font-size:13.5px}
.scout-report-main small{color:var(--muted);font-size:11.5px}
.scout-conf{padding:2px 8px;border-radius:99px;font-size:11px;font-weight:600;white-space:nowrap;background:var(--surface-2);color:var(--muted)}
.scout-conf.high{color:var(--success);background:var(--success-soft)}.scout-conf.mid{color:var(--orange);background:var(--orange-soft)}.scout-conf.low{color:var(--danger);background:var(--danger-soft)}
.scout-report-head{display:flex;align-items:center;gap:14px}
.scout-report-head>div{flex:1;min-width:0}
.scout-report-head h2{margin:2px 0;font-size:20px}
.scout-report-head small{color:var(--muted);font-size:12px}
.scout-tabs{display:flex;flex-wrap:wrap;gap:4px;padding:4px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);position:sticky;top:0;z-index:5}
.scout-tabs button{height:30px;padding:0 12px;border:0;border-radius:var(--radius-sm);background:none;color:var(--muted);font-size:12.5px;font-weight:600}
.scout-tabs button.active{color:var(--accent-ink);background:var(--accent)}
.scout-body{display:grid;gap:12px}
.scout-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.scout-kpis>div{display:grid;gap:2px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.scout-kpis small{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.scout-kpis b{font:600 22px 'Space Grotesk',sans-serif}
.scout-kpis span{color:var(--faint);font-size:11.5px}
.scout-section{display:grid;gap:10px}
.scout-section .card-title{margin-bottom:0}
.scout-section h4{margin:10px 0 6px;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--accent)}
.scout-lead{font-size:13px;line-height:1.55}
.scout-list{margin:0;padding-left:18px;display:grid;gap:4px;font-size:13px;line-height:1.55}
.scout-insight{display:grid;gap:3px;padding:10px 12px;border-left:3px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface)}
.scout-insight.p1{border-left-color:var(--accent)}.scout-insight.p2{border-left-color:var(--orange)}
.scout-insight-cat{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}
.scout-insight b{font-size:13.5px}
.scout-insight p{font-size:12.5px;line-height:1.55;color:var(--text)}
.scout-insight small{color:var(--faint);font-size:11px}
.scout-section .scout-insight+.scout-insight{margin-top:6px}
.scout-bar-row{display:grid;grid-template-columns:minmax(140px,240px) 1fr 50px;align-items:center;gap:10px;font-size:12.5px}
.scout-bar-row b{text-align:right}
.scout-bar-row small{color:var(--faint)}
.scout-players{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.scout-player{display:grid;gap:8px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.scout-player header{display:grid;gap:4px}
.scout-player header b{font:600 16px 'Space Grotesk',sans-serif}
.scout-player header div{font-size:12px;color:var(--muted)}
.scout-role{display:inline-block;padding:1px 8px;border-radius:99px;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:11px}
.scout-role.muted{background:var(--surface-2);color:var(--faint)}
.scout-style{font-size:12.5px;color:var(--text);line-height:1.5}
.scout-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0}
.scout-stats div{padding:6px 8px;border-radius:var(--radius-sm);background:var(--surface)}
.scout-stats dt{color:var(--muted);font-size:10.5px}
.scout-stats dd{margin:0;font-weight:700;font-size:13px}
.scout-why{font-size:11.5px;color:var(--muted);line-height:1.5}
.scout-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.scout-heat-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.scout-heat-controls .scout-mapbar{margin:0}
.scout-heat-controls select{width:auto;min-width:180px}
.scout-heat-wrap{position:relative;width:min(100%,720px);aspect-ratio:1;margin:0 auto;border-radius:var(--radius);overflow:hidden;background:#111}
.scout-heat-wrap img,.scout-heat-wrap canvas{position:absolute;inset:0;width:100%;height:100%}
.scout-heat-wrap img{opacity:.75}
@media (max-width:900px){.scout-two,.scout-factions{grid-template-columns:1fr}.scout-candidate{grid-template-columns:20px 80px minmax(0,1fr)}.scout-cand-map,.scout-cand-flag{display:none}.scout-report-row{grid-template-columns:minmax(0,1fr) auto}.scout-report-map,.scout-report-row .scout-conf{display:none}.scout-hero{flex-direction:column}.scout-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.scout-bar-row{grid-template-columns:110px 1fr 44px}}
.scout-steps li.manual>span{color:var(--accent);background:var(--accent-soft)}
.scout-manual{grid-column:1/-1;display:grid;gap:8px;margin:4px 0 6px 30px;padding:12px 14px;border:1px solid rgba(var(--accent-rgb),.35);border-radius:var(--radius);background:var(--accent-soft)}
.scout-manual p{font-size:12.5px;line-height:1.5}
.scout-manual ol{margin:0;padding-left:18px;display:grid;gap:4px;font-size:12.5px;line-height:1.5;list-style:decimal}
.scout-steps .scout-manual li{display:list-item;font-size:12.5px}
.scout-manual a{color:var(--accent);text-decoration:underline}
.scout-manual-actions{display:flex;gap:8px;flex-wrap:wrap}
/* RIFLR-AI report maps */
.scout-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start}
.scout-explain{margin:0;padding:9px 12px;border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);font-size:12.5px;line-height:1.55}
.scout-old{margin:0;padding:10px 12px;border-radius:var(--radius-sm);background:var(--orange-soft);color:var(--orange);font-size:12.5px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.scout-map-block{display:grid;gap:8px;justify-items:center}
.scout-map{position:relative;width:min(100%,760px);aspect-ratio:1;border-radius:var(--radius);overflow:hidden;background:#0b0d10;border:1px solid var(--border)}
.scout-map img,.scout-map canvas{position:absolute;inset:0;width:100%;height:100%}
.scout-map img{opacity:.6;filter:saturate(.7)}
.scout-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;font-size:11.5px;color:var(--muted)}
.scout-legend span{display:inline-flex;align-items:center;gap:6px}
.scout-legend i{display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px rgba(0,0,0,.5)}
.scout-legend i.line{width:18px;height:4px;border-radius:2px}
.scout-legend i.cross{background:none;box-shadow:none;width:12px;height:12px;position:relative}
.scout-legend i.cross::before,.scout-legend i.cross::after{content:'';position:absolute;left:5px;top:-1px;width:2.5px;height:14px;background:var(--c);transform:rotate(45deg)}
.scout-legend i.cross::after{transform:rotate(-45deg)}
.scout-chip-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:middle}
.scout-mapbar button{display:inline-flex;align-items:center}
.scout-story{display:grid;gap:8px}
.scout-story-row{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface)}
.scout-story-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:var(--accent-soft);color:var(--accent);font:700 12px 'Space Grotesk',sans-serif;letter-spacing:.02em}
.scout-story-row b{font-size:13px}
.scout-story-row p{font-size:13px;line-height:1.55;color:var(--text);margin-top:2px}
.scout-story-row p b{color:var(--accent)}
@media (max-width:1100px){.scout-split{grid-template-columns:1fr}}
/* new deploy available */
.update-banner{margin:0 0 10px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border:1px solid rgba(var(--accent-rgb),.45);border-radius:var(--radius);background:var(--accent-soft);font-size:12.5px;line-height:1.5}
.update-banner b{color:var(--accent)}
/* RIFLR-AI manual demo drop */
.scout-manual.drag,.scout-drop.drag{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.25)}
.scout-manual-list{margin:0;padding:0;list-style:none;display:grid;gap:4px}
.scout-steps .scout-manual-list li{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--radius-sm);background:rgba(0,0,0,.18);font-size:12.5px}
.scout-manual-list li>span{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:var(--surface-2);font-size:10.5px;font-weight:700}
.scout-manual-list li.have>span{color:var(--success);background:var(--success-soft)}
.scout-manual-list li.now{outline:1px solid rgba(var(--accent-rgb),.5)}
.scout-manual-list li em{font-style:normal;color:var(--muted);font-size:11px}
.scout-manual-list li.have em{color:var(--success)}
.scout-manual-actions small{color:var(--muted);font-size:11.5px;align-self:center}
/* RIFLR-AI report v3: graphic-first */
.scout-icon{flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.scout-ring{--s:34px;position:relative;flex:none;display:inline-grid;place-items:center;width:var(--s);height:var(--s)}
.scout-ring svg{position:absolute;inset:0;width:100%;height:100%}
.scout-ring circle{fill:none;stroke-width:3.4}
.scout-ring .bg{stroke:var(--surface-2)}
.scout-ring .fg{stroke:var(--c);stroke-linecap:round}
.scout-ring b{position:relative;font:700 calc(var(--s) * .34)/1 'Space Grotesk',sans-serif;color:var(--c)}
.scout-ring.high{--c:#66cf98}.scout-ring.mid{--c:#d7c57b}.scout-ring.low{--c:#d99b56}.scout-ring.weak{--c:#ef7078}
.scout-box-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.scout-box-head h3{font:600 14px 'Space Grotesk',sans-serif;margin:0}
.scout-box-head small{color:var(--muted);font-size:11.5px}
.scout-box-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--accent-soft);color:var(--accent)}
.scout-box-end{margin-left:auto;display:flex;align-items:center;gap:8px}
.scout-section{display:block}
.scout-info{position:relative}
.scout-info summary{list-style:none;cursor:pointer;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;color:var(--muted);border:1px solid var(--border)}
.scout-info summary::-webkit-details-marker{display:none}
.scout-info[open] summary,.scout-info summary:hover{color:var(--accent);border-color:rgba(var(--accent-rgb),.5)}
.scout-info>div{position:absolute;right:0;top:32px;z-index:20;width:min(340px,80vw);padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--panel-raised);box-shadow:var(--shadow-pop);font-size:12px;line-height:1.55;color:var(--text)}
.scout-head-acc{display:flex;align-items:center;gap:10px}
.scout-head-acc b{display:block;font-size:12.5px}
.scout-head-acc small{color:var(--muted);font-size:11px}
.scout-report-head small svg{margin:0 2px 0 6px;color:var(--faint)}
.scout-footnote{padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);font-size:12px}
.scout-footnote summary{cursor:pointer}
.scout-footnote>div{margin-top:8px;line-height:1.6}
.scout-old-tag{padding:2px 8px;border-radius:99px;background:var(--orange-soft);color:var(--orange);font-size:11px;font-weight:700}
.scout-tabs button{display:inline-flex;align-items:center;gap:6px}
.scout-tabs button svg{opacity:.85}
/* kpi */
.scout-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.scout-kpis.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.scout-kpi{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.scout-kpi>div{flex:1;min-width:0;display:grid;gap:1px}
.scout-kpi small{color:var(--muted);font-size:11px;text-transform:none;letter-spacing:0}
.scout-kpi b{font:600 22px/1.15 'Space Grotesk',sans-serif}
.scout-kpi span:not(.scout-ring):not(.scout-kpi-icon){color:var(--faint);font-size:11.5px}
.scout-kpi-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--accent-soft);color:var(--accent)}
/* identity chips */
.scout-dna{display:flex;flex-wrap:wrap;gap:8px}
.scout-chip-card{display:inline-flex;align-items:center;gap:9px;padding:7px 10px 7px 12px;border:1px solid var(--border);border-radius:99px;background:var(--surface);color:var(--accent)}
.scout-chip-card>span:not(.scout-ring){display:grid;line-height:1.2;color:var(--text)}
.scout-chip-card b{font-size:12.5px}
.scout-chip-card small{color:var(--muted);font-size:11px}
/* insights */
.scout-insight-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface);border-left:3px solid var(--border-strong)}
.scout-insight-row+.scout-insight-row{margin-top:6px}
.scout-insight-row.ct{border-left-color:#4fc3ff}.scout-insight-row.t{border-left-color:#ffb347}
.scout-insight-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.04);color:var(--accent)}
.scout-insight-row small{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}
.scout-insight-row b{display:block;font-size:13.5px}
.scout-insight-row p{font-size:12px;line-height:1.45;color:var(--muted);margin-top:1px}
/* matches */
.scout-matches{display:grid;gap:6px}
.scout-match{display:grid;grid-template-columns:90px minmax(0,1fr) auto minmax(0,1fr) 70px;gap:10px;align-items:center;padding:8px 12px;border-radius:var(--radius-sm);background:var(--surface);font-size:12.5px;border-left:3px solid var(--border-strong)}
.scout-match.won{border-left-color:var(--success)}.scout-match.lost{border-left-color:var(--danger)}
.scout-match>b:last-of-type{text-align:left}.scout-match>b:nth-of-type(1){text-align:right}
.scout-match i{font:700 17px 'Space Grotesk',sans-serif;font-style:normal;padding:0 8px}.scout-match i em{font-style:normal;color:var(--faint);margin:0 2px}
.scout-match span,.scout-match small{color:var(--muted);font-size:11.5px}
/* players */
.scout-players{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:12px}
.scout-player{display:grid;gap:8px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}
.scout-player header{display:flex;align-items:center;gap:10px}
.scout-player header>div{flex:1;min-width:0}
.scout-player header b{display:block;font:600 15px 'Space Grotesk',sans-serif}
.scout-avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--c) 22%,transparent);color:var(--c);font:700 13px 'Space Grotesk',sans-serif;border:1px solid color-mix(in srgb,var(--c) 45%,transparent)}
.scout-avatar.sm{width:28px;height:28px;border-radius:8px;font-size:10.5px}
.scout-role-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:3px;color:var(--faint)}
.scout-role{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:99px;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:11px}
.scout-role em{font-style:normal;opacity:.7;font-weight:600}
.scout-role.muted{background:var(--surface-2);color:var(--faint)}
.scout-player-top{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.scout-player-top>div{display:grid;gap:1px;padding:6px 8px;border-radius:var(--radius-sm);background:var(--panel);text-align:center}
.scout-player-top b{font:600 17px 'Space Grotesk',sans-serif}.scout-player-top b em{font-style:normal;color:var(--faint);margin:0 1px}
.scout-player-top small{color:var(--muted);font-size:10.5px}
.scout-meter{display:grid;grid-template-columns:minmax(78px,130px) 1fr 46px;align-items:center;gap:8px;font-size:12px}
.scout-meter>span{color:var(--muted);display:inline-flex;align-items:center;gap:5px}
.scout-meter>span small{color:var(--faint)}
.scout-meter b{text-align:right;font-weight:600}
.scout-tags{display:flex;flex-wrap:wrap;gap:5px}
.scout-tags span{padding:2px 9px;border-radius:99px;background:var(--panel);color:var(--muted);font-size:11px}
.scout-tags.big span{font-size:12.5px;padding:4px 12px;color:var(--text)}
/* ct tab */
.scout-spots{display:grid;gap:8px}
.scout-spot-row{display:grid;grid-template-columns:28px 120px auto minmax(0,1fr);align-items:center;gap:10px;font-size:12.5px}
.scout-spot-bars{display:flex;flex-wrap:wrap;gap:6px}
.scout-spot-bars span{position:relative;display:inline-block;min-width:110px;padding:3px 10px;border-radius:99px;background:var(--surface);overflow:hidden;font-size:11.5px}
.scout-spot-bars span i{position:absolute;inset:0 auto 0 0;width:var(--w);background:rgba(var(--accent-rgb),.22)}
.scout-spot-bars span em{position:relative;font-style:normal}
.scout-glyph{display:inline-flex;gap:10px;align-items:flex-end;min-width:128px}
.scout-glyph-col{display:grid;gap:3px;justify-items:center;min-width:34px}
.scout-glyph .dots{display:flex;flex-direction:column-reverse;gap:3px;min-height:30px;justify-content:flex-start}
.scout-glyph .dots i{display:block;width:9px;height:9px;border-radius:50%;background:var(--accent)}
.scout-glyph small{font-size:9.5px;color:var(--faint)}
.scout-shapes{display:grid;gap:8px}
.scout-shape-row{display:grid;grid-template-columns:128px 1fr 42px 54px auto;align-items:center;gap:10px;font-size:12.5px}
.scout-shape-row small{display:inline-flex;align-items:center;gap:3px;color:var(--success)}
.scout-gauge-row{display:flex;align-items:center;gap:14px;margin-bottom:10px}
.scout-gauge-row b{display:block;font-size:14px}.scout-gauge-row small{color:var(--muted);font-size:11.5px}
/* t tab */
.scout-tactic-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.scout-tactic-chips button{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:1px solid var(--border);border-radius:99px;background:var(--surface);color:var(--muted);font-size:12px}
.scout-tactic-chips button.active{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}
.scout-tactic-chips em{font-style:normal;padding:0 6px;border-radius:99px;background:rgba(0,0,0,.2);font-size:11px;font-weight:700}
.scout-tactic-summary{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius-sm);background:var(--surface);color:var(--accent)}
.scout-tactic-summary>div{flex:1;color:var(--text)}.scout-tactic-summary b{display:block;font-size:13.5px}.scout-tactic-summary small{color:var(--muted)}
.scout-tactic-list{display:grid;gap:6px}
.scout-tactic-row{display:grid;grid-template-columns:24px minmax(160px,1.2fr) minmax(80px,1fr) 46px 62px auto;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);font-size:12.5px}
.scout-tactic-row div b{display:block;color:var(--text)}.scout-tactic-row small{color:var(--muted);font-size:11px}
.scout-tactic-row>b{color:var(--text)}
.scout-win{display:inline-flex;align-items:center;gap:3px;font-weight:700;font-size:12px}
.scout-win.win{color:var(--success)}.scout-win.loss{color:var(--danger)}
.scout-seg{display:flex;height:34px;border-radius:99px;overflow:hidden;background:var(--surface-2)}
.scout-seg i{display:flex;align-items:center;justify-content:center;gap:4px;font-style:normal;font-size:11.5px;font-weight:600;color:#0c0d0f;background:var(--success);white-space:nowrap;overflow:hidden}
.scout-seg i b{font-weight:800}
.scout-seg i.a{background:#ffb347}.scout-seg i.b{background:#4fc3ff}.scout-seg i.down{background:#ef7078}.scout-seg i.warn{background:#d99b56}.scout-seg i.mid{background:#d7c57b}.scout-seg i.off{background:var(--border-strong);color:var(--text)}
.scout-lurk-list{display:grid;gap:8px}
.scout-lurk{display:grid;grid-template-columns:24px minmax(120px,1fr) minmax(120px,1.2fr) auto;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--surface);color:#c39bff}
.scout-lurk div b{display:block;color:var(--text)}.scout-lurk small{color:var(--muted);font-size:11px}
.scout-empty-state{display:flex;align-items:center;gap:8px;padding:12px;border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);font-size:12.5px}
.scout-empty-state svg{color:var(--success)}
/* awp / util / duels / eco */
.scout-awp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin-top:12px}
.scout-awp-stats>div{display:grid;justify-items:center;gap:2px;padding:10px;border-radius:var(--radius-sm);background:var(--surface);color:var(--accent)}
.scout-awp-stats b{font:600 20px 'Space Grotesk',sans-serif;color:var(--text)}.scout-awp-stats small{color:var(--muted);font-size:11px;text-align:center}
.scout-bars{display:grid;gap:8px}
.scout-kill-row{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--radius-sm);background:var(--surface);font-size:12.5px;color:var(--danger)}
.scout-kill-row span{color:var(--text)}.scout-kill-row small{color:var(--muted)}
.scout-util-totals{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:10px}
.scout-util-totals small{color:var(--muted);margin-left:auto}
.scout-util-total{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:99px;background:var(--surface);color:var(--c)}
.scout-util-total b{color:var(--text)}
.scout-util-list{display:grid;gap:6px}
.scout-util-row{display:grid;grid-template-columns:30px minmax(100px,1fr) minmax(60px,1fr) 38px;align-items:center;gap:10px;padding:6px 10px;border-radius:var(--radius-sm);background:var(--surface);font-size:12.5px}
.scout-util-row small{display:block;color:var(--muted);font-size:11px}
.scout-util-row>b{text-align:right}.scout-util-row>b em{font-style:normal;color:var(--faint);margin-left:1px}
.scout-util-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:color-mix(in srgb,var(--c) 18%,transparent);color:var(--c)}
.scout-after-list{display:grid;gap:8px}
.scout-after{display:grid;grid-template-columns:22px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);font-size:12.5px}
.scout-after b{display:block;color:var(--text)}.scout-after small{color:var(--muted);font-size:11px}
.scout-duels{display:grid;gap:5px}
.scout-duel{display:grid;grid-template-columns:44px minmax(90px,1fr) 18px minmax(90px,1fr) 90px 110px;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--radius-sm);background:var(--surface);font-size:12.5px;border-left:3px solid var(--border-strong)}
.scout-duel.win{border-left-color:var(--success)}.scout-duel.loss{border-left-color:var(--danger)}
.scout-duel span,.scout-duel small{color:var(--muted);font-size:11.5px}.scout-duel svg{color:var(--faint)}
.scout-duel em{font-style:normal;font-size:11.5px;text-align:right}.scout-duel.win em{color:var(--success)}.scout-duel.loss em{color:var(--danger)}
.scout-buys{display:grid;gap:8px}
.scout-buy{display:grid;grid-template-columns:20px 72px 1fr 26px 44px;align-items:center;gap:8px;font-size:12.5px;color:var(--accent)}
.scout-buy b{color:var(--text)}.scout-buy>span:nth-of-type(1){color:var(--muted);text-align:right}
.scout-pistol-head{display:grid;gap:8px;margin-bottom:8px}
.scout-mini{display:flex;flex-wrap:wrap;gap:6px}
.scout-mini span{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:99px;background:var(--surface);color:var(--muted);font-size:11.5px}.scout-mini b{color:var(--text)}
.scout-pistol-players{display:grid;gap:4px;margin-bottom:8px}
.scout-pistol-players>div{display:flex;justify-content:space-between;gap:10px;padding:5px 10px;border-radius:var(--radius-sm);background:var(--surface);font-size:12px}.scout-pistol-players span{color:var(--muted)}
.scout-pistol-rounds{display:flex;flex-wrap:wrap;gap:6px}
.scout-pistol-rounds span{padding:3px 10px;border-radius:99px;font-size:11.5px;font-weight:700;background:var(--surface)}
.scout-pistol-rounds .win{color:var(--success)}.scout-pistol-rounds .loss{color:var(--danger)}
.scout-after-loss{display:grid;gap:6px;margin-bottom:8px}.scout-after-loss small{color:var(--muted)}
.scout-weapons{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.scout-weapons>div{display:grid;gap:3px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--surface);font-size:12px}
.scout-weapons span{color:var(--muted);display:flex;align-items:center;gap:6px}
.scout-areas{display:grid;gap:6px}
.scout-area{display:grid;gap:2px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--surface);border-left:3px solid var(--c,var(--border-strong));font-size:12.5px}
.scout-area.A{--c:#ffb347}.scout-area.B{--c:#4fc3ff}.scout-area.mid{--c:#c9ced6}.scout-area.ctspawn{--c:#7ab8ff}.scout-area.tspawn{--c:#ffd27a}
.scout-area span{color:var(--muted);font-size:11.5px;line-height:1.5}
.scout-old{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
@media (max-width:900px){.scout-match{grid-template-columns:1fr auto}.scout-match>span,.scout-match>small{display:none}.scout-spot-row{grid-template-columns:28px 1fr}.scout-spot-bars,.scout-spot-row .scout-role{grid-column:1/-1}.scout-shape-row{grid-template-columns:100px 1fr 40px auto}.scout-shape-row small{display:none}.scout-tactic-row{grid-template-columns:24px 1fr auto}.scout-tactic-row .sys-bar,.scout-tactic-row>b,.scout-tactic-row .scout-win{display:none}.scout-duel{grid-template-columns:40px 1fr 18px 1fr}.scout-duel small,.scout-duel em{display:none}.scout-lurk{grid-template-columns:24px 1fr auto}.scout-lurk .scout-meter{display:none}.scout-kpis.two{grid-template-columns:1fr}}

/* kpi cards: keep the icon | text | ring row even where the older .scout-kpis>div rule applies */
.scout-kpis>.scout-kpi{display:flex;gap:12px;padding:12px 14px}
.scout-kpis>.scout-kpi>div{display:grid;gap:1px;padding:0;border:0;background:none}
.scout-kpis>.scout-kpi small{text-transform:none;letter-spacing:0;font-size:11px}
.scout-kpis>.scout-kpi b{font:600 22px/1.15 'Space Grotesk',sans-serif}
/* RIFLR-AI 2.0 hub: top tabs, shared filter bar, Maçlar, Takım */
.scout-hub{display:grid;gap:12px;max-width:1360px}
.scout-pages{display:flex;gap:4px;padding:4px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);overflow-x:auto}
.scout-pages button{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 16px;border:0;border-radius:var(--radius-sm);background:none;color:var(--muted);font-weight:700;font-size:13px;white-space:nowrap}
.scout-pages button.active{color:var(--accent-ink);background:var(--accent)}
.scout-pages button:not(.active):hover{color:var(--text);background:var(--hover)}
.scout-subtabs{display:flex;gap:2px;flex-wrap:wrap;border-bottom:1px solid var(--border)}
.scout-subtabs button{height:34px;padding:0 14px;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);font-weight:600;font-size:13px}
.scout-subtabs button.active{color:var(--text);border-bottom-color:var(--accent)}
.scout-context{display:grid;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);position:sticky;top:0;z-index:12}
.scout-context-row{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end}
.scout-context-end{margin-left:auto;display:flex;gap:10px;align-items:stretch}
.scout-field{display:grid;gap:4px}
.scout-field>span{font-size:10.5px;color:var(--muted);font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.scout-field select{height:30px;min-width:130px;font-size:12.5px}
.scout-profile-pick{display:flex;align-items:center;gap:4px}
.scout-link{border:0;background:none;color:var(--accent);font-size:12px;font-weight:600;text-decoration:underline;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.scout-pin{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700}
.scout-sample,.scout-compare{position:relative;display:grid;gap:3px;align-content:center;padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-size:12px}
.scout-sample b{font:700 15px 'Space Grotesk',sans-serif}
.scout-compare small{color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em}
.scout-compare b{display:inline-flex;align-items:center;gap:6px;font-size:12.5px}
.scout-form{display:inline-flex;gap:3px}
.scout-form i{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;font-style:normal;font-size:10px;font-weight:800}
.scout-form i.w{background:var(--success-soft);color:var(--success)}.scout-form i.l{background:var(--danger-soft);color:var(--danger)}
.scout-popover{position:absolute;right:0;top:100%;margin-top:6px;z-index:30;width:min(420px,90vw);max-height:340px;overflow:auto;padding:8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--panel-raised);box-shadow:var(--shadow-pop);display:grid;gap:4px}
.scout-pop-row{display:grid;grid-template-columns:86px 70px 1fr auto;gap:8px;align-items:center;padding:6px 8px;border:0;border-radius:var(--radius-sm);background:var(--surface);text-align:left;font-size:12px;color:var(--text);border-left:3px solid var(--border-strong)}
.scout-pop-row.win{border-left-color:var(--success)}.scout-pop-row.loss{border-left-color:var(--danger)}
.scout-pop-row:hover{background:var(--hover)}
.scout-body.loading{opacity:.55;transition:opacity .15s}
.scout-skeleton{display:grid;gap:10px}.scout-skeleton i{display:block;height:84px;border-radius:var(--radius);background:linear-gradient(90deg,var(--surface),var(--surface-2),var(--surface));background-size:200% 100%;animation:scout-shimmer 1.2s linear infinite}
@keyframes scout-shimmer{to{background-position:-200% 0}}
.scout-empty{display:grid;justify-items:center;gap:6px;text-align:center;padding:36px 20px;border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--muted)}
.scout-empty svg{color:var(--accent)}.scout-empty b{color:var(--text);font-size:15px}.scout-empty p{max-width:460px;font-size:12.5px;line-height:1.6}
.scout-note{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface);font-size:12.5px;line-height:1.5;color:var(--muted)}
.scout-note.info{border-left:3px solid #4fc3ff}.scout-note.warn{border-left:3px solid var(--orange);color:var(--orange);background:var(--orange-soft)}
.scout-na{color:var(--faint)}
.scout-fig{display:inline-flex;align-items:baseline;gap:4px;font-size:13px}
.scout-fig b{font-weight:700;font-variant-numeric:tabular-nums}.scout-fig small{color:var(--muted);font-size:11px}
.scout-fig.ev{border:0;background:none;padding:2px 4px;border-radius:4px;color:inherit;cursor:pointer}
.scout-fig.ev:hover{background:var(--hover);outline:1px solid rgba(var(--accent-rgb),.4)}
.scout-dot{display:inline-block;width:7px;height:7px;border-radius:50%;align-self:center;background:var(--c,var(--faint))}
.scout-dot.high{--c:#66cf98}.scout-dot.mid{--c:#d7c57b}.scout-dot.low{--c:#d99b56}.scout-dot.weak{--c:#ef7078}
.scout-delta{font-style:normal;font-size:10px;margin-left:3px}.scout-delta.good{color:var(--success)}.scout-delta.bad{color:var(--danger)}
.scout-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.scout-stats-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.scout-stat{display:grid;grid-template-columns:1fr auto;gap:3px 8px;align-items:center;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface)}
.scout-stat small{grid-column:1/-1;color:var(--muted);font-size:11px}
.scout-stat b{font:600 18px 'Space Grotesk',sans-serif}
.scout-stat .scout-fig b{font-size:18px}
.scout-mapcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.scout-mapcard{display:grid;padding:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left;color:var(--text)}
.scout-mapcard.active{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.25)}
.scout-mapcard:hover{border-color:var(--border-strong)}
.scout-mapcard-img{height:74px;background:#0b0d10;overflow:hidden}.scout-mapcard-img img{width:100%;height:100%;object-fit:cover;opacity:.85}
.scout-mapcard-body{display:grid;gap:8px;padding:10px 12px}
.scout-mapcard-head{display:flex;align-items:center;justify-content:space-between;gap:6px}
.scout-mapcard dl{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0}
.scout-mapcard dt{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.scout-mapcard dd{margin:0;font-size:12.5px}
.scout-pcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.scout-pcard{display:grid;gap:8px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}
.scout-pcard header b{display:block;font:600 15px 'Space Grotesk',sans-serif}
.scout-pcard-score{display:flex;align-items:baseline;gap:8px}.scout-pcard-score b{font:700 28px 'Space Grotesk',sans-serif}.scout-pcard-score small{color:var(--muted);font-size:11px}
.scout-pcard dl{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:0}.scout-pcard dl div{padding:5px 8px;border-radius:var(--radius-sm);background:var(--panel)}
.scout-pcard dt{font-size:10px;color:var(--muted)}.scout-pcard dd{margin:0;font-weight:700;font-size:13px}
.scout-sidecard{display:grid;gap:10px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.scout-sidecard header{display:flex;align-items:center;gap:8px}
.scout-sidecard.T header{color:#ffb347}.scout-sidecard.CT header{color:#4fc3ff}
.scout-sidecard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.scout-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-sm);max-height:70vh}
.scout-grid{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums}
.scout-grid th{position:sticky;top:0;background:var(--surface);color:var(--muted);font-weight:700;font-size:11px;text-align:right;padding:8px 10px;white-space:nowrap;z-index:1}
.scout-grid th.left,.scout-grid td.left{text-align:left}
.scout-grid th button{border:0;background:none;color:inherit;font:inherit;cursor:pointer}
.scout-grid th.sorted,.scout-grid td.sorted{color:var(--accent)}
.scout-grid td{padding:7px 10px;text-align:right;border-top:1px solid var(--border);white-space:nowrap}
.scout-grid td.sorted{background:rgba(var(--accent-rgb),.06);font-weight:700}
.scout-grid tr.total td{background:var(--surface);font-weight:700}
.scout-grid .who{display:flex;align-items:center;gap:8px}.scout-grid .who b{font-weight:700}
.scout-grid .scout-role-line{margin:0}
.scout-raw{color:var(--faint)}
.scout-thumb{width:46px;height:28px;object-fit:cover;border-radius:4px}
.scout-grid .pos{color:var(--success)}.scout-grid .neg{color:var(--danger)}
.scout-ev-lines{display:grid;gap:8px}
.scout-ev-line{display:grid;grid-template-columns:22px 110px minmax(80px,1fr) auto;gap:10px;align-items:center;font-size:12.5px;color:var(--accent)}
.scout-ev-line span{color:var(--text)}
.scout-site-wins{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.scout-site-wins>div{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--surface);font-size:12.5px}.scout-site-wins small{color:var(--muted);margin-left:auto}
/* evidence drawer */
.scout-drawer{position:fixed;top:0;right:0;bottom:0;width:min(440px,100vw);z-index:60;display:flex;flex-direction:column;gap:8px;padding:14px;border-left:1px solid var(--border-strong);background:var(--panel-raised);box-shadow:var(--shadow-pop);overflow:auto}
.scout-drawer header{display:flex;align-items:center;gap:8px}.scout-drawer header b{flex:1;font:600 15px 'Space Grotesk',sans-serif}.scout-drawer header small{color:var(--muted)}
.scout-ev-list{display:grid;gap:5px}
.scout-ev-row{display:grid;grid-template-columns:36px 18px 70px 1fr auto;gap:8px;align-items:center;padding:7px 10px;border:0;border-radius:var(--radius-sm);background:var(--surface);text-align:left;color:var(--text);font-size:12.5px;border-left:3px solid var(--border-strong)}
.scout-ev-row.win{border-left-color:var(--success)}.scout-ev-row.loss{border-left-color:var(--danger)}
.scout-ev-row:hover{background:var(--hover)}
.scout-ev-row em{font-style:normal;font-size:11.5px}.scout-ev-row.win em{color:var(--success)}.scout-ev-row.loss em{color:var(--danger)}
.scout-ev-row small{grid-column:2/-1;color:var(--muted);font-size:11px}
.scout-ev-n{font-weight:800;color:var(--accent)}
/* Maçlar */
.scout-matches-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.scout-matches-head .scout-subtabs{flex:1;border-bottom:0}
.scout-addpanel{display:grid;gap:10px}
.scout-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.scout-toolbar select,.scout-toolbar input{height:30px;font-size:12.5px;min-width:150px}
.scout-day{margin:10px 0 4px;font:700 12px 'Space Grotesk',sans-serif;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);padding-bottom:4px}
.scout-matchrow{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);margin-bottom:6px;overflow:hidden}
.scout-matchrow.failed{border-color:rgba(239,112,120,.4)}
.smr-main{display:grid;grid-template-columns:minmax(150px,200px) minmax(220px,1.4fr) minmax(120px,1fr) 130px auto;gap:12px;align-items:center;padding:8px 12px}
.smr-map{display:flex;align-items:center;gap:10px}.smr-map img{width:54px;height:36px;object-fit:cover;border-radius:6px}.smr-map>span{display:grid;place-items:center;width:54px;height:36px;border-radius:6px;background:var(--surface);color:var(--faint)}
.smr-map b{display:block;font-size:13px}.smr-map small{color:var(--muted);font-size:11px}
.smr-teams{display:flex;align-items:center;gap:10px;font-size:13px}
.smr-team{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.smr-team.right{justify-content:flex-end;text-align:right}
.smr-team b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.smr-team i{font:700 17px 'Space Grotesk',sans-serif;font-style:normal;color:var(--muted)}
.smr-team.win i{color:var(--success)}.smr-team.win b{color:var(--text)}.smr-vs{color:var(--faint)}
.smr-tags{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.scout-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:99px;background:var(--surface-2);color:var(--muted);font-size:11px;border:0}
.scout-tag button{border:0;background:none;color:inherit;padding:0;font-size:12px;cursor:pointer}
.scout-tag.add{background:none;border:1px dashed var(--border-strong);cursor:pointer}.scout-tag.add:hover{color:var(--accent);border-color:var(--accent)}
.scout-status{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:99px;font-size:11.5px;font-weight:700;background:var(--surface-2);color:var(--muted)}
.scout-status::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
.scout-status.ok{color:var(--success);background:var(--success-soft)}.scout-status.warn{color:var(--orange);background:var(--orange-soft)}.scout-status.bad{color:var(--danger);background:var(--danger-soft)}.scout-status.run{color:#4fc3ff;background:rgba(79,195,255,.12)}
.smr-status{display:grid;gap:3px;justify-items:start}.smr-status small{color:var(--danger);font-size:10.5px}
.smr-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end}
.scout-rowmenu{display:grid;gap:6px;padding:8px 12px 10px;border-top:1px solid var(--border);background:var(--surface)}
.scout-rowmenu>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px}.scout-rowmenu b{min-width:140px}
.scout-collections{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.scout-collection{display:grid;gap:3px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);text-align:left;color:var(--text);font-size:20px}
.scout-collection b{font-size:14px}.scout-collection small{color:var(--muted);font-size:11.5px}
.scout-faction.static{cursor:default}
@media (max-width:1000px){.smr-main{grid-template-columns:1fr 1fr}.smr-teams{grid-column:1/-1}.smr-actions{justify-content:flex-start}.scout-context{position:static}.scout-context-end{margin-left:0;flex-wrap:wrap}.scout-ev-line{grid-template-columns:22px 80px 1fr auto}}
/* hub form controls: the global select/input width:100% must not stretch toolbars */
.scout-toolbar select,.scout-toolbar input,.scout-context select{width:auto}
.scout-search{margin:0}
.scout-ev-line .sys-bar{min-width:60px}
.moved-notice{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg);color:var(--text)}
.moved-card{max-width:460px;padding:32px;border:1px solid var(--border-strong);border-radius:16px;background:var(--panel-raised);text-align:center}
.moved-card h1{margin:0 0 12px;font-size:22px}
.moved-card p{margin:0 0 12px;line-height:1.5}
.moved-hint{color:var(--muted);font-size:13px}
.moved-link{display:inline-block;margin:8px 0 16px;padding:10px 20px;border-radius:10px;background:var(--orange);color:#14100a;font-weight:700;text-decoration:none}

.scout-playerbar{display:flex;gap:12px;margin:12px 0}
.scout-player-head{display:flex;gap:16px;align-items:center}
.scout-avatar{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--border-strong);font:700 22px/1 inherit;color:var(--orange)}
.scout-big{font-size:26px;line-height:1.1}
.scout-spark{display:block;margin-top:6px;color:var(--orange)}
.scout-radar-wrap{display:grid;justify-items:center;gap:8px}
.scout-radar{width:100%;max-width:420px;height:auto}
.scout-radar .rd-ring{fill:none;stroke:var(--border)}
.scout-radar .rd-spoke{stroke:var(--border)}
.scout-radar .rd-area{fill:var(--orange-soft);stroke:var(--orange);stroke-width:2}
.scout-radar .rd-ref{fill:none;stroke:var(--muted);stroke-width:1.5;stroke-dasharray:4 3}
.scout-radar .rd-dot{fill:var(--orange)}
.scout-radar .rd-label{fill:var(--muted);font-size:10.5px}
.scout-radar-legend{display:flex;gap:16px;color:var(--muted);font-size:12px}
.rd-key{display:inline-block;width:14px;height:0;border-top:2px solid var(--orange);vertical-align:middle;margin-right:4px}
.rd-key.ref{border-top:2px dashed var(--muted)}

.scout-vbars{display:flex;gap:10px;align-items:flex-end;min-height:150px}
.scout-vbar{flex:1;display:grid;justify-items:center;gap:4px;min-width:0}
.scout-vbar .vb-track{width:100%;max-width:44px;height:90px;display:flex;align-items:flex-end;background:var(--hover);border-radius:6px}
.scout-vbar .vb-track i{display:block;width:100%;background:var(--orange);border-radius:6px}
.scout-vbar small{color:var(--muted);font-size:12px;text-align:center}
.scout-vbar em{color:var(--faint);font-style:normal;font-size:11px}

.scout-replay{display:grid;grid-template-columns:240px minmax(0,1fr) 260px;gap:14px;align-items:start}
.scout-replay.loading{opacity:.6}
.sr-left,.sr-right{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:12px;display:grid;gap:8px}
.sr-left h4,.sr-team h4{margin:0;font-size:14px}
.sr-events{display:grid;gap:4px;max-height:560px;overflow:auto}
.sr-event{display:flex;gap:8px;text-align:left;padding:5px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);cursor:pointer;font-size:12px}
.sr-event b{color:var(--orange);min-width:34px}
.sr-event.kill{border-left:3px solid var(--danger)}
.sr-event.bomb{border-left:3px solid var(--orange)}
.sr-event:hover{background:var(--surface-2)}
.sr-main{display:grid;gap:10px;min-width:0}
.sr-viewport{position:relative;width:100%;aspect-ratio:1;overflow:hidden;border:1px solid var(--border-strong);border-radius:12px;background:#000}
.sr-stage{position:absolute;inset:0;transform-origin:0 0}
.sr-stage img{position:absolute;inset:0;width:100%;height:100%;user-select:none;-webkit-user-drag:none}
.sr-stage canvas{position:absolute;inset:0;width:100%;height:100%;cursor:grab}
.sr-stage canvas.draw{cursor:crosshair}
.sr-tools{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sr-chip{display:inline-flex;gap:4px;align-items:center;font-size:12px;color:var(--muted);padding:2px 6px}
.sr-rounds{display:flex;gap:6px;align-items:center}
.sr-strip{display:flex;gap:4px;flex-wrap:wrap;flex:1}
.sr-round{min-width:30px;padding:4px 6px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;font-size:12px}
.sr-round.ct{border-bottom:3px solid #4fc3ff}
.sr-round.t{border-bottom:3px solid #ffb347}
.sr-round.active{background:var(--surface-2);border-color:var(--orange);font-weight:700}
.sr-bar{display:flex;gap:10px;align-items:center}
.sr-bar input[type=range]{flex:1}
.sr-clock{min-width:90px;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}
.sr-team{display:grid;gap:4px}
.sr-team.ct h4{color:#4fc3ff}
.sr-team.t h4{color:#ffb347}
.sr-player{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;align-items:center;font-size:13px}
.sr-player small{grid-column:2;color:var(--muted)}
.sr-player.dead b{text-decoration:line-through;opacity:.5}
@media (max-width:1100px){.scout-replay{grid-template-columns:minmax(0,1fr)}.sr-events{max-height:220px}}

.scout-pattern{display:grid;grid-template-columns:250px minmax(0,1fr) 320px;gap:14px;align-items:start}
.scout-pattern.loading{opacity:.7}
.pt-controls{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:12px;display:grid;gap:10px}
.pt-controls h4{margin:0;font-size:14px}
.pt-controls fieldset{border:0;padding:0;margin:0;display:grid;gap:4px}
.pt-controls legend{color:var(--muted);font-size:12px;margin-bottom:4px;padding:0}
.pt-time{display:flex;gap:8px}
.pt-time label{display:grid;gap:2px;font-size:12px;color:var(--muted)}
.pt-time input{width:72px}
.pt-results{display:grid;gap:12px;min-width:0}
.pt-hist{min-height:120px}
.pt-list{display:grid;gap:10px;max-height:520px;overflow:auto}
.pt-group{display:grid;gap:4px}
.pt-group-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px}
@media (max-width:1200px){.scout-pattern{grid-template-columns:minmax(0,1fr)}}

.scout-prep-cta{display:flex;gap:10px;align-items:center;margin:8px 0;color:var(--muted);font-size:13px}
@media print{
  .sidebar,.topbar,.app-footer,.toast-stack,.scout-tabs,.scout-pages,[data-scout-back],[data-scout-print],.scout-old,.scout-toolbar{display:none!important}
  body,.app-shell,.page{background:#fff!important;color:#000!important}
  .app-shell{display:block!important}
  .scout-report .card,.scout-report .scout-section{box-shadow:none!important;border:1px solid #bbb!important;break-inside:avoid;background:#fff!important;color:#000!important}
  .scout-report .scout-footnote[open] div,.scout-report .scout-info div{display:block}
}

.scout-pager{display:flex;gap:12px;align-items:center;justify-content:center;margin-top:10px;color:var(--muted);font-size:13px}
.scout-grid tr.pinned td{background:var(--surface-2)}
.veto-steps{display:grid;gap:8px}
.veto-step{display:grid;grid-template-columns:220px 200px 1fr;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.veto-who{display:flex;gap:8px;align-items:center}
.veto-who small{color:var(--faint)}
.veto-action{padding:1px 8px;border-radius:999px;font-size:11px;border:1px solid var(--border-strong)}
.veto-action.ban{color:var(--danger)}
.veto-action.pick{color:var(--success)}
.veto-action.decider{color:var(--orange)}
.veto-chips{display:flex;gap:8px;flex-wrap:wrap}
.veto-chip{padding:2px 8px;border-radius:8px;font-size:12px;background:var(--hover);color:var(--muted)}
.veto-chip.model{color:var(--orange)}
.veto-chip.hist{color:var(--success)}
.veto-saved{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 0;border-top:1px solid var(--border);font-size:13px}
@media (max-width:900px){.veto-step{grid-template-columns:minmax(0,1fr)}}

.home{max-width:920px;margin:0 auto;display:grid;gap:18px}
.home-hero h2{margin:0;font-size:28px}
.home-preview{margin:6px 0 0;color:var(--faint);font-size:12px}
.home-drop{position:relative;display:grid;justify-items:center;gap:6px;padding:46px 20px;border:2px dashed var(--border-strong);border-radius:18px;background:var(--panel);text-align:center;cursor:pointer;transition:border-color .15s,background .15s}
.home-drop:hover,.home-drop.drag{border-color:var(--orange);background:var(--orange-soft)}
.home-drop.disabled{opacity:.55;cursor:not-allowed}
.home-drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.home-drop-icon{color:var(--orange)}
.home-drop b{font-size:18px}
.home-drop>span:not(.home-drop-icon){color:var(--muted);font-size:13px}
.home-quota{margin-top:8px;padding:2px 12px;border-radius:999px;background:var(--hover);color:var(--muted)}
.home-list-head{display:flex;align-items:center;gap:10px}
.home-list-head h3{margin:0;font-size:16px}
.home-list-head span{background:var(--surface-2);border-radius:999px;padding:1px 10px;font-size:12px}
.home-list{display:grid;gap:12px}
.home-card{display:grid;gap:12px;padding:14px;background:var(--panel);border:1px solid var(--border);border-radius:14px}
.home-card.error{border-color:var(--danger)}
.home-card-top{display:flex;gap:14px;align-items:center}
.home-thumb{flex:none;width:56px;height:56px;display:grid;place-items:center;border-radius:12px;background:var(--surface-2);overflow:hidden}
.home-thumb img{width:100%;height:100%;object-fit:cover}
.home-card-info{flex:1;min-width:0;display:grid;gap:3px}
.home-card-info b{font-size:16px}
.home-card-info small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.home-score{display:flex;gap:8px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:13px}
.home-score strong{color:var(--text);font-size:16px}
.home-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.home-act-btn,.home-archive{display:grid;gap:2px;justify-items:center;height:auto;padding:10px 12px}
.home-act-btn em,.home-archive em{font-style:normal;font-size:12px;opacity:.85}
.home-act-btn s{opacity:.6}
.home-archive.on{border-color:var(--orange);background:var(--orange-soft);color:var(--text)}
.home-act{display:grid;gap:6px;align-content:center;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:13px}
.home-act.done{border-color:var(--success);color:var(--success)}
.home-act.done small{color:var(--muted)}
.home-bar{height:6px;border-radius:999px;background:var(--hover);overflow:hidden}
.home-bar i{display:block;height:100%;background:var(--orange);transition:width .2s linear}
.home-notice{display:flex;gap:8px;align-items:center;padding:9px 12px;border-radius:10px;background:var(--orange-soft);font-size:13px}
@media (max-width:760px){.home-actions{grid-template-columns:minmax(0,1fr)}}

/* Açılış sayfası: 6 modül kartı */
.public-features{grid-template-columns:repeat(3,minmax(0,1fr))}
.public-feature{transition:border-color .15s,transform .15s}
.public-feature:hover{border-color:var(--border-strong);transform:translateY(-2px)}
.public-feature p{font-size:13px}
@media (max-width:1100px){.public-features{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.public-features{grid-template-columns:minmax(0,1fr)}}

/* Sol menü: geri bildirim düğmesi ve admin rozeti */
.feedback-nav{width:100%;margin-bottom:6px}
.nav-count{background:var(--danger);color:#fff;border-color:transparent;min-width:20px;text-align:center}
.nav-count[hidden]{display:none}

/* Geri bildirim */
.feedback-modal{max-width:520px}
.feedback-cats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:4px 0 12px}
.feedback-cat{display:grid;gap:2px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;text-align:left}
.feedback-cat input{position:absolute;opacity:0;pointer-events:none}
.feedback-cat small{color:var(--muted);font-size:11.5px}
.feedback-cat.on{border-color:var(--orange);background:var(--orange-soft)}
.feedback-cat:focus-within{outline:2px solid var(--orange);outline-offset:1px}
.feedback-modal textarea{width:100%;resize:vertical;min-height:120px}
.feedback-meta{margin:6px 0 0;color:var(--faint);font-size:12px}
.feedback-head{display:flex;gap:16px;align-items:end;justify-content:space-between;flex-wrap:wrap;margin-bottom:16px}
.feedback-head h2{margin:0}
.feedback-filters{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.feedback-chip{padding:5px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);cursor:pointer;font-size:13px}
.feedback-chip span{margin-left:4px;color:var(--faint)}
.feedback-chip.active{border-color:var(--orange);color:var(--text);background:var(--orange-soft)}
.feedback-list{display:grid;gap:10px}
.feedback-item{display:grid;gap:8px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}
.feedback-item.new{border-left:3px solid var(--orange)}
.feedback-item.resolved{opacity:.7}
.feedback-item header{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.feedback-item header time{margin-left:auto;color:var(--faint);font-size:12px}
.feedback-item small{color:var(--muted)}
.feedback-tag{padding:1px 9px;border-radius:999px;font-size:11.5px;font-weight:700;background:var(--hover)}
.feedback-tag.bug{color:var(--danger)}
.feedback-tag.idea{color:var(--success)}
.feedback-text{margin:0;white-space:pre-wrap;word-break:break-word;line-height:1.55}
.feedback-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.feedback-actions input[type=text]{flex:1;min-width:160px}

/* Açılış sayfası: hafif hareket (yalnızca CSS; "hareketi azalt" tercihinde kapanır) */
@property --ring{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes riflr-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes riflr-pop{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
@keyframes riflr-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes riflr-ring{to{--ring:360deg}}
@keyframes riflr-shimmer{0%,100%{background-position:100% 0}50%{background-position:0 0}}
@keyframes riflr-glow{0%,100%{box-shadow:0 0 0 0 rgba(var(--accent-rgb),0)}50%{box-shadow:0 0 22px 2px rgba(var(--accent-rgb),.38)}}
@keyframes riflr-breathe{0%,100%{opacity:.55;transform:scale(.96)}50%{opacity:1;transform:scale(1.06)}}

.public-nav{animation:riflr-rise .6s ease-out both}
.public-copy>*{animation:riflr-rise .7s ease-out both}
.public-copy>:nth-child(1){animation-delay:.08s}
.public-copy>:nth-child(2){animation-delay:.18s}
.public-copy>:nth-child(3){animation-delay:.3s}
.public-copy>:nth-child(4){animation-delay:.42s}
.public-copy>:nth-child(5){animation-delay:.54s}
.public-logo-stage{position:relative;animation:riflr-pop .9s ease-out .2s both}
.public-logo-stage::before{content:"";position:absolute;inset:12%;border-radius:50%;background:radial-gradient(circle,rgba(var(--accent-rgb),.22),transparent 68%);animation:riflr-breathe 5s ease-in-out infinite;pointer-events:none}
.public-logo-stage::after{content:"";position:absolute;inset:0;border-radius:16px;padding:1.5px;background:conic-gradient(from var(--ring),transparent 0 72%,rgb(var(--accent-rgb)) 90%,transparent 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:riflr-ring 8s linear infinite;pointer-events:none}
.public-logo-stage img{position:relative;animation:riflr-float 6s ease-in-out infinite}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .public-copy h1 span{background:linear-gradient(100deg,var(--muted) 15%,rgb(var(--accent-rgb)) 50%,var(--muted) 85%);background-size:230% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:riflr-shimmer 6s ease-in-out infinite}
}
.public-cta .btn-primary{animation:riflr-glow 3.2s ease-in-out 1.2s infinite}
.public-cta .btn{transition:transform .15s}
.public-cta .btn:hover{transform:translateY(-2px)}
.public-feature{animation:riflr-rise .7s ease-out both}
.public-feature:nth-child(1){animation-delay:.55s}
.public-feature:nth-child(2){animation-delay:.63s}
.public-feature:nth-child(3){animation-delay:.71s}
.public-feature:nth-child(4){animation-delay:.79s}
.public-feature:nth-child(5){animation-delay:.87s}
.public-feature:nth-child(6){animation-delay:.95s}
.public-feature .ui-icon{transition:transform .2s}
.public-feature:hover .ui-icon{transform:scale(1.18) rotate(-4deg)}
@media (prefers-reduced-motion:reduce){
  .public-nav,.public-copy>*,.public-logo-stage,.public-logo-stage::before,.public-logo-stage::after,.public-logo-stage img,.public-copy h1 span,.public-cta .btn-primary,.public-feature{animation:none!important}
  .public-feature:hover,.public-cta .btn:hover{transform:none}
}

/* Açılış sayfası: yüzen kartlar, harita şeridi, radar önizlemesi, adımlar, kapanış bandı */
@keyframes riflr-ping{70%{box-shadow:0 0 0 8px rgba(102,207,152,0)}100%{box-shadow:0 0 0 0 rgba(102,207,152,0)}}
@keyframes riflr-ping-red{0%{box-shadow:0 0 0 0 rgba(255,59,59,.7)}80%,100%{box-shadow:0 0 0 18px rgba(255,59,59,0)}}
@keyframes riflr-marquee{to{transform:translateX(-50%)}}
@keyframes riflr-flow{to{background-position:-200% 0}}

.public-logo-wrap{position:relative}
.hero-chip{position:absolute;z-index:2;display:flex;align-items:center;gap:8px;padding:8px 13px;border:1px solid var(--border-strong);border-radius:12px;background:color-mix(in srgb,var(--panel) 84%,transparent);backdrop-filter:blur(8px);box-shadow:0 14px 34px rgba(0,0,0,.35);font-size:12.5px;font-weight:600;white-space:nowrap}
.hero-chip i{width:8px;height:8px;border-radius:50%;background:var(--success);animation:riflr-ping 2s ease-out infinite}
.hero-chip.a{top:8%;left:-7%;animation:riflr-float 6s ease-in-out infinite}
.hero-chip.b{bottom:14%;right:-6%;animation:riflr-float 7s ease-in-out -2s infinite}
.hero-chip.c{bottom:-3%;left:9%;animation:riflr-float 8s ease-in-out -4s infinite}
@media (max-width:900px){.hero-chip.a{left:2%}.hero-chip.b{right:2%}}

.map-marquee{width:min(1180px,calc(100% - 48px));margin:0 auto 44px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.map-track{display:flex;gap:12px;width:max-content;animation:riflr-marquee 44s linear infinite}
.map-marquee:hover .map-track{animation-play-state:paused}
.map-chip{display:flex;align-items:center;gap:10px;padding:6px 18px 6px 6px;border:1px solid var(--border);border-radius:999px;background:var(--panel)}
.map-chip img{width:38px;height:38px;border-radius:50%;object-fit:cover}
.map-chip b{font-size:13px;color:var(--muted)}

.spot{width:min(1180px,calc(100% - 48px));margin:8px auto 64px;padding:34px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:44px;align-items:center;border:1px solid var(--border);border-radius:22px;background:linear-gradient(135deg,rgba(var(--accent-rgb),.08),transparent 55%),var(--panel)}
.spot h2{margin:8px 0 12px;font-size:clamp(28px,3.4vw,44px);line-height:1.06;letter-spacing:-.035em}
.spot-copy>p:not(.eyebrow){color:var(--muted);line-height:1.65}
.spot-list{list-style:none;margin:20px 0 24px;padding:0;display:grid;gap:12px}
.spot-list li{display:flex;gap:12px;align-items:flex-start;color:var(--muted);line-height:1.5}
.spot-list li::before{content:"✓";flex:none;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:rgba(var(--accent-rgb),.16);color:var(--accent);font-size:12px;font-weight:800}
.spot-list b{color:var(--text)}
.radar-mock{position:relative;aspect-ratio:1;overflow:hidden;border:1px solid var(--border-strong);border-radius:18px;background:#0b0d0f;box-shadow:0 26px 64px rgba(0,0,0,.42)}
.radar-mock img{width:100%;height:100%;object-fit:cover;opacity:.92}
.rd{position:absolute;width:13px;height:13px;margin:-6px 0 0 -6px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px rgba(0,0,0,.4),0 0 16px currentColor}
.rd.ct{color:#4fc3ff}
.rd.t{color:#ffb347}

.steps{width:min(1180px,calc(100% - 48px));margin:0 auto 64px}
.steps>h2{margin:0 0 22px;text-align:center;font-size:clamp(26px,3vw,38px);letter-spacing:-.03em}
.steps-grid{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.steps-grid::before{content:"";position:absolute;top:38px;left:18%;right:18%;height:2px;background:linear-gradient(90deg,transparent,rgba(var(--accent-rgb),.6),transparent);background-size:200% 100%;animation:riflr-flow 3.5s linear infinite}
.step{position:relative;padding:22px;border:1px solid var(--border);border-radius:16px;background:var(--panel)}
.step-n{width:38px;height:38px;display:grid;place-items:center;margin-bottom:14px;border-radius:50%;background:var(--panel);border:1px solid rgba(var(--accent-rgb),.5);color:var(--accent);font-weight:800}
.step h3{margin:0 0 6px;font-size:16px}
.step p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.6}

.cta-band{width:min(1180px,calc(100% - 48px));margin:0 auto 64px;padding:46px 24px;text-align:center;border:1px solid var(--border-strong);border-radius:22px;background:radial-gradient(circle at 50% 0,rgba(var(--accent-rgb),.2),transparent 62%),var(--panel)}
.cta-band h2{margin:0 0 8px;font-size:clamp(26px,3vw,38px);letter-spacing:-.03em}
.cta-band p{margin:0 0 20px;color:var(--muted)}
.cta-band .public-cta{justify-content:center;margin-top:0}

@media (max-width:900px){.spot{grid-template-columns:minmax(0,1fr);padding:22px;gap:24px}.steps-grid{grid-template-columns:minmax(0,1fr)}.steps-grid::before{display:none}}

/* kaydırınca beliren bölümler (script yoksa ya da hareket azaltılmışsa her şey zaten görünür) */
.reveal-ready .reveal{opacity:0;transform:translateY(30px);transition:opacity .85s ease,transform .85s ease}
.reveal-ready .reveal.in{opacity:1;transform:none}
.reveal-ready .reveal-stage .public-feature{opacity:0;transform:translateY(20px);animation:none;transition:opacity .7s ease,transform .7s ease}
.reveal-ready .reveal-stage.in .public-feature{opacity:1;transform:none}
.reveal-ready .reveal-stage.in .public-feature:nth-child(1){transition-delay:.02s}
.reveal-ready .reveal-stage.in .public-feature:nth-child(2){transition-delay:.1s}
.reveal-ready .reveal-stage.in .public-feature:nth-child(3){transition-delay:.18s}
.reveal-ready .reveal-stage.in .public-feature:nth-child(4){transition-delay:.26s}
.reveal-ready .reveal-stage.in .public-feature:nth-child(5){transition-delay:.34s}
.reveal-ready .reveal-stage.in .public-feature:nth-child(6){transition-delay:.42s}

/* Giriş / kayıt ekranı: açılış sayfasıyla aynı dil */
@keyframes riflr-drift{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(46px,-34px) scale(1.12)}66%{transform:translate(-30px,28px) scale(.94)}}
.login-art{overflow:hidden}
.login-art::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:46px 46px;opacity:.3;-webkit-mask-image:radial-gradient(circle at 28% 38%,#000,transparent 72%);mask-image:radial-gradient(circle at 28% 38%,#000,transparent 72%);pointer-events:none}
.login-art>*{position:relative;z-index:1}
.login-art>.login-orbs{position:absolute;inset:0;z-index:0;pointer-events:none}
.login-orbs i{position:absolute;border-radius:50%;background:rgba(var(--accent-rgb),.3);filter:blur(70px);animation:riflr-drift 15s ease-in-out infinite}
.login-orbs i:nth-child(1){width:300px;height:300px;left:-60px;top:12%}
.login-orbs i:nth-child(2){width:220px;height:220px;right:6%;top:46%;animation-duration:19s;animation-delay:-6s;opacity:.7}
.login-orbs i:nth-child(3){width:180px;height:180px;left:34%;bottom:-40px;animation-duration:17s;animation-delay:-11s;opacity:.55}
.login-chips{margin-top:24px;display:flex;flex-wrap:wrap;gap:8px}
.login-chips span{padding:6px 13px;border:1px solid var(--border-strong);border-radius:999px;background:color-mix(in srgb,var(--surface) 80%,transparent);color:var(--muted);font-size:12.5px;font-weight:600;backdrop-filter:blur(6px)}
.login-art .brand,.login-hero>*,.login-meta{animation:riflr-rise .7s ease-out both}
.login-hero>:nth-child(1){animation-delay:.08s}
.login-hero>:nth-child(2){animation-delay:.18s}
.login-hero>:nth-child(3){animation-delay:.3s}
.login-hero>:nth-child(4){animation-delay:.42s}
.login-meta{animation-delay:.55s}
.login-form{animation:riflr-rise .7s ease-out .15s both}
.login-form input:focus,.login-form select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.22)}
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .login-hero h1 span{background:linear-gradient(100deg,var(--muted) 15%,rgb(var(--accent-rgb)) 50%,var(--muted) 85%);background-size:230% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:riflr-shimmer 6s ease-in-out infinite}
}
@media (max-width:900px){.login-art{padding:28px 24px}.login-chips{display:none}}
/* hero photo + animated stat board */
.public-logo-stage.hero-photo{aspect-ratio:4/3;display:block;max-width:none;border-radius:16px;box-shadow:0 30px 70px rgba(0,0,0,.5),0 0 0 1px rgba(var(--accent-rgb),.2)}
.hero-photo img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;filter:none;animation:riflr-kenburns 18s ease-in-out infinite alternate}
.hero-photo::before{inset:0;border-radius:0;z-index:1;background:linear-gradient(180deg,transparent 45%,rgba(8,10,12,.65)),radial-gradient(circle at 80% 20%,rgba(var(--accent-rgb),.18),transparent 55%);animation:none}
.hero-photo::after{z-index:3}
.hp-scan{position:absolute;left:0;right:0;top:0;height:22%;z-index:2;background:linear-gradient(180deg,transparent,rgba(var(--accent-rgb),.22),transparent);animation:riflr-scan 5s linear infinite;pointer-events:none}
.hp-smoke{position:absolute;z-index:2;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.28),transparent 68%);filter:blur(14px);pointer-events:none}
.hp-smoke.s1{width:34%;height:42%;left:42%;top:34%;animation:riflr-smoke 9s ease-in-out infinite}
.hp-smoke.s2{width:24%;height:30%;left:60%;top:48%;animation:riflr-smoke 11s ease-in-out -4s infinite}
.hp-blip{position:absolute;z-index:3;width:12px;height:12px;border-radius:50%;background:rgb(var(--accent-rgb));box-shadow:0 0 0 0 rgba(var(--accent-rgb),.6);animation:riflr-blip 2.4s ease-out infinite;pointer-events:none}
.hp-blip.b1{left:62%;top:83%}
.hp-blip.b2{left:84%;top:70%;animation-delay:-1.2s}
.hp-live{position:absolute;z-index:4;left:14px;top:14px;display:flex;align-items:center;gap:7px;padding:5px 10px;border-radius:8px;background:rgba(8,10,12,.7);backdrop-filter:blur(6px);color:#fff;font-size:11px;font-weight:800;letter-spacing:.08em}
.hp-live i{width:7px;height:7px;border-radius:50%;background:#ff4d4d;animation:riflr-ping 1.6s ease-out infinite}
@keyframes riflr-kenburns{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.12) translate(-2.5%,-1.5%)}}
@keyframes riflr-scan{from{transform:translateY(-100%)}to{transform:translateY(560%)}}
@keyframes riflr-smoke{0%,100%{opacity:.35;transform:translate(0,0) scale(1)}50%{opacity:.7;transform:translate(-6%,-8%) scale(1.18)}}
@keyframes riflr-blip{0%{box-shadow:0 0 0 0 rgba(var(--accent-rgb),.65)}100%{box-shadow:0 0 0 22px rgba(var(--accent-rgb),0)}}
.stat-board{width:min(1180px,calc(100% - 48px));margin:8px auto 40px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.stat-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:12px;padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--panel);min-height:190px;transition:transform .25s,border-color .25s}
.stat-card:hover{transform:translateY(-4px);border-color:rgba(var(--accent-rgb),.55)}
.stat-card::before{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:linear-gradient(90deg,rgb(var(--accent-rgb)),transparent)}
.stat-k{margin:0;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.stat-card small{margin-top:auto;color:var(--muted);font-size:12px}
.stat-ring{--v:60;position:relative;width:104px;height:104px;margin:auto;border-radius:50%;display:grid;place-items:center;background:conic-gradient(rgb(var(--accent-rgb)) calc(var(--v)*1%),rgba(255,255,255,.08) 0)}
.stat-ring::before{content:"";position:absolute;inset:10px;border-radius:50%;background:var(--panel)}
.stat-ring b{position:relative;font-size:24px}
.stat-bars{flex:1;min-height:92px;display:flex;align-items:flex-end;gap:9px}
.stat-bars span{position:relative;flex:1;height:var(--h);border-radius:6px 6px 0 0;background:linear-gradient(180deg,rgb(var(--accent-rgb)),rgba(var(--accent-rgb),.25));transform-origin:bottom}
.stat-bars i{position:absolute;left:50%;bottom:-18px;transform:translateX(-50%);color:var(--muted);font-size:10px;font-style:normal}
.stat-bars{padding-bottom:18px}
.stat-line{flex:1;width:100%;min-height:80px}
.stat-line .area{fill:rgba(var(--accent-rgb),.14)}
.stat-line .ln{fill:none;stroke:rgb(var(--accent-rgb));stroke-width:2.4;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0;vector-effect:non-scaling-stroke}
.stat-num{margin:auto 0;font-size:44px;line-height:1;color:rgb(var(--accent-rgb))}
.reveal-ready .stat-board:not(.in) .stat-bars span{transform:scaleY(0)}
.reveal-ready .stat-board:not(.in) .stat-line .ln{stroke-dashoffset:1}
.reveal-ready .stat-board:not(.in) .stat-line .area{opacity:0}
.reveal-ready .stat-board.in .stat-bars span{animation:riflr-grow .9s cubic-bezier(.2,.8,.2,1) both}
.reveal-ready .stat-board.in .stat-bars span:nth-child(2){animation-delay:.1s}.reveal-ready .stat-board.in .stat-bars span:nth-child(3){animation-delay:.2s}.reveal-ready .stat-board.in .stat-bars span:nth-child(4){animation-delay:.3s}.reveal-ready .stat-board.in .stat-bars span:nth-child(5){animation-delay:.4s}
.reveal-ready .stat-board.in .stat-line .ln{animation:riflr-draw 1.8s ease-out both}
.reveal-ready .stat-board.in .stat-line .area{animation:riflr-fade 1.8s ease-out both}
@keyframes riflr-grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes riflr-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes riflr-fade{from{opacity:0}to{opacity:1}}
@media (max-width:900px){.stat-board{grid-template-columns:repeat(2,minmax(0,1fr));width:calc(100% - 28px)}.public-logo-stage.hero-photo{max-width:none}}
@media (max-width:480px){.stat-board{grid-template-columns:minmax(0,1fr)}}

/* dashboard polish */
.dashboard-grid .card,.dash-hero{animation:riflr-rise .6s ease-out both}
.dashboard-primary-stack>.card:nth-child(2){animation-delay:.08s}.dashboard-primary-stack>.card:nth-child(3){animation-delay:.16s}.dashboard-primary-stack>.card:nth-child(4){animation-delay:.24s}
.dashboard-grid .card{transition:transform .25s,border-color .25s,box-shadow .25s}
.dashboard-grid .card:hover{transform:translateY(-3px);border-color:rgba(var(--accent-rgb),.45);box-shadow:0 18px 40px rgba(0,0,0,.28)}
.dash-hero{position:relative;overflow:hidden;background-image:radial-gradient(circle at 85% 0,rgba(var(--accent-rgb),.2),transparent 55%)}
.dash-hero::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,rgb(var(--accent-rgb)),transparent);animation:riflr-breathe 4s ease-in-out infinite}
.dash-hero-map{animation:riflr-float 7s ease-in-out infinite}
.dash-countdown{display:inline-block;animation:riflr-breathe 3s ease-in-out infinite}
.dash-roster-row .progress>span{transform-origin:left;animation:riflr-barx 1s cubic-bezier(.2,.8,.2,1) both}
.dash-action{transition:transform .2s,background .2s}.dash-action:hover{transform:translateX(4px)}
.dash-day{transition:transform .2s,border-color .2s}.dash-day:hover{transform:translateY(-3px)}
.dash-day.today{box-shadow:0 0 0 1px rgb(var(--accent-rgb)),0 0 22px rgba(var(--accent-rgb),.28)}
@keyframes riflr-barx{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* RIFLR-AI home polish */
.home-hero{position:relative;overflow:hidden;background-image:radial-gradient(circle at 90% 0,rgba(var(--accent-rgb),.2),transparent 55%)}
.home-hero::after{content:"";position:absolute;left:0;right:0;top:0;height:30%;background:linear-gradient(180deg,transparent,rgba(var(--accent-rgb),.1),transparent);animation:riflr-scan 7s linear infinite;pointer-events:none}
.home-drop{position:relative;transition:transform .25s,border-color .25s,box-shadow .25s}
.home-drop:hover,.home-drop.drag{transform:translateY(-2px);border-color:rgb(var(--accent-rgb));box-shadow:0 0 0 4px rgba(var(--accent-rgb),.12),0 18px 40px rgba(0,0,0,.3)}
.home-drop-icon{animation:riflr-float 4.5s ease-in-out infinite}
.home-card{animation:riflr-rise .5s ease-out both;transition:transform .25s,border-color .25s,box-shadow .25s}
.home-card:hover{transform:translateY(-3px);border-color:rgba(var(--accent-rgb),.5);box-shadow:0 16px 36px rgba(0,0,0,.28)}
.home-act-btn{transition:transform .2s,box-shadow .2s}
.home-act-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(var(--accent-rgb),.25)}
.home-bar>span,.home-bar i{background-image:linear-gradient(90deg,rgb(var(--accent-rgb)),#ffd08a,rgb(var(--accent-rgb)));background-size:200% 100%;animation:riflr-shimmer 1.6s linear infinite}
.home-notice{animation:riflr-rise .5s ease-out both}
@keyframes riflr-shimmer{to{background-position:-200% 0}}

/* decorative landing motion keeps running even when the OS asks for reduced motion (the global rule above would freeze it) */
@media (prefers-reduced-motion:reduce){
  .map-track{animation-duration:44s!important;animation-iteration-count:infinite!important}
  .hero-photo img{animation-duration:18s!important;animation-iteration-count:infinite!important}
  .hp-scan{animation-duration:5s!important;animation-iteration-count:infinite!important}
  .hp-smoke.s1{animation-duration:9s!important;animation-iteration-count:infinite!important}.hp-smoke.s2{animation-duration:11s!important;animation-iteration-count:infinite!important}
}

/* RIFLR-AI menu button: closed for now, gold, "Çok yakında" on hover */
.nav-btn.nav-soon{cursor:not-allowed;color:#2a1c00;font-weight:800;border:1px solid #f5d27a;background:linear-gradient(110deg,#b8860b 0%,#ffd86b 28%,#fff1b8 45%,#ffd86b 60%,#b8860b 100%);background-size:220% 100%;animation:riflr-gold 3.2s linear infinite;box-shadow:0 0 14px rgba(255,200,70,.35)}
.nav-btn.nav-soon .nav-icon,.nav-btn.nav-soon .nav-icon svg{color:#2a1c00}
.nav-btn.nav-soon .nav-beta{background:rgba(42,28,0,.85);color:#ffd86b;border-color:transparent}
.nav-btn.nav-soon:hover{box-shadow:0 0 22px rgba(255,200,70,.6)}
.nav-btn.nav-soon:hover .nav-text{font-size:0}
.nav-btn.nav-soon:hover .nav-text::after{content:"Çok yakında";font-size:13px}
@keyframes riflr-gold{to{background-position:-220% 0}}

/* team badge lives in the top bar, left of the notification bell */
.topbar .team-status{padding:5px 10px 5px 6px;border:1px solid var(--border);max-width:220px}
.app-shell .topbar .team-status-copy{display:grid}
.app-shell .topbar .team-status{justify-content:flex-start;background:var(--surface)}
@media (max-width:700px){.app-shell .topbar .team-status-copy{display:none}.topbar .team-status{padding:4px}}

/* light, GPU-only interface motion (hover/focus only, so live re-renders never flicker) */
.btn,.nav-btn,.icon-btn,.tab,.notification-button,.card,.stat-card,.dash-day,.modal-close,input,select,textarea{transition:transform .18s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease,opacity .2s ease}
.btn:not(:disabled):hover{transform:translateY(-1px)}
.btn:not(:disabled):active{transform:translateY(0) scale(.98)}
.nav-btn:not(.nav-soon):hover{transform:translateX(3px)}
.nav-btn .nav-icon{transition:transform .2s ease}
.nav-btn:not(.nav-soon):hover .nav-icon{transform:scale(1.12)}
.notification-button:hover{transform:scale(1.08)}
.card{transition:border-color .25s ease,box-shadow .25s ease}
.card:hover{border-color:var(--border-strong)}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px rgba(var(--accent-rgb),.16)}
.progress>span{transition:width .6s cubic-bezier(.2,.8,.2,1)}
.modal{animation:riflr-modal .22s ease-out}
.notification-panel{animation:riflr-modal .18s ease-out}
@keyframes riflr-modal{from{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:none}}

/* stratbook list: CT tactics blue, T tactics orange */
.tactic-list-item.side-ct{border-left:3px solid #4fc3ff;background:linear-gradient(90deg,rgba(79,195,255,.12),transparent 70%)}
.tactic-list-item.side-ct i,.tactic-list-item.side-ct small{color:#4fc3ff}
.tactic-list-item.side-ct.active{background:linear-gradient(90deg,rgba(79,195,255,.28),rgba(79,195,255,.06));border-color:#4fc3ff;box-shadow:0 0 0 1px rgba(79,195,255,.4)}
.tactic-list-item.side-t{border-left:3px solid rgb(var(--accent-rgb));background:linear-gradient(90deg,rgba(var(--accent-rgb),.12),transparent 70%)}
.tactic-list-item.side-t.active{background:linear-gradient(90deg,rgba(var(--accent-rgb),.28),rgba(var(--accent-rgb),.06));box-shadow:0 0 0 1px rgba(var(--accent-rgb),.4)}

/* landing v3: radar story, route, module cards, faster map strip */
.map-track{animation-duration:20s}
.map-chip{transition:transform .2s,border-color .2s,box-shadow .2s}
.map-chip:hover{transform:translateY(-3px) scale(1.04);border-color:rgb(var(--accent-rgb));box-shadow:0 8px 22px rgba(var(--accent-rgb),.25)}
.map-chip img{animation:riflr-float 4s ease-in-out infinite}
.map-chip:nth-child(2n) img{animation-delay:-1.3s}.map-chip:nth-child(3n) img{animation-delay:-2.4s}
.rd{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:currentColor;box-shadow:0 0 0 2px rgba(0,0,0,.55),0 0 12px currentColor;animation-duration:12s;animation-timing-function:ease-in-out;animation-iteration-count:infinite}
.rd.ct{color:#2f9bff}.rd.t{color:#ff9d2e}
.rd.t1{animation-name:rd-t1}.rd.t2{animation-name:rd-t2}.rd.t3{animation-name:rd-t3}.rd.t4{animation-name:rd-t4}
.rd.c1{animation-name:rd-c1}.rd.c2{animation-name:rd-c2}.rd.c3{animation-name:rd-c3}
@keyframes rd-t1{0%{left:78%;top:78%}20%{left:84%;top:72%}42%{left:85%;top:56%}62%{left:86%;top:45%}78%{left:87%;top:40%}100%{left:78%;top:78%}}
@keyframes rd-t2{0%{left:76%;top:79%}20%{left:83%;top:74%}45%{left:84%;top:58%}65%{left:85%;top:48%}80%{left:86%;top:42%}100%{left:76%;top:79%}}
@keyframes rd-t3{0%{left:80%;top:80%}22%{left:85%;top:75%}48%{left:86%;top:60%}68%{left:84%;top:50%}82%{left:85%;top:44%}100%{left:80%;top:80%}}
@keyframes rd-t4{0%{left:74%;top:78%}25%{left:82%;top:73%}50%{left:83%;top:62%}70%{left:86%;top:52%}84%{left:87%;top:46%}100%{left:74%;top:78%}}
@keyframes rd-c1{0%,100%{left:88%;top:33%}35%{left:87%;top:36%}70%{left:88%;top:31%}}
@keyframes rd-c2{0%,100%{left:78%;top:29%}40%{left:82%;top:30%}80%{left:86%;top:33%}}
@keyframes rd-c3{0%{left:56%;top:50%}35%{left:66%;top:40%}60%{left:74%;top:30%}85%{left:82%;top:30%}100%{left:56%;top:50%}}
.rd-smoke,.rd-molly,.rd-flash,.rd-bomb{position:absolute;pointer-events:none;border-radius:50%;opacity:0;animation-duration:12s;animation-timing-function:ease-out;animation-iteration-count:infinite}
.rd-smoke{left:85%;top:55%;width:15%;aspect-ratio:1;margin:-7.5% 0 0 -7.5%;background:radial-gradient(circle,rgba(235,238,242,.95),rgba(190,196,204,.55) 70%,transparent);animation-name:rd-smoke}
.rd-molly{left:87%;top:36%;width:9%;aspect-ratio:1;margin:-4.5% 0 0 -4.5%;background:radial-gradient(circle,rgba(255,200,60,.95),rgba(255,90,20,.7) 55%,transparent 75%);animation-name:rd-molly}
.rd-flash{left:86%;top:46%;width:14px;height:14px;margin:-7px;background:#fff;animation-name:rd-flash}
.rd-bomb{left:87%;top:38%;width:14px;height:14px;margin:-7px;background:#ff3b3b;animation-name:rd-bomb}
@keyframes rd-smoke{0%,14%{opacity:0;transform:scale(.2)}22%{opacity:1;transform:scale(1)}70%{opacity:.9;transform:scale(1.05)}82%,100%{opacity:0;transform:scale(1.15)}}
@keyframes rd-flash{0%,52%{opacity:0;transform:scale(.3);box-shadow:none}55%{opacity:1;transform:scale(1.2);box-shadow:0 0 0 0 rgba(255,255,255,.9)}66%,100%{opacity:0;transform:scale(2.4);box-shadow:0 0 0 26px rgba(255,255,255,0)}}
@keyframes rd-molly{0%,58%{opacity:0;transform:scale(.3)}64%{opacity:1;transform:scale(1)}90%{opacity:.85;transform:scale(1.08)}100%{opacity:0;transform:scale(1.1)}}
@keyframes rd-bomb{0%,80%{opacity:0}84%{opacity:1;box-shadow:0 0 0 0 rgba(255,59,59,.8)}96%{opacity:1;box-shadow:0 0 0 20px rgba(255,59,59,0)}100%{opacity:0}}
.steps-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.steps-grid::before{left:12%;right:12%}
.step{text-align:center;padding:22px 14px;transition:transform .25s,border-color .25s,box-shadow .25s}
.step:hover{transform:translateY(-4px);border-color:rgba(var(--accent-rgb),.6)}
.step-n{margin:0 auto 12px}
.step h3{margin:0;font-size:17px}
.step.goal{border-color:#f5d27a;background:linear-gradient(160deg,rgba(255,200,70,.14),var(--panel))}
.step.goal .step-n{border-color:#f5d27a;color:#2a1c00;background:linear-gradient(135deg,#ffd86b,#f0a82a);box-shadow:0 0 18px rgba(255,200,70,.5);animation:riflr-breathe 2.6s ease-in-out infinite}
.step.goal h3{color:#ffd86b}
.public-features{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.public-feature{display:flex;align-items:center;gap:14px;padding:16px 18px}
.public-feature h2{margin:0;font-size:15px}
.pf-icon{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;border-radius:11px;color:var(--accent);background:rgba(var(--accent-rgb),.12);transition:transform .2s,background .2s}
.pf-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.public-feature:hover .pf-icon{transform:scale(1.12) rotate(-5deg);background:rgba(var(--accent-rgb),.22)}
@media (max-width:1000px){.public-features{grid-template-columns:repeat(3,minmax(0,1fr))}.steps-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.public-features{grid-template-columns:repeat(2,minmax(0,1fr))}.public-feature{padding:12px;gap:10px}.pf-icon{width:34px;height:34px}}
@media (prefers-reduced-motion:reduce){
  .map-track{animation-duration:20s!important;animation-iteration-count:infinite!important}
  .rd,.rd-smoke,.rd-molly,.rd-flash,.rd-bomb{animation-duration:12s!important;animation-iteration-count:infinite!important}
}

/* landing v4: three-line headline, gold logo glint, glass top bar, steadier map chips */
.public-copy h1 .h1-mid{background:linear-gradient(100deg,var(--muted) 15%,rgb(var(--accent-rgb)) 50%,var(--muted) 85%);background-size:230% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:riflr-shimmer 6s ease-in-out infinite}
.public-copy h1 .h1-gold{display:inline-block;background:linear-gradient(100deg,#b8860b 0%,#ffd86b 30%,#fff3c4 50%,#ffd86b 70%,#b8860b 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:riflr-gold 3.2s linear infinite;filter:drop-shadow(0 0 18px rgba(255,200,70,.35))}
.map-marquee{padding:10px 0;margin-bottom:34px}
.map-chip{transition:border-color .2s,background-color .2s}
.map-chip:hover{transform:none;box-shadow:none;border-color:rgb(var(--accent-rgb));background:rgba(var(--accent-rgb),.1)}
.map-chip:hover b{color:var(--text)}
.brand-logo-crop img{animation:riflr-glint 7s ease-in-out infinite}
@keyframes riflr-glint{0%,70%,100%{filter:none}80%{filter:sepia(1) saturate(6) hue-rotate(-12deg) brightness(1.25) drop-shadow(0 0 7px rgba(255,200,70,.8))}90%{filter:sepia(1) saturate(5) hue-rotate(-12deg) brightness(1.1) drop-shadow(0 0 3px rgba(255,200,70,.5))}}
.public-nav{position:sticky;top:0;z-index:30;width:100%;height:68px;padding:0 max(24px,calc((100% - 1180px)/2));background:color-mix(in srgb,var(--bg) 72%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);border-bottom:0}
.public-nav::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--accent-rgb),.55) 25%,rgba(255,200,70,.55) 50%,rgba(var(--accent-rgb),.55) 75%,transparent)}
.public-nav .brand{gap:12px}
.public-nav .brand>span:nth-child(2){font-weight:800;letter-spacing:.18em}
.public-nav .btn-primary{box-shadow:0 6px 20px rgba(var(--accent-rgb),.35)}
.public-nav .btn-primary:hover{box-shadow:0 8px 26px rgba(var(--accent-rgb),.5)}
@media (max-width:640px){.public-nav{padding:0 14px}}
@media (prefers-reduced-motion:reduce){
  .brand-logo-crop img{animation-duration:7s!important;animation-iteration-count:infinite!important}
  .public-copy h1 .h1-gold{animation-duration:3.2s!important;animation-iteration-count:infinite!important}
}

/* landing v5: roomier top bar, logo glow no longer clipped */
.brand-logo-crop{overflow:visible}
.public-nav{height:88px;padding:0 max(28px,calc((100% - 1180px)/2));gap:24px}
.public-nav .brand{gap:16px}
.public-nav .brand-logo-crop{width:176px;height:38px}
.public-nav .brand>span:nth-child(2){font-size:20px}
.public-nav .beta-note{margin-left:4px}
.public-nav-actions{gap:12px}
.public-cta .btn,.public-nav .btn{height:44px;padding:0 22px;font-size:14px}
@media (max-width:640px){.public-nav{height:72px;padding:0 14px}.public-nav .brand-logo-crop{width:130px;height:30px}.public-nav .brand>span:nth-child(2){display:none}}

/* landing headings use a squared face, so the dots on İ and the other marks are square */
.public-copy h1,.public-home .spot h2,.public-home .steps>h2,.public-home .cta-band h2{font-family:'Chakra Petch','Space Grotesk',sans-serif;font-weight:700;letter-spacing:-.01em}

/* calendar: rows grow so the extra events (and their times) are never cut off */
.team-calendar-day{height:auto;min-height:92px;overflow:visible}
.calendar-more{display:flex;gap:5px;align-items:baseline;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--muted);font-size:10.5px}
.calendar-more b{flex:0 0 auto;color:var(--accent);font-size:10.5px}

/* watchparty: the stage really fills the screen in fullscreen; notifications stay small */
.watchparty-stage:fullscreen,.watchparty-stage:-webkit-full-screen{width:100vw;height:100vh;max-width:none;max-height:none;aspect-ratio:auto;border:0;border-radius:0}
.watchparty-stage:fullscreen .watchparty-video{object-fit:contain}
.notification-panel{max-height:min(72vh,520px);display:flex;flex-direction:column}
.notification-list{max-height:none;min-height:0;flex:1;overflow:auto}
.toast-stack{width:min(360px,calc(100vw - 32px))}
.toast{cursor:default;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}

/* support tickets */
.feedback-modal.wide{width:min(720px,calc(100vw - 24px))}
.tk-tabs{display:flex;gap:6px;margin:0 0 14px;padding:4px;border-radius:10px;background:var(--surface)}
.tk-tabs button{flex:1;padding:8px 12px;border:0;border-radius:7px;color:var(--muted);background:transparent;font-weight:700}
.tk-tabs button.active{color:var(--text);background:var(--panel-raised,var(--panel));box-shadow:0 0 0 1px var(--border-strong)}
.tk-count{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;color:#fff;background:var(--danger,#e5484d);font-size:11px}
.tk-status{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:999px;font-size:11.5px;font-weight:700;background:var(--surface-2);color:var(--muted)}
.tk-status.new{color:#ffb347;background:rgba(255,179,71,.14)}
.tk-status.seen{color:#68a7ff;background:rgba(104,167,255,.14)}
.tk-status.resolved{color:var(--success);background:rgba(61,214,140,.14)}
.tk-list{display:grid;gap:6px;max-height:56vh;overflow:auto}
.tk-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:10px;width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:10px;color:var(--text);background:var(--panel);text-align:left;transition:border-color .2s,background-color .2s}
.tk-row:hover{border-color:rgba(var(--accent-rgb),.5);background:var(--hover)}
.tk-row.unread{border-color:rgba(var(--accent-rgb),.6)}
.tk-prev{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px}
.tk-row time{color:var(--faint);font-size:11.5px;white-space:nowrap}
.tk-dot{width:9px;height:9px;border-radius:50%;background:rgb(var(--accent-rgb));box-shadow:0 0 8px rgb(var(--accent-rgb))}
.tk-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.tk-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tk-title small{color:var(--muted);font-size:12px}
.tk-admin-bar{display:flex;gap:6px;margin-bottom:10px}
.tk-thread-body{display:grid;gap:10px;max-height:44vh;overflow:auto;padding:4px 2px 8px}
.tk-msg{max-width:88%;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.tk-msg.user{justify-self:start}
.tk-msg.admin{justify-self:end;border-color:rgba(var(--accent-rgb),.45);background:rgba(var(--accent-rgb),.09)}
.tk-meta{display:flex;justify-content:space-between;gap:14px;margin-bottom:4px;font-size:11.5px}
.tk-meta time{color:var(--faint)}
.tk-msg p{margin:0;font-size:13.5px;line-height:1.55;overflow-wrap:anywhere}
.tk-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.tk-img img{display:block;max-width:180px;max-height:130px;border:1px solid var(--border);border-radius:8px;object-fit:cover}
.tk-file{display:grid;gap:1px;padding:7px 11px;border:1px solid var(--border-strong);border-radius:8px;color:var(--text);background:var(--panel);text-decoration:none;font-size:12.5px}
.tk-file small{color:var(--muted)}
.tk-reply{display:grid;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.tk-reply textarea{width:100%;resize:vertical}
.tk-attach{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:8px 0}
.tk-pick{cursor:pointer}
.tk-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 10px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);font-size:12px}
.tk-chip small{color:var(--muted)}
.tk-chip button{width:18px;height:18px;border:0;border-radius:50%;color:var(--muted);background:var(--surface-2);line-height:1}
.tk-hint{color:var(--faint);font-size:11.5px}
@media (max-width:640px){.tk-row{grid-template-columns:auto minmax(0,1fr) auto}.tk-row time,.tk-row .tk-dot{display:none}.tk-msg{max-width:96%}}

/* player note sent with a task for approval */
.task-note{grid-column:1/-1;margin:2px 0 0;padding:8px 12px;border-left:3px solid rgb(var(--accent-rgb));border-radius:6px;color:var(--muted);background:var(--surface);font-size:12.5px;line-height:1.5;overflow-wrap:anywhere}
.task-note b{color:var(--text)}
.task-submit-file{padding:9px 12px;border:1px dashed var(--border-strong);border-radius:8px;color:var(--muted);font-size:13px;overflow-wrap:anywhere}

/* loading screen: centered spinner, slogan, soft motion */
.boot-screen{position:fixed;inset:0;display:grid;place-content:center;justify-items:center;gap:14px;background:var(--bg);overflow:hidden}
.boot-glow{position:absolute;width:520px;height:520px;max-width:90vw;max-height:90vw;border-radius:50%;background:radial-gradient(circle,rgba(var(--accent-rgb),.22),transparent 65%);animation:riflr-breathe 4s ease-in-out infinite}
.boot-spinner{position:relative;width:96px;height:96px;display:grid;place-items:center}
.boot-spinner img{width:46px;height:46px;border-radius:12px;animation:boot-pulse 2.2s ease-in-out infinite}
.boot-spinner i{position:absolute;inset:0;border-radius:50%;border:3px solid transparent;border-top-color:rgb(var(--accent-rgb));border-right-color:rgba(var(--accent-rgb),.35);animation:boot-spin 1.1s linear infinite}
.boot-spinner i+i{inset:10px;border-top-color:#ffd86b;border-right-color:transparent;border-left-color:rgba(255,216,107,.3);animation-duration:1.7s;animation-direction:reverse}
.boot-brand{position:relative;margin-top:6px;font:700 22px 'Chakra Petch','Space Grotesk',sans-serif;letter-spacing:.34em;text-indent:.34em;animation:riflr-rise .6s ease-out both}
.boot-slogan{position:relative;margin:0;color:var(--muted);font-size:13px;letter-spacing:.02em;animation:riflr-rise .6s ease-out .15s both}
.boot-slogan b{color:#ffd86b;font-weight:700}
.boot-dots{position:relative;display:flex;gap:7px;margin-top:2px}
.boot-dots i{width:6px;height:6px;border-radius:50%;background:rgb(var(--accent-rgb));animation:boot-dot 1.2s ease-in-out infinite}
.boot-dots i:nth-child(2){animation-delay:.18s}.boot-dots i:nth-child(3){animation-delay:.36s}
.boot-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@keyframes boot-spin{to{transform:rotate(360deg)}}
@keyframes boot-pulse{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.1);opacity:1}}
@keyframes boot-dot{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}
@media (prefers-reduced-motion:reduce){
  .boot-spinner i,.boot-spinner img,.boot-dots i,.boot-glow{animation-iteration-count:infinite!important}
  .boot-spinner i{animation-duration:1.1s!important}.boot-spinner i+i{animation-duration:1.7s!important}.boot-spinner img{animation-duration:2.2s!important}.boot-dots i{animation-duration:1.2s!important}.boot-glow{animation-duration:4s!important}
}

/* admin user list filters */
.admin-filters{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:12px 0}
.admin-filter-chips{display:flex;flex-wrap:wrap;gap:6px}
.admin-filters select{min-width:170px}

/* 2D replay: floor switch for multi-level maps (the lower radar is already a dark game-style image) */
.demo-replay-stage.lower-level .demo-replay-map-layer{filter:brightness(1.25);mix-blend-mode:normal}
.demo-replay-levels{display:flex;gap:2px;padding:3px;border-radius:10px;background:rgba(10,13,16,.8);border:1px solid rgba(255,255,255,.12);margin-bottom:6px}
.demo-replay-levels button{border:0;border-radius:7px;padding:5px 10px;background:transparent;color:#aeb7b0;font:inherit;font-size:12px;cursor:pointer}
.demo-replay-levels button.active{background:rgba(255,190,80,.22);color:#fff}


/* 2D replay: hotkeys / settings / voice panel, round strip, gear badges, utility tooltip */
.demo-replay-toolbtns{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.demo-replay-toolbtns button{border:1px solid rgba(255,255,255,.14);border-radius:9px;padding:7px 10px;background:rgba(10,13,16,.82);color:#dfe5ea;font:600 12px Manrope,sans-serif;cursor:pointer;text-align:left}
.demo-replay-toolbtns button:hover{border-color:rgba(255,190,80,.6);color:#fff}
.demo-replay-panel{position:absolute;right:14px;top:64px;z-index:40;width:min(420px,calc(100% - 28px));max-height:calc(100% - 190px);overflow:auto;border:1px solid #2d342f;border-radius:12px;background:#141816;box-shadow:0 18px 50px rgba(0,0,0,.55);color:#eef2ef;font-family:Manrope,sans-serif;border-top:3px solid #ff5f45}
.demo-replay-panel[hidden]{display:none}
.demo-panel-tabs{display:flex;position:sticky;top:0;background:#141816;z-index:1}
.demo-panel-tabs button{flex:1;padding:13px 6px;border:1px solid #2d342f;background:#1b201d;color:#a3ada6;font:800 11.5px Manrope,sans-serif;letter-spacing:.04em;cursor:pointer}
.demo-panel-tabs button.active{background:#262c28;color:#fff;border-bottom-color:#ff5f45}
.demo-panel-tabs .demo-panel-close{flex:0 0 42px;font-size:18px}
.demo-panel-body{padding:14px 16px 16px;display:grid;gap:10px}
.demo-panel-title{display:flex;align-items:center;justify-content:space-between;font:800 11.5px Manrope,sans-serif;letter-spacing:.05em;color:#d6ddd8;margin-top:4px}
.demo-panel-reset{width:34px;height:30px;border:1px solid #2d342f;border-radius:8px;background:#1b201d;color:#e8eeea;cursor:pointer}
.demo-key-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}
.demo-key-row select,.demo-key-row input[type=range]{max-width:190px;flex:0 1 190px}
.demo-key{min-width:150px;padding:9px 10px;border:1px solid #2d342f;border-radius:8px;background:#0e1110;color:#fff;font:700 12px Manrope,sans-serif;cursor:pointer}
.demo-key.capturing{border-color:#ffb347;color:#ffb347;animation:pulse-border 1s infinite}
.demo-panel-note{margin:4px 0 0;color:#8a958d;font-size:12px;line-height:1.5}
.demo-agent-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.demo-agent-grid button{display:grid;justify-items:center;gap:4px;padding:8px 2px;border:1px solid #2d342f;border-radius:10px;background:#0e1110;color:#cdd8ee;font:700 11px Manrope,sans-serif;cursor:pointer}
.demo-agent-grid button.active{border-color:#ffb347;background:#262c28;color:#fff}
.demo-agent-grid canvas{width:46px;height:46px}
.demo-style-row{display:flex;gap:6px}
.demo-style-row button{flex:1;padding:9px 6px;border:1px solid #2d342f;border-radius:8px;background:#0e1110;color:#cdd8ee;font:700 12px Manrope,sans-serif;cursor:pointer}
.demo-style-row button.active{border-color:#ffb347;color:#fff;background:#262c28}
.demo-voice-file{display:block;padding:12px;border:1px dashed #4a544d;border-radius:10px;text-align:center;color:#e8eeea;cursor:pointer;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.demo-voice-file input{display:none}
.demo-voice-row{display:grid;gap:6px;font-size:12.5px;color:#d6ddd8}
.demo-voice-nudge{display:flex;align-items:center;gap:6px}
.demo-voice-nudge button,.demo-voice-align button{padding:7px 9px;border:1px solid #2d342f;border-radius:8px;background:#1b201d;color:#fff;font:700 12px 'JetBrains Mono',monospace;cursor:pointer}
.demo-voice-nudge b{flex:1;text-align:center;font:800 13px 'JetBrains Mono',monospace}
.demo-voice-align{display:flex;gap:6px}
.demo-voice-align input{flex:1;padding:8px 10px;border:1px solid #2d342f;border-radius:8px;background:#0e1110;color:#fff}
.demo-voice-mute{display:inline-flex;gap:6px;align-items:center;margin-left:10px}
.demo-util-tip{position:absolute;z-index:30;pointer-events:none;display:grid;gap:2px;padding:8px 11px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(10,13,16,.94);color:#eef2f5;font:600 12.5px Manrope,sans-serif;box-shadow:0 8px 24px rgba(0,0,0,.5);max-width:240px}
.demo-util-tip[hidden]{display:none}
.demo-util-tip b.ct{color:#66b4ff}.demo-util-tip b.t{color:#ffb347}.demo-util-tip small{color:#9aa8b2;font-weight:500}
.demo-replay-shield.helmet{color:#ffce54;fill:#ffce54}
.demo-replay-kit img{width:12px;height:12px;display:block}.demo-replay-kit{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:rgba(96,222,255,.18);color:#60deff;font-size:10px;line-height:1}
/* mavi plan map style */
.demo-replay-stage.ms-blueprint{background-color:#0b1a33}
.demo-replay-stage.ms-blueprint .demo-replay-map-layer{filter:grayscale(1) invert(1) brightness(.55) sepia(1) hue-rotate(185deg) saturate(4);mix-blend-mode:screen}
/* round strip like the reference: number coloured by the winner's side, running score, half-time swap */
.demo-replay-rounds .rt2-row{display:flex;align-items:center;gap:5px;margin:0 auto}
.demo-replay-rounds .demo-replay-round-tab.rt2{width:42px;height:44px;padding:5px 2px 6px;gap:1px;border:1px solid #28344c;border-radius:6px;background:#141d33;box-shadow:none;position:relative;opacity:1;filter:none;transform:none}
.demo-replay-rounds .demo-replay-round-tab.rt2 b{font:800 15px Manrope,sans-serif;color:#9fb0cc;line-height:1.1}
.demo-replay-rounds .demo-replay-round-tab.rt2 small{font:700 10px 'JetBrains Mono',monospace;color:#9fb0cc}
.demo-replay-rounds .demo-replay-round-tab.rt2::after{content:"";position:absolute;left:6px;right:6px;bottom:3px;height:2px;border-radius:2px;background:transparent}
.demo-replay-rounds .demo-replay-round-tab.rt2.tone-ct b{color:#4d9bff}.demo-replay-rounds .demo-replay-round-tab.rt2.tone-ct::after{background:#4d9bff}
.demo-replay-rounds .demo-replay-round-tab.rt2.tone-t b{color:#ffa23a}.demo-replay-rounds .demo-replay-round-tab.rt2.tone-t::after{background:#ffa23a}
.demo-replay-rounds .demo-replay-round-tab.rt2.active{background:#1d3358;border-color:#4d9bff;box-shadow:0 0 0 1px #4d9bff,0 0 14px rgba(77,155,255,.45);outline:none;transform:none}
.demo-replay-rounds .demo-replay-round-tab.rt2:hover:not(:disabled){transform:translateY(-1px);border-color:#5d7bb0}
.demo-replay-rounds .rt2-mark{position:absolute;top:3px;left:4px;display:block;min-height:0;line-height:0}.demo-replay-rounds .rt2-mark svg{width:10px;height:10px;color:#9fb0cc}.demo-replay-swap{color:#7f93b8;font-size:14px;padding:0 3px}
@keyframes pulse-border{0%,100%{box-shadow:0 0 0 0 rgba(255,179,71,.5)}50%{box-shadow:0 0 0 4px rgba(255,179,71,0)}}

/* 2D replay top bar: one aligned row of equal-height controls (the two team menus stay where they are) */
.demo-replay-full .demo-replay-hud-left,.demo-replay-full .demo-replay-hud-tools{top:8px;min-height:46px;display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
.demo-replay-full .demo-replay-hud-left{left:12px;max-width:none;min-width:0}
.demo-replay-full .demo-replay-hud-tools{left:auto;right:12px;transform:none;justify-content:flex-end}
.demo-replay-hud-left .btn,.demo-replay-hud-left .demo-replay-help summary,.demo-replay-hud-tools .demo-replay-toolbtns button,.demo-replay-hud-tools .demo-replay-style-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;margin:0;padding:0 13px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:rgba(10,13,16,.84);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#dfe5ea;font:600 12.5px Manrope,sans-serif;line-height:1;white-space:nowrap;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.demo-replay-hud-left .btn:hover,.demo-replay-hud-left .demo-replay-help summary:hover,.demo-replay-hud-tools .demo-replay-toolbtns button:hover,.demo-replay-hud-tools .demo-replay-style-toggle:hover{border-color:rgba(255,190,80,.55);background:rgba(28,22,10,.9);color:#fff}
.demo-replay-hud-left .demo-replay-help{margin:0}
.demo-replay-hud-left .demo-replay-help[open] summary{border-color:rgba(255,190,80,.55);color:#fff}
.demo-replay-hud-left .demo-replay-map{max-width:none;margin:0 0 0 4px;font:800 15px Manrope,sans-serif;color:#fff}
.demo-replay-hud-left .demo-replay-round-label{margin:0 4px 0 0;font:600 12px Manrope,sans-serif;color:#9aa4ad}
.demo-replay-hud-tools .demo-replay-toolbtns{display:flex;flex-direction:row;gap:8px;margin:0}
.demo-replay-hud-tools .demo-replay-zoom{height:36px;padding:3px 5px;gap:3px;border-radius:10px;background:rgba(10,13,16,.84);border-color:rgba(255,255,255,.14);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.demo-replay-hud-tools .demo-replay-zoom button{width:28px;height:28px;border-radius:7px}
.demo-replay-hud-tools .demo-replay-style-toggle{color:#8de4f5;border-color:rgba(72,210,238,.5);font-size:12px}
.demo-replay-hud-tools .demo-replay-levels{height:36px;margin:0;padding:3px;border-radius:10px;align-items:stretch}
.demo-replay-hud-tools .demo-replay-levels button{padding:0 11px}
@media (max-width:1560px){
  .demo-replay-full .demo-replay-hud-tools{top:58px}
  .demo-replay-full .demo-replay-hud-left{max-width:calc(50vw - 270px);flex-wrap:wrap;row-gap:6px}
}

/* individual training: week strip, slim stats, team summary, templates */
.week-strip{margin-top:12px;padding:8px;display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}
.week-days{min-width:0;flex:1;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.week-nav{width:30px;height:48px;flex:0 0 auto;border:0;border-radius:var(--radius-sm);color:var(--muted);background:transparent;font-size:18px}
.week-nav:hover{color:var(--text);background:var(--hover)}
.week-day{height:56px;display:grid;place-items:center;align-content:center;gap:0;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--muted);background:transparent}
.week-day:hover{color:var(--text);background:var(--hover)}
.week-day small{color:var(--faint);font-size:10px;font-weight:700;line-height:1.2}
.week-day b{font:600 14px/1.25 'Space Grotesk',sans-serif}
.week-count{color:var(--faint);font-size:10.5px;font-weight:700;font-variant-numeric:tabular-nums}
.week-count.ok{color:var(--success)}.week-count.wait{color:var(--orange)}.week-count.bad{color:var(--danger)}.week-count.open{color:var(--muted)}
.week-day.is-today:not(.selected){border-color:rgba(var(--accent-rgb),.45);color:var(--text)}
.week-day.selected{color:var(--accent-ink);background:var(--accent)}
.week-day.selected small,.week-day.selected .week-count{color:rgba(0,0,0,.62)}
.week-cal{height:48px;padding:0 12px;flex:0 0 auto;display:grid;align-content:center;border:0;border-left:1px solid var(--border);border-radius:0;color:var(--accent);background:transparent;font-size:11.5px;font-weight:700;text-align:right}
.week-cal span{color:var(--muted);font-size:11px;font-weight:600;text-transform:capitalize}
.training-stats.slim{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--border)}
.training-stats.slim .training-stat{border:0;border-radius:0}
.training-seg{display:inline-flex;padding:2px;border:1px solid var(--border);border-radius:8px;background:var(--panel)}
.training-seg button{height:26px;padding:0 11px;display:inline-flex;align-items:center;gap:6px;border:0;border-radius:6px;color:var(--muted);background:transparent;font-size:12px;font-weight:700}
.training-seg button.active{color:var(--text);background:var(--surface-2)}
.training-seg em{min-width:16px;height:16px;padding:0 4px;display:grid;place-items:center;border-radius:999px;color:var(--accent-ink);background:var(--orange);font-size:10px;font-style:normal}
.training-toggle{height:30px;padding:0 11px;border:1px solid var(--border);border-radius:999px;color:var(--muted);background:transparent;font-size:12px;font-weight:600}
.training-toggle.active{color:var(--text);border-color:rgba(var(--accent-rgb),.5);background:var(--accent-soft)}
.task-group{margin-top:10px}
.task-group-head{padding:8px 10px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border);background:var(--surface)}
.task-group-head .avatar{width:20px;height:20px;border-radius:6px;font-size:9px}
.task-group-head small{margin-left:auto;color:var(--faint);font-size:11px}
.queue-list{display:grid}
.queue-item{padding:9px 6px;display:flex;align-items:center;gap:10px;border:0;border-bottom:1px solid var(--border);color:var(--text);background:transparent;text-align:left}
.queue-item:last-child{border-bottom:0}
.queue-item:hover{background:var(--hover)}
.queue-item .avatar{width:26px;height:26px;border-radius:7px;font-size:10px}
.queue-item span{min-width:0;flex:1;display:grid}
.queue-item b{font-size:12.5px}
.queue-item small{overflow:hidden;color:var(--muted);font-size:11.5px;white-space:nowrap;text-overflow:ellipsis}
.queue-item em{color:var(--accent);font-size:11.5px;font-style:normal;font-weight:700}
.week-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.week-head-nav{display:inline-flex;gap:4px}
.wk-scroll{overflow-x:auto}
.wk-table{width:100%;min-width:560px;border-collapse:collapse}
.wk-table th,.wk-table td{padding:6px 4px;border-bottom:1px solid var(--border);text-align:center;font-size:12px}
.wk-table thead th{color:var(--faint);font-size:11px;font-weight:700;text-transform:capitalize}
.wk-table thead th small{display:block;color:var(--muted);font-size:12px}
.wk-table thead th.today{color:var(--accent)}
.wk-table tbody th{text-align:left}
.wk-table tbody th span{display:inline-flex;align-items:center;gap:8px}
.wk-table tbody th .avatar{width:22px;height:22px;border-radius:6px;font-size:9.5px}
.wk-cell{min-width:46px;height:26px;padding:0 8px;border:0;border-radius:6px;color:var(--muted);background:var(--surface-2);font:600 11.5px 'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums}
.wk-cell:hover{filter:brightness(1.2)}
.wk-cell.ok{color:var(--success);background:var(--success-soft)}.wk-cell.wait{color:var(--orange);background:var(--orange-soft)}.wk-cell.bad{color:var(--danger);background:var(--danger-soft)}
.wk-empty{color:var(--faint)}
.wk-total{font-weight:700;font-variant-numeric:tabular-nums}
.template-bar{margin:0 0 12px;display:flex;align-items:center;gap:10px}
.template-bar>span{color:var(--faint);font-size:11px;font-weight:700}
.template-bar>div{display:flex;flex-wrap:wrap;gap:5px}
.template-chip{height:28px;display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;overflow:hidden}
.template-chip button{height:100%;padding:0 10px;border:0;color:var(--text);background:transparent;font-size:12px;font-weight:600}
.template-chip button:hover{background:var(--accent-soft)}
.template-chip button+button{padding:0 8px;border-left:1px solid var(--border);color:var(--muted)}
.template-chip button+button:hover{color:var(--danger);background:var(--danger-soft)}
.check-line{display:inline-flex;align-items:center;gap:7px;cursor:pointer;color:var(--text);font-size:12.5px;font-weight:600}
.check-line input{accent-color:var(--accent)}
.template-save{color:var(--muted)}
.task-repeat-body{display:none;margin-top:8px;flex-wrap:wrap;align-items:center;gap:10px}
.task-repeat:has(input[name=repeat]:checked) .task-repeat-body{display:flex}
.repeat-days{display:flex;gap:4px}
.repeat-day input{position:absolute;opacity:0;pointer-events:none}
.repeat-day span{min-width:38px;height:28px;padding:0 8px;display:grid;place-items:center;border:1px solid var(--border);border-radius:7px;color:var(--muted);font-size:11.5px;font-weight:700;cursor:pointer}
.repeat-day input:checked+span{color:var(--text);border-color:rgba(var(--accent-rgb),.6);background:var(--accent-soft)}
.repeat-day input:focus-visible+span{outline:2px solid var(--accent);outline-offset:1px}
.repeat-weeks{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}
.repeat-weeks select{height:30px}
@media (max-width:720px){
  .week-cal{display:none}
  .week-nav{width:24px}
  .week-day{height:52px}
  .template-bar{align-items:flex-start;flex-direction:column;gap:6px}
}
/* training: reminder, comments, monthly bars */
.training-reminder{margin-top:12px;padding:10px 14px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;border:1px solid rgba(var(--accent-rgb),.35);border-radius:var(--radius);background:var(--accent-soft);font-size:12.5px}
.training-reminder span{color:var(--muted)}
.training-reminder.urgent{border-color:var(--danger);background:var(--danger-soft)}
.training-reminder.urgent b{color:var(--danger)}
.task-comment-count{height:18px;padding:0 6px;display:inline-flex;align-items:center;flex:0 0 auto;border-radius:4px;color:var(--muted);background:var(--surface-2);font-size:10.5px;font-weight:700}
.task-comments{grid-column:1/-1;display:grid;gap:6px}
.task-comment{padding:7px 10px;border-radius:8px;background:var(--panel)}
.task-comment.mine{background:var(--accent-soft)}
.task-comment b{font-size:12px}
.task-comment small{margin-left:8px;color:var(--faint);font-size:11px}
.task-comment p{margin:2px 0 0;color:var(--text);font-size:12.5px;overflow-wrap:anywhere}
.task-comments .muted{margin:0;color:var(--faint);font-size:12px}
.task-comment-form{display:flex;gap:6px}
.task-comment-form input{height:32px;flex:1}
.month-bars{height:130px;padding:8px 4px 0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;gap:10px}
.month-bar{height:100%;display:grid;grid-template-rows:auto 1fr auto;justify-items:center;align-items:end;gap:4px}
.month-bar b{font:600 12px 'Space Grotesk',sans-serif}
.month-bar span{width:100%;max-width:44px;min-height:3px;border-radius:5px 5px 2px 2px;background:var(--accent)}
.month-bar small{color:var(--faint);font-size:11px;text-transform:capitalize}
/* module name lives in the sidebar on desktop; the active item is easy to spot */
@media (min-width:781px){
  .breadcrumbs{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .topbar .top-actions{margin-left:auto}
}
.nav-btn.active{position:relative;color:var(--text);background:rgba(var(--accent-rgb),.16);font-weight:800;box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.32)}
.nav-btn.active::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}
.nav-btn.active:hover{transform:none}
/* loading overlay */
.busy-overlay{position:fixed;inset:0;z-index:400;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 62%,transparent);backdrop-filter:blur(3px);animation:busy-in .18s ease-out both}
.busy-overlay .boot-spinner{filter:drop-shadow(0 0 22px rgba(var(--accent-rgb),.35))}
@keyframes busy-in{from{opacity:0}to{opacity:1}}

/* task card: animated open, arrow, calmer detail */
.task-detail-wrap{grid-column:1/-1;display:grid;grid-template-rows:0fr;visibility:hidden;cursor:default;transition:grid-template-rows .3s cubic-bezier(.2,.8,.2,1),visibility 0s .3s}
.task-row.expanded .task-detail-wrap{grid-template-rows:1fr;visibility:visible;transition-delay:0s}
.task-detail-inner{min-height:0;overflow:hidden;opacity:0;transform:translateY(-6px);transition:opacity .25s ease,transform .3s cubic-bezier(.2,.8,.2,1)}
.task-row.expanded .task-detail-inner{opacity:1;transform:none}
.task-detail-wrap .task-expanded-detail{margin-top:10px;padding:14px 16px;grid-template-columns:minmax(0,1fr) minmax(240px,300px);gap:14px 28px;border:1px solid var(--border);background:var(--surface)}
.task-detail-wrap .task-expanded-copy{grid-column:1;display:grid;gap:3px}
.task-detail-wrap .task-expanded-copy strong{font-size:13.5px}
.task-detail-wrap .task-expanded-copy p{margin:0}
dl.task-expanded-meta{grid-column:2;grid-row:1;margin:0;display:grid;gap:8px;align-content:start}
dl.task-expanded-meta div{display:flex;justify-content:space-between;gap:12px;font-size:12px}
dl.task-expanded-meta dt{color:var(--faint);font-weight:700}
dl.task-expanded-meta dd{margin:0;font-weight:700;text-align:right}
.task-detail-wrap .task-comments{grid-column:1/-1;padding-top:12px;border-top:1px solid var(--border)}
.task-expand-icon{width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--border);border-radius:50%;color:var(--muted);transition:transform .3s cubic-bezier(.2,.8,.2,1),color .15s,border-color .15s,background-color .15s}
.task-expand-icon svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.task-row:hover .task-expand-icon{color:var(--text);border-color:var(--border-strong)}
.task-row.expanded .task-expand-icon{transform:rotate(180deg);color:var(--accent);border-color:rgba(var(--accent-rgb),.5);background:var(--accent-soft)}
@media (max-width:720px){.task-detail-wrap .task-expanded-detail{grid-template-columns:minmax(0,1fr)}.task-detail-wrap .task-expanded-copy,dl.task-expanded-meta{grid-column:1;grid-row:auto}}

/* clickable things must not move under the pointer: a hover shift lets the press and the release land on different elements */
.btn:not(:disabled):hover,.btn:not(:disabled):active,.public-cta .btn:hover,.home-act-btn:hover{transform:none}
.btn:not(:disabled):active{filter:brightness(.9)}
.nav-btn:not(.nav-soon):hover,.notification-button:hover{transform:none}
.dash-action:hover,.dash-day:hover,.stat-card:hover,.dashboard-grid .card:hover,.map-chip:hover,.home-card:hover,.home-drop:hover,.home-drop.drag,.step:hover{transform:none}
.demo-replay-round-tab:hover:not(:disabled),.demo-replay-full .demo-replay-round-tab:hover:not(:disabled),.demo-replay-rounds .demo-replay-round-tab.rt2:hover:not(:disabled){transform:none}
/* the card header is a toggle, not text: a quick second click must not select a word and swallow the click */
.task-row .task-cell{-webkit-user-select:none;user-select:none}
/* clickable cards are controls, not text */
[data-strat-id],[data-open-player],[data-dash-go],[data-expand-task]{-webkit-user-select:none;user-select:none}

/* update notes */
.changelog-date{display:block;margin:2px 0 6px;color:var(--faint);font-size:11px}

/* connection state is the RIFLR "R": still when up to date, spinning while saving, red when the link is down */
.sync-state{width:34px;height:34px;padding:0;justify-content:center;font-size:0;color:var(--text)}
.sync-state::before{width:22px;height:22px;border-radius:0;background:currentColor;-webkit-mask:var(--riflr-r) center/contain no-repeat;mask:var(--riflr-r) center/contain no-repeat;--riflr-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M15 14h27c7 0 12 5 12 12 0 6-4 10-9 11l11 13H42L31 37h-5v13H15V27h27c1 0 2-1 2-2s-1-2-2-2H15V14Z'/%3E%3C/svg%3E");transition:color .2s}
.sync-state.online::before{background:currentColor}
.sync-state.saving::before{background:currentColor;animation:sync-r-spin .9s linear infinite}
.sync-state.offline,.sync-state.error{color:var(--danger)}
.sync-state.offline::before,.sync-state.error::before{background:currentColor}
@keyframes sync-r-spin{to{transform:rotate(360deg)}}
/* top bar: [update note] [R] [search] [team] [bell] - rings spin around the R while saving or when a team update arrives */
.sync-state{position:relative;overflow:visible}
.sync-state i{position:absolute;inset:0;border-radius:50%;border:2px solid transparent;opacity:0;transition:opacity .2s;pointer-events:none}
.sync-state i+i{inset:4px;border-width:2px}
.sync-state.saving i{opacity:1;border-top-color:rgb(var(--accent-rgb));border-right-color:rgba(var(--accent-rgb),.35);animation:boot-spin 1.1s linear infinite}
.sync-state.saving i+i{border-top-color:#ffd86b;border-right-color:transparent;border-left-color:rgba(255,216,107,.3);animation-duration:1.7s;animation-direction:reverse}
.sync-state.saving::before{animation:none}
.sync-state.offline i,.sync-state.error i{opacity:0}
.sync-state::before{width:18px;height:18px}
.sync-notice{max-width:300px;height:28px;padding:0 12px;display:none;border-radius:999px;color:var(--text);background:var(--accent-soft);font-size:11.5px;font-weight:600;line-height:28px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sync-notice.show{display:inline-block;animation:notice-in .25s ease-out both}
@keyframes notice-in{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
@media (max-width:1100px){.sync-notice{max-width:180px}}
@media (max-width:780px){.sync-notice{display:none!important}}

/* rings: gold while working, green once updated */
.sync-state.saving i{border-top-color:#ffd86b;border-right-color:rgba(255,216,107,.35)}
.sync-state.saving i+i{border-top-color:#f5b83d;border-right-color:transparent;border-left-color:rgba(255,216,107,.3)}
.sync-state.updated i{opacity:1;border-color:var(--success);animation:sync-ok .45s cubic-bezier(.2,.8,.2,1) both}
.sync-state.updated i+i{border-color:color-mix(in srgb,var(--success) 45%,transparent)}
@keyframes sync-ok{from{opacity:0;transform:scale(.75)}to{opacity:1;transform:none}}
.sync-notice.error{color:var(--danger);background:var(--danger-soft)}

/* smoother, livelier status: rings always turn and only fade/recolour, the pill slides in and out */
.sync-state i{opacity:0;border:2px solid transparent;border-top-color:#ffd86b;border-right-color:rgba(255,216,107,.35);animation:boot-spin 2s linear infinite!important;transition:opacity .9s ease,border-color 1.1s ease}
.sync-state i+i{border-top-color:#f5b83d;border-right-color:transparent;border-left-color:rgba(255,216,107,.3);animation-duration:3.2s!important;animation-direction:reverse!important}
.sync-state.saving i,.sync-state.updated i{opacity:1}
.sync-state.updated i{border-color:var(--success)}
.sync-state.updated i+i{border-color:color-mix(in srgb,var(--success) 45%,transparent)}
.sync-state::after{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid var(--success);opacity:0;pointer-events:none}
.sync-state.updated::after{animation:sync-ripple 1.5s ease-out both}
.sync-state::before{transition:color .7s ease,transform .5s ease}
.sync-state.saving::before{animation:sync-breathe 1.1s ease-in-out infinite}
.sync-state.updated{color:var(--success)}
.sync-state.updated::before{animation:sync-r-pop .55s cubic-bezier(.2,1.4,.4,1) both}
@keyframes sync-ripple{from{opacity:.75;transform:scale(1)}to{opacity:0;transform:scale(2)}}
@keyframes sync-breathe{0%,100%{transform:scale(.9)}50%{transform:scale(1.06)}}
@keyframes sync-r-pop{0%{transform:scale(.75)}60%{transform:scale(1.18)}100%{transform:scale(1)}}
.sync-notice{display:inline-block!important;max-width:0;padding:0;opacity:0;transform:translateX(16px) scale(.96);transform-origin:right center;transition:max-width .85s cubic-bezier(.2,.8,.2,1),padding .85s cubic-bezier(.2,.8,.2,1),opacity .7s ease,transform .85s cubic-bezier(.2,.8,.2,1),background-color .7s ease,color .7s ease}
.sync-notice.show{max-width:300px;padding:0 12px;opacity:1;transform:none;animation:none}
@media (max-width:1100px){.sync-notice.show{max-width:180px}}
@media (max-width:780px){.sync-notice{display:none!important}}

/* the real RIFLR logo tile (as on the loading screen) with the same gold rings turning around it */
.sync-state{width:40px;height:40px}
.sync-state::before,.sync-state.online::before,.sync-state.saving::before,.sync-state.updated::before,.sync-state.offline::before,.sync-state.error::before{width:22px;height:22px;border-radius:6px;background:url(/assets/brand/riflr-favicon-2.svg) center/cover no-repeat!important;-webkit-mask:none!important;mask:none!important;box-shadow:0 0 0 1px rgba(255,255,255,.06)}
.sync-state i{inset:0}
.sync-state i+i{inset:6px}
.sync-state.saving::before{animation:boot-pulse 2.2s ease-in-out infinite}
.sync-state.error i,.sync-state.offline i{opacity:1;border-color:var(--danger);animation-play-state:paused}
.sync-state.error i+i,.sync-state.offline i+i{border-color:color-mix(in srgb,var(--danger) 45%,transparent)}
/* The site-wide "reduced motion" switch froze every transition (0.01 ms) - the status light, its notice and the task card are
   deliberate feedback, so they keep their own timing like the loading screen does. */
@media (prefers-reduced-motion:reduce){
  .sync-state i{animation-duration:2s!important;animation-iteration-count:infinite!important;transition-duration:.9s,1.1s!important}
  .sync-state i+i{animation-duration:3.2s!important}
  .sync-state::before{transition-duration:.7s,.5s!important}
  .sync-state.saving::before{animation-duration:2.2s!important;animation-iteration-count:infinite!important}
  .sync-state.updated::before{animation-duration:.55s!important}
  .sync-state.updated::after{animation-duration:1.5s!important}
  .sync-notice{transition-duration:.85s,.85s,.7s,.85s,.7s,.7s!important}
  .task-detail-wrap{transition-duration:.3s,0s!important}
  .task-detail-inner{transition-duration:.25s,.3s!important}
  .task-expand-icon{transition-duration:.3s,.15s,.15s,.15s!important}
}

/* notifications stack to the left of the R */
.sync-notices{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:6px}
.sync-notice.work{color:#ffd86b;background:rgba(255,216,107,.14)}
.sync-notice.ok{color:var(--success);background:var(--success-soft)}
.sync-notice.error{color:var(--danger);background:var(--danger-soft)}

/* resting R: the gold rings keep turning; every so often they fade almost away for a couple of seconds and glide back in */
.sync-state:not(.saving):not(.updated):not(.error):not(.offline) i{animation:boot-spin 2s linear infinite,sync-idle 14s ease-in-out infinite!important}
.sync-state:not(.saving):not(.updated):not(.error):not(.offline) i+i{animation:boot-spin 3.2s linear infinite reverse,sync-idle 14s ease-in-out infinite!important}
.sync-state:not(.saving):not(.updated):not(.error):not(.offline)::before{animation:sync-idle-pop 14s ease-in-out infinite}
@keyframes sync-idle{0%,48%{opacity:1}60%,84%{opacity:.04}97%,100%{opacity:1}}
@keyframes sync-idle-pop{0%,86%{transform:scale(1)}93%{transform:scale(1.07)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){
  .sync-state:not(.saving):not(.updated):not(.error):not(.offline) i{animation-duration:2s,14s!important;animation-iteration-count:infinite,infinite!important}
  .sync-state:not(.saving):not(.updated):not(.error):not(.offline) i+i{animation-duration:3.2s,14s!important;animation-iteration-count:infinite,infinite!important}
  .sync-state:not(.saving):not(.updated):not(.error):not(.offline)::before{animation-duration:14s!important;animation-iteration-count:infinite!important}
}
.draft-note{display:block;margin:4px 0 0;color:var(--orange);font-size:11px;font-weight:700}.draft-note[hidden]{display:none}

/* card note: "Taslak" while unsaved, green "Kaydedildi" right after saving, then it fades */
.draft-note{display:block;margin:0;max-height:0;opacity:0;overflow:hidden;color:var(--orange);font-size:11px;font-weight:700;transition:opacity .6s ease,max-height .6s ease,color .6s ease,margin .6s ease}
.draft-note.on{margin:4px 0 0;max-height:20px;opacity:1}
.draft-note.ok{color:var(--success)}
@media (prefers-reduced-motion:reduce){.draft-note{transition-duration:.6s,.6s,.6s,.6s!important}}

/* friends, public profiles and chat */
.banner-ember{--banner:linear-gradient(120deg,#3b1c15 0%,#a8412f 55%,#ff7a5c 100%)}
.banner-ocean{--banner:linear-gradient(120deg,#0e2a3d 0%,#1b6a8f 55%,#4fc3e8 100%)}
.banner-forest{--banner:linear-gradient(120deg,#12301f 0%,#2f7a4b 55%,#7fd49a 100%)}
.banner-violet{--banner:linear-gradient(120deg,#241a45 0%,#5e43b8 55%,#a58bff 100%)}
.banner-steel{--banner:linear-gradient(120deg,#1c2229 0%,#46535f 55%,#9aa8b4 100%)}
.banner-sand{--banner:linear-gradient(120deg,#3b2e17 0%,#a8863c 55%,#e9cf8b 100%)}
.banner-rose{--banner:linear-gradient(120deg,#3d1527 0%,#b13b69 55%,#ff8fb4 100%)}
.banner-night{--banner:linear-gradient(120deg,#05070b 0%,#1a2233 55%,#39507a 100%)}
.inbox-layout{height:min(740px,calc(100vh - 150px));min-height:460px;margin-top:14px;display:grid;grid-template-columns:320px minmax(0,1fr);gap:12px}
.inbox-side,.inbox-main{min-height:0;padding:0;display:flex;flex-direction:column;overflow:hidden}
.inbox-side-head{padding:12px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid var(--border)}
.inbox-side-head span{display:inline-flex;gap:6px}
.inbox-list{min-height:0;flex:1;overflow-y:auto;padding:6px}
.chat-item{width:100%;padding:9px 10px;display:flex;align-items:center;gap:10px;border:0;border-radius:var(--radius-sm);color:var(--text);background:transparent;text-align:left}
.chat-item:hover{background:var(--hover)}
.chat-item.active{background:var(--accent-soft)}
.chat-avatar{width:36px;height:36px;border-radius:10px;font-size:12px}
.chat-avatar.group,.chat-avatar.team{background:var(--surface-2);color:var(--text)}
.chat-avatar.team{color:var(--accent-ink);background:var(--accent)}
.chat-item-copy{min-width:0;flex:1;display:grid}
.chat-item-copy b{display:flex;align-items:center;gap:6px;overflow:hidden;font-size:13px;white-space:nowrap;text-overflow:ellipsis}
.chat-item-copy b em,.chat-member b em{padding:1px 6px;border-radius:999px;color:var(--muted);background:var(--surface-2);font-size:10px;font-style:normal;font-weight:700}
.chat-item-copy small{overflow:hidden;color:var(--muted);font-size:12px;white-space:nowrap;text-overflow:ellipsis}
.chat-item.unread .chat-item-copy small{color:var(--text);font-weight:600}
.chat-meta{display:grid;justify-items:end;gap:4px}
.chat-meta time{color:var(--faint);font-size:10.5px}
.chat-meta i{min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border-radius:999px;color:#fff;background:var(--danger);font-size:10.5px;font-style:normal;font-weight:700}
.chat-empty{display:grid;justify-items:center;gap:6px;padding:28px 12px;text-align:center}
.chat-empty span{color:var(--muted);font-size:12px}
.chat-placeholder{margin:auto;display:grid;gap:4px;padding:24px;text-align:center}
.chat-placeholder span{color:var(--muted);font-size:12.5px}
.chat-head{padding:10px 14px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border)}
.chat-head-copy{min-width:0;flex:1;display:grid}
.chat-head-copy small{color:var(--muted);font-size:11.5px}
.chat-head-actions{display:inline-flex;gap:6px}
.chat-back{display:none}
.chat-messages{min-height:0;flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:6px;scroll-behavior:smooth}
.chat-day{margin:8px 0 2px;display:flex;justify-content:center}
.chat-day span{padding:2px 10px;border-radius:999px;color:var(--faint);background:var(--surface);font-size:10.5px;font-weight:700}
.chat-older{align-self:center;padding:4px 12px;border:1px solid var(--border);border-radius:999px;color:var(--muted);background:transparent;font-size:11.5px}
.chat-older:hover{color:var(--text);border-color:var(--border-strong)}
.chat-hello{margin:auto;color:var(--faint);font-size:12.5px}
.chat-msg{max-width:min(560px,84%);display:flex;align-items:flex-end;gap:8px;align-self:flex-start}
.chat-msg.mine{align-self:flex-end;flex-direction:row-reverse}
.chat-msg-avatar{padding:0;border:0;background:transparent}
.chat-msg-avatar .avatar{width:26px;height:26px;border-radius:8px;font-size:10px}
.chat-bubble{min-width:0;padding:7px 11px 5px;border-radius:12px 12px 12px 4px;background:var(--surface-2)}
.chat-msg.mine .chat-bubble{border-radius:12px 12px 4px 12px;background:var(--accent-soft)}
.chat-sender{padding:0;border:0;color:var(--accent);background:transparent;font-size:11.5px;font-weight:700}
.chat-bubble p{margin:0;font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.chat-bubble footer{margin-top:2px;display:flex;justify-content:flex-end;align-items:center;gap:8px}
.chat-bubble footer time{color:var(--faint);font-size:10px}
.chat-bubble footer button{padding:0;border:0;color:var(--faint);background:transparent;font-size:10px;opacity:0;transition:opacity .15s}
.chat-msg:hover .chat-bubble footer button{opacity:1}
.chat-bubble footer button:hover{color:var(--danger)}
.chat-msg.deleted{align-self:center;color:var(--faint);font-size:11.5px;font-style:italic}
.chat-msg.deleted p{margin:0}
.chat-composer{padding:10px 12px;display:flex;align-items:flex-end;gap:8px;border-top:1px solid var(--border)}
.chat-composer textarea{min-height:38px;max-height:140px;flex:1;resize:none;padding:9px 12px;line-height:1.4}
.chat-locked{width:100%;padding:8px;color:var(--muted);font-size:12.5px;text-align:center}
.friends-tabs{margin-top:14px;display:flex;flex-wrap:wrap;gap:6px}
.friends-tabs button{height:32px;padding:0 14px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:999px;color:var(--muted);background:transparent;font-size:12.5px;font-weight:600}
.friends-tabs button:hover{color:var(--text);border-color:var(--border-strong)}
.friends-tabs button.active{color:var(--text);border-color:rgba(var(--accent-rgb),.5);background:var(--accent-soft)}
.friends-tabs em{min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border-radius:999px;color:var(--muted);background:var(--surface-2);font-size:10.5px;font-style:normal;font-weight:700}
.friends-tabs em.hot{color:#fff;background:var(--danger)}
.friends-body{margin-top:12px;padding:8px}
.people-list{display:grid}
.people-sub{margin:10px 10px 4px;color:var(--faint);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.people-search{padding:6px 6px 10px}
.person-card{padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border)}
.person-card:last-child{border-bottom:0}
.person-main{min-width:0;padding:0;display:flex;align-items:center;gap:10px;border:0;color:var(--text);background:transparent;text-align:left}
.person-main .avatar{width:34px;height:34px;border-radius:10px;font-size:12px}
.person-main span{min-width:0;display:grid}
.person-main b{overflow:hidden;font-size:13px;white-space:nowrap;text-overflow:ellipsis}
.person-main small{overflow:hidden;color:var(--muted);font-size:11.5px;white-space:nowrap;text-overflow:ellipsis}
.person-actions{display:inline-flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.profile-modal{width:min(520px,100%);padding:0;overflow:hidden}
.profile-banner{height:96px;position:relative;background:var(--banner,var(--surface-2))}
.profile-close{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.35);color:#fff}
.profile-main{margin-top:-34px;padding:0 20px;display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px}
.profile-avatar-lg .avatar{width:76px;height:76px;border-radius:20px;border:4px solid var(--panel);font-size:26px;object-fit:cover}
.profile-id{min-width:0;flex:1;padding-bottom:4px}
.profile-id h2{margin:0;font-size:19px}
.profile-id small{color:var(--muted);font-size:12px}
.profile-tags{width:100%;display:flex;flex-wrap:wrap;gap:6px}
.profile-body{padding:12px 20px 4px;display:grid;gap:10px}
.profile-bio{margin:0;color:var(--text);font-size:13px;line-height:1.55}
.profile-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12.5px}
.profile-row>span{color:var(--faint);font-weight:700}
.profile-row>div{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.map-chip-mini{padding:2px 9px;border-radius:999px;color:var(--text);background:var(--surface-2);font-size:11.5px;font-style:normal;font-weight:600}
.profile-links a{color:var(--accent)}
.profile-hidden{margin:0;color:var(--faint);font-size:11.5px}
.profile-actions{padding:12px 20px 18px;flex-wrap:wrap}
.banner-picker{display:flex;flex-wrap:wrap;gap:8px}
.banner-swatch{position:relative;cursor:pointer}
.banner-swatch input{position:absolute;opacity:0;pointer-events:none}
.banner-swatch span{width:54px;height:30px;display:block;border-radius:8px;border:2px solid transparent;background:var(--banner);transition:transform .2s,border-color .2s}
.banner-swatch input:checked+span{border-color:var(--text);transform:scale(1.08)}
.banner-swatch input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.map-picker,.privacy-picker{display:flex;flex-wrap:wrap;gap:6px 10px}
.map-pick input{position:absolute;opacity:0;pointer-events:none}
.map-pick span{padding:5px 12px;display:inline-block;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:12px;font-weight:600;cursor:pointer}
.map-pick input:checked+span{color:var(--text);border-color:rgba(var(--accent-rgb),.6);background:var(--accent-soft)}
.chat-new-modal,.chat-info-modal{width:min(480px,100%)}
.chat-friend-pick,.chat-members{max-height:320px;overflow-y:auto;display:grid;gap:2px}
.chat-friend{padding:7px 8px;display:flex;align-items:center;gap:10px;border-radius:var(--radius-sm);cursor:pointer}
.chat-friend:hover{background:var(--hover)}
.chat-friend:has(input:checked){background:var(--accent-soft)}
.chat-friend input{accent-color:var(--accent)}
.chat-friend .avatar,.chat-member .avatar{width:30px;height:30px;border-radius:9px;font-size:11px}
.chat-friend span{display:grid}
.chat-friend small{color:var(--muted);font-size:11.5px}
.chat-member{padding:4px 6px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.chat-rename,.chat-add{margin:8px 0;display:flex;gap:6px}
.chat-rename input,.chat-add select{flex:1}
@media (max-width:780px){
  .inbox-layout{grid-template-columns:minmax(0,1fr);height:calc(100vh - 140px)}
  .inbox-layout.has-chat .inbox-side{display:none}
  .inbox-layout:not(.has-chat) .inbox-main{display:none}
  .chat-back{display:inline-grid}
  .chat-msg{max-width:92%}
}
/* profile and team pages, presence, chat dock */
.avatar-wrap{position:relative;display:inline-flex;flex:0 0 auto}
.presence{position:absolute;right:-2px;bottom:-2px;width:11px;height:11px;border-radius:50%;border:2px solid var(--panel);background:var(--faint)}
.presence.on{background:var(--success);box-shadow:0 0 0 0 rgba(63,200,120,.6);animation:presence-pulse 2.4s ease-out infinite}
@keyframes presence-pulse{0%{box-shadow:0 0 0 0 rgba(63,200,120,.5)}70%,100%{box-shadow:0 0 0 7px rgba(63,200,120,0)}}
.pv-hero{margin-top:14px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);background:var(--banner,var(--surface-2))}
.pv-hero-inner{padding:54px 22px 18px;display:flex;align-items:flex-end;flex-wrap:wrap;gap:16px;background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.55) 100%)}
.pv-avatar .avatar,.pv-avatar .tv-logo{width:92px;height:92px;border-radius:24px;border:4px solid rgba(0,0,0,.35);font-size:30px;object-fit:cover}
.pv-avatar .presence{width:16px;height:16px;right:2px;bottom:2px}
.pv-id{min-width:0;flex:1;display:grid;gap:3px;color:#fff}
.pv-id h1{margin:0;font:700 24px 'Space Grotesk',sans-serif;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pv-id small{color:rgba(255,255,255,.78);font-size:12.5px}
.pv-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.pv-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pv-stats{margin-top:10px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--border)}
.pv-tile{padding:11px 14px;display:grid;gap:2px;background:var(--panel)}
.pv-tile span{color:var(--muted);font-size:11.5px;font-weight:600}
.pv-tile b{font:600 16px 'Space Grotesk',sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-hidden{color:var(--faint);font-size:12px;font-weight:600}
.pv-tabs{margin-top:12px;display:flex;gap:4px;border-bottom:1px solid var(--border)}
.pv-tabs button{height:38px;padding:0 16px;border:0;border-bottom:2px solid transparent;color:var(--muted);background:transparent;font-size:13px;font-weight:700}
.pv-tabs button:hover{color:var(--text)}
.pv-tabs button.active{color:var(--text);border-bottom-color:var(--accent)}
.pv-grid{margin-top:12px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:12px;align-items:start}
.pv-grid.single{grid-template-columns:minmax(0,640px)}
.pv-col{display:grid;gap:12px;min-width:0}
.pv-card{padding:14px 16px;display:grid;gap:10px}
.pv-card h3{margin:0;display:flex;align-items:center;gap:8px;font-size:13px}
.pv-card h3 small{color:var(--faint);font-size:11.5px}
.pv-card .muted{margin:0;color:var(--faint);font-size:12.5px}
.pv-team{padding:6px;display:flex;align-items:center;gap:10px;border:0;border-radius:var(--radius-sm);color:var(--text);background:transparent;text-align:left}
.pv-team:not([disabled]):hover{background:var(--hover)}
.pv-team span{display:grid}.pv-team small{color:var(--muted);font-size:11.5px}
.tv-logo-sm{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;color:var(--accent-ink);background:var(--accent);font:700 13px 'Space Grotesk',sans-serif}
.tv-logo{width:92px;height:92px;display:grid;place-items:center;border-radius:24px;color:var(--accent-ink);background:var(--accent);font:700 30px 'Space Grotesk',sans-serif}
.pv-friend-strip{display:flex;flex-wrap:wrap;gap:6px}
.pv-friend-strip button{padding:0;border:0;background:transparent}
.pv-friend-strip .avatar{width:34px;height:34px;border-radius:10px;font-size:12px}
.tv-roster{display:grid;gap:2px}
.tv-member{padding:6px;display:flex;align-items:center;gap:10px;border:0;border-radius:var(--radius-sm);color:var(--text);background:transparent;text-align:left}
.tv-member:hover{background:var(--hover)}
.tv-member .avatar{width:34px;height:34px;border-radius:10px;font-size:12px}
.tv-member span{display:grid}.tv-member small{color:var(--muted);font-size:11.5px}
.team-admin .profile-form{display:grid;gap:10px}
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;padding:6px}
.team-card{padding:10px 12px;display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:var(--surface);text-align:left}
.team-card:hover{border-color:var(--border-strong);background:var(--hover)}
.team-card-copy{min-width:0;display:grid}
.team-card-copy b{display:flex;align-items:center;gap:8px;font-size:13px}
.team-card-copy b em{padding:1px 8px;border-radius:999px;color:var(--success);background:var(--success-soft);font-size:10.5px;font-style:normal;font-weight:700}
.team-card-copy small{overflow:hidden;color:var(--muted);font-size:11.5px;white-space:nowrap;text-overflow:ellipsis}
.team-filter{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.team-filter input[type=search]{flex:1;min-width:220px}
.team-status[data-open-team]{cursor:pointer}
.chat-dock{position:fixed;right:18px;bottom:18px;z-index:150;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.dock-pill{height:40px;padding:0 16px;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border-strong);border-radius:999px;color:var(--text);background:var(--panel);box-shadow:var(--shadow-pop);font-size:13px;font-weight:700;transition:transform .2s,border-color .2s}
.dock-pill:hover{border-color:rgba(var(--accent-rgb),.6)}
.dock-pill .nav-count{position:static}
.chat-dock.open .dock-pill{display:none}
.dock-panel{width:340px;height:min(480px,calc(100vh - 100px));display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-strong);border-radius:14px;background:var(--panel);box-shadow:var(--shadow-pop);animation:dock-in .25s cubic-bezier(.2,.8,.2,1) both}
.dock-panel[hidden]{display:none}
@keyframes dock-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.dock-head{padding:8px 10px}
.dock-head-actions{margin-left:auto;display:inline-flex}
.dock-head .chat-head-actions{display:none}
.dock-tabs{padding:0 8px;display:flex;gap:4px;border-bottom:1px solid var(--border)}
.dock-tabs button{height:34px;padding:0 12px;border:0;border-bottom:2px solid transparent;color:var(--muted);background:transparent;font-size:12.5px;font-weight:700}
.dock-tabs button.active{color:var(--text);border-bottom-color:var(--accent)}
.dock-tabs i{margin-left:4px;padding:0 6px;border-radius:999px;color:#fff;background:var(--danger);font-size:10px;font-style:normal}
.dock-panel .chat-composer{padding:8px}
.dock-panel .chat-messages{padding:10px}
@media (max-width:780px){.chat-dock{right:10px;bottom:10px}.dock-panel{width:calc(100vw - 20px)}.pv-grid{grid-template-columns:minmax(0,1fr)}.pv-hero-inner{padding-top:40px}}
@media (prefers-reduced-motion:reduce){.presence.on{animation-duration:2.4s!important;animation-iteration-count:infinite!important}.dock-panel{animation-duration:.25s!important}}
/* admin "view as" picker + preview bar */
.preview-picker{display:grid;gap:4px;margin:0 0 8px;font-size:11px;color:var(--muted,#9aa59d)}
.preview-picker select{width:100%;min-height:36px;padding:6px 8px;border-radius:9px;border:1px solid rgba(255,190,80,.35);background:rgba(255,190,80,.08);color:inherit;font:inherit;font-size:12px}
.sidebar-collapsed .preview-picker span{display:none}
.preview-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin:0 0 14px;padding:10px 14px;border-radius:12px;border:1px solid rgba(255,190,80,.4);background:rgba(255,190,80,.1);font-size:13px}
.preview-bar>span{flex:1 1 220px}
.preview-bar .preview-picker{margin:0;min-width:190px}
.preview-bar.floating{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:90;margin:0;width:min(780px,calc(100% - 32px));background:rgba(20,24,22,.94);backdrop-filter:blur(10px);box-shadow:0 12px 40px rgba(0,0,0,.5)}

@media (prefers-reduced-motion:reduce){
  .public-nav,.public-copy>*,.public-logo-stage,.public-logo-stage::before,.public-logo-stage::after,.public-logo-stage img,.public-copy h1 span,.public-cta .btn-primary,.public-feature,
  .steps-grid::before,.login-orbs i,.login-art .brand,.login-hero>*,.login-meta,.login-form,.login-hero h1 span,.stat-bars span,.stat-line .ln,.stat-line .area,.dashboard-grid .card,.dash-hero,.dash-hero::after,.dash-hero-map,.dash-countdown,.modal,.notification-panel,.dash-roster-row .progress>span,.home-hero::after,.home-drop-icon,.home-card,.home-bar>span,.home-bar i,.home-notice{animation:none!important}
  .public-feature:hover,.public-cta .btn:hover{transform:none}
}
