/* ============================================================
   Design tokens
   ============================================================ */
:root{
	--bg:#f5f6f8;
	--surface:#ffffff;
	--surface-muted:#f8fafc;
	--surface-hover:#f1f5f9;
	--border:#e6e9ee;
	--border-strong:#d6dbe3;
	--text:#0f172a;
	--text-soft:#3f4a5c;
	--muted:#8a93a3;

	--accent:#2f5fe0;
	--accent-hover:#2650c4;
	--accent-soft:#eef2ff;
	--accent-soft-border:#dbe4fb;

	--danger:#e0392f;
	--danger-hover:#c62f26;
	--danger-soft:#fdf0ef;
	--danger-soft-border:#f6d3d0;

	--success:#1d9a58;
	--success-soft:#eafbf1;
	--success-soft-border:#c9f2da;

	--radius-sm:8px;
	--radius-md:12px;
	--radius-lg:18px;
	--radius-pill:999px;

	--shadow-xs:0 1px 2px rgba(15,23,42,.04);
	--shadow-sm:0 2px 8px rgba(15,23,42,.05);
	--shadow-md:0 8px 24px rgba(15,23,42,.08);
	--shadow-lg:0 24px 64px rgba(15,23,42,.18);

	--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
	--font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
	--chart-grid:#e1e0d9;
	--chart-ink:#0b0b0b;
	--chart-tooltip-bg:#ffffff;
	--chart-tooltip-body:#3f4a5c;
	--chart-tooltip-border:#e6e9ee;
}

html[data-theme="dark"]{
	--bg:#0a0b0d;
	--surface:#14161a;
	--surface-muted:#1a1d23;
	--surface-hover:#22262e;
	--border:#2a2f38;
	--border-strong:#3a4150;
	--text:#f4f6fa;
	--text-soft:#c6ccd8;
	--muted:#8b93a3;

	--accent:#6b8cff;
	--accent-hover:#8aa3ff;
	--accent-soft:#1a2440;
	--accent-soft-border:#2c3c6a;

	--danger:#ff6b63;
	--danger-hover:#ff857e;
	--danger-soft:#3a1b1a;
	--danger-soft-border:#6a2e2b;

	--success:#3dd68c;
	--success-soft:#143526;
	--success-soft-border:#1f5a3c;

	--shadow-xs:0 1px 2px rgba(0,0,0,.35);
	--shadow-sm:0 2px 8px rgba(0,0,0,.35);
	--shadow-md:0 8px 24px rgba(0,0,0,.45);
	--shadow-lg:0 24px 64px rgba(0,0,0,.55);

	--chart-grid:#2a2f38;
	--chart-ink:#f4f6fa;
	--chart-tooltip-bg:#1a1d23;
	--chart-tooltip-body:#c6ccd8;
	--chart-tooltip-border:#2a2f38;
	color-scheme:dark;
}

/* ============================================================
   Base
   ============================================================ */
*,
*::before,
*::after{
	box-sizing:border-box;
}

html,
body{
	margin:0;
	padding:0;
	overflow-x:hidden;
	font-family:var(--font);
	background:var(--bg);
	color:var(--text);
	font-size:15px;
	line-height:1.45;
	-webkit-font-smoothing:antialiased;
}

a{
	color:var(--accent);
	text-decoration:none;
	overflow-wrap:anywhere;
	word-break:break-word;
}

a:hover{
	color:var(--accent-hover);
}

h1,
h2,
h3{
	font-weight:700;
	letter-spacing:-.02em;
	color:var(--text);
}

h1{
	margin:0 0 6px;
	font-size:30px;
	font-weight:800;
	letter-spacing:-.02em;
	overflow-wrap:anywhere;
}

h2{
	margin:0 0 14px;
	font-size:18px;
	font-weight:750;
}

p{
	margin:0;
	color:var(--muted);
}

.container{
	max-width:1480px;
	margin:auto;
	padding:32px 28px 56px;
}

/* ============================================================
   Topbar
   ============================================================ */
.topbar{
	height:64px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:0 28px;
	background:var(--surface);
	background:color-mix(in srgb, var(--surface) 88%, transparent);
	backdrop-filter:blur(8px);
	border-bottom:1px solid var(--border);
	position:sticky;
	top:0;
	z-index:10;
}

.brand{
	font-size:17px;
	font-weight:800;
	color:var(--text);
	letter-spacing:-.02em;
	display:inline-flex;
	align-items:baseline;
	gap:6px;
}

.brand-ver{
	font-size:11px;
	font-weight:600;
	letter-spacing:0;
	color:var(--muted);
	line-height:1;
}

.topbar nav{
	display:flex;
	gap:6px;
	font-size:14px;
	flex-wrap:wrap;
}

.topbar nav a{
	padding:8px 14px;
	border-radius:var(--radius-pill);
	color:var(--text-soft);
	font-weight:600;
	transition:background .15s ease,color .15s ease;
}

.topbar nav a:hover{
	background:var(--surface-hover);
	color:var(--text);
}

.logout-form{
	display:inline-flex;
	margin:0;
}

.logout-link{
	border:0;
	background:transparent;
	padding:8px 14px;
	border-radius:var(--radius-pill);
	color:var(--text-soft);
	font:inherit;
	font-weight:600;
	font-size:14px;
	cursor:pointer;
	transition:background .15s ease,color .15s ease;
}

.logout-link:hover{
	background:var(--danger-soft);
	color:var(--danger);
}

/* ============================================================
   Auth (login) page
   ============================================================ */
.auth-body{
	margin:0;
	min-height:100vh;
	display:flex;
	align-items:center;
	justify-content:center;
	background:var(--bg);
	font-family:var(--font);
	color:var(--text);
	padding:24px;
}

.auth-wrap{
	width:100%;
	max-width:380px;
}

.auth-card{
	background:var(--surface);
	border:1px solid var(--border);
	border-radius:var(--radius-lg);
	box-shadow:var(--shadow-md);
	padding:32px 28px;
	display:grid;
	gap:16px;
}

.auth-brand{
	font-size:15px;
	font-weight:800;
	color:var(--accent);
	letter-spacing:-.01em;
	display:inline-flex;
	align-items:baseline;
	gap:6px;
}

.auth-brand .brand-ver{
	color:color-mix(in srgb, var(--accent) 55%, var(--muted));
}

.auth-card h1{
	margin:0;
	font-size:22px;
}

.auth-card p{
	margin:-8px 0 0;
	font-size:13.5px;
}

.auth-card label{
	display:grid;
	gap:7px;
	font-size:13.5px;
	font-weight:700;
	color:var(--text-soft);
}

.auth-card input{
	width:100%;
	padding:12px 13px;
	border:1px solid var(--border-strong);
	border-radius:var(--radius-md);
	background:var(--surface);
	font:inherit;
	color:var(--text);
	transition:border-color .15s ease,box-shadow .15s ease;
}

.auth-card input:focus{
	outline:none;
	border-color:var(--accent);
	box-shadow:0 0 0 3px var(--accent-soft);
}

.auth-submit{
	width:100%;
	padding:12px;
	margin-top:4px;
}

.auth-hint{
	margin:0;
	text-align:center;
	font-size:12.5px;
	color:var(--muted);
}

/* ============================================================
   Hero / page header
   ============================================================ */
.hero,
.page-head{
	display:flex;
	justify-content:space-between;
	align-items:flex-start;
	gap:24px;
	margin-bottom:22px;
	flex-wrap:wrap;
}

.hero > div,
.page-head-text,
.page-head .chat-hero-main{
	min-width:0;
	flex:1;
}

.page-head h1{
	margin:0 0 4px;
}

.page-head p,
.hero p{
	margin-top:4px;
	overflow-wrap:anywhere;
	word-break:break-word;
	font-size:15px;
}

.actions{
	display:flex;
	gap:10px;
	flex-wrap:wrap;
	justify-content:flex-end;
}

.page-head-actions{
	display:flex;
	align-items:center;
	gap:12px;
	flex-wrap:wrap;
	justify-content:flex-end;
}

.platform-switch{
	display:inline-flex;
	align-items:center;
	padding:3px;
	gap:2px;
	border:1px solid var(--border);
	border-radius:999px;
	background:var(--surface-muted);
}

.platform-switch-opt{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:92px;
	padding:8px 14px;
	border-radius:999px;
	font-size:13px;
	font-weight:700;
	letter-spacing:.01em;
	color:var(--muted);
	text-decoration:none;
	transition:background .15s ease, color .15s ease, box-shadow .15s ease;
}

.platform-switch-opt:hover{
	color:var(--text);
	background:rgba(255,255,255,.55);
}

.platform-switch-opt.is-active{
	color:#fff;
	background:var(--accent);
	box-shadow:0 1px 2px rgba(15, 23, 42, .12);
}

.platform-switch-opt.platform-switch-opt--telegram.is-active,
.platform-switch-opt[href*="telegram"].is-active{
	background:#229ED9;
}

.network-search-bar{
	margin:0 0 18px;
}

.network-search-label{
	display:block;
	margin:0;
}

.network-search-input{
	width:100%;
	box-sizing:border-box;
	padding:12px 16px;
	border:1px solid var(--border);
	border-radius:14px;
	background:var(--surface);
	color:var(--text);
	font:inherit;
	font-size:15px;
	font-weight:600;
	outline:none;
	transition:border-color .15s ease, box-shadow .15s ease;
}

.network-search-input::placeholder{
	color:var(--muted);
	font-weight:500;
}

.network-search-input:focus{
	border-color:var(--accent);
	box-shadow:0 0 0 3px var(--accent-soft);
}

.network-search-empty{
	margin:10px 2px 0;
	font-size:13px;
	font-weight:600;
	color:var(--muted);
}

.network-folder.is-search-hidden,
.network-row.is-search-hidden{
	display:none !important;
}

.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;
}

.platform-switch-opt[href*="platform=vk"].is-active{
	background:#0077FF;
}

/* ============================================================
   Summary bar (replaces metric tiles)
   ============================================================ */
.summary-bar{
	display:flex;
	flex-wrap:wrap;
	gap:2px;
	margin-bottom:28px;
	padding:4px;
	background:var(--surface);
	border:1px solid var(--border);
	border-radius:var(--radius-lg);
	box-shadow:var(--shadow-xs);
}

.summary-item{
	position:relative;
	display:flex;
	flex-direction:column;
	justify-content:center;
	gap:4px;
	min-width:110px;
	flex:1 1 110px;
	padding:14px 16px;
	border-radius:calc(var(--radius-lg) - 2px);
}

