@charset "UTF-8";
:root {
  color-scheme:dark;
  --bg:#0a0a0c;
  --sidebar:#101012;
  --surface:#141416;
  --surface-raised:#1a1a1d;
  --border:#2a2a2e;
  --border-soft:#222225;
  --text:#f3f3f5;
  --muted:#9898a3;
  --subtle:#73737f;
  --accent:#3b82f6;
  --accent-hover:#5593f7;
  --youtube:#f87171;
  --tiktok:#39d6d0;
  --meta:#ac92f8;
  --green:#72c5a3;
  --radius:10px;
  --sidebar-width:226px;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:14px;
  font-synthesis:none
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:28px
}

body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  line-height:1.5;
  -webkit-font-smoothing:antialiased
}

button,input,select {
  font:inherit
}

button,a,input,select {
  -webkit-tap-highlight-color:transparent
}

a {
  color:inherit;
  text-decoration:none
}

button {
  cursor:pointer
}

button:disabled {
  cursor:not-allowed;
  opacity:.45
}

button,select,a,input {
  outline-offset:4px
}

button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible {
  outline:2px solid #7bacff
}

button {
  color:inherit
}

svg {
  width:18px;
  height:18px;
  stroke-width:1.7;
  flex-shrink:0
}

h1,h2,h3,p {
  margin:0
}

h1,h2,h3 {
  font-weight:600;
  letter-spacing:-.03em
}

h1 {
  font-size:34px;
  line-height:1.2
}

h2 {
  font-size:15px;
  letter-spacing:-.02em
}

h3 {
  font-size:14px
}

p {
  color:var(--muted)
}

[hidden] {
  display:none!important
}

::selection {
  background:#234575;
  color:#fff
}

.muted {
  color:var(--muted)
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}

.skip-link {
  position:fixed;
  z-index:100;
  top:8px;
  left:8px;
  padding:10px 16px;
  background:var(--accent);
  border-radius:6px;
  transform:translateY(-150%)
}

.skip-link:focus {
  transform:none
}

.sidebar {
  width:var(--sidebar-width);
  position:fixed;
  inset:0 auto 0 0;
  z-index:20;
  background:var(--sidebar);
  border-right:1px solid var(--border-soft);
  padding:29px 17px 18px;
  display:flex;
  flex-direction:column
}

.brand {
  display:flex;
  align-items:center;
  gap:9px;
  font-size:19px;
  letter-spacing:-.8px;
  font-weight:650;
  padding-left:7px;
  white-space:nowrap
}

.brand-mark {
  display:grid;
  place-items:center;
  width:29px;
  height:29px;
  background:#f1f1f3;
  border-radius:7px;
  color:#101012
}

.brand-mark svg {
  width:20px;
  height:20px;
  stroke-width:2
}

.brand-dot {
  color:var(--accent);
  margin-left:-7px
}

.workspace {
  display:flex;
  align-items:center;
  gap:10px;
  margin:32px 3px 31px;
  padding:11px 8px;
  border:1px solid var(--border);
  border-radius:8px;
  background:#151517
}

.workspace-avatar,.user-avatar {
  display:grid;
  place-items:center;
  background:#342c26;
  color:#e8b78d;
  font-size:12px;
  font-weight:600;
  border:1px solid #594536;
  border-radius:7px;
  width:30px;
  height:30px;
  flex-shrink:0
}

.workspace>div {
  flex:1;
  min-width:0
}

.workspace strong {
  font-size:12px;
  display:block;
  font-weight:550;
  overflow:hidden;
  text-overflow:ellipsis
}

.workspace div>span {
  display:block;
  font-size:10px;
  color:var(--muted);
  margin-top:2px
}

.workspace>svg {
  width:13px;
  color:var(--subtle)
}

.nav-label {
  color:var(--subtle);
  font-size:9px;
  font-weight:600;
  letter-spacing:1.2px;
  padding:0 11px;
  margin-bottom:11px
}

.nav {
  display:grid;
  gap:5px
}

.nav-item {
  display:flex;
  align-items:center;
  gap:11px;
  min-height:40px;
  padding:10px 12px;
  border-radius:6px;
  color:var(--muted);
  font-size:12px;
  font-weight:500;
  transition:background .2s ease,color .2s ease;
  position:relative
}

.nav-item:hover {
  background:#1c1c20;
  color:var(--text)
}

.nav-item.active {
  color:#dce9ff;
  background:#1a273c
}

