:root{
	--bg:#f5f7f8;
	--panel:#ffffff;
	--panel-soft:rgba(255,255,255,.96);
	--text:#141414;
	--muted:#6f7378;
	--line:#e5e7eb;
	--line-strong:#d4d8dd;
	--red:#ef2b24;
	--red-dark:#b91c1c;
	--red-soft:#fff1f1;
	--green:#10893e;
	--green-dark:#087333;
	--green-soft:#eaf8ee;
	--gold:#f7b32b;
	--gold-soft:#fff7df;
	--blue:#2563eb;
	--shadow:0 18px 54px rgba(15,23,42,.16);
	--soft-shadow:0 8px 24px rgba(15,23,42,.10);
	--radius:8px;
	--tap:44px;
}

*{box-sizing:border-box}

html,body{
	margin:0;
	min-height:100%;
	font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	background:var(--bg);
	color:var(--text);
	letter-spacing:0;
}

button,input,select,textarea{font:inherit}
button{cursor:pointer;border:0}
a{color:inherit}

#app{
	height:100vh;
	height:100dvh;
	overflow:hidden;
	position:relative;
	background:#dfe7e3;
}

#map{
	position:absolute;
	inset:0;
	z-index:1;
	background:#dfe7e3;
}

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

.hidden,
[hidden]{display:none!important}
.muted{color:var(--muted)}
.small{font-size:.86rem}

.icon-sprite{
	position:absolute;
	width:0;
	height:0;
	overflow:hidden;
}

.app-icon{
	width:18px;
	height:18px;
	display:inline-grid;
	place-items:center;
	color:currentColor;
	flex:0 0 auto;
}

.app-icon svg{
	width:100%;
	height:100%;
	display:block;
	fill:currentColor;
	stroke:none;
	stroke-width:0;
	stroke-linecap:round;
	stroke-linejoin:round;
}

.ui-icon{
	width:18px;
	height:18px;
	display:inline-block;
	position:relative;
	color:currentColor;
	flex:0 0 auto;
}

.ui-icon::before,
.ui-icon::after{
	content:"";
	position:absolute;
	box-sizing:border-box;
}

.icon-plus::before,
.icon-plus::after{
	left:50%;
	top:50%;
	width:13px;
	height:2px;
	border-radius:999px;
	background:currentColor;
	transform:translate(-50%,-50%);
}
.icon-plus::after{transform:translate(-50%,-50%) rotate(90deg)}

.icon-list::before{
	left:3px;
	top:4px;
	width:12px;
	height:2px;
	border-radius:999px;
	background:currentColor;
	box-shadow:0 5px 0 currentColor, 0 10px 0 currentColor;
}

.icon-search::before{
	left:3px;
	top:3px;
	width:10px;
	height:10px;
	border:2px solid currentColor;
	border-radius:999px;
}
.icon-search::after{
	width:7px;
	height:2px;
	right:1px;
	bottom:2px;
	border-radius:999px;
	background:currentColor;
	transform:rotate(45deg);
	transform-origin:center;
}

.icon-sliders::before{
	left:2px;
	top:4px;
	width:14px;
	height:2px;
	border-radius:999px;
	background:currentColor;
	box-shadow:0 5px 0 currentColor, 0 10px 0 currentColor;
	opacity:.75;
}
.icon-sliders::after{
	left:4px;
	top:2px;
	width:4px;
	height:4px;
	border-radius:999px;
	background:currentColor;
	box-shadow:7px 5px 0 currentColor, -1px 10px 0 currentColor;
}

.icon-vote::before{
	left:5px;
	top:2px;
	width:2px;
	height:14px;
	border-radius:999px;
	background:currentColor;
	box-shadow:7px 0 0 currentColor;
}
.icon-vote::after{
	left:3px;
	top:2px;
	width:6px;
	height:7px;
	border-left:2px solid currentColor;
	border-right:2px solid currentColor;
	border-top:2px solid currentColor;
	border-radius:4px 4px 2px 2px;
}

.icon-shuffle::before{
	left:2px;
	top:5px;
	width:12px;
	height:8px;
	border-top:2px solid currentColor;
	border-bottom:2px solid currentColor;
	border-radius:8px;
	transform:skewX(-18deg);
}
.icon-shuffle::after{
	right:1px;
	top:3px;
	width:5px;
	height:5px;
	border-top:2px solid currentColor;
	border-right:2px solid currentColor;
	transform:rotate(45deg);
	box-shadow:0 9px 0 -1px currentColor;
}

.icon-pin::before{
	left:4px;
	top:2px;
	width:10px;
	height:10px;
	border:2px solid currentColor;
	border-radius:999px 999px 999px 2px;
	transform:rotate(-45deg);
}
.icon-pin::after{
	left:8px;
	top:6px;
	width:3px;
	height:3px;
	border-radius:999px;
	background:currentColor;
}

.icon-target::before{
	inset:3px;
	border:2px solid currentColor;
	border-radius:999px;
}
.icon-target::after{
	left:7px;
	top:7px;
	width:4px;
	height:4px;
	border-radius:999px;
	background:currentColor;
	box-shadow:0 0 0 5px rgba(37,99,235,.10);
}

.topbar{
	position:fixed;
	top:14px;
	left:14px;
	right:14px;
	z-index:550;
	display:flex;
	justify-content:flex-end;
	align-items:center;
	pointer-events:none;
}

.topbar-actions{
	display:flex;
	gap:8px;
	pointer-events:auto;
}

.icon-btn{
	width:44px;
	height:44px;
	border-radius:999px;
	display:grid;
	place-items:center;
	background:var(--panel-soft);
	border:1px solid rgba(255,255,255,.88);
	box-shadow:var(--soft-shadow);
	color:var(--text);
	text-decoration:none;
	pointer-events:auto;
}