.summary-item--accent{
	background:var(--accent-soft);
}

.summary-label{
	font-size:13px;
	font-weight:600;
	color:var(--muted);
	letter-spacing:.01em;
}

.summary-value{
	font-size:26px;
	font-weight:800;
	line-height:1.1;
	letter-spacing:-.02em;
	font-variant-numeric:tabular-nums;
	color:var(--text);
	white-space:nowrap;
}

.summary-value--plus{ color:var(--success); }
.summary-value--minus{ color:var(--danger); }

.num-plus{ color:var(--success); }
.num-minus{ color:var(--danger); }

.summary-chart-btn{
	position:absolute;
	top:12px;
	right:12px;
	width:32px;
	height:32px;
	border:1px solid var(--border-strong);
	border-radius:999px;
	background:var(--surface);
	color:var(--accent);
	display:inline-flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
}

.summary-chart-btn svg{
	width:16px;
	height:16px;
	stroke:currentColor;
	fill:none;
	stroke-width:2;
	stroke-linecap:round;
	stroke-linejoin:round;
}

.summary-chart-btn:hover{
	border-color:var(--accent);
	background:var(--accent-soft);
}

/* ============================================================
   Network folders / chat lists (dashboard)
   ============================================================ */
.network-folder{
	background:var(--surface);
	border:1px solid var(--border);
	border-radius:var(--radius-lg);
	box-shadow:var(--shadow-xs);
	margin-bottom:18px;
	overflow:hidden;
}

.network-folder-head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:16px;
	flex-wrap:wrap;
	padding:16px 20px;
	border-bottom:1px solid var(--border);
	background:var(--surface-muted);
}

.network-folder-title{
	margin:0;
	font-size:20px;
	font-weight:800;
	line-height:1.25;
}

.network-folder-meta{
	display:flex;
	gap:8px;
	flex-wrap:wrap;
}

.network-pill{
	display:inline-flex;
	align-items:center;
	padding:5px 10px;
	border-radius:var(--radius-pill);
	border:1px solid var(--border);
	background:var(--surface);
	font-size:13px;
	font-weight:650;
	color:var(--text-soft);
	line-height:1.2;
}

.network-pill--strong{
	border-color:var(--accent-soft-border);
	background:var(--accent-soft);
	color:var(--accent);
	font-weight:750;
}

.network-list{
	display:flex;
	flex-direction:column;
}

.network-row{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:20px;
	padding:14px 20px;
	border-bottom:1px solid var(--border);
	color:inherit;
	text-decoration:none;
	transition:background .12s ease;
}

.network-row:last-child{
	border-bottom:0;
}

.network-row:hover{
	background:var(--surface-hover);
}

.network-row-main{
	min-width:0;
	flex:1;
	display:flex;
	flex-direction:column;
	gap:4px;
}

.network-row-title{
	font-size:16px;
	font-weight:700;
	color:var(--text);
	line-height:1.3;
}

.network-row:hover .network-row-title{
	color:var(--accent);
}

.network-row-sub{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	align-items:center;
	font-size:13px;
	color:var(--muted);
}

.network-type{
	font-weight:600;
	color:var(--text-soft);
}

.network-address{
	font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
	font-size:12.5px;
	font-weight:600;
	color:var(--text-soft);
}

.network-address--private{
	font-family:inherit;
	font-weight:500;
	font-style:italic;
	color:var(--muted);
}

.network-row-stats{
	display:flex;
	gap:22px;
	flex:0 0 auto;
}

.network-stat{
	display:flex;
	flex-direction:column;
	align-items:flex-end;
	gap:2px;
	min-width:72px;
}

.network-stat em{
	font-style:normal;
	font-size:18px;
	font-weight:800;
	font-variant-numeric:tabular-nums;
	color:var(--text);
	line-height:1.1;
	white-space:nowrap;
}

.network-stat.network-stat--plus em{
	color:var(--success);
}

.network-stat.network-stat--minus em{
	color:var(--danger);
}

.network-stat--today{
	min-width:96px;
}

.network-stat--today em{
	display:inline-flex;
	align-items:baseline;
	gap:8px;
}

.network-delta{
	font-variant-numeric:tabular-nums;
}

.network-delta--plus{
	color:var(--success);
}

.network-delta--minus{
	color:var(--danger);
}

.network-stat small{
	font-size:12px;
	color:var(--muted);
	font-weight:600;
}

.network-empty{
	margin:0;
	padding:20px;
	color:var(--muted);
	font-size:14px;
}

/* ============================================================
   Alerts
   ============================================================ */
.alert{
	margin-bottom:18px;
	padding:14px 16px;
	border-radius:var(--radius-md);
	border:1px solid var(--danger-soft-border);
	background:var(--danger-soft);
	color:#8a231c;
	white-space:pre-wrap;
	font-size:14px;
}

html[data-theme="dark"] .alert{
	color:#ffc9c5;
}

/* ============================================================
   Surfaces: card / panel / section / form
   ============================================================ */
.card,
.panel,
.section,
.form{
	background:var(--surface);
	border:1px solid var(--border);
	border-radius:var(--radius-lg);
	padding:22px;
	box-shadow:var(--shadow-xs);
	min-width:0;
	margin-bottom:20px;
}

/* Legacy tile grids kept for other pages */
.cards{
	display:grid;
	grid-template-columns:repeat(6,minmax(0,1fr));
	gap:10px;
	margin-bottom:22px;
}

.cards-rows{
	display:grid;
	gap:12px;
	margin-bottom:22px;
}

.cards-row{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:12px;
}

.cards-row--2{
	grid-template-columns:repeat(2,minmax(0,1fr));
}

.cards-row--active{
	grid-template-columns:minmax(0,1fr);
}

.cards .card,
.cards-row .card{
	margin-bottom:0;
	padding:16px 14px;
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	min-height:108px;
	min-width:0;
	transition:box-shadow .15s ease,transform .15s ease;
}

.card span{
	display:block;
	margin-bottom:8px;
	color:var(--muted);
	font-size:13px;
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:.03em;
	line-height:1.3;
}

.card strong,
.metric-value strong{
	display:block;
	font-size:28px;
	font-weight:800;
	line-height:1.05;
	letter-spacing:-.02em;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:clip;
	font-variant-numeric:tabular-nums;
	font-feature-settings:"tnum" 1;
	color:var(--text);
}

.cards .card strong,
.cards .metric-value strong{
	font-size:26px;
}

.cards-row .card strong{
	font-size:30px;
}

.metric-value{
	display:flex;
	align-items:flex-end;
	justify-content:space-between;
	gap:10px;
	min-height:38px;
	min-width:0;
}

.metric-value strong{
	min-width:0;
	flex:1 1 auto;
}

.card-audience .metric-value strong{
	padding-right:4px;
}

.card-active-users{
	min-height:148px;
}

.card-active-hint{
	margin:0 0 10px;
	color:var(--text-soft);
	font-size:14px;
	font-weight:600;
	line-height:1.35;
	text-transform:none;
	letter-spacing:0;
}

.card-active-hint em{
	font-style:normal;
	color:var(--muted);
	font-weight:500;
}

.audience-trend-btn{
	width:30px;
	height:30px;
	border:1px solid var(--border-strong);
	border-radius:999px;
	background:var(--surface);
	color:var(--accent);
	display:inline-flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	transition:background-color .15s ease,border-color .15s ease,color .15s ease;
}

.audience-trend-btn:hover{
	background:var(--accent-soft);
	border-color:var(--accent);
}

.audience-trend-btn:focus-visible{
	outline:none;
	box-shadow:0 0 0 3px var(--accent-soft);
}

.audience-trend-btn svg{
	width:16px;
	height:16px;
	stroke:currentColor;
	fill:none;
	stroke-width:2;
	stroke-linecap:round;
	stroke-linejoin:round;
}

.audience-modal{
	position:fixed;
	inset:0;
	z-index:50;
	display:grid;
	place-items:center;
	padding:20px;
}

.audience-modal-backdrop{
	position:absolute;
	inset:0;
	background:rgba(15,23,42,.45);
}

.audience-modal-card{
	position:relative;
	z-index:1;
	width:min(920px,100%);
	background:var(--surface);
	border:1px solid var(--border);
	border-radius:var(--radius-lg);
	box-shadow:var(--shadow-lg);
	padding:18px;
}

.audience-modal-head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:10px;
	margin-bottom:6px;
}

.audience-modal-head h2{
	margin:0;
	font-size:20px;
}

.audience-modal-close{
	border:1px solid var(--border-strong);
	background:var(--surface);
	color:var(--text-soft);
	width:32px;
	height:32px;
	border-radius:999px;
	cursor:pointer;
	font-size:22px;
	line-height:1;
}

.audience-modal-subtitle{
	margin:0 0 12px;
	color:var(--muted);
}

.audience-modal-chart{
	height:360px;
}

.panel-head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	margin-bottom:16px;
}

.panel-head h2{
	margin:0;
}

.chart-expand-btn{
	width:34px;
	height:34px;
	border:1px solid var(--border-strong);
	border-radius:10px;
	background:var(--surface-muted);
	color:var(--text-soft);
	display:inline-flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	flex:0 0 auto;
	transition:background-color .15s ease,border-color .15s ease,color .15s ease;
}

.chart-expand-btn:hover{
	background:var(--accent-soft);
	border-color:var(--accent);
	color:var(--accent);
}

.chart-expand-btn svg{
	width:16px;
	height:16px;
	stroke:currentColor;
	fill:none;
	stroke-width:2;
	stroke-linecap:round;
	stroke-linejoin:round;
}

.chart-modal-card{
	width:min(1100px,100%);
	max-height:min(92vh,900px);
	display:flex;
	flex-direction:column;
	gap:12px;
}

.chart-period-tabs{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
}

.chart-period-tab{
	border:1px solid var(--border-strong);
	background:var(--surface-muted);
	color:var(--text-soft);
	border-radius:999px;
	padding:8px 12px;
	font-size:13px;
	font-weight:700;
	cursor:pointer;
}

.chart-period-tab.is-active{
	background:var(--accent-soft);
	border-color:var(--accent);
	color:var(--accent);
}

.chart-modal-chart{
	height:min(62vh,520px);
	min-height:280px;
}

.theme-toggle{
	display:inline-flex;
	align-items:center;
	gap:8px;
	margin-right:6px;
	padding:4px;
	border:1px solid var(--border);
	border-radius:999px;
	background:var(--surface-muted);
	cursor:pointer;
	user-select:none;
}

.theme-toggle-icon{
	width:16px;
	height:16px;
	display:grid;
	place-items:center;
	color:var(--muted);
}