.nav-item.active svg {
  color:#75aaff
}

.nav-count {
  margin-left:auto;
  padding:0 6px;
  background:#28282e;
  border-radius:4px;
  color:#bfbfc6;
  font-size:10px;
  font-variant-numeric:tabular-nums
}

.sidebar-bottom {
  margin-top:auto
}

.collection-note {
  margin:24px 10px;
  padding:19px 0;
  border-top:1px solid var(--border-soft);
  font-size:10px
}

.collection-note strong {
  font-weight:500;
  color:#c1c1c9;
  margin-left:5px
}

.collection-note p {
  font-size:10px;
  margin-top:7px;
  line-height:1.7
}

.status-dot {
  display:inline-block;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--green)
}

.logout {
  border:0;
  background:transparent;
  width:100%;
  text-align:left
}

.app-shell {
  margin-left:var(--sidebar-width)
}

.topbar {
  height:65px;
  border-bottom:1px solid var(--border-soft);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 36px;
  background:#0d0d0f
}

.breadcrumb {
  display:flex;
  gap:13px;
  align-items:center;
  font-size:11px;
  color:var(--subtle)
}

.breadcrumb svg {
  width:12px
}

.breadcrumb span {
  color:#d0d0d8
}

.topbar-right {
  display:flex;
  align-items:center;
  gap:22px
}

.private-label {
  display:flex;
  align-items:center;
  gap:6px;
  font-size:10px;
  color:var(--muted)
}

.private-label svg {
  width:13px
}

.user-avatar {
  width:28px;
  height:28px;
  border-radius:50%
}

.main-content {
  max-width:1450px;
  padding:34px 36px 0;
  margin:0 auto
}

.page-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  margin-bottom:29px
}

.eyebrow {
  display:block;
  font-size:9px;
  font-weight:550;
  letter-spacing:1.5px;
  color:var(--subtle);
  margin-bottom:9px
}

.heading-dot {
  color:var(--accent)
}

.page-heading p {
  font-size:12px;
  margin-top:10px
}

.heading-actions {
  display:flex;
  gap:9px
}

.button {
  min-height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:8px 13px;
  border-radius:6px;
  font-size:11px;
  font-weight:550;
  line-height:1.4;
  border:1px solid transparent;
  white-space:nowrap;
  transition:all .2s ease
}

.button svg {
  width:14px;
  height:14px
}

.button:hover:not(:disabled) {
  transform:translateY(-2px)
}

.button:active:not(:disabled) {
  transform:translateY(0)
}

.primary {
  background:var(--accent);
  border-color:#4a8bf2;
  color:#fff;
  box-shadow:0 1px 2px #0005
}

.primary:hover:not(:disabled) {
  background:var(--accent-hover)
}

.secondary {
  background:#1b1b1f;
  border-color:#313137;
  color:#dddde4
}

.secondary:hover:not(:disabled) {
  background:#24242a;
  border-color:#414149
}

.subtle {
  background:transparent;
  border-color:var(--border);
  color:var(--muted)
}

.danger {
  background:#b13442;
  border-color:#ce4654;
  color:#fff
}

.danger:hover {
  background:#c9404d
}

.icon-button {
  display:inline-grid;
  place-items:center;
  width:30px;
  height:30px;
  padding:0;
  background:transparent;
  border:1px solid transparent;
  border-radius:5px;
  color:var(--subtle);
  transition:all .2s ease;
  flex-shrink:0
}

.icon-button svg {
  width:15px;
  height:15px
}

.icon-button:hover:not(:disabled) {
  color:var(--text);
  background:#25252c;
  border-color:#36363e
}

.icon-button.delete:hover {
  color:#ff919a
}

.overview-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--border-soft);
  gap:14px
}

.platform-tabs {
  display:flex;
  gap:22px
}

.platform-tab {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:11px;
  position:relative;
  background:none;
  border:0;
  padding:0 0 13px;
  color:var(--muted);
  white-space:nowrap;
  transition:color .2s
}

.platform-tab:hover,.platform-tab.selected {
  color:var(--text)
}

.platform-tab.selected:after {
  content:"";
  position:absolute;
  bottom:-1px;
  left:0;
  right:0;
  height:2px;
  background:var(--accent);
  border-radius:2px
}

.platform-dot {
  width:6px;
  height:6px;
  border-radius:50%;
  display:inline-block;
  flex-shrink:0
}

.platform-dot.youtube {
  background:var(--youtube)
}