.icon-btn:hover{background:#fff}

.thumb-rail{
	position:fixed;
	right:14px;
	bottom:calc(28px + env(safe-area-inset-bottom, 0px));
	z-index:560;
	display:flex;
	flex-direction:column;
	align-items:flex-end;
	gap:8px;
	pointer-events:auto;
}

.thumb-btn{
	min-height:46px;
	border-radius:999px;
	background:var(--panel-soft);
	border:1px solid rgba(255,255,255,.9);
	box-shadow:var(--soft-shadow);
	color:var(--text);
	font-weight:900;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	padding:0 15px;
}

.thumb-btn:hover{background:#fff}

.sidebar{
	position:fixed;
	z-index:600;
	inset:0 0 0 auto;
	width:min(88vw,360px);
	max-width:360px;
	background:var(--panel-soft);
	backdrop-filter:blur(18px);
	box-shadow:var(--shadow);
	border-left:1px solid rgba(255,255,255,.86);
	border-radius:14px 0 0 14px;
	transform:translateX(0);
	transition:none;
	display:grid;
	grid-template-rows:auto auto 1fr;
	overflow:hidden;
}

body.app-ready .sidebar{
	transition:transform .24s ease, opacity .24s ease;
}

.sidebar.closed{
	transform:translateX(calc(100% + 18px));
}

.menu-rail{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	padding:12px 12px 10px;
	border-bottom:1px solid var(--line);
}

.menu-brand{
	display:flex;
	align-items:center;
	gap:11px;
	min-width:0;
}

.brand-icon{
	width:34px;
	height:34px;
	display:block;
	flex:0 0 auto;
}

.menu-brand strong{
	display:block;
	font-size:1.04rem;
	line-height:1.05;
	color:#147d2f;
}

.menu-brand span{
	display:block;
	margin-top:3px;
	font-size:.82rem;
	color:var(--muted);
}

.menu-close{
	width:38px;
	height:38px;
	box-shadow:none;
	border-color:var(--line);
	background:#fff;
}

.menu-nav{
	display:flex;
	gap:4px;
	margin:0 10px 8px;
	padding:4px;
	border:1px solid var(--line);
	border-radius:999px;
	background:#f7f8fa;
}

.menu-link{
	flex:1 1 0;
	min-height:38px;
	border-radius:999px;
	display:flex;
	flex-direction:row;
	align-items:center;
	justify-content:center;
	gap:6px;
	padding:0 10px;
	background:transparent;
	color:var(--text);
	font-weight:750;
	text-align:center;
	font-size:.78rem;
}

.menu-link .app-icon,
.menu-link .ui-icon{
	width:24px;
	height:24px;
	border-radius:999px;
	display:grid;
	place-items:center;
	background:transparent;
	color:var(--red);
	font-weight:850;
	padding:3px;
}

.menu-link strong{
	display:block;
	font-size:.78rem;
	line-height:1.05;
}

.menu-link.active{
	background:#fff;
	color:var(--red);
	box-shadow:0 6px 16px rgba(15,23,42,.08);
}

.menu-link.active .app-icon,
.menu-link.active .ui-icon{
	background:var(--red);
	color:#fff;
}

.sidebar-body{
	min-height:0;
	overflow:auto;
	scrollbar-gutter:stable;
}

.menu-page{
	display:none;
	min-height:100%;
	padding:12px 12px 88px;
}

.menu-page.active{
	display:block;
}

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

.page-head h1{
	margin:0;
	font-size:1.24rem;
	line-height:1.15;
}

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

.centered-head{
	justify-content:center;
}

.page-head-actions{
	display:grid;
	grid-template-columns:1fr auto 1fr;
}

.page-head-actions h1{text-align:center}
.page-head-actions .text-btn:last-child{justify-self:end}

.round-add,.primary-icon-btn{
	width:46px;
	height:46px;
	border-radius:999px;
	display:grid;
	place-items:center;
	background:var(--red);
	color:#fff;
	font-size:1.55rem;
	line-height:1;
	box-shadow:0 12px 24px rgba(239,43,36,.26);
}

input,select,textarea{
	width:100%;
	border:1px solid var(--line);
	background:#fff;
	border-radius:var(--radius);
	padding:11px 12px;
	outline:none;
	color:var(--text);
	min-height:42px;
}

textarea{
	min-height:96px;
	resize:vertical;
	line-height:1.45;
}

input:focus,select:focus,textarea:focus{
	border-color:var(--green);
	box-shadow:0 0 0 3px rgba(16,137,62,.13);
}

.primary-btn,.secondary-btn,.link-button{
	min-height:44px;
	border-radius:var(--radius);
	padding:10px 13px;
	font-weight:800;
	text-decoration:none;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:8px;
}

.primary-btn{
	background:var(--green);
	color:#fff;
	box-shadow:0 12px 24px rgba(16,137,62,.18);
}

.primary-btn:hover{background:var(--green-dark)}

.secondary-btn,.link-button{
	background:#fff;
	color:var(--text);
	border:1px solid var(--line);
}

.secondary-btn:hover,.link-button:hover{
	background:#f7f8fa;
	border-color:var(--line-strong);
}

.text-btn{
	min-height:36px;
	background:transparent;
	font-weight:800;
	padding:4px 0;
}

.danger-text{color:var(--red)}
.success-text{color:var(--green)}

.stats-grid{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:8px;
	margin-bottom:12px;
}

.settings-stats{
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:8px;
}

.stat-card{
	background:#fff;
	border:1px solid var(--line);
	border-radius:var(--radius);
	padding:9px 8px;
	box-shadow:none;
}

.stat-card strong{
	display:block;
	font-size:1.18rem;
	line-height:1.1;
}

.stat-card span{
	display:block;
	margin-top:3px;
	color:var(--muted);
	font-size:.76rem;
	font-weight:700;
}

.search-filter-bar{
	display:grid;
	grid-template-columns:minmax(0,1fr) 42px;
	align-items:start;
	gap:8px;
	margin-bottom:10px;
	position:relative;
}

.search-shell{
	display:grid;
	grid-template-columns:24px 1fr;
	align-items:center;
	gap:6px;
	background:#fff;
	border:1px solid var(--line);
	border-radius:var(--radius);
	padding:0 10px;
	margin-bottom:0;
	box-shadow:0 5px 16px rgba(15,23,42,.05);
}

.search-shell .app-icon,
.search-shell .ui-icon{
	color:var(--muted);
	font-size:1.1rem;
}

.search-shell input{
	border:0;
	box-shadow:none;
	padding-left:0;
}

.quick-tabs,.places-filter-row,.places-action-row,.card-actions,.inline-actions{
	display:flex;
	gap:8px;
	flex-wrap:wrap;
}

.places-filter-row{
	align-items:center;
	flex-wrap:nowrap;
	margin-bottom:8px;
	position:relative;
}

.quick-tabs{
	flex-wrap:nowrap;
	overflow:auto;
	padding-bottom:2px;
	margin-bottom:0;
	flex:1 1 auto;
	scrollbar-width:none;
}

.quick-tabs::-webkit-scrollbar{display:none}

.quick-tabs button{
	white-space:nowrap;
	border-radius:999px;
	padding:7px 11px;
	background:#fff;
	color:#343840;
	border:1px solid var(--line);
	font-weight:800;
	min-height:36px;
}

.quick-tabs button.active,
.quick-tabs button[data-active="1"]{
	background:var(--red);
	border-color:var(--red);
	color:#fff;
}

.filters-panel{
	position:relative;
	min-width:0;
	flex:0 0 auto;
}

.filters-panel summary{
	list-style:none;
	width:42px;
	height:42px;
	min-height:42px;
	border:1px solid var(--line);
	border-radius:999px;
	background:#fff;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:0;
	padding:0;
	font-weight:900;
	cursor:pointer;
	box-shadow:0 5px 16px rgba(15,23,42,.05);
}

.filters-panel summary::-webkit-details-marker{display:none}

.filters-panel[open] summary{
	background:var(--red-soft);
	color:var(--red-dark);
	border-color:#ffc9c9;
}

.filters-row{
	position:absolute;
	right:0;
	top:calc(100% + 8px);
	z-index:20;
	width:min(320px, calc(88vw - 24px));
	display:grid;
	grid-template-columns:1fr;
	gap:8px;
	padding:10px;
	border:1px solid var(--line);
	border-radius:var(--radius);
	background:#fff;
	box-shadow:var(--soft-shadow);
}

.filter-section{
	display:grid;
	gap:7px;
}

.filter-section-label,
.form-section-title{
	color:var(--muted);
	font-size:.72rem;
	font-weight:900;
	text-transform:uppercase;
}

.filter-chip-grid{
	display:flex;
	flex-wrap:wrap;
	gap:7px;
	max-height:154px;
	overflow:auto;
	padding:1px;
	scrollbar-width:none;
}

.filter-chip-grid::-webkit-scrollbar{display:none}

.filter-chip{
	min-height:34px;
	border:1px solid var(--line);
	border-radius:999px;
	background:#fff;
	color:#2f343b;
	padding:0 11px;
	font-size:.82rem;
	font-weight:850;
	box-shadow:0 3px 10px rgba(15,23,42,.035);
}

.filter-chip.is-selected{
	background:var(--red-soft);
	border-color:#ffc9c9;
	color:var(--red-dark);
}

.filter-toggle{
	min-height:40px;
	border:1px solid var(--line);
	border-radius:12px;
	background:#f8f9fb;
	display:flex;
	align-items:center;
	gap:9px;
	padding:8px 10px;
	font-size:.9rem;
	font-weight:800;
	color:var(--text);
}

.filter-toggle input{
	width:16px;
	height:16px;
	min-height:0;
	accent-color:var(--red);
}

.filter-actions{
	display:grid;
	grid-template-columns:1fr;
	gap:8px;
}

.filter-action-btn{
	min-height:38px;
	border:1px solid var(--line);
	border-radius:12px;
	background:#fff;
	color:var(--text);
	font-size:.82rem;
	font-weight:850;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:7px;
	padding:0 8px;
}

.filter-action-btn .app-icon{
	color:var(--green);
	width:16px;
	height:16px;
}

.filter-summary{
	position:absolute;
	width:1px;
	height:1px;
	overflow:hidden;
	clip:rect(0,0,0,0);
	white-space:nowrap;
	color:var(--muted);
	font-size:.84rem;
	font-weight:800;
}

.places-action-row{
	flex-wrap:nowrap;
	margin-bottom:9px;
}

.mini-action{
	flex:1 1 0;
	min-width:0;
	min-height:36px;
	border-radius:999px;
	background:#fff;
	border:1px solid var(--line);
	display:flex;
	align-items:center;
	justify-content:center;
	gap:7px;
	color:#20242a;
	font-size:.86rem;
}

.mini-action span{
	color:var(--green);
	font-weight:900;
}

.mini-action strong{
	font-weight:850;
}

.restaurant-list{
	display:grid;
	gap:6px;
	padding-bottom:12px;
}

.restaurant-swipe-row{
	position:relative;
	border-radius:10px;
	overflow:hidden;
	touch-action:pan-y;
}

.swipe-action{
	position:absolute;
	inset:0;
	display:flex;
	align-items:center;
	padding:0 16px;
	font-size:.78rem;
	font-weight:900;
	letter-spacing:.01em;
	color:#fff;
	opacity:0;
	transition:opacity .12s ease;
	pointer-events:none;
}

.swipe-action.vote-action{
	justify-content:flex-start;
	background:linear-gradient(90deg,var(--red),rgba(239,43,36,.72));
}

.swipe-action.visit-action{
	justify-content:flex-end;
	background:linear-gradient(270deg,var(--green),rgba(16,137,62,.72));
}

.restaurant-swipe-row.is-swiping .swipe-action{
	opacity:1;
}

.restaurant-swipe-row.in-draft-vote .restaurant-row{
	border-color:#ffc9c9;
	box-shadow:0 0 0 2px rgba(239,43,36,.08);
}

.restaurant-row{
	position:relative;
	min-height:62px;
	background:#fff;
	border:1px solid var(--line);
	border-radius:10px;
	display:grid;
	grid-template-columns:40px minmax(0,1fr) auto 34px;
	gap:7px;
	align-items:center;
	padding:8px;
	box-shadow:0 4px 14px rgba(15,23,42,.045);
	transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
	will-change:transform;
}

.restaurant-row:hover{
	border-color:var(--line-strong);
	box-shadow:0 7px 18px rgba(15,23,42,.075);
}

.draft-vote-bar{
	position:sticky;
	bottom:0;
	z-index:3;
	display:grid;
	grid-template-columns:minmax(0,1fr) auto auto;
	align-items:center;
	gap:8px;
	margin-top:8px;
	padding:10px;
	border:1px solid var(--line);
	border-radius:14px;
	background:rgba(255,255,255,.96);
	box-shadow:0 12px 28px rgba(15,23,42,.12);
}

.draft-vote-bar div{
	display:grid;
	gap:2px;
	min-width:0;
}

.draft-vote-bar strong{
	font-size:.9rem;
	line-height:1.1;
}

.draft-vote-bar span{
	color:var(--muted);
	font-size:.75rem;
	font-weight:800;
}

.compact-bar-btn{
	min-height:36px;
	border-radius:999px;
	padding:0 13px;
	box-shadow:none;
}

.place-focus-btn{
	width:34px;
	height:34px;
	border-radius:999px;
	display:grid;
	place-items:center;
	border:0;
	background:transparent;
	color:inherit;
	font-weight:900;
}

.food-icon{
	width:34px;
	height:34px;
	border-radius:999px;
	display:inline-grid;
	place-items:center;
	border:1px solid currentColor;
	background:#fff;
	color:var(--red);
}

.food-icon svg{
	width:18px;
	height:18px;
	display:block;
	fill:none;
	stroke:currentColor;
	stroke-width:1.9;
	stroke-linecap:round;
	stroke-linejoin:round;
}

.food-icon.is-red{
	color:var(--red);
	background:#fff7f7;
	border-color:#ffb8b8;
}

.food-icon.is-green{
	color:var(--green);
	background:#f4fff6;
	border-color:#9fddb1;
}

.detail-food-icon{
	width:48px;
	height:48px;
}

.detail-food-icon svg{
	width:24px;
	height:24px;
}

.map-restaurant-marker-shell{
	background:transparent;
	border:0;
}

.map-food-icon{
	width:30px;
	height:30px;
	box-shadow:0 4px 10px rgba(15,23,42,.20);
	background:#fff;
}

.map-food-icon svg{
	width:16px;
	height:16px;
}

.restaurant-info-btn{
	min-width:0;
	text-align:left;
	background:transparent;
	padding:0;
	display:grid;
	gap:3px;
}

.restaurant-info-btn strong{
	font-size:.96rem;
	line-height:1.12;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}

.restaurant-info-btn span{
	color:var(--muted);
	font-size:.78rem;
	line-height:1.2;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}

.restaurant-signals{
	display:flex;
	align-items:center;
	justify-content:flex-end;
	gap:4px;
	min-width:28px;
}

.rating-signal{
	color:var(--green);
	font-size:.86rem;
	line-height:1;
	letter-spacing:0;
	white-space:nowrap;
	display:inline-flex;
	align-items:center;
	gap:4px;
}

.rating-signal small{
	color:var(--muted);
	font-size:.72rem;
	font-weight:850;
}

.star-meter{
	position:relative;
	display:inline-block;
	width:4.8em;
	height:1em;
	line-height:1;
	color:#d6d9de;
	font-size:.86rem;
	letter-spacing:0;
	overflow:hidden;
	vertical-align:-.08em;
}

.star-meter::before{
	content:"\2605\2605\2605\2605\2605";
	position:absolute;
	inset:0;
}

.star-meter span{
	position:absolute;
	left:0;
	top:0;
	bottom:0;
	overflow:hidden;
	color:var(--green);
	white-space:nowrap;
}

.score-dots{
	display:inline-flex;
	align-items:center;
	gap:3px;
	min-width:28px;
	justify-content:flex-end;
}

.score-dots i{
	width:4px;
	height:4px;
	border-radius:999px;
	background:var(--green);
	display:block;
}

.signal{
	min-width:19px;
	height:19px;
	border-radius:999px;
	display:inline-grid;
	place-items:center;
	font-size:.64rem;
	font-weight:900;
	background:#f3f4f6;
	color:#5f646b;
}

.want-signal{background:#eef5ff;color:#1d4ed8}
.visited-signal,.open-signal{background:var(--green-soft);color:var(--green-dark)}
.closed-signal{background:var(--red-soft);color:var(--red-dark)}
.muted-signal{color:#a0a6af}

.restaurant-card{
	background:#fff;
	border:1px solid var(--line);
	border-radius:var(--radius);
	padding:10px;
	box-shadow:0 7px 20px rgba(15,23,42,.07);
	display:grid;
	grid-template-columns:82px 1fr auto;
	gap:10px;
	align-items:start;
}

.restaurant-card.is-selected{
	border-color:var(--red);
	box-shadow:0 0 0 3px rgba(239,43,36,.10), 0 7px 20px rgba(15,23,42,.07);
}

.restaurant-cover,.detail-hero{
	width:100%;
	object-fit:cover;
	background:#f3f4f6;
	display:block;
	border-radius:var(--radius);
}

.restaurant-cover{
	width:82px;
	height:82px;
	aspect-ratio:1;
}

.restaurant-main{
	min-width:0;
}

.restaurant-main h3{
	margin:0 0 4px;
	font-size:1rem;
	line-height:1.2;
}

.restaurant-main p{
	margin:0;
	line-height:1.3;
}

.restaurant-side{
	display:grid;
	justify-items:end;
	gap:8px;
	min-width:44px;
}

.favorite-btn,.select-vote-btn{
	width:31px;
	height:31px;
	border-radius:999px;
	background:#fff;
	border:1px solid var(--line);
	box-shadow:none;
	display:grid;
	place-items:center;
	color:#5f646b;
}

.favorite-btn.is-active{
	color:#b7791f;
	background:var(--gold-soft);
	border-color:#f6d889;
}

.favorite-btn .app-icon,
.favorite-btn .ui-icon{
	width:16px;
	height:16px;
}

.select-vote-btn.is-selected{
	background:var(--red);
	color:#fff;
	border-color:var(--red);
}

.open-state{
	font-size:.76rem;
	font-weight:850;
	color:var(--green);
}

.closed-state{color:var(--red)}

.badges{
	display:flex;
	flex-wrap:wrap;
	gap:6px;
	margin-top:7px;
}

.badge{
	display:inline-flex;
	align-items:center;
	border-radius:999px;
	padding:4px 8px;
	background:#f4f5f7;
	color:#343840;
	font-size:.76rem;
	font-weight:850;
	line-height:1.2;
}

.badge-orange{background:var(--gold-soft);color:#8a4b00}
.badge-green{background:var(--green-soft);color:var(--green-dark)}
.badge-blue{background:#eef5ff;color:#1d4ed8}
.badge-red{background:var(--red-soft);color:var(--red-dark)}

.card-actions{
	grid-column:2/-1;
}

.card-actions button,.card-actions a{
	border-radius:var(--radius);
	padding:8px 10px;
	background:#f8fafc;
	border:1px solid var(--line);
	color:var(--text);
	text-decoration:none;
	min-height:36px;
	font-weight:800;
}

.card-actions button:hover,.card-actions a:hover{background:#eef2f7}

.cover-placeholder{
	width:82px;
	height:82px;
	border-radius:var(--radius);
	background:
		linear-gradient(135deg, rgba(239,43,36,.15), rgba(247,179,43,.18)),
		#fff;
	border:1px solid var(--line);
	display:grid;
	place-items:center;
	color:var(--red-dark);
	font-weight:900;
	text-align:center;
	padding:8px;
}

.detail-hero,.cover-placeholder.detail-hero{
	width:100%;
	height:auto;
	aspect-ratio:16/8;
	margin-bottom:12px;
}

.empty-state{
	display:block;
	text-align:center;
	padding:28px 18px;
}

.compact-empty{
	border:1px dashed var(--line-strong);
	border-radius:10px;
	background:rgba(255,255,255,.75);
	padding:18px 14px;
}

.search-empty{
	border:1px solid var(--line);
	border-radius:14px;
	background:#fff;
	display:grid;
	place-items:center;
	gap:8px;
	padding:18px 12px;
}

.empty-icon{
	width:30px;
	height:30px;
	color:var(--red);
	background:var(--red-soft);
	border-radius:999px;
	padding:6px;
}

.compact-add-btn{
	min-height:38px;
	border-radius:999px;
	padding-inline:16px;
	box-shadow:none;
}

.compact-empty-line{
	margin:0;
	font-size:.9rem;
}

.empty-state .emoji{
	font-size:2rem;
	margin-bottom:8px;
	color:var(--red);
}

.sticky-vote-btn{
	position:static;
	width:100%;
	min-height:48px;
	border-radius:var(--radius);
	background:var(--red);
	color:#fff;
	font-weight:900;
	box-shadow:0 14px 30px rgba(239,43,36,.28);
	margin-top:8px;
}

.stack{display:grid;gap:11px}

.field-label,.form-section-title{
	font-weight:850;
	font-size:.86rem;
	color:#343840;
}

.search-box{
	display:grid;
	grid-template-columns:1fr auto;
	gap:8px;
}

.add-search-stage,
.add-details-panel{
	display:grid;
	gap:10px;
}

.add-search-shell{
	grid-template-columns:24px 1fr auto;
	margin-bottom:0;
}

.search-submit-btn{
	min-height:32px;
	border-radius:999px;
	padding:0 12px;
	background:var(--green);
	color:#fff;
	font-weight:900;
}

.manual-location-panel{
	border:1px solid var(--line);
	border-radius:12px;
	background:#fff;
	padding:0 10px;
}

.manual-location-panel summary{
	min-height:40px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	cursor:pointer;
	font-weight:900;
	list-style:none;
}

.manual-location-panel summary::-webkit-details-marker{display:none}
.manual-location-panel summary::after{content:"+";color:var(--muted)}
.manual-location-panel[open] summary::after{content:"-"}

.manual-location-grid{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:8px;
	padding-bottom:10px;
}

.manual-location-grid input:nth-child(1),
.manual-location-grid input:nth-child(2),
.manual-location-grid button{
	grid-column:1/-1;
}

.cuisine-picker{
	display:grid;
	gap:8px;
}

.compact-chip-grid{
	max-height:150px;
	overflow:auto;
	padding:2px;
	border:1px solid var(--line);
	border-radius:12px;
	background:#fff;
}

.place-results{display:grid;gap:8px}

.place-result{
	text-align:left;
	border:1px solid var(--line);
	border-radius:var(--radius);
	padding:10px;
	background:#fff;
}

.place-result:hover{
	border-color:var(--green);
	background:var(--green-soft);
}

.selected-location{
	margin:0;
	color:var(--muted);
	font-size:.86rem;
}

.selected-map-card{
	min-height:132px;
	border-radius:var(--radius);
	border:1px solid var(--line);
	background:
		linear-gradient(90deg, rgba(255,255,255,.70), rgba(255,255,255,.45)),
		repeating-linear-gradient(45deg, #edf2ef 0 9px, #e3ebe7 9px 18px);
	display:grid;
	grid-template-columns:40px 1fr;
	gap:12px;
	align-items:center;
	padding:14px;
}

.selected-map-card > span{
	width:40px;
	height:40px;
	border-radius:999px;
	display:grid;
	place-items:center;
	background:var(--red);
	color:#fff;
}

.selected-map-card p{margin:4px 0 0}

.chip-grid{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
}

.cuisine-chip{
	border-radius:var(--radius);
	border:1px solid var(--line);
	background:#fff;
	padding:8px 10px;
	font-weight:850;
	min-height:38px;
}

.cuisine-chip.is-selected{
	background:var(--red);
	border-color:var(--red);
	color:#fff;
}

.vote-panel{
	display:grid;
	gap:10px;
	margin-bottom:18px;
}

.vote-builder{
	display:grid;
	gap:10px;
	margin-bottom:16px;
}

.vote-filter-row{
	display:flex;
	align-items:center;
	gap:8px;
	overflow:auto;
	scrollbar-width:none;
}

.vote-filter-row::-webkit-scrollbar{display:none}

.vote-filter-row > button{
	min-height:34px;
	border-radius:999px;
	background:#fff;
	border:1px solid var(--line);
	padding:0 12px;
	font-weight:850;
	white-space:nowrap;
}

.vote-filter-row > button.active{
	background:var(--red);
	border-color:var(--red);
	color:#fff;
}

.vote-filters-panel{
	margin-left:auto;
}

.vote-builder-list{
	display:grid;
	gap:0;
	max-height:342px;
	overflow:auto;
	padding-right:0;
	border:1px solid var(--line);
	border-radius:14px;
	background:#fff;
}

.vote-builder-row{
	min-height:56px;
	display:grid;
	grid-template-columns:26px 34px minmax(0,1fr) auto;
	gap:8px;
	align-items:center;
	text-align:left;
	background:#fff;
	border:0;
	border-bottom:1px solid var(--line);
	border-radius:0;
	padding:7px 10px;
	box-shadow:none;
}

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

.vote-builder-row.is-selected{
	border-color:var(--line);
	background:#fff;
}

.vote-check{
	width:22px;
	height:22px;
	border-radius:999px;
	display:grid;
	place-items:center;
	border:1px solid var(--line-strong);
	color:#fff;
	font-size:.75rem;
	font-weight:900;
}

.vote-builder-row.is-selected .vote-check{
	background:var(--red);
	border-color:var(--red);
}

.vote-check .app-icon{
	width:14px;
	height:14px;
}

.vote-row-glyph{
	width:32px;
	height:32px;
	border-radius:999px;
	display:grid;
	place-items:center;
	background:transparent;
}

.vote-row-copy{
	min-width:0;
	display:grid;
	gap:3px;
}

.vote-row-copy strong,
.vote-row-copy small{
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}

.vote-row-copy small{
	color:var(--muted);
	font-size:.78rem;
}

.vote-row-signals{
	justify-self:end;
}

.vote-builder-footer{
	position:sticky;
	bottom:0;
	z-index:2;
	display:grid;
	grid-template-columns:1fr auto;
	align-items:center;
	gap:10px;
	padding:10px;
	border:1px solid var(--line);
	border-radius:12px;
	background:rgba(255,255,255,.96);
	box-shadow:0 10px 24px rgba(15,23,42,.10);
}

.vote-builder-footer .primary-btn:disabled{
	opacity:.45;
	cursor:not-allowed;
	box-shadow:none;
}

.smart-picks-note{
	border:1px solid var(--line);
	border-radius:10px;
	background:#fff;
	color:var(--muted);
	padding:10px 11px;
	font-size:.82rem;
	line-height:1.35;
}

.vote-header-card{
	background:#fff;
	border:1px solid var(--line);
	border-radius:var(--radius);
	padding:12px;
	display:grid;
	gap:10px;
}

.share-row{
	display:grid;
	grid-template-columns:1fr auto;
	gap:8px;
}

.vote-option{
	display:grid;
	grid-template-columns:32px 62px 1fr auto;
	gap:10px;
	align-items:center;
	border:1px solid var(--line);
	border-radius:var(--radius);
	background:#fff;
	padding:9px;
}

.vote-option.is-winner{
	border-color:#9ee0ad;
	background:#f0fff4;
}

.rank-dot{
	width:26px;
	height:26px;
	border-radius:999px;
	display:grid;
	place-items:center;
	background:var(--gold);
	color:#fff;
	font-weight:900;
}

.vote-thumb{
	width:62px;
	height:62px;
	border-radius:var(--radius);
	object-fit:cover;
	background:#f3f4f6;
}

.cover-placeholder.vote-thumb{
	width:62px;
	height:62px;
	aspect-ratio:1;
	font-size:.78rem;
	padding:4px;
}

.vote-meta h3{
	margin:0 0 4px;
	font-size:.96rem;
	line-height:1.2;
}

.vote-meta p{
	margin:0;
	line-height:1.3;
}

.vote-count{
	font-weight:900;
	text-align:right;
}

.session-list{
	display:grid;
	gap:9px;
}

.session-row{
	width:100%;
	display:grid;
	grid-template-columns:1fr auto;
	gap:10px;
	align-items:center;
	text-align:left;
	background:#fff;
	border:1px solid var(--line);
	border-radius:var(--radius);
	padding:11px;
}

.section-title{
	margin:0 0 10px;
	font-size:1rem;
	line-height:1.25;
}

.settings-group{
	border-top:1px solid var(--line);
	padding:14px 0;
}

.settings-group h2{
	margin:0 0 8px;
	color:var(--muted);
	font-size:.78rem;
	text-transform:uppercase;
}

.settings-row{
	min-height:48px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:14px;
	padding:8px 0;
	color:var(--text);
	text-decoration:none;
	border-bottom:1px solid var(--line);
}

.settings-row select{
	width:min(58%,220px);
	text-align:right;
}

.vote-history-list{
	display:grid;
	gap:7px;
}

.vote-history-row{
	min-height:46px;
	text-align:left;
}

.vote-history-row > span:first-child{
	display:grid;
	gap:2px;
	min-width:0;
}

.button-row{
	width:100%;
	background:transparent;
	text-align:left;
}

.settings-form{margin:0}

.password-message{
	min-height:20px;
	margin:0;
}

.password-actions{
	display:flex;
	gap:8px;
	flex-wrap:wrap;
	align-items:center;
	margin-top:14px;
}

.password-actions form{
	margin:0;
}

.admin-users-list{
	display:grid;
	gap:8px;
}

.admin-user-row{
	display:grid;
	grid-template-columns:1fr auto;
	gap:10px;
	align-items:center;
	border:1px solid var(--line);
	border-radius:var(--radius);
	padding:10px;
	background:#fff;
}

.admin-user-row .secondary-btn{
	white-space:nowrap;
}

.modal-backdrop{
	position:fixed;
	inset:0;
	z-index:1000;
	background:rgba(15,23,42,.46);
	display:grid;
	place-items:end center;
	padding:12px;
}

.modal{
	width:min(720px,100%);
	max-height:92vh;
	overflow:auto;
	background:#fff;
	border-radius:12px 12px 0 0;
	box-shadow:var(--shadow);
	padding:16px;
}

.detail-modal{max-width:800px}
.visit-modal{max-width:560px}

.modal-header{
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:12px;
	margin-bottom:14px;
	position:sticky;
	top:-16px;
	background:#fff;
	z-index:2;
	padding-top:2px;
	padding-bottom:8px;
}

.modal-header h2{
	margin:0;
	font-size:1.22rem;
	line-height:1.2;
}

.detail-stack{display:grid;gap:14px}

.restaurant-meta{
	margin:0;
	line-height:1.45;
	font-size:.88rem;
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
	overflow:hidden;
}

.detail-summary{
	display:grid;
	grid-template-columns:48px 1fr;
	gap:12px;
	align-items:start;
}

.detail-glyph{
	width:48px;
	height:48px;
	border-radius:999px;
	display:grid;
	place-items:center;
	background:transparent;
}

.compact-badges{
	margin-top:0;
	margin-bottom:6px;
}

.detail-action-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:8px;
}

.detail-action-pills{
	display:flex;
	gap:8px;
	align-items:center;
}

.action-pill{
	min-height:36px;
	border-radius:999px;
	background:#fff;
	border:1px solid var(--line);
	color:var(--text);
	text-decoration:none;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:6px;
	padding:0 12px;
	font-weight:900;
	font-size:.88rem;
	flex:1 1 0;
}

.primary-action-pill{
	background:var(--green);
	border-color:var(--green);
	color:#fff;
}

.compact-info-grid{
	gap:6px;
}

.compact-detail-section{
	padding-top:10px;
}

.status-actions{
	flex-wrap:nowrap;
}

.status-actions button{
	flex:1 1 0;
	min-width:0;
	padding-inline:6px;
}

.detail-section{
	display:grid;
	gap:10px;
	padding-top:14px;
	border-top:1px solid var(--line);
}

.detail-section h3{
	margin:0;
	font-size:1rem;
	line-height:1.25;
}

.detail-primary-action{margin-top:2px}

.detail-extra{
	border-top:1px solid var(--line);
	padding-top:10px;
}

.detail-extra summary,
.visit-extra summary{
	cursor:pointer;
	font-weight:900;
	list-style:none;
	display:flex;
	align-items:center;
	justify-content:space-between;
	min-height:38px;
}

.detail-extra summary::-webkit-details-marker,
.visit-extra summary::-webkit-details-marker{display:none}

.detail-extra summary::after,
.visit-extra summary::after{
	content:"+";
	color:var(--muted);
	font-weight:900;
}

.detail-extra[open] summary::after,
.visit-extra[open] summary::after{
	content:"-";
}

.detail-extra-body{
	display:grid;
	gap:10px;
	padding-top:8px;
}

.edit-place-form input,
.edit-place-form textarea{
	width:100%;
}

.edit-field-grid{
	display:grid;
	grid-template-columns:1fr;
	gap:8px;
}

.edit-chip-grid{
	max-height:134px;
}

.edit-form-actions{
	display:grid;
	grid-template-columns:1fr;
	gap:8px;
}

.maps-actions{
	display:grid;
	grid-template-columns:1fr;
	gap:8px;
}

.info-grid{display:grid;gap:8px}

.info-row{
	display:flex;
	justify-content:space-between;
	gap:14px;
	border:1px solid var(--line);
	background:#fff;
	border-radius:var(--radius);
	padding:10px 11px;
}

.info-row span:first-child{color:var(--muted)}
.info-row span:last-child{
	text-align:right;
	font-weight:800;
	word-break:break-word;
}

.enrich-note,.note-block{
	border:1px solid #bfdbfe;
	background:#eff6ff;
	color:#1e40af;
	border-radius:var(--radius);
	padding:10px 11px;
	font-size:.88rem;
	margin:0;
}

.external-photo-credit{
	font-size:.75rem;
	color:var(--muted);
	margin-top:-6px;
}

.comment{
	border-top:1px solid var(--line);
	padding-top:12px;
	margin-top:12px;
}

.comment p{margin:8px 0 0}

.comment img{
	width:100%;
	max-height:320px;
	object-fit:cover;
	border-radius:var(--radius);
	margin-top:8px;
}

.rating-row{
	display:grid;
	grid-template-columns:repeat(5,1fr);
	gap:6px;
}

.rating-row button{
	padding:10px 0;
	border-radius:var(--radius);
	background:#f8fafc;
	border:1px solid var(--line);
	font-weight:800;
}

.rating-row button.active{
	background:var(--gold);
	border-color:var(--gold);
	color:#221400;
}

.timeline{
	display:grid;
	gap:10px;
}

.visit-card{
	border:1px solid var(--line);
	border-radius:var(--radius);
	padding:12px;
	background:#fff;
}

.visit-note,.receipt-link{margin:10px 0 0}

.receipt-text{margin-top:8px}

.receipt-text pre{
	white-space:pre-wrap;
	overflow:auto;
}

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

.visit-head-actions{
	display:flex;
	align-items:center;
	gap:6px;
}

.delete-visit-btn{
	width:28px;
	height:28px;
	border-radius:999px;
	display:grid;
	place-items:center;
	background:#fff;
	border:1px solid var(--line);
	color:var(--red);
	font-weight:900;
}

.score-grid{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:8px;
	margin-top:10px;
}

.score-pill{
	border-radius:var(--radius);
	background:#f8fafc;
	border:1px solid var(--line);
	padding:8px;
	font-size:.85rem;
	display:grid;
	gap:4px;
}

.score-pill span{
	color:var(--muted);
	font-size:.72rem;
	font-weight:850;
}

.dish-list{
	margin:10px 0 0;
	padding:0;
	list-style:none;
	display:grid;
	gap:6px;
}

.dish-list li{
	background:var(--gold-soft);
	border:1px solid #f7d586;
	border-radius:var(--radius);
	padding:8px;
}

.photo-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:8px;
	margin-top:10px;
}

.photo-grid img{
	width:100%;
	aspect-ratio:1;
	object-fit:cover;
	border-radius:var(--radius);
}

.dish-row{
	display:grid;
	grid-template-columns:1.4fr .8fr .7fr;
	gap:8px;
	margin-bottom:8px;
}

.dish-notes{grid-column:1/-1}

.visit-form{
	display:grid;
	gap:10px;
}

.visit-top-grid,
.visit-cost-grid{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:8px;
}

.rating-compact-grid{
	display:grid;
	grid-template-columns:1fr;
	gap:7px;
}

.star-field,
.price-field{
	display:grid;
	grid-template-columns:70px minmax(0,1fr) 42px;
	align-items:center;
	gap:8px;
	font-size:.75rem;
	font-weight:850;
	color:var(--muted);
}

.star-field > span,
.price-field > span{
	color:var(--muted);
}

.star-control{
	--rating-width:0%;
	--star-hit-width:6.4rem;
	position:relative;
	height:28px;
	width:var(--star-hit-width);
	max-width:100%;
	min-height:28px;
	border:0;
	background:transparent;
	padding:0;
	color:#d4d8dd;
	text-align:left;
	border-radius:999px;
	touch-action:none;
}

.star-control::before,
.star-control::after{
	content:"\2605\2605\2605\2605\2605";
	position:absolute;
	left:0;
	top:50%;
	transform:translateY(-50%);
	font-size:1.35rem;
	line-height:1;
	letter-spacing:0;
	font-family:Arial, Helvetica, sans-serif;
}

.star-control::after{
	width:var(--rating-width);
	overflow:hidden;
	color:var(--green);
	white-space:nowrap;
}

.star-control:focus-visible{
	box-shadow:0 0 0 3px rgba(16,137,62,.13);
}

.star-field output{
	text-align:right;
	color:var(--text);
	font-weight:900;
}

.star-range{
	grid-column:2 / 4;
	min-height:18px;
	height:18px;
	padding:0;
	margin-top:-5px;
	border:0;
	background:transparent;
	accent-color:var(--green);
}

.star-range:focus{
	box-shadow:none;
}

.star-range::-webkit-slider-runnable-track{
	height:4px;
	border-radius:999px;
	background:#e4e7ec;
}

.star-range::-webkit-slider-thumb{
	-webkit-appearance:none;
	width:16px;
	height:16px;
	margin-top:-6px;
	border-radius:999px;
	background:var(--green);
	border:2px solid #fff;
	box-shadow:0 3px 8px rgba(15,23,42,.18);
}

.star-range::-moz-range-track{
	height:4px;
	border-radius:999px;
	background:#e4e7ec;
}

.star-range::-moz-range-thumb{
	width:14px;
	height:14px;
	border-radius:999px;
	background:var(--green);
	border:2px solid #fff;
	box-shadow:0 3px 8px rgba(15,23,42,.18);
}

.price-field{
	grid-template-columns:70px 1fr;
}

.price-field select,
.visit-cost-grid input,
.visit-top-grid input{
	min-height:38px;
	padding:8px 9px;
}

.visit-form textarea{
	min-height:70px;
}

.visit-extra{
	border:1px solid var(--line);
	border-radius:10px;
	background:#fff;
	padding:0 10px;
}

.visit-extra[open]{
	padding-bottom:10px;
}

.danger-btn{
	background:var(--red-soft)!important;
	color:var(--red-dark)!important;
	border-color:#ffc9c9!important;
}

.toast{
	position:fixed;
	left:50%;
	bottom:22px;
	transform:translateX(-50%) translateY(12px);
	background:#111827;
	color:#fff;
	padding:11px 14px;
	border-radius:999px;
	box-shadow:var(--shadow);
	z-index:2000;
	opacity:0;
	pointer-events:none;
	transition:opacity .18s ease, transform .18s ease;
	max-width:min(90vw,420px);
	text-align:center;
	font-weight:800;
}

.toast.visible{
	opacity:1;
	transform:translateX(-50%) translateY(0);
}

.auth-body,.admin-body{
	min-height:100vh;
	background:var(--bg);
	padding:18px;
}

.auth-body{
	display:grid;
	place-items:center;
}

.auth-card,.panel-card{
	width:min(440px,100%);
	background:#fff;
	border:1px solid var(--line);
	border-radius:var(--radius);
	box-shadow:var(--soft-shadow);
	padding:24px;
}

.auth-mark{
	width:58px;
	height:58px;
	display:block;
	margin-bottom:14px;
	border-radius:14px;
}

.auth-card h1,.panel-card h1,.panel-card h2{margin-top:0}

.admin-header{
	max-width:980px;
	margin:0 auto 16px;
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:12px;
}

.admin-user{
	display:flex;
	align-items:center;
	gap:8px;
}

.admin-shell{
	max-width:980px;
	margin:0 auto;
	display:grid;
	gap:14px;
}

.panel-card{width:100%}

.back-link{
	background:#fff;
	border:1px solid var(--line);
	border-radius:999px;
	padding:10px 14px;
	text-decoration:none;
	box-shadow:var(--soft-shadow);
}

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

.invite-row{
	display:flex;
	justify-content:space-between;
	gap:12px;
	padding:12px;
	border:1px solid var(--line);
	border-radius:var(--radius);
	background:#fff;
}

.admin-password-row{
	align-items:flex-start;
}

.admin-password-row > div{
	min-width:0;
	display:grid;
	gap:4px;
}

.temp-password-result{
	margin-top:6px;
}

.temp-password-box{
	display:grid;
	gap:7px;
	padding:10px;
	border:1px solid var(--line);
	border-radius:var(--radius);
	background:#f8fafc;
}

.temp-password-box code{
	color:var(--text);
	font-weight:900;
	overflow-wrap:anywhere;
	user-select:all;
}

.temp-password-box .secondary-btn{
	min-height:36px;
	padding:7px 10px;
}

.tile-provider-form{
	display:grid;
	grid-template-columns:1fr;
	gap:10px;
}

.checkbox-row{
	display:flex;
	align-items:center;
	gap:8px;
	font-size:.9rem;
	color:var(--text);
}

.checkbox-row input{
	width:auto;
	min-height:0;
}

.import-form{margin-top:12px}
.inline-actions{margin-top:12px}

@media (min-width:520px){
	.maps-actions{grid-template-columns:repeat(3,1fr)}
}

@media (max-width:819px){
	.thumb-rail{
		right:14px;
		bottom:28px;
		gap:10px;
	}

	.thumb-btn{
		width:48px;
		height:48px;
		min-height:48px;
		border-radius:999px;
		padding:0;
		justify-content:center;
		box-shadow:0 14px 32px rgba(15,23,42,.16);
	}

	.thumb-menu-btn span:last-child{
		display:none;
	}

	.thumb-menu-btn .app-icon{
		width:21px;
		height:21px;
		color:var(--ink);
	}

	.sidebar{
		inset:auto 8px 0 8px;
		width:auto;
		max-width:none;
		height:min(64vh,610px);
		border:1px solid rgba(255,255,255,.88);
		border-bottom:0;
		border-radius:24px 24px 0 0;
		transform:translateY(0);
		grid-template-rows:auto auto 1fr;
		box-shadow:0 -16px 46px rgba(15,23,42,.16);
	}

	.sidebar.closed{
		transform:translateY(calc(100% + 22px));
	}

	.menu-rail{
		min-height:34px;
		padding:8px 14px 0;
		border-bottom:0;
		justify-content:center;
		position:relative;
	}

	.menu-rail::before{
		content:"";
		width:46px;
		height:5px;
		border-radius:999px;
		background:#d6d9de;
		display:block;
	}

	.menu-brand{
		display:none;
	}

	.menu-close{
		position:absolute;
		left:8px;
		top:6px;
		width:34px;
		height:34px;
		border:0;
		background:transparent;
		box-shadow:none;
		font-size:1.25rem;
	}

	.menu-nav{
		margin:0 18px 10px;
		padding:4px;
		border-bottom:1px solid var(--line);
		gap:4px;
	}

	.menu-link{
		min-height:38px;
		border-radius:999px;
		padding:0 8px;
	}

	.menu-link strong{
		display:block;
	}

	.menu-link .app-icon,
	.menu-link .ui-icon{
		width:22px;
		height:22px;
	}

	.menu-page{
		padding:0 18px 92px;
	}

	#placesPage .page-head{
		display:none;
	}

	.page-head{
		margin-bottom:10px;
	}

	.page-head h1{
		font-size:1.05rem;
		line-height:1.15;
	}

	.page-head p{
		display:none;
	}

	.search-filter-bar{
		margin-bottom:10px;
	}

	.search-shell{
		border-radius:14px;
		box-shadow:none;
		background:#f7f8fa;
	}

	.places-action-row{
		gap:7px;
		justify-content:flex-start;
	}

	.mini-action{
		flex:0 0 36px;
		width:36px;
		min-height:34px;
		padding:0;
	}

	.mini-action strong{
		display:none;
	}

	.restaurant-list{
		gap:0;
		background:#fff;
		border-radius:14px;
		overflow:hidden;
		border:1px solid var(--line);
	}

	.restaurant-list.hidden{
		display:none!important;
	}

	.restaurant-swipe-row{
		border-radius:0;
	}

	.restaurant-row{
		min-height:58px;
		border:0;
		border-bottom:1px solid var(--line);
		border-radius:0;
		box-shadow:none;
		padding:8px 10px;
		background:#fff;
	}

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

	.restaurant-info-btn strong{
		font-size:.9rem;
	}

	.place-focus-btn{
		background:#fff;
	}

	.modal-backdrop{
		place-items:end center;
		padding:0 8px;
	}

	.modal{
		border-radius:24px 24px 0 0;
		max-height:86vh;
	}
}

@media (min-width:820px){
	.topbar{
		left:18px;
		right:18px;
	}

	.thumb-rail{
		left:18px;
		right:auto;
		align-items:flex-start;
	}

	.sidebar{
		inset:18px auto 18px 18px;
		width:360px;
		max-width:360px;
		border:1px solid rgba(255,255,255,.86);
		border-radius:var(--radius);
		transform:translateX(0);
	}

	.sidebar.closed{
		transform:translateX(calc(-100% - 36px));
	}

	.menu-page{
		padding-bottom:84px;
	}

	.split{grid-template-columns:1fr 1fr}
	.modal-backdrop{place-items:center}
	.modal{border-radius:12px}
	.user-name{display:inline}
}

@media (min-width:1100px){
	.sidebar{
		width:390px;
		max-width:390px;
	}
}

@media (max-width:560px){
	.topbar{top:10px;left:10px;right:10px}
	.stats-grid{display:none}
	.settings-stats{display:grid}
	.search-box{grid-template-columns:1fr}
	.restaurant-card{grid-template-columns:74px 1fr auto}
	.restaurant-cover,.cover-placeholder{
		width:74px;
		height:74px;
	}
	.card-actions{
		grid-column:1/-1;
	}
	.vote-option{
		grid-template-columns:28px 54px 1fr;
	}
	.vote-count{
		grid-column:3;
		text-align:left;
	}
	.dish-row{grid-template-columns:1fr}
	.dish-notes{grid-column:auto}
	.restaurant-row{
		grid-template-columns:38px minmax(0,1fr) auto 32px;
		gap:6px;
		padding:7px;
	}
	.restaurant-signals .rating-signal{
		display:none;
	}
	.detail-action-grid,
	.rating-compact-grid,
	.visit-top-grid,
	.visit-cost-grid{
		grid-template-columns:1fr;
	}
}

@media (prefers-reduced-motion:reduce){
	*{
		transition:none!important;
		scroll-behavior:auto!important;
	}
}