.theme-toggle-icon svg{
	width:14px;
	height:14px;
	stroke:currentColor;
	fill:none;
	stroke-width:2;
	stroke-linecap:round;
	stroke-linejoin:round;
}

.theme-toggle-track{
	position:relative;
	width:34px;
	height:20px;
	border-radius:999px;
	background:var(--border-strong);
	transition:background-color .15s ease;
}

.theme-toggle-thumb{
	position:absolute;
	top:2px;
	left:2px;
	width:16px;
	height:16px;
	border-radius:50%;
	background:var(--surface);
	box-shadow:var(--shadow-xs);
	transition:transform .15s ease;
}

html[data-theme="dark"] .theme-toggle-track{
	background:var(--accent);
}

html[data-theme="dark"] .theme-toggle-thumb{
	transform:translateX(14px);
}

html[data-theme="dark"] .theme-toggle-icon.is-moon,
html:not([data-theme="dark"]) .theme-toggle-icon.is-sun{
	color:var(--accent);
}

.top-users-table th:nth-child(1),
.top-users-table td:nth-child(1){
	width:48px;
}

.top-users-table th:nth-child(2),
.top-users-table td:nth-child(2){
	width:auto;
}

.top-users-table th:nth-child(3),
.top-users-table td:nth-child(3){
	width:28%;
	min-width:130px;
	text-align:right;
}

.top-users-table th:nth-child(4),
.top-users-table td:nth-child(4){
	width:18%;
	min-width:100px;
	text-align:right;
}

.stats-table th:nth-child(2),
.stats-table td:nth-child(2){
	width:16%;
}

.user-link{
	display:inline-flex;
	align-items:center;
	gap:10px;
	color:inherit;
	text-decoration:none;
	font-weight:600;
	font-size:15px;
	min-width:0;
}

.user-link:hover .user-link-name{
	color:var(--accent);
	text-decoration:underline;
}

.user-avatar{
	width:32px;
	height:32px;
	border-radius:50%;
	object-fit:cover;
	flex:0 0 auto;
	background:var(--border);
}

.user-avatar--placeholder{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	font-size:12px;
	font-weight:700;
	color:var(--muted);
	background:color-mix(in srgb, var(--accent) 12%, var(--surface));
}

.user-link-name{
	min-width:0;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}

body.modal-open{
	overflow:hidden;
}

/* ============================================================
   Chart grid
   ============================================================ */
.grid2{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:20px;
	margin-bottom:20px;
	align-items:start;
}

.chat-bottom-grid{
	align-items:start;
}

.chat-bottom-grid--single{
	grid-template-columns:1fr;
}

.chat-bottom-panel{
	margin-bottom:0;
	min-width:0;
}

.panel{
	overflow:hidden;
}

.panel .chart-box,
.chart-modal-chart,
.audience-modal-chart{
	position:relative;
	width:100%;
}

.panel .chart-box{
	height:280px;
}

canvas{
	width:100%!important;
	max-width:100%;
	max-height:100%;
}

/* ============================================================
   Tables
   ============================================================ */
.table-wrap{
	overflow-x:hidden;
	border:1px solid var(--border);
	border-radius:var(--radius-md);
}

table{
	width:100%;
	max-width:100%;
	table-layout:fixed;
	border-collapse:separate;
	border-spacing:0;
	font-size:14px;
}

thead th{
	position:sticky;
	top:0;
	background:var(--surface-muted);
	color:var(--muted);
	font-weight:700;
	font-size:12px;
	text-transform:uppercase;
	letter-spacing:.03em;
	text-align:left;
	padding:10px 10px;
	white-space:normal;
	overflow-wrap:anywhere;
	border-bottom:1px solid var(--border);
	vertical-align:bottom;
}

tbody td{
	padding:11px 10px;
	border-bottom:1px solid var(--border);
	text-align:left;
	white-space:normal;
	overflow-wrap:anywhere;
	word-break:break-word;
	color:var(--text-soft);
	vertical-align:top;
}

tbody tr:last-child td{
	border-bottom:0;
}

tbody tr{
	transition:background .1s ease;
}

tbody tr:hover{
	background:var(--surface-hover);
}

.chats-table{
	font-size:15px;
}

.chats-table td{
	vertical-align:middle;
}

.title-cell a{
	font-weight:700;
	font-size:16px;
	line-height:1.35;
	color:var(--text);
}

.title-cell a:hover{
	color:var(--accent);
}

.chats-table th:nth-child(1),
.chats-table td:nth-child(1){
	width:36%;
}

.chats-table th:nth-child(2),
.chats-table td:nth-child(2){
	width:10%;
}

.chats-table th:nth-child(3),
.chats-table td:nth-child(3){
	width:24%;
}

.chats-table th:nth-child(4),
.chats-table td:nth-child(4),
.chats-table th:nth-child(5),
.chats-table td:nth-child(5){
	width:15%;
}

.stats-table th,
.stats-table td{
	text-align:right;
}

.stats-table th:first-child,
.stats-table td:first-child{
	text-align:left;
	width:18%;
}

.num-cell{
	font-variant-numeric:tabular-nums;
	white-space:nowrap;
}

.mono-cell .mono,
.mono-cell{
	font-size:13px;
}

.date-cell{
	font-size:13px;
	color:var(--muted);
}

/* ============================================================
   Chat detail avatar
   ============================================================ */
.chat-hero-main{
	min-width:0;
	flex:1;
}

.chat-hero-title-row{
	display:flex;
	align-items:flex-start;
	gap:14px;
}

.chat-hero-title-line{
	display:flex;
	align-items:center;
	gap:10px;
	flex-wrap:wrap;
	min-width:0;
}

.chat-hero-title-line h1{
	margin:0;
}

.platform-badge{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:4px 10px;
	border-radius:999px;
	font-size:12px;
	font-weight:700;
	letter-spacing:0.02em;
	line-height:1.2;
	white-space:nowrap;
	border:1px solid transparent;
}

.platform-badge--max{
	color:#0b3d91;
	background:#e8f1ff;
	border-color:#c9ddff;
}

.platform-badge--telegram{
	color:#0b5c45;
	background:#e7f7f0;
	border-color:#bfe8d6;
}

.platform-badge--vk{
	color:#004d99;
	background:#e8f3ff;
	border-color:#b7d7ff;
}

.network-row-title{
	display:inline-flex;
	align-items:center;
	gap:8px;
	flex-wrap:wrap;
}

.chat-hero-text{
	min-width:0;
}

.chat-avatar{
	width:56px;
	height:56px;
	border-radius:50%;
	object-fit:cover;
	flex:0 0 auto;
	background:var(--surface-muted);
	border:1px solid var(--border);
	box-shadow:0 8px 20px rgba(15,23,42,.08);
}

.chat-avatar--placeholder{
	display:grid;
	place-items:center;
	font-size:22px;
	font-weight:800;
	color:var(--accent);
	background:linear-gradient(135deg, rgba(37,99,235,.12), rgba(15,23,42,.04));
}

.chat-hero-text h1{
	margin:0;
	font-weight:900;
	letter-spacing:-.02em;
}

/* ============================================================
   Buttons
   ============================================================ */
.button,
a.button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:6px;
	border:1px solid transparent;
	border-radius:var(--radius-md);
	background:var(--accent);
	color:#fff;
	padding:11px 18px;
	font:inherit;
	font-weight:700;
	font-size:14px;
	cursor:pointer;
	transition:background .15s ease,box-shadow .15s ease,transform .05s ease;
}

.button:hover,
a.button:hover{
	background:var(--accent-hover);
	color:#fff;
}

.button:active,
a.button:active{
	transform:translateY(1px);
}

.button:disabled{
	opacity:.72;
	cursor:not-allowed;
	color:#fff;
}

.button.danger,
a.button.danger{
	background:var(--danger);
	color:#fff;
}

.button.danger:hover,
a.button.danger:hover{
	background:var(--danger-hover);
	color:#fff;
}

.button.secondary,
a.button.secondary{
	background:var(--surface);
	color:var(--text);
	border:1px solid var(--border-strong);
}

.button.secondary:hover,
a.button.secondary:hover{
	background:var(--surface-hover);
	color:var(--text);
}

.button.small,
a.button.small{
	padding:8px 12px;
	font-size:12.5px;
	border-radius:var(--radius-sm);
}

/* Не даём .card span / a:hover перекрашивать подпись внутри кнопки */
.button span,
a.button span{
	display:inline;
	margin:0;
	color:inherit;
	font-size:inherit;
	font-weight:inherit;
	text-transform:none;
	letter-spacing:normal;
	line-height:inherit;
}

/* ============================================================
   Forms
   ============================================================ */
.form{
	max-width:620px;
	display:grid;
	gap:16px;
}

.form label{
	display:grid;
	gap:7px;
	font-size:13.5px;
	font-weight:700;
	color:var(--text-soft);
}

.form input,
.form select,
.form textarea{
	width:100%;
	padding:12px 13px;
	border:1px solid var(--border-strong);
	border-radius:var(--radius-md);
	background:var(--surface);
	font:inherit;
	color:var(--text);
	transition:border-color .15s ease,box-shadow .15s ease;
}

.form textarea{
	min-height:120px;
	resize:vertical;
	line-height:1.45;
}

.form input:focus,
.form select:focus,
.form textarea:focus{
	outline:none;
	border-color:var(--accent);
	box-shadow:0 0 0 3px var(--accent-soft);
}

.form small{
	display:block;
	margin-top:2px;
	color:var(--muted);
	font-weight:500;
}

.form .check{
	display:flex;
	gap:10px;
	align-items:center;
	font-weight:500;
}

.form .check input{
	width:auto;
}

.mono{
	font-family:var(--font-mono);
	font-size:.94em;
}

.muted-count{
	color:var(--muted);
	font-weight:600;
	font-size:13px;
}

/* ============================================================
   Copy badges (Chat ID / invite link)
   ============================================================ */
.copy-badges{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	margin-top:16px;
}

.copy-badge{
	display:inline-flex;
	align-items:center;
	gap:10px;
	max-width:100%;
	padding:12px 16px;
	border:1px solid var(--accent-soft-border);
	border-radius:var(--radius-md);
	background:var(--accent-soft);
	font:inherit;
	cursor:pointer;
	transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;
	box-shadow:var(--shadow-xs);
}

.copy-badge:hover{
	box-shadow:var(--shadow-sm);
	border-color:var(--accent);
}

.copy-badge.copied{
	background:var(--success-soft);
	border-color:var(--success-soft-border);
}