.platform-dot.tiktok {
  background:var(--tiktok)
}

.platform-dot.meta {
  background:var(--meta)
}

.last-sync {
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--subtle);
  font-size:10px;
  padding-bottom:13px
}

.last-sync svg {
  width:12px;
  height:12px
}

.metric-strip {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-bottom:1px solid var(--border-soft);
  padding:27px 0 25px;
  margin-bottom:25px
}

.metric {
  padding:0 22px;
  border-left:1px solid var(--border-soft);
  min-width:0
}

.metric:first-child {
  border-left:0;
  padding-left:0
}

.metric:last-child {
  padding-right:0
}

.metric-label {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:var(--muted);
  font-size:11px;
  margin-bottom:12px
}

.metric-label svg {
  color:var(--subtle);
  width:15px;
  height:15px
}

.metric-value {
  display:block;
  font-weight:550;
  font-size:32px;
  line-height:1.1;
  letter-spacing:-1.3px;
  font-variant-numeric:tabular-nums
}

.metric-detail {
  display:block;
  font-size:10px;
  color:var(--subtle);
  margin-top:13px
}

.loading-value {
  opacity:.3;
  animation:pulse 1.3s ease-in-out infinite
}

.analytics-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 258px;
  gap:20px;
  margin-bottom:35px
}

.chart-panel,.platform-panel {
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface);
  overflow:hidden
}

.panel-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:21px 22px 0;
  gap:12px
}

.panel-heading p {
  font-size:10px;
  margin-top:5px
}

.panel-heading>svg {
  color:var(--subtle);
  width:16px
}

.chart-controls {
  display:flex;
  gap:7px
}

select {
  max-width:100%;
  background:#1c1c21;
  color:#c5c5cf;
  border:1px solid #33333a;
  border-radius:5px;
  font-size:10px;
  min-height:30px;
  padding:5px 25px 5px 9px;
  cursor:pointer
}

.chart-scope {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:17px 22px 0
}

.chart-scope select {
  max-width:240px;
  min-width:0;
  border-color:transparent;
  background:transparent;
  padding-left:0;
  text-overflow:ellipsis
}

.chart-legend {
  display:flex;
  gap:14px;
  font-size:9px;
  color:var(--muted)
}

.chart-legend span {
  display:flex;
  align-items:center;
  gap:5px
}

.chart-legend b {
  width:5px;
  height:5px
}

.chart-wrap {
  height:244px;
  margin:16px 20px 4px;
  position:relative
}

.chart-wrap canvas {
  width:100%;
  height:100%
}

.chart-empty {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:var(--surface);
  text-align:center;
  padding:20px
}

.chart-empty strong {
  font-size:13px;
  font-weight:500;
  margin-top:13px
}

.chart-empty p {
  font-size:11px;
  margin-top:7px;
  max-width:270px
}

.empty-icon {
  width:44px;
  height:44px;
  display:inline-grid;
  place-items:center;
  border:1px solid #34343c;
  background:#1d1d23;
  color:#9494a3;
  border-radius:11px
}

.empty-icon svg {
  width:21px;
  height:21px
}

.empty-icon.small {
  width:36px;
  height:36px;
  border-radius:9px
}

.empty-icon.small svg {
  width:18px
}

.chart-footnote {
  font-size:9px;
  display:flex;
  align-items:center;
  gap:6px;
  padding:10px 22px 17px;
  color:var(--subtle);
  border-top:1px solid var(--border-soft);
  line-height:1.6
}

.chart-footnote svg {
  width:11px;
  height:11px
}

.platform-panel {
  display:flex;
  flex-direction:column
}

.platform-breakdown {
  padding:25px 22px 0;
  display:grid;
  gap:23px
}

.platform-stat-heading {
  display:flex;
  align-items:center;
  gap:9px
}

.platform-stat-heading .platform-icon {
  width:30px;
  height:30px;
  border-radius:7px
}

.platform-stat-heading .platform-icon svg {
  width:15px;
  height:15px
}

.platform-stat-heading strong {
  font-size:11px;
  font-weight:500
}

.platform-stat-heading>span:last-child {
  margin-left:auto;
  font-size:10px;
  color:var(--subtle)
}

.platform-stat-value {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  margin:10px 0 7px
}

.platform-stat-value strong {
  font-size:19px;
  letter-spacing:-.5px;
  font-weight:550;
  font-variant-numeric:tabular-nums
}

.platform-stat-value span {
  font-size:9px;
  color:var(--subtle)
}

progress {
  appearance:none;
  width:100%;
  height:3px;
  border:0;
  background:#29292f;
  border-radius:3px;
  display:block;
  overflow:hidden
}

progress::-webkit-progress-bar {
  background:#29292f
}

progress::-webkit-progress-value {
  background:var(--accent);
  border-radius:3px
}

progress::-moz-progress-bar {
  background:var(--accent)
}

progress.youtube::-webkit-progress-value {
  background:var(--youtube)
}

progress.tiktok::-webkit-progress-value {
  background:var(--tiktok)
}

progress.meta::-webkit-progress-value {
  background:var(--meta)
}

progress.youtube::-moz-progress-bar {
  background:var(--youtube)
}

progress.tiktok::-moz-progress-bar {
  background:var(--tiktok)
}

progress.meta::-moz-progress-bar {
  background:var(--meta)
}

.platform-summary {
  padding:18px 22px;
  margin-top:auto;
  border-top:1px solid var(--border-soft)
}

.platform-summary>span {
  font-size:10px;
  color:#cacad2
}

.platform-summary p {
  margin-top:5px;
  font-size:9px;
  color:var(--subtle);
  line-height:1.7
}

.platform-icon {
  display:inline-grid;
  place-items:center;
  width:34px;
  height:34px;
  flex-shrink:0;
  border:1px solid var(--border);
  border-radius:8px;
  background:#1f1f25
}

.platform-icon.youtube {
  background:#2b1b1e;
  border-color:#492429;
  color:var(--youtube)
}

.platform-icon.tiktok {
  background:#152b2c;
  border-color:#204345;
  color:var(--tiktok)
}

.platform-icon.meta {
  background:#251f32;
  border-color:#3e3155;
  color:var(--meta)
}

.section-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px
}

.section-heading h2 {
  font-size:16px;
  display:flex;
  align-items:center;
  gap:9px
}

.section-heading p {
  font-size:11px;
  margin-top:5px
}

.count-badge {
  font-size:10px;
  background:#222228;
  border:1px solid #303036;
  padding:1px 6px;
  border-radius:5px;
  color:#b7b7c2;
  font-weight:400;
  letter-spacing:0
}

.search-field {
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid var(--border);
  background:#141417;
  border-radius:6px;
  padding:0 10px;
  width:215px
}

.search-field svg {
  width:13px;
  color:var(--subtle)
}

.search-field input {
  background:none;
  border:0;
  outline-offset:0;
  min-width:0;
  padding:9px 0;
  width:100%;
  font-size:10px;
  color:var(--text)
}

input::placeholder {
  color:var(--subtle)
}

.table-container {
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow-x:auto;
  background:#101013
}

.video-table {
  border-collapse:collapse;
  width:100%;
  text-align:left;
  min-width:780px;
  font-size:11px
}

.video-table th {
  color:var(--muted);
  font-weight:400;
  font-size:10px;
  background:#17171b;
  padding:12px 15px;
  border-bottom:1px solid var(--border)
}

.video-table th:first-child {
  padding-left:20px;
  width:43%
}

.video-table th:last-child {
  width:105px
}

.video-table td {
  padding:17px 15px;
  border-bottom:1px solid var(--border-soft);
  font-variant-numeric:tabular-nums
}

.video-table tr:last-child td {
  border-bottom:0
}

.video-table tbody tr {
  transition:background .2s ease
}

.video-table tbody tr:hover {
  background:#19191f
}

.video-table tr.selected-row {
  background:#152134
}

.video-cell {
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0
}

.video-table td:first-child {
  padding-left:20px;
  max-width:400px
}

.video-copy {
  min-width:0
}

.video-name {
  display:block;
  background:none;
  border:0;
  color:#dedee5;
  font-size:11px;
  font-weight:500;
  text-align:left;
  padding:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  transition:color .2s
}

.video-name:hover {
  color:#90baff
}

.video-subtitle {
  display:block;
  color:var(--subtle);
  font-size:9px;
  margin-top:5px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:280px
}

.video-error {
  color:#e1ab74;
  display:flex;
  align-items:center;
  gap:4px;
  margin-top:6px;
  font-size:9px;
  max-width:290px
}

.video-error svg {
  width:11px;
  height:11px
}

.video-error span {
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis
}

.row-actions {
  display:flex;
  gap:1px
}

.row-time {
  color:var(--muted);
  white-space:nowrap;
  font-size:10px
}