.copy-badge-label{
	color:var(--accent);
	font-weight:700;
	font-size:12px;
	text-transform:uppercase;
	letter-spacing:.04em;
	white-space:nowrap;
}

.copy-badge-value{
	color:var(--text);
	font-weight:700;
	font-size:15px;
	font-family:var(--font-mono);
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
	max-width:360px;
}

.copy-badge-icon{
	color:var(--accent);
	font-size:16px;
	line-height:1;
}

.copy-badge.copied .copy-badge-icon{
	color:var(--success);
}

a.copy-badge.copy-badge--open-app{
	text-decoration:none;
	color:inherit;
}

a.copy-badge.copy-badge--open-app:hover{
	border-color:var(--accent);
}

/* ============================================================
   Dashboard folder sections
   ============================================================ */
.folder-panel{
	padding:16px 20px 20px;
}

.folder-heading{
	display:flex;
	align-items:center;
	gap:12px;
	margin:0 0 14px;
	line-height:1.25;
	font-size:20px;
	font-weight:800;
}

.folder-audience-badge{
	display:inline-flex;
	align-items:center;
	gap:5px;
	padding:4px 10px;
	border-radius:var(--radius-pill);
	background:var(--surface-muted);
	border:1px solid var(--border);
	font-size:15px;
	font-weight:700;
	white-space:nowrap;
	color:var(--text-soft);
	line-height:1.2;
}

/* ============================================================
   Folders page
   ============================================================ */
.folder-add-form{
	display:grid;
	grid-template-columns:1fr 140px auto;
	gap:14px;
	align-items:end;
	margin-bottom:0;
	max-width:none;
	padding:0;
	border:0;
	box-shadow:none;
}

.folder-sort-field{
	width:140px;
}

.folder-list{
	display:grid;
	gap:10px;
}

.folder-item{
	border:1px solid var(--border);
	border-radius:var(--radius-md);
	overflow:hidden;
	background:var(--surface);
}

.folder-row{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:14px;
	padding:16px 18px;
	flex-wrap:wrap;
}

.folder-info{
	display:flex;
	align-items:center;
	gap:12px;
	min-width:0;
}

.folder-name{
	font-weight:700;
	font-size:15px;
	overflow-wrap:anywhere;
}

.folder-order-badge{
	display:inline-flex;
	align-items:center;
	padding:4px 10px;
	border-radius:var(--radius-pill);
	background:var(--surface-muted);
	border:1px solid var(--border);
	color:var(--muted);
	font-size:12px;
	font-weight:700;
	white-space:nowrap;
}

.folder-actions{
	display:flex;
	gap:8px;
	flex-wrap:wrap;
}

.folder-edit-panel{
	display:none;
	padding:16px 18px 18px;
	border-top:1px solid var(--border);
	background:var(--surface-muted);
}

.folder-edit-panel.open{
	display:block;
}

.folder-edit-form{
	display:grid;
	grid-template-columns:1fr 140px auto;
	gap:12px;
	align-items:end;
}

.folder-edit-actions{
	display:flex;
	gap:8px;
	align-items:center;
}

.folder-empty{
	padding:18px;
	color:var(--muted);
	font-size:14px;
}

/* ============================================================
   Export page
   ============================================================ */
.export-form{
	gap:20px;
	max-width:none;
}

.export-block{
	display:grid;
	gap:10px;
}

.export-title{
	font-size:13px;
	font-weight:700;
	color:var(--text-soft);
	text-transform:uppercase;
	letter-spacing:.04em;
}

.export-grid{
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
	gap:8px;
	max-height:280px;
	overflow-y:auto;
	padding:2px;
}

.export-row{
	display:flex;
	align-items:center;
	gap:9px;
	padding:10px 12px;
	border:1px solid var(--border);
	border-radius:var(--radius-sm);
	background:var(--surface);
	cursor:pointer;
	user-select:none;
	font-size:13px;
	font-weight:500;
	color:var(--text);
	min-width:0;
	transition:border-color .15s ease,background .15s ease;
}

.export-row:hover{
	border-color:var(--border-strong);
	background:var(--surface-muted);
}

.export-row span{
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}

.export-row input{
	width:15px!important;
	height:15px!important;
	min-width:15px;
	margin:0;
	accent-color:var(--accent);
}

.export-quick-dates{
	display:flex;
	gap:8px;
	flex-wrap:wrap;
	margin-bottom:12px;
}

.export-date-row{
	display:flex;
	gap:14px;
	flex-wrap:wrap;
}

.export-date-row label{
	flex:1;
	min-width:160px;
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:900px){

	.topbar{
		height:auto;
		flex-direction:column;
		align-items:flex-start;
		gap:12px;
		padding:16px;
	}

	.container{
		padding:20px 16px 40px;
	}

	.hero,
	.page-head{
		flex-direction:column;
	}

	.actions{
		width:100%;
		justify-content:stretch;
	}

	.actions form{
		flex:1;
	}

	.actions .button{
		width:100%;
	}

	.grid2{
		grid-template-columns:1fr;
	}

	.chat-bottom-grid{
		grid-template-columns:1fr;
	}

	.summary-item{
		min-width:46%;
		flex:1 1 46%;
	}

	.network-row{
		flex-direction:column;
		align-items:flex-start;
		gap:12px;
	}

	.network-row-stats{
		width:100%;
		justify-content:flex-start;
		gap:28px;
	}

	.network-stat{
		align-items:flex-start;
	}

	.cards{
		grid-template-columns:repeat(3,minmax(0,1fr));
	}

	.cards .card strong,
	.cards .metric-value strong{
		font-size:24px;
	}

	.cards-row .card strong{
		font-size:28px;
	}

	.cards-row,
	.cards-row--2{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}

@media (max-width:760px){

	.folder-add-form,
	.folder-edit-form{
		grid-template-columns:1fr;
	}

	.folder-sort-field{
		width:100%;
	}

	.folder-row{
		flex-direction:column;
		align-items:flex-start;
	}

	.folder-actions{
		width:100%;
	}
}

@media (max-width:600px){

	h1{
		font-size:24px;
	}

	.cards{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}

	.cards .card strong,
	.cards .metric-value strong,
	.cards-row .card strong,
	.card strong,
	.metric-value strong{
		font-size:24px;
		font-weight:800;
	}

	.cards-row,
	.cards-row--2,
	.cards-row--active{
		grid-template-columns:1fr;
	}

	.copy-badge-value{
		max-width:180px;
	}
}

/* ============================================================
   Posting composer
   ============================================================ */
.hidden{
	display:none !important;
}

.form-error{
	color:var(--danger);
	font-weight:600;
}

.posting-card{
	max-width:none;
	min-width:0;
}

.posting-layout{
	display:grid;
	grid-template-columns:minmax(0, 1fr) 320px;
	gap:18px;
	align-items:start;
	margin-bottom:22px;
}

.posting-sidebar{
	display:grid;
	gap:14px;
	position:sticky;
	top:76px;
	align-self:start;
}

.posting-ai-card{
	display:grid;
	gap:14px;
	padding:18px 16px;
}

.posting-ai-head h2{
	margin:0 0 4px;
	font-size:18px;
	font-weight:800;
}

.posting-ai-head p{
	margin:0;
	font-size:13px;
	color:var(--muted);
	line-height:1.4;
}

.posting-ai-model-label{
	display:grid;
	gap:7px;
	font-size:13.5px;
	font-weight:700;
	color:var(--text-soft);
}

.posting-ai-model{
	width:100%;
	padding:11px 12px;
	border:1px solid var(--border-strong);
	border-radius:var(--radius-md);
	background:var(--surface);
	font:inherit;
	color:var(--text);
}

.posting-ai-actions{
	display:grid;
	gap:8px;
}

.posting-ai-btn{
	width:100%;
	justify-content:center;
}

.posting-ai-btn:disabled{
	opacity:.65;
	cursor:wait;
}

.posting-ai-status{
	display:flex;
	align-items:center;
	gap:10px;
	margin:0;
	font-size:12.5px;
	font-weight:600;
	line-height:1.35;
	color:var(--muted);
}

.posting-ai-status .posting-spinner--ai{
	display:none;
	width:16px;
	height:16px;
	border-width:2px;
}

.posting-ai-status.is-busy .posting-spinner--ai{
	display:inline-block;
}

.posting-ai-status.is-busy{
	color:var(--accent);
}

.posting-ai-status.is-ok{
	color:var(--success);
}

.posting-ai-status.is-error{
	color:var(--danger);
}

.posting-composer.is-ai-working,
.posting-html-view.is-ai-working{
	position:relative;
	pointer-events:none;
}

.posting-composer.is-ai-working::after,
.posting-html-view.is-ai-working::after{
	content:"";
	position:absolute;
	inset:0;
	z-index:3;
	border-radius:inherit;
	background:
		linear-gradient(110deg, transparent 20%, rgba(255,255,255,.45) 45%, transparent 70%),
		rgba(248, 250, 252, .42);
	background-size:220% 100%, auto;
	animation:ai-shaman 1.35s ease-in-out infinite;
	backdrop-filter:blur(2.5px);
	-webkit-backdrop-filter:blur(2.5px);
}

.posting-composer.is-ai-working .posting-editor,
.posting-html-view.is-ai-working{
	filter:blur(1.6px) saturate(0.85);
	opacity:.72;
}

html[data-theme="dark"] .posting-composer.is-ai-working::after,
html[data-theme="dark"] .posting-html-view.is-ai-working::after{
	background:
		linear-gradient(110deg, transparent 20%, rgba(255,255,255,.12) 45%, transparent 70%),
		rgba(15, 23, 42, .45);
}

@keyframes ai-shaman{
	0%{ background-position:120% 0, 0 0; }
	100%{ background-position:-40% 0, 0 0; }
}

.posting-ai-modal-card{
	max-width:520px;
}

.posting-ai-prompt-input{
	width:100%;
	min-height:140px;
	padding:12px 13px;
	border:1px solid var(--border-strong);
	border-radius:var(--radius-md);
	background:var(--surface);
	font:inherit;
	color:var(--text);
	resize:vertical;
}

.posting-ai-modal-actions{
	display:flex;
	justify-content:flex-end;
	gap:10px;
	margin-top:14px;
}

@media (max-width: 980px){
	.posting-layout{
		grid-template-columns:1fr;
	}
	.posting-sidebar{
		position:static;
	}
}

.posting-form{
	max-width:none;
}

.posting-editor-block{
	display:grid;
	gap:10px;
}

.posting-editor-header{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	font-size:13.5px;
	font-weight:700;
	color:var(--text-soft);
}

.posting-char-row{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	flex-wrap:wrap;
	margin-top:6px;
}

.posting-char-counter{
	display:inline-flex;
	align-items:baseline;
	gap:0.3em;
	flex-shrink:0;
	font-size:12.5px;
	font-weight:700;
	color:var(--muted);
	white-space:nowrap;
	line-height:1.3;
}

/* Override .card span { display:block } inside posting counter */
.posting-char-counter span{
	display:inline !important;
	margin:0 !important;
	color:inherit;
	font-size:inherit;
	font-weight:inherit;
	text-transform:none;
	letter-spacing:normal;
	line-height:inherit;
}

.posting-char-counter.is-over{
	color:var(--danger);
}

.posting-code-toggle{
	font-weight:500;
	color:var(--muted);
}

.posting-composer{
	border:1px solid var(--border-strong);
	border-radius:var(--radius-md);
	overflow:hidden;
	background:var(--surface);
	box-shadow:var(--shadow-xs);
}

.posting-toolbar{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:6px;
	padding:10px 12px;
	border-bottom:1px solid var(--border);
	background:var(--surface-muted);
}

.posting-tool{
	min-width:36px;
	height:34px;
	padding:0 10px;
	border:1px solid transparent;
	border-radius:var(--radius-sm);
	background:transparent;
	color:var(--text-soft);
	font:inherit;
	font-size:13px;
	font-weight:600;
	cursor:pointer;
	transition:background .15s ease,border-color .15s ease,color .15s ease;
}

.posting-tool-b{ font-weight:800; text-transform:none; display:inline; margin:0; letter-spacing:normal; font-size:inherit; color:inherit; }
.posting-tool-i{ font-style:italic; font-weight:600; text-transform:none; display:inline; margin:0; letter-spacing:normal; font-size:inherit; color:inherit; }
.posting-tool-u{ text-decoration:underline; font-weight:600; text-transform:none; display:inline; margin:0; letter-spacing:normal; font-size:inherit; color:inherit; }
.posting-tool-s{ text-decoration:line-through; font-weight:600; text-transform:none; display:inline; margin:0; letter-spacing:normal; font-size:inherit; color:inherit; }

.posting-tool:hover{
	background:var(--surface);
	border-color:var(--border-strong);
}

.posting-tool:focus-visible{
	outline:none;
	border-color:var(--accent);
	box-shadow:0 0 0 3px var(--accent-soft);
}

.posting-tool-sep{
	width:1px;
	height:20px;
	margin:0 2px;
	background:var(--border-strong);
}

.posting-editor{
	min-height:220px;
	max-height:480px;
	overflow:auto;
	padding:16px 18px;
	background:var(--surface);
	font:inherit;
	font-size:15px;
	font-weight:400;
	line-height:1.45;
	color:var(--text);
	outline:none;
	white-space:pre-wrap;
	word-break:break-word;
}

.posting-editor:focus{
	box-shadow:inset 0 0 0 2px var(--accent-soft);
}

.posting-editor.is-empty::before{
	content:attr(data-placeholder);
	color:var(--muted);
	pointer-events:none;
	float:left;
	height:0;
}

.posting-editor p,
.posting-editor div,
.posting-editor span,
.posting-editor li{
	margin:0;
	padding:0;
	color:var(--text);
	font-size:inherit;
	font-weight:400;
	letter-spacing:normal;
	text-transform:none;
	line-height:inherit;
}

.posting-editor p,
.posting-editor div{
	display:block;
}

/* One visual line gap ≈ one Enter; no huge paragraph spacing */
.posting-editor p + p,
.posting-editor div + div,
.posting-editor p + div,
.posting-editor div + p{
	margin-top:0;
}

.posting-editor b,
.posting-editor strong{
	font-weight:700 !important;
	color:var(--text);
	text-transform:none;
}

.posting-editor i,
.posting-editor em{
	font-style:italic;
	color:var(--text);
}

.posting-editor u,
.posting-editor ins{
	text-decoration:underline;
	color:var(--text);
}

.posting-editor s,
.posting-editor del,
.posting-editor strike{
	text-decoration:line-through;
	color:var(--text);
}

.posting-editor blockquote{
	margin:0.6em 0;
	padding:8px 14px;
	border-left:3px solid var(--accent);
	background:var(--accent-soft);
	color:var(--text);
	border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}

.posting-editor a{
	color:var(--accent);
	text-decoration:underline;
}

.posting-target{
	margin:0;
	padding:0;
	border:none;
	display:grid;
	gap:14px;
}

.posting-target legend{
	padding:0;
	margin-bottom:2px;
	font-size:13.5px;
	font-weight:700;
	color:var(--text-soft);
}

.posting-target-modes{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
}

.posting-mode{
	display:inline-flex;
	align-items:center;
	gap:8px;
	padding:9px 12px;
	border:1px solid var(--border-strong);
	border-radius:var(--radius-md);
	background:var(--surface);
	font-weight:600;
	color:var(--text);
	cursor:pointer;
}

.posting-mode:has(input:checked){
	border-color:var(--accent);
	background:var(--accent-soft);
	color:var(--accent);
}

.posting-mode input{
	width:auto;
	margin:0;
}

.posting-target-panel{
	display:grid;
	gap:8px;
}

.posting-target-panel-title{
	font-size:13.5px;
	font-weight:700;
	color:var(--text-soft);
}

.posting-chat-search{
	width:100%;
	padding:11px 13px;
	border:1px solid var(--border-strong);
	border-radius:var(--radius-md);
	background:var(--surface);
	font:inherit;
	color:var(--text);
	transition:border-color .15s ease,box-shadow .15s ease;
}

.posting-chat-search:focus{
	outline:none;
	border-color:var(--accent);
	box-shadow:0 0 0 3px var(--accent-soft);
}

.posting-chat-search:disabled{
	opacity:.55;
	cursor:not-allowed;
}

.posting-chat-search-empty{
	color:var(--muted);
	font-weight:600;
}

.posting-multiselect-head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	font-size:13.5px;
	font-weight:700;
	color:var(--text-soft);
}