.metric-missing {
  color:var(--subtle)
}

.table-footer {
  display:flex;
  justify-content:space-between;
  gap:14px;
  color:var(--subtle);
  font-size:9px;
  margin-top:11px
}

.table-footer>span:last-child {
  display:flex;
  align-items:center;
  gap:5px
}

.table-footer svg {
  width:12px
}

.videos-empty {
  text-align:center;
  padding:44px 24px 48px
}

.videos-empty h3 {
  font-size:16px;
  margin-top:16px
}

.videos-empty p {
  font-size:11px;
  margin:7px auto 20px;
  max-width:310px
}

.accounts-section {
  margin-top:36px
}

.onboarding-card {
  display:flex;
  align-items:center;
  gap:18px;
  margin-bottom:18px;
  padding:18px 20px;
  border:1px solid #294a79;
  border-radius:8px;
  background:linear-gradient(135deg,#17243a,#151b26)
}

.onboarding-card.complete {
  border-color:#285348;
  background:linear-gradient(135deg,#152b27,#151d1b)
}

.onboarding-card>div {
  flex:1;
  min-width:0
}

.onboarding-card h3 {
  font-size:14px;
  margin-bottom:5px
}

.onboarding-card p {
  font-size:10px;
  line-height:1.6;
  max-width:620px
}

.onboarding-step {
  flex:0 0 auto;
  color:#86b5ff;
  font-size:9px;
  font-weight:650;
  letter-spacing:.12em
}

.onboarding-card.complete .onboarding-step {
  color:#77d4bb
}

.small-label {
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--subtle);
  font-size:9px
}

.small-label svg {
  width:12px
}

.account-list {
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border)
}

.account-row {
  display:flex;
  align-items:center;
  gap:14px;
  padding:18px 2px;
  border-bottom:1px solid var(--border-soft)
}

.account-row:last-child {
  border-bottom:0
}

.account-info {
  flex:1;
  min-width:0
}

.account-info h3 {
  font-size:12px;
  font-weight:500;
  letter-spacing:0
}

.account-info p {
  font-size:10px;
  margin-top:4px
}

.account-name {
  font-size:10px;
  color:#c1c1ca;
  display:block;
  margin-top:5px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}

.account-name:empty {
  display:none
}

.connection-status {
  font-size:9px;
  color:var(--subtle);
  display:flex;
  gap:5px;
  align-items:center;
  white-space:nowrap
}

.connection-status.connected {
  color:var(--green)
}

.connection-status.expired {
  color:#e1ab74
}

.connection-status.connected:before {
  content:"";
  width:5px;
  height:5px;
  border-radius:50%;
  background:currentColor
}

.accounts-note {
  font-size:9px;
  line-height:1.7;
  margin-top:12px;
  color:var(--subtle)
}

.page-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid var(--border-soft);
  margin-top:37px;
  padding:19px 0;
  color:var(--subtle);
  font-size:9px
}

.page-footer>span:first-child {
  font-size:11px;
  letter-spacing:-.3px;
  color:#9696a2
}

.page-footer .brand-dot {
  margin-left:1px
}

.modal {
  width:min(450px,calc(100% - 32px));
  max-height:calc(100svh - 40px);
  background:#18181d;
  border:1px solid #36363f;
  color:var(--text);
  border-radius:12px;
  padding:25px;
  box-shadow:0 24px 90px #0008;
  animation:modal-in .18s ease
}

.modal::backdrop {
  background:#000b;
  backdrop-filter:blur(4px)
}

.modal-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:18px
}

.modal h2 {
  font-size:21px
}

.modal p {
  font-size:12px;
  margin-top:9px;
  line-height:1.7
}

.modal label {
  display:block;
  font-size:11px;
  margin:24px 0 8px;
  color:#d4d4de
}

.modal input,.login-form input {
  width:100%;
  background:#0f0f13;
  border:1px solid #37373f;
  border-radius:6px;
  padding:11px 12px;
  font-size:12px;
  min-height:42px;
  color:var(--text);
  transition:border-color .2s,box-shadow .2s
}

.modal input:focus,.login-form input:focus {
  border-color:var(--accent);
  box-shadow:0 0 0 3px #3b82f619
}

.supported-platforms {
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:13px;
  font-size:9px;
  color:var(--subtle);
  flex-wrap:wrap
}

.supported-platforms .platform-dot:not(:first-child) {
  margin-left:8px
}

.modal-actions {
  display:flex;
  justify-content:flex-end;
  gap:9px;
  margin-top:28px
}

.modal .form-error {
  color:#ffa0aa;
  font-size:11px
}

.toast-stack {
  position:fixed;
  bottom:24px;
  right:24px;
  z-index:100;
  display:flex;
  flex-direction:column;
  gap:9px;
  max-width:min(380px,calc(100% - 32px))
}

.toast {
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:14px 16px;
  background:#222229;
  border:1px solid #3b3b45;
  border-radius:8px;
  box-shadow:0 5px 30px #0007;
  font-size:11px;
  animation:toast-in .2s ease
}

.toast>svg {
  width:16px;
  height:16px;
  color:var(--green);
  margin-top:1px
}

.toast.error>svg {
  color:#ff8e9b
}

.toast.warning>svg {
  color:#e9b470
}

.toast>span {
  flex:1
}

.toast .icon-button {
  width:20px;
  height:20px;
  margin:-2px -6px -2px 0
}

.notice {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:20px;
  padding:13px 16px;
  background:#152721;
  border:1px solid #2d5144;
  border-radius:7px;
  color:#bce5d0;
  font-size:12px
}

.notice.error {
  background:#2b191e;
  border-color:#61303b;
  color:#ffb3bf
}

.notice code {
  font-size:11px
}

.spin {
  animation:spin 1s linear infinite
}

.fade-in {
  animation:fade-in .3s ease
}

.login-page {
  min-height:100svh;
  display:grid;
  place-items:center;
  background:#0d0d10
}

.login-shell {
  width:min(380px,calc(100% - 40px));
  padding:50px 0 26px
}

.login-brand {
  padding:0;
  font-size:22px;
  margin-bottom:64px
}

.login-brand .brand-mark {
  width:33px;
  height:33px
}

.login-content h1 {
  font-size:31px;
  margin-bottom:12px
}

.login-content>.muted {
  font-size:12px;
  line-height:1.7;
  margin-bottom:27px
}

.login-content .eyebrow {
  font-size:9px;
  letter-spacing:1.7px;
  margin-bottom:14px
}

.login-form label {
  display:block;
  color:#c7c7d2;
  font-size:11px;
  margin:18px 0 8px
}

.login-form .button {
  width:100%;
  margin-top:24px;
  min-height:42px;
  font-size:12px;
  justify-content:space-between;
  padding-left:16px;
  padding-right:16px
}

.login-assurance {
  display:flex;
  justify-content:center;
  gap:7px;
  align-items:center;
  font-size:10px;
  margin-top:23px;
  color:var(--subtle)
}

.login-assurance svg {
  width:12px;
  height:12px
}

.login-footer {
  display:flex;
  justify-content:center;
  gap:12px;
  margin-top:64px;
  padding-top:22px;
  border-top:1px solid var(--border-soft);
  font-size:9px;
  color:var(--subtle)
}

.login-footer>span {
  color:#4b4b56
}

@keyframes spin {
  to {
    transform:rotate(360deg)
  }
}

@keyframes pulse {
  50% {
    opacity:.7
  }
}

@keyframes modal-in {
  from {
    opacity:0;
    transform:translateY(8px) scale(.98)
  }
  to {
    opacity:1;
    transform:none
  }
}

@keyframes toast-in {
  from {
    opacity:0;
    transform:translateY(10px)
  }
  to {
    opacity:1;
    transform:none
  }
}

@keyframes fade-in {
  from {
    opacity:.4;
    transform:translateY(4px)
  }
  to {
    opacity:1;
    transform:none
  }
}

@media(min-width:1600px) {
  .main-content {
    padding-top:44px
  }
  .chart-wrap {
    height:300px
  }
  .analytics-layout {
    grid-template-columns:minmax(0,1fr) 290px
  }
  .metric-value {
    font-size:38px
  }
  .metric-strip {
    padding-top:32px;
    padding-bottom:32px
  }
  .platform-breakdown {
    gap:28px
  }
}