.posting-checklist{
	display:grid;
	gap:8px;
	max-height:220px;
	overflow:auto;
	padding:12px;
	border:1px solid var(--border-strong);
	border-radius:var(--radius-md);
	background:var(--surface);
}

.posting-check-item{
	margin:0;
	padding:8px 10px;
	border-radius:var(--radius-sm);
	color:var(--text);
	font-weight:500;
}

.posting-check-item:hover{
	background:var(--surface-muted);
}

.posting-media-drop{
	display:grid;
	gap:10px;
	padding:14px;
	border:1px dashed var(--border-strong);
	border-radius:var(--radius-lg);
	background:var(--surface-muted);
	transition:border-color .15s ease, background .15s ease;
}

.posting-media-drop.is-dragover{
	border-color:var(--accent);
	background:var(--accent-soft);
}

.posting-media-drop.has-media{
	border-style:solid;
	background:var(--surface);
}

.posting-media-drop-head{
	display:flex;
	align-items:baseline;
	justify-content:space-between;
	gap:10px;
	font-size:13.5px;
	font-weight:700;
	color:var(--text-soft);
}

.posting-media-drop-head small{
	font-weight:500;
	color:var(--muted);
}

.posting-media-drop-body{
	display:grid;
	gap:10px;
	margin:0;
	cursor:pointer;
}

.posting-media-drop-hint{
	padding:22px 14px;
	border-radius:var(--radius-md);
	border:1px dashed var(--border);
	background:var(--surface);
	color:var(--muted);
	font-size:13px;
	line-height:1.45;
	text-align:center;
}

.posting-media-preview{
	display:flex;
	flex-direction:column;
	gap:10px;
	min-height:140px;
	border-radius:var(--radius-md);
	overflow:hidden;
	border:1px solid var(--border);
	background:var(--surface-muted);
	padding:10px;
}

.posting-media-preview img{
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
	background:#0f172a08;
}

.posting-media-list{
	display:flex;
	flex-direction:column;
	gap:8px;
}

.posting-media-item{
	display:grid;
	grid-template-columns:56px minmax(0,1fr) auto;
	gap:10px;
	align-items:center;
	padding:6px;
	border:1px solid var(--border);
	border-radius:var(--radius-md);
	background:var(--surface);
}

.posting-media-item-thumb{
	width:56px;
	height:56px;
	border-radius:8px;
	overflow:hidden;
	background:var(--surface-muted);
	display:grid;
	place-items:center;
}

.posting-media-item-thumb img{
	width:56px;
	height:56px;
}

.posting-media-item-meta{
	min-width:0;
}

.posting-media-item-name{
	font-size:13px;
	font-weight:600;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}

.posting-media-item-remove{
	white-space:nowrap;
}

.posting-media-more{
	font-size:12px;
	color:var(--muted);
	padding:0 4px;
}

.posting-media-more-btn{
	align-self:flex-start;
}

.posting-media-preview-fallback{
	padding:8px 6px;
	color:var(--muted);
	font-size:12px;
	font-weight:700;
	text-align:center;
}

.posting-media-drop-actions{
	display:flex;
	justify-content:flex-end;
}

.posting-toast-host{
	display:none;
}

.posting-html-view{
	width:100%;
	min-height:220px;
	padding:14px 16px;
	border:1px solid var(--border-strong);
	border-radius:var(--radius-md);
	background:var(--surface-muted);
	font-family:var(--font-mono);
	font-size:13px;
	line-height:1.5;
	color:var(--text);
	resize:vertical;
}

.posting-html-view:focus{
	outline:none;
	border-color:var(--accent);
	box-shadow:0 0 0 3px var(--accent-soft);
}

.posting-option{
	display:grid;
	grid-template-columns:auto 1fr;
	gap:10px 10px;
	align-items:center;
	padding:14px 16px;
	border:1px solid var(--border);
	border-radius:var(--radius-md);
	background:var(--surface-muted);
}

.posting-option-toggle{
	width:auto !important;
	margin:0;
	padding:0 !important;
	border:0 !important;
	box-shadow:none !important;
	background:transparent !important;
	accent-color:var(--accent);
	cursor:pointer;
}

.posting-option-label{
	display:flex !important;
	align-items:center;
	gap:0;
	margin:0;
	padding:0;
	font-size:13.5px;
	font-weight:500 !important;
	color:var(--text) !important;
	cursor:pointer;
	user-select:none;
}

.posting-schedule-fields,
.posting-promo-fields{
	grid-column:1 / -1;
	display:grid;
	gap:12px;
	padding-top:4px;
}

.posting-schedule-fields{
	gap:8px;
}