@media(max-width:1180px) {
  :root {
    --sidebar-width:195px
  }
  .brand {
    font-size:17px;
    gap:7px
  }
  .sidebar {
    padding-left:12px;
    padding-right:12px
  }
  .main-content {
    padding:28px 25px 0
  }
  .topbar {
    padding:0 25px
  }
  .analytics-layout {
    grid-template-columns:minmax(0,1fr) 220px;
    gap:15px
  }
  .panel-heading {
    padding:18px 16px 0
  }
  .chart-scope {
    padding-left:16px;
    padding-right:16px;
    flex-wrap:wrap;
    gap:5px
  }
  .chart-legend {
    gap:10px
  }
  .chart-wrap {
    margin-left:12px;
    margin-right:12px
  }
  .chart-footnote {
    padding-left:16px;
    padding-right:16px
  }
  .platform-breakdown {
    padding-left:16px;
    padding-right:16px
  }
  .platform-summary {
    padding-left:16px;
    padding-right:16px
  }
  .metric-value {
    font-size:28px
  }
  .metric {
    padding:0 15px
  }
  .heading-actions {
    gap:6px
  }
  .heading-actions .button {
    font-size:10px;
    padding-left:10px;
    padding-right:10px
  }
  .platform-tabs {
    gap:16px
  }
  .last-sync {
    font-size:9px
  }
  .panel-heading {
    align-items:flex-start
  }
  .chart-controls {
    gap:4px
  }
  .chart-controls select {
    padding-right:18px
  }
  .workspace {
    gap:7px;
    padding:9px 5px
  }
  .workspace div>span {
    font-size:9px
  }
}

@media(max-width:980px) {
  .analytics-layout {
    grid-template-columns:1fr
  }
  .platform-panel {
    display:none
  }
  .metric-value {
    font-size:25px
  }
  .heading-actions .secondary span {
    display:none
  }
  .heading-actions .secondary {
    width:35px
  }
  .page-heading {
    gap:10px
  }
  .metric-label {
    font-size:10px
  }
  .overview-toolbar {
    flex-wrap:wrap;
    gap:0
  }
  .last-sync {
    margin-left:auto
  }
  .small-label {
    display:none
  }
  .account-row {
    gap:10px
  }
  .account-info p {
    max-width:250px
  }
  .connect-button {
    font-size:10px
  }
}

@media(max-width:760px) {
  :root {
    --sidebar-width:0px
  }
  .sidebar {
    position:relative;
    width:100%;
    padding:17px 20px 0;
    border-right:0;
    border-bottom:1px solid var(--border-soft);
    background:#101012
  }
  .brand {
    padding:0;
    font-size:18px;
    align-self:flex-start
  }
  .workspace,.nav-label,.sidebar-bottom {
    display:none
  }
  .nav {
    display:flex;
    gap:20px;
    margin-top:17px
  }
  .nav-item {
    font-size:11px;
    border-radius:0;
    padding:10px 0 13px;
    background:transparent!important;
    gap:7px;
    min-height:0
  }
  .nav-item.active {
    box-shadow:inset 0 -2px 0 var(--accent)
  }
  .nav-item svg {
    width:15px;
    height:15px
  }
  .nav-count {
    font-size:9px;
    padding:0 5px
  }
  .app-shell {
    margin-left:0
  }
  .topbar {
    height:45px;
    padding:0 20px
  }
  .topbar-right {
    gap:12px
  }
  .private-label {
    font-size:9px
  }
  .breadcrumb {
    font-size:10px;
    gap:8px
  }
  .main-content {
    padding:25px 20px 0
  }
  .page-heading {
    align-items:flex-start;
    margin-bottom:26px
  }
  h1 {
    font-size:29px
  }
  .page-heading p {
    font-size:11px;
    max-width:210px
  }
  .eyebrow {
    font-size:8px
  }
  .heading-actions .secondary {
    display:none
  }
  .heading-actions .primary {
    font-size:10px;
    margin-top:17px
  }
  .heading-actions .primary svg {
    width:13px
  }
  .platform-tabs {
    gap:21px
  }
  .platform-tab {
    font-size:10px
  }
  .last-sync {
    display:none
  }
  .metric-strip {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:23px 0;
    padding:23px 0
  }
  .metric {
    padding:0 0 0 20px
  }
  .metric:nth-child(3) {
    border-left:0;
    padding-left:0
  }
  .metric-value {
    font-size:29px
  }
  .metric-label {
    font-size:11px;
    margin-bottom:10px
  }
  .metric-detail {
    font-size:9px;
    margin-top:10px
  }
  .metric:nth-child(2) {
    padding-right:0
  }
  .analytics-layout {
    margin-bottom:29px
  }
  .panel-heading {
    padding:17px 15px 0;
    gap:7px
  }
  .panel-heading h2 {
    font-size:13px
  }
  .panel-heading p {
    font-size:9px;
    max-width:175px
  }
  .chart-controls {
    flex-direction:column;
    gap:5px
  }
  .chart-controls select {
    font-size:9px;
    min-height:27px
  }
  .chart-scope {
    padding-top:13px
  }
  .chart-scope select {
    font-size:9px;
    max-width:180px
  }
  .chart-legend {
    gap:12px;
    font-size:8px
  }
  .chart-wrap {
    height:220px;
    margin-top:14px
  }
  .chart-footnote {
    font-size:8px;
    align-items:flex-start;
    padding-top:11px
  }
  .chart-footnote svg {
    margin-top:2px
  }
  .section-heading {
    gap:10px;
    align-items:flex-start
  }
  .section-heading h2 {
    font-size:15px
  }
  .section-heading p {
    font-size:10px;
    max-width:200px
  }
  .search-field {
    width:155px
  }
  .search-field input {
    font-size:9px
  }
  .table-footer {
    font-size:8px
  }
  .account-row {
    flex-wrap:wrap;
    gap:10px;
    padding:17px 0
  }
  .account-info {
    flex:1 1 calc(100% - 100px)
  }
  .account-info p {
    font-size:9px;
    max-width:none
  }
  .account-row>.connection-status {
    margin-left:44px;
    flex:1
  }
  .account-row>form {
    margin-left:auto
  }
  .account-row .button {
    min-height:31px;
    padding:6px 10px;
    font-size:10px
  }
  .account-row .platform-icon {
    width:32px;
    height:32px
  }
  .accounts-section {
    margin-top:29px
  }
  .onboarding-card {
    align-items:flex-start;
    flex-wrap:wrap;
    gap:10px;
    padding:16px
  }
  .onboarding-step {
    width:100%
  }
  .onboarding-card .button {
    width:100%
  }
  .accounts-note {
    font-size:8px
  }
  .page-footer {
    margin-top:28px;
    font-size:8px
  }
  .toast-stack {
    bottom:16px;
    right:16px
  }
  .modal {
    padding:22px
  }
  .login-brand {
    margin-bottom:45px
  }
  .login-footer {
    gap:10px;
    margin-top:45px
  }
}