/* Pure CSS toggle — no JS, works in all browsers */
#isPromo:not(:checked) ~ .posting-promo-fields,
#isScheduled:not(:checked) ~ .posting-schedule-fields{
	display:none !important;
}

.posting-promo-placement{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	margin:0;
	padding:0;
	border:0;
}

.posting-promo-placement legend{
	width:100%;
	margin:0 0 8px;
	padding:0;
	font-size:13px;
	font-weight:600;
	color:var(--text);
}

.posting-promo-hint{
	color:var(--muted);
	line-height:1.4;
}

.posting-promo-preview{
	padding:10px 12px;
	border-radius:var(--radius-sm);
	background:#0f172a;
	color:#fff;
	font-size:12px;
	line-height:1.35;
	word-break:break-word;
}

.posting-result{
	margin:0;
	max-width:none;
	padding:16px;
}

.posting-result--success{
	border-color:var(--success-soft-border);
	background:var(--success-soft);
}

.posting-result--scheduled{
	border-color:var(--accent-soft-border);
	background:var(--accent-soft);
}

.posting-result--error{
	border-color:var(--danger-soft-border);
	background:var(--danger-soft);
}

.posting-result--progress{
	border-color:var(--accent-soft-border);
	background:var(--accent-soft);
}

.posting-result h2{
	margin:0 0 8px;
	font-size:17px;
}

.posting-result #resultMessage{
	white-space:pre-wrap;
	font-size:13px;
}

.posting-progress{
	display:flex;
	align-items:flex-start;
	gap:12px;
}

.posting-progress .muted-count{
	margin:0;
	font-size:12.5px;
}

.posting-spinner{
	width:22px;
	height:22px;
	border:2.5px solid var(--accent-soft-border);
	border-top-color:var(--accent);
	border-radius:50%;
	animation:posting-spin .7s linear infinite;
	flex:0 0 auto;
	margin-top:2px;
}

.posting-spinner--btn{
	width:14px;
	height:14px;
	border-width:2px;
	border-color:rgba(255,255,255,.35);
	border-top-color:#fff;
	display:inline-block;
	vertical-align:-2px;
	margin-right:2px;
}

.button.is-loading{
	opacity:.92;
	pointer-events:none;
}

@keyframes posting-spin{
	to{ transform:rotate(360deg); }
}

.posting-links{
	display:grid;
	gap:10px;
	margin-top:12px;
}

.posting-links-actions{
	display:flex;
	justify-content:flex-end;
}

.posting-links-pool{
	margin:0;
	padding:12px 13px;
	border:1px solid var(--border);
	border-radius:var(--radius-md);
	background:var(--surface);
	color:var(--text);
	font-family:var(--font-mono);
	font-size:12px;
	line-height:1.5;
	white-space:pre-wrap;
	word-break:break-all;
	user-select:text;
	max-height:220px;
	overflow:auto;
}

.posting-lists{
	display:grid;
	grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
	gap:22px;
	margin-top:8px;
	align-items:start;
}

.posting-list-section{
	display:grid;
	gap:14px;
	min-width:0;
}

.posting-list-head{
	display:flex;
	align-items:baseline;
	justify-content:space-between;
	gap:12px;
}

.posting-list-head h2{
	margin:0;
	font-size:18px;
}

.posting-list-empty{
	color:var(--muted);
	font-weight:500;
}

.posting-list-grid{
	display:grid;
	gap:14px;
}

.posting-list-card{
	display:grid;
	grid-template-columns:96px 1fr;
	gap:12px;
	padding:12px;
	border:1px solid var(--border);
	border-radius:var(--radius-lg);
	background:var(--surface);
	box-shadow:var(--shadow-xs);
}

.posting-list-media{
	width:96px;
	height:96px;
	border-radius:var(--radius-md);
	overflow:hidden;
	background:var(--surface-muted);
	border:1px solid var(--border);
}

.posting-list-media img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}

.posting-list-media-fallback{
	width:100%;
	height:100%;
	display:flex;
	align-items:center;
	justify-content:center;
	color:var(--muted);
	font-size:13px;
	font-weight:700;
}

.posting-list-body{
	display:grid;
	gap:7px;
	min-width:0;
}

.posting-list-meta{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:10px;
}

.posting-list-meta time{
	color:var(--accent);
	font-weight:700;
	font-size:12.5px;
}

.posting-list-target{
	font-weight:700;
	color:var(--text);
	font-size:13.5px;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
	display:flex;
	align-items:center;
	gap:8px;
}

.posting-list-status{
	display:inline-flex;
	align-items:center;
	padding:2px 7px;
	border-radius:999px;
	font-size:11px;
	font-weight:700;
	letter-spacing:.01em;
	flex:0 0 auto;
}

.posting-list-status--failed{
	color:var(--danger);
	background:var(--danger-soft);
	border:1px solid var(--danger-soft-border);
}

.posting-list-text{
	margin:0;
	color:var(--text) !important;
	font-size:13.5px;
	line-height:1.45;
	white-space:pre-wrap;
	display:-webkit-box;
	-webkit-line-clamp:3;
	-webkit-box-orient:vertical;
	overflow:hidden;
}

.posting-list-channels{
	color:var(--muted);
	font-size:12px;
	line-height:1.4;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}

@media (max-width:980px){
	.posting-lists{
		grid-template-columns:1fr;
	}
}

@media (max-width:600px){
	.posting-list-card{
		grid-template-columns:1fr;
	}

	.posting-list-media{
		width:100%;
		height:140px;
	}
}

/* ── Moderation section ──────────────────────────────────────────────── */
.mod-panel{
	margin-top:24px;
	padding:0;
	overflow:hidden;
}
.mod-section-head{
	display:flex;
	align-items:center;
	gap:12px;
	padding:20px 24px 16px;
	border-bottom:1px solid var(--border);
}
.mod-section-head h2{
	margin:0;
	flex:1;
}
.mod-save-hint{
	font-size:13px;
	font-weight:600;
	opacity:0;
	transition:opacity .2s;
}
.mod-save-hint--ok{
	color:var(--green,#1baf7a);
	opacity:1;
}
.mod-save-hint--err{
	color:var(--danger,#d63031);
	opacity:1;
}

.mod-module{
	border-bottom:1px solid var(--border);
}
.mod-module:last-of-type{
	border-bottom:none;
}
.mod-module--active{
	background:color-mix(in srgb,var(--accent) 3%,var(--surface));
}

.mod-module-header{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:12px;
	padding:16px 24px;
	user-select:none;
}
.mod-module-header--standalone{
	cursor:default;
	padding-bottom:8px;
}
.mod-module-title{
	display:flex;
	align-items:flex-start;
	gap:14px;
	flex:1;
}
.mod-module-title strong{
	display:block;
	font-size:15px;
	font-weight:700;
	line-height:1.3;
}
.mod-desc{
	margin:3px 0 0;
	font-size:13px;
	color:var(--muted);
	line-height:1.45;
}

/* Toggle switch — reused from theme-toggle */
.mod-toggle{
	display:inline-flex;
	align-items:center;
	cursor:pointer;
	flex-shrink:0;
	margin-top:2px;
}
.mod-toggle-track{
	position:relative;
	width:38px;
	height:22px;
	border-radius:999px;
	background:var(--border-strong);
	transition:background .15s;
}
.mod-toggle--sm .mod-toggle-track{
	width:32px;
	height:18px;
}
.mod-toggle-thumb{
	position:absolute;
	top:2px;
	left:2px;
	width:18px;
	height:18px;
	border-radius:50%;
	background:#fff;
	box-shadow:var(--shadow-xs);
	transition:transform .15s;
}
.mod-toggle--sm .mod-toggle-thumb{
	width:14px;
	height:14px;
}
.mod-toggle.is-on .mod-toggle-track{
	background:var(--accent);
}
.mod-toggle.is-on .mod-toggle-thumb{
	transform:translateX(16px);
}
.mod-toggle--sm.is-on .mod-toggle-thumb{
	transform:translateX(14px);
}
.mod-hidden-check{
	display:none;
}

/* Module body — collapsed unless active */
.mod-module-body{
	display:none;
	padding:12px 24px 18px;
	border-top:1px solid var(--border);
}
.mod-module--active .mod-module-body{
	display:block;
}
.mod-module-body > .mod-field:last-child,
.mod-module-body > .mod-field--notice:last-child,
.mod-module-body > .mod-action-row:last-child{
	margin-bottom:0;
}

/* Action radio rows */
.mod-action-row{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin-top:4px;
}
.mod-radio{
	display:inline-flex;
	align-items:center;
	gap:6px;
	padding:6px 12px;
	border:1px solid var(--border-strong);
	border-radius:var(--radius-pill);
	font-size:13px;
	font-weight:600;
	cursor:pointer;
	transition:border-color .12s,background .12s,color .12s;
}
.mod-radio input{
	display:none;
}
.mod-radio.is-active{
	border-color:var(--accent);
	background:color-mix(in srgb,var(--accent) 10%,transparent);
	color:var(--accent);
}

/* Field */
.mod-field{
	margin-bottom:12px;
}
.mod-label{
	display:block;
	font-size:12px;
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.04em;
	color:var(--muted);
	margin-bottom:6px;
}

/* Welcome template pills */
.mod-tpl-vars{
	display:flex;
	flex-wrap:wrap;
	gap:6px;
	margin-bottom:8px;
}
.mod-tpl-pill{
	padding:3px 10px;
	border:1px solid var(--accent);
	border-radius:var(--radius-pill);
	background:color-mix(in srgb,var(--accent) 8%,transparent);
	color:var(--accent);
	font-size:12.5px;
	font-weight:600;
	cursor:pointer;
	transition:background .12s;
}
.mod-tpl-pill:hover{
	background:color-mix(in srgb,var(--accent) 18%,transparent);
}

/* Textarea */
.mod-textarea{
	width:100%;
	padding:10px 12px;
	border:1px solid var(--border-strong);
	border-radius:var(--radius-md);
	background:var(--surface-muted);
	color:var(--text);
	font-size:14px;
	font-family:inherit;
	resize:vertical;
	box-sizing:border-box;
	transition:border-color .12s;
}
.mod-textarea:focus{
	outline:none;
	border-color:var(--accent);
}

.mod-command-pill{
	display:inline-flex;
	align-items:center;
	padding:4px 10px;
	border:1px solid var(--accent);
	border-radius:var(--radius-pill);
	background:color-mix(in srgb,var(--accent) 8%,transparent);
	color:var(--accent);
	font-size:13px;
	font-weight:700;
	margin-bottom:8px;
}

/* Keywords tags input */
.mod-keywords-wrap{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:6px;
	padding:8px 10px;
	border:1px solid var(--border-strong);
	border-radius:var(--radius-md);
	background:var(--surface-muted);
	cursor:text;
	min-height:42px;
}
.mod-keywords-wrap:focus-within{
	border-color:var(--accent);
}
.mod-keywords-tags{
	display:contents;
}
.mod-kw-tag{
	display:inline-flex;
	align-items:center;
	gap:4px;
	padding:3px 8px 3px 10px;
	border-radius:var(--radius-pill);
	background:color-mix(in srgb,var(--accent) 12%,transparent);
	border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);
	color:var(--accent);
	font-size:13px;
	font-weight:600;
}
.mod-kw-rm{
	background:none;
	border:none;
	padding:0;
	line-height:1;
	cursor:pointer;
	color:var(--muted);
	font-size:15px;
}
.mod-kw-rm:hover{
	color:var(--danger,#d63031);
}
.mod-keywords-input{
	flex:1;
	min-width:120px;
	border:none;
	background:transparent;
	outline:none;
	font-size:14px;
	font-family:inherit;
	color:var(--text);
}
.mod-keywords-input::placeholder{
	color:var(--muted);
}

/* Media types — horizontal rows */
.mod-module--types .mod-module-header{
	cursor:default;
	padding-bottom:12px;
}
.mod-types-list{
	display:flex;
	flex-direction:column;
	gap:8px;
	padding:0 24px 20px;
}
.mod-type-row{
	border:1px solid var(--border);
	border-radius:var(--radius-md);
	background:var(--surface);
	overflow:hidden;
	transition:border-color .15s, background .15s;
}
.mod-type-row:has(.mod-hidden-check:checked){
	border-color:var(--accent);
	background:color-mix(in srgb,var(--accent) 3%,var(--surface));
}
.mod-type-row-head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	padding:12px 16px;
	min-height:48px;
	box-sizing:border-box;
}
.mod-type-row-head .mod-toggle{
	margin-top:0;
}
.mod-type-label{
	font-size:14px;
	font-weight:700;
	flex:1;
	line-height:1.3;
}
.mod-type-row-body{
	display:none;
	flex-direction:column;
	gap:12px;
	padding:0 16px 14px;
	border-top:1px solid var(--border);
}
.mod-type-row:has(.mod-hidden-check:checked) .mod-type-row-body{
	display:flex;
	padding-top:12px;
}
.mod-type-row-body .mod-action-row{
	margin-top:0;
}
.mod-type-row-body .mod-field--notice{
	margin-bottom:0;
}
.mod-type-row-body .mod-label{
	font-size:11px;
}
.mod-field--notice{
	margin-top:12px;
	margin-bottom:0;
}
.mod-module-body .mod-action-row + .mod-field--notice,
.mod-module-body .mod-field + .mod-action-row{
	margin-top:12px;
}
.mod-textarea--sm{
	font-size:13px;
	min-height:56px;
	padding:8px 10px;
}
.mod-label-hint{
	font-weight:400;
	opacity:.55;
	font-size:11px;
	text-transform:none;
	letter-spacing:0;
}

/* Footer */
.mod-footer{
	padding:16px 24px 20px;
	display:flex;
	justify-content:flex-end;
	border-top:1px solid var(--border);
}

@media(max-width:600px){
	.mod-types-list{
		padding:0 16px 16px;
	}
	.mod-module-header,
	.mod-module-body,
	.mod-section-head,
	.mod-footer{
		padding-left:16px;
		padding-right:16px;
	}
	.mod-type-row-head,
	.mod-type-row:has(.mod-hidden-check:checked) .mod-type-row-body,
	.mod-type-row-body{
		padding-left:12px;
		padding-right:12px;
	}
}

/* ============================================================
   Settings (profile + tokens)
   ============================================================ */
.settings-section{
	display:flex;
	flex-direction:column;
	gap:18px;
}

.settings-section-head{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:16px;
	flex-wrap:wrap;
}

.settings-section-head h2{
	margin:0 0 6px;
}

.settings-lead{
	margin:0;
	max-width:54ch;
	color:var(--text-soft);
	font-size:14px;
	line-height:1.45;
}

.settings-balance,
.settings-token-status{
	display:inline-flex;
	align-items:center;
	padding:8px 12px;
	border-radius:var(--radius-pill);
	border:1px solid var(--border);
	background:var(--surface-muted);
	font-size:13px;
	font-weight:700;
	color:var(--text-soft);
	white-space:nowrap;
}

.settings-form{
	display:grid;
	gap:14px;
	max-width:560px;
}

.settings-howto{
	padding:16px 18px;
	border-radius:var(--radius-md);
	border:1px solid var(--border);
	background:var(--surface-muted);
}

.settings-howto h3{
	margin:0 0 10px;
	font-size:15px;
}

.settings-howto ol{
	margin:0;
	padding-left:1.25rem;
	display:grid;
	gap:8px;
	color:var(--text-soft);
	font-size:14px;
	line-height:1.45;
}

.settings-howto li strong,
.settings-howto code{
	color:var(--text);
}

/* .card strong/.card span заточены под метрики дашборда — сбрасываем в настройках */
.settings-section strong{
	display:inline;
	font-size:inherit;
	font-weight:700;
	line-height:inherit;
	letter-spacing:normal;
	white-space:normal;
	overflow:visible;
	text-overflow:clip;
	font-variant-numeric:normal;
	font-feature-settings:normal;
	color:inherit;
}

.settings-section span{
	display:inline;
	margin-bottom:0;
	color:inherit;
	font-size:inherit;
	font-weight:inherit;
	text-transform:none;
	letter-spacing:normal;
	line-height:inherit;
}

.settings-balance,
.settings-token-status{
	display:inline-flex;
	align-items:center;
	padding:8px 12px;
	border-radius:var(--radius-pill);
	border:1px solid var(--border);
	background:var(--surface-muted);
	font-size:13px;
	font-weight:700;
	color:var(--text-soft);
	white-space:nowrap;
}

.settings-howto code{
	font-family:var(--font-mono);
	font-size:12.5px;
	padding:1px 5px;
	border-radius:6px;
	background:var(--surface);
	border:1px solid var(--border);
}

.settings-howto a{
	color:var(--accent);
	font-weight:600;
}

.settings-howto-note{
	margin:14px 0 0;
	font-size:13px;
	color:var(--muted);
	line-height:1.45;
}

@media(max-width:700px){
	.settings-balance,
	.settings-token-status{
		white-space:normal;
	}
}

/* ===== Сборщик посева ===== */
/* .card span/.card strong заточены под метрики дашборда — сбрасываем */
.seeding-section span{
	display:inline;
	margin-bottom:0;
	color:inherit;
	font-size:inherit;
	font-weight:inherit;
	text-transform:none;
	letter-spacing:normal;
	line-height:inherit;
}

.seeding-section strong{
	display:inline;
	font-size:inherit;
	font-weight:700;
	line-height:inherit;
	letter-spacing:normal;
	white-space:normal;
	overflow:visible;
	text-overflow:clip;
	font-variant-numeric:normal;
	font-feature-settings:normal;
	color:inherit;
}

.seeding-section{
	display:flex;
	flex-direction:column;
	gap:16px;
}

.seeding-section-head{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:16px;
	flex-wrap:wrap;
}

.seeding-section-head h2{
	margin:0 0 6px;
}

.seeding-lead{
	margin:0;
	max-width:58ch;
	color:var(--text-soft);
	font-size:14px;
	line-height:1.45;
}

.seeding-form{
	max-width:620px;
}

.seeding-form--wide{
	max-width:760px;
}

.seeding-form--inline{
	grid-template-columns:1fr auto;
	align-items:end;
	max-width:760px;
}

.seeding-form-actions{
	display:flex;
	gap:8px;
	padding-bottom:2px;
}

.seeding-danger-form{
	margin:0;
}

.seeding-badge{
	display:inline-flex;
	align-items:center;
	padding:8px 12px;
	border-radius:var(--radius-pill);
	border:1px solid var(--border);
	background:var(--surface-muted);
	font-size:13px;
	font-weight:700;
	color:var(--text-soft);
	white-space:nowrap;
}

.seeding-pool-list{
	display:grid;
	gap:10px;
}

.seeding-pool-item{
	border:1px solid var(--border);
	border-radius:var(--radius-md);
	overflow:hidden;
	background:var(--surface);
}

.seeding-pool-row{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:14px;
	padding:16px 18px;
	flex-wrap:wrap;
}

.seeding-pool-info{
	display:flex;
	align-items:center;
	gap:12px;
	flex-wrap:wrap;
	min-width:0;
}

.seeding-pool-name{
	font-weight:700;
	font-size:15px;
	color:var(--text);
}

.seeding-pool-name:hover{
	color:var(--accent);
}

.seeding-pool-meta{
	display:inline-flex;
	align-items:center;
	padding:4px 10px;
	border-radius:var(--radius-pill);
	background:var(--surface-muted);
	border:1px solid var(--border);
	color:var(--muted);
	font-size:12px;
	font-weight:700;
	white-space:nowrap;
}

.seeding-pool-actions{
	display:flex;
	gap:8px;
}

.seeding-empty{
	padding:18px;
	border:1px dashed var(--border-strong);
	border-radius:var(--radius-md);
	color:var(--muted);
	background:var(--surface-muted);
}

.seeding-lookback{
	border:1px solid var(--border);
	border-radius:var(--radius-md);
	padding:12px 14px 14px;
	margin:0;
	background:var(--surface-muted);
}

.seeding-lookback legend{
	padding:0 6px;
	font-size:12.5px;
	font-weight:700;
	color:var(--muted);
}

.seeding-lookback-options{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
}

.seeding-period{
	display:inline-flex;
	align-items:center;
	gap:8px;
	padding:8px 12px;
	border:1px solid var(--border);
	border-radius:var(--radius-md);
	background:var(--surface);
	font-size:13.5px;
	font-weight:600;
	color:var(--text-soft);
	cursor:pointer;
}

.seeding-period:has(input:checked){
	border-color:var(--accent-soft-border);
	background:var(--accent-soft);
	color:var(--text);
}

.seeding-period input{
	width:auto;
	margin:0;
}

.checkbox-inline{
	display:inline-flex;
	align-items:center;
	gap:6px;
	font-size:13.5px;
}

.seeding-check-actions{
	display:flex;
	align-items:center;
	gap:12px;
	flex-wrap:wrap;
}

.seeding-loading{
	display:inline-flex;
	align-items:center;
	gap:8px;
	color:var(--muted);
	font-size:13px;
	font-weight:600;
}

.seeding-loading[hidden]{ display:none !important; }

.seeding-run-meta{
	margin:0;
	font-size:13.5px;
}

.seeding-progress{
	display:flex;
	align-items:flex-start;
	gap:12px;
	padding:14px 16px;
	border:1px solid var(--accent-soft-border);
	border-radius:var(--radius-md);
	background:var(--accent-soft);
}

.seeding-progress-body{
	flex:1 1 auto;
	min-width:0;
}

.seeding-progress strong{
	display:block;
	margin-bottom:0;
	color:var(--text);
}

.seeding-progress-head{
	display:flex;
	align-items:baseline;
	justify-content:space-between;
	gap:12px;
	flex-wrap:wrap;
	margin-bottom:10px;
}

.seeding-progress p{
	margin:0;
}

.seeding-progress-count{
	margin:0;
	font-size:14px;
	font-weight:700;
	color:var(--text);
	font-variant-numeric:tabular-nums;
	white-space:nowrap;
}

.seeding-progress-track{
	height:10px;
	border-radius:var(--radius-pill);
	background:var(--surface);
	border:1px solid var(--accent-soft-border);
	overflow:hidden;
}

.seeding-progress-fill{
	height:100%;
	width:0%;
	border-radius:inherit;
	background:var(--accent);
	transition:width .35s ease;
}

.seeding-progress-hint{
	margin:8px 0 0;
	font-size:13px;
	color:var(--muted);
	word-break:break-all;
}

.seeding-status{
	display:inline-flex;
	padding:2px 8px;
	border-radius:var(--radius-pill);
	font-size:12px;
	font-weight:700;
	background:var(--surface-muted);
	border:1px solid var(--border);
	color:var(--text-soft);
}

.seeding-status--done{
	background:var(--success-soft);
	border-color:var(--success-soft-border);
	color:var(--success);
}

.seeding-status--error{
	background:var(--danger-soft);
	border-color:var(--danger-soft-border);
	color:var(--danger);
}

.seeding-status--running{
	background:var(--accent-soft);
	border-color:var(--accent-soft-border);
	color:var(--accent);
}

.seeding-seed-preview{
	max-width:280px;
	overflow-wrap:anywhere;
}

.table-wrap{ overflow-x:auto; }

.data-table{
	width:100%;
	border-collapse:collapse;
}

.data-table th,
.data-table td{
	padding:10px 12px;
	border-bottom:1px solid var(--border);
	text-align:left;
	vertical-align:top;
	font-size:13px;
}

.data-table th{
	color:var(--muted);
	font-weight:700;
	font-size:12px;
	background:var(--surface-muted);
}

.data-table tbody tr:hover td{
	background:var(--surface-hover);
}

@media(max-width:700px){
	.seeding-form--inline{
		grid-template-columns:1fr;
	}
	.seeding-pool-row{
		align-items:flex-start;
	}
}

/* ===== Районки ===== */
.rayonnki-section span{
	display:inline;
	margin-bottom:0;
	color:inherit;
	font-size:inherit;
	font-weight:inherit;
	text-transform:none;
	letter-spacing:normal;
	line-height:inherit;
}

.rayonnki-head{
	align-items:flex-start;
	flex-wrap:wrap;
	gap:14px;
}

.rayonnki-nav{
	display:flex;
	gap:8px;
	flex-wrap:wrap;
}

.rayonnki-legend{
	display:flex;
	flex-wrap:wrap;
	gap:10px 16px;
	padding:10px 12px;
	border:1px solid var(--border);
	border-radius:var(--radius-md);
	background:var(--surface-muted);
	font-size:12.5px;
	color:var(--text-soft);
}

.rayonnki-legend span{
	display:inline-flex;
	align-items:center;
	gap:6px;
}

.rayonnki-wrap{
	border:1px solid var(--border);
	border-radius:var(--radius-md);
	background:var(--surface);
}

.rayonnki-table{
	min-width:860px;
}

.rayonnki-table th,
.rayonnki-table td{
	vertical-align:middle;
}

.rayonnki-outlet-col{
	min-width:200px;
	max-width:260px;
	position:sticky;
	left:0;
	z-index:2;
	background:var(--surface);
	box-shadow:1px 0 0 var(--border);
}

.rayonnki-table thead .rayonnki-outlet-col{
	background:var(--surface-muted);
	z-index:3;
}

.rayonnki-day-col{
	text-align:center;
	min-width:112px;
}

.rayonnki-day-col.is-today,
.rayonnki-cell-td.is-today{
	background:var(--accent-soft);
}

.rayonnki-day-label{
	display:block;
	font-weight:700;
	color:var(--text);
}

.rayonnki-day-num{
	display:block;
	font-size:11px;
	color:var(--muted);
	font-weight:600;
	margin-top:2px;
}

.rayonnki-outlet-name{
	font-weight:700;
	font-size:13.5px;
	color:var(--text);
	line-height:1.3;
}

.rayonnki-outlet-meta{
	margin-top:4px;
	font-size:12px;
	color:var(--muted);
	line-height:1.35;
}

.rayonnki-outlet-link{
	display:inline-block;
	margin-top:4px;
	font-size:12px;
	font-weight:600;
}

.rayonnki-cell-td{
	padding:6px;
	text-align:center;
}

.rayonnki-cell{
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:3px;
	width:100%;
	min-height:52px;
	padding:6px 5px;
	border:1px solid var(--border);
	border-radius:var(--radius-md);
	background:var(--surface);
	cursor:pointer;
	transition:border-color .15s ease, background .15s ease;
}

.rayonnki-cell:hover{
	border-color:var(--accent-soft-border);
	background:var(--accent-soft);
}

.rayonnki-cell-badges{
	display:flex;
	justify-content:center;
	align-items:center;
	gap:3px;
	flex-wrap:wrap;
	width:100%;
}

.rayonnki-cell-comment{
	display:block;
	max-width:100%;
	padding:0 2px;
	font-size:11px;
	font-weight:500;
	line-height:1.3;
	color:var(--muted, #64748b);
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
	text-align:center;
}

.rayonnki-legend-comment{
	display:inline-block;
	max-width:140px;
	vertical-align:middle;
}

.rayonnki-section .ray-badge{
	display:none;
	align-items:center;
	padding:2px 7px;
	border-radius:var(--radius-pill);
	border:1px solid transparent;
	font-size:10.5px;
	font-weight:700;
	line-height:1.35;
	letter-spacing:.01em;
	white-space:nowrap;
	max-width:100%;
}

.rayonnki-section .ray-badge.is-on{
	display:inline-flex;
}

.rayonnki-section .ray-badge--request.is-on{
	color:#1d4ed8;
	background:#eff6ff;
	border-color:#bfdbfe;
}

.rayonnki-section .ray-badge--repost.is-on{
	color:#15803d;
	background:var(--success-soft);
	border-color:var(--success-soft-border);
}

.rayonnki-section .ray-badge--ours.is-on{
	color:#7e22ce;
	background:#f5f3ff;
	border-color:#ddd6fe;
}

.rayonnki-section .ray-badge--theirs.is-on{
	color:#b45309;
	background:#fffbeb;
	border-color:#fde68a;
}

.rayonnki-section .ray-badge--promo-req.is-on{
	color:#0f766e;
	background:#f0fdfa;
	border-color:#99f6e4;
}

.rayonnki-section .ray-badge--promo-pub.is-on{
	color:#be123c;
	background:#fff1f2;
	border-color:#fecdd3;
}

html[data-theme="dark"] .rayonnki-section .ray-badge--request.is-on{
	color:#93c5fd;
	background:#1a2440;
	border-color:#2c3c6a;
}

html[data-theme="dark"] .rayonnki-section .ray-badge--ours.is-on{
	color:#d8b4fe;
	background:#2a1f3d;
	border-color:#5b3f7a;
}

html[data-theme="dark"] .rayonnki-section .ray-badge--theirs.is-on{
	color:#fcd34d;
	background:#3a2e14;
	border-color:#785c1f;
}

html[data-theme="dark"] .rayonnki-section .ray-badge--promo-req.is-on{
	color:#5eead4;
	background:#12332f;
	border-color:#2a5f57;
}

html[data-theme="dark"] .rayonnki-section .ray-badge--promo-pub.is-on{
	color:#fda4af;
	background:#3a1820;
	border-color:#7a3142;
}

html[data-theme="dark"] .rayonnki-cell-comment{
	color:#94a3b8;
}

.rayonnki-dialog{
	border:1px solid var(--border);
	border-radius:var(--radius-lg, 14px);
	padding:0;
	max-width:440px;
	width:calc(100% - 24px);
	background:var(--surface);
	color:var(--text);
	box-shadow:0 16px 48px rgba(0,0,0,.18);
}

.rayonnki-dialog::backdrop{
	background:rgba(15,23,42,.45);
}

.rayonnki-dialog-form{
	display:flex;
	flex-direction:column;
	gap:16px;
	padding:18px 18px 16px;
}

.rayonnki-dialog-head{
	display:flex;
	justify-content:space-between;
	align-items:flex-start;
	gap:12px;
}

.rayonnki-dialog-head h3{
	margin:0 0 4px;
	font-size:17px;
}

.rayonnki-dialog-sub{
	margin:0;
	font-size:13px;
	color:var(--muted);
}

.rayonnki-checks{
	display:grid;
	gap:8px;
}

.rayonnki-check{
	display:flex;
	align-items:center;
	gap:10px;
	padding:10px 12px;
	border:1px solid var(--border);
	border-radius:var(--radius-md);
	background:var(--surface-muted);
	font-size:13.5px;
	font-weight:600;
	cursor:pointer;
}

.rayonnki-check input{
	width:auto;
	margin:0;
}

.rayonnki-comment-label{
	display:flex;
	flex-direction:column;
	gap:6px;
	font-size:13px;
	font-weight:700;
	color:var(--muted);
}

.rayonnki-comment-label textarea{
	width:100%;
	resize:vertical;
	min-height:72px;
	font-weight:500;
	color:var(--text);
}

.rayonnki-dialog-actions{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
}

.rayonnki-save-status{
	font-size:12.5px;
	color:var(--muted);
	min-height:1.2em;
}

.rayonnki-save-status.is-ok{ color:#16a34a; }
.rayonnki-save-status.is-err{ color:#dc2626; }

@media(max-width:700px){
	.rayonnki-outlet-col{
		min-width:150px;
		max-width:180px;
	}
}