@media(max-width:400px) {
  .main-content {
    padding-left:15px;
    padding-right:15px
  }
  .heading-actions .primary {
    font-size:9px;
    padding:8px
  }
  .platform-tabs {
    gap:16px
  }
  .section-heading {
    flex-wrap:wrap
  }
  .search-field {
    width:100%;
    margin-top:3px
  }
  .chart-legend {
    gap:8px
  }
  .chart-scope select {
    max-width:160px
  }
  .metric-value {
    font-size:27px
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition:none!important
  }
  .button:hover:not(:disabled) {
    transform:none
  }
}

@media(max-width:760px) {
  .sidebar-bottom {
    display:block;
    position:absolute;
    top:17px;
    right:20px;
    margin:0
  }
  .sidebar-bottom .collection-note {
    display:none
  }
  .sidebar-bottom .logout {
    padding:6px 0;
    gap:6px;
    font-size:10px;
    box-shadow:none
  }
  .sidebar-bottom .logout svg {
    width:13px;
    height:13px
  }
}

/* Keep visually hidden table labels inside the scrolling container on mobile. */
.table-container {
  position:relative
}

.sr-only {
  left:0;
  top:0
}

.chart-panel {
  min-width:0
}

@media(max-width:760px) {
  .page-heading {
    flex-wrap:wrap
  }
  .heading-actions {
    width:100%;
    margin-top:5px
  }
  .heading-actions .secondary {
    display:inline-flex;
    width:auto
  }
  .heading-actions .secondary span {
    display:inline
  }
  .heading-actions .primary {
    margin-top:0;
    margin-left:auto
  }
  .heading-actions .button {
    font-size:11px;
    min-height:40px;
    padding:9px 12px
  }
  .metric-detail {
    font-size:10px
  }
  .chart-controls select {
    font-size:11px;
    min-height:32px
  }
  .modal input,.login-form input {
    font-size:16px
  }
  .row-actions .icon-button {
    width:40px;
    height:40px
  }
  .nav-item {
    min-height:40px
  }
  .sidebar-bottom .logout {
    padding:6px 0;
    min-height:30px
  }
}

@media(prefers-reduced-motion:no-preference) {
  .metric-strip,.analytics-layout {
    animation:fade-in .3s ease both
  }
}
