/**
 * Neo-Social — Προσφορές
 *
 * Οι τιμές χρωμάτων περνούν από μεταβλητές ώστε το θέμα να μπορεί να τις
 * αλλάξει χωρίς να πειράξει τον κώδικα.
 */

.nsof-wrap {
	/* Ακολουθεί το χρώμα του Πυρήνα· το τελευταίο είναι μόνο δίχτυ ασφαλείας. */
	--nsof-primary: var(--neo-primary, #2f6f62);
	--nsof-border: rgba(0, 0, 0, 0.1);
	--nsof-muted: #6b7280;
	--nsof-surface: #fff;
	--nsof-soft: #f6f6f7;
	--nsof-warn: #b45309;

	box-sizing: border-box;
	font-size: 15px;
	line-height: 1.55;
}

.nsof-wrap *,
.nsof-wrap *::before,
.nsof-wrap *::after {
	box-sizing: inherit;
}

/* Καρτέλες ------------------------------------------------------------- */

.nsof-tabs {
	display: flex;
	gap: 22px;
	border-bottom: 1px solid var(--nsof-border);
	margin-bottom: 18px;
}

.nsof-tabs .nsof-tab {
	padding: 0 2px 10px;
	margin-bottom: -1px;
	text-decoration: none;
	color: var(--nsof-muted);
	border-bottom: 2px solid transparent;
	font-weight: 500;
}

.nsof-tabs .nsof-tab.is-active {
	color: inherit;
	border-bottom-color: var(--nsof-primary);
}

/* Μπάρα εργαλείων ------------------------------------------------------ */

.nsof-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin-bottom: 20px;
}

/*
 * Το κουμπί δημιουργίας πάει τελευταίο και σπρώχνεται δεξιά, χωριστά από τα
 * φίλτρα: είναι άλλη ενέργεια, όχι μέρος της αναζήτησης.
 */
.nsof-toolbar .nsof-btn-primary {
	flex: 0 0 auto;
	order: 99;
	margin-left: auto;
}

.nsof-toolbar input[type="search"],
.nsof-toolbar input[type="text"] {
	flex: 1 1 180px;
	min-width: 140px;
}

/*
 * Το κουμπί αναζήτησης μπαίνει μέσα στο πεδίο ως εικονίδιο. Ως ξεχωριστό
 * κουμπί έσπαγε τη μπάρα σε δεύτερη γραμμή και ξέμενε μόνο του αριστερά.
 */
.nsof-search {
	position: relative;
	flex: 1 1 150px;
	min-width: 130px;
	display: flex;
}

.nsof-search input[type="search"] {
	width: 100%;
	padding-right: 38px;
}

.nsof-search-go {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	color: var(--nsof-muted);
}

.nsof-search-go:hover {
	color: inherit;
}

.nsof-search-go .dashicons {
	font-size: 18px;
	width: 18px;
	height: 18px;
	line-height: 1;
}

/*
 * Στενά πλάτη ώστε πεδίο, τρία φίλτρα και κουμπί να χωράνε σε μία γραμμή.
 * Όταν έσπαγε, το κουμπί ξέμενε μόνο του σε δεύτερη σειρά με κενό δίπλα του.
 */
.nsof-toolbar select {
	flex: 0 1 auto;
	max-width: 170px;
	min-width: 0;
}

/* Ο τύπος είναι βοηθητικός: πιο στενός από την ίδια την κατηγορία. */
.nsof-toolbar .nsof-list-pick {
	flex: 0 1 auto;
	max-width: 130px;
}

.nsof-toolbar .nsof-item-pick {
	flex: 0 1 auto;
	max-width: 180px;
}

.nsof-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 16px;
}

.nsof-filter {
	font-size: 13px;
	padding: 4px 12px;
	border-radius: 999px;
	border: 1px solid var(--nsof-border);
	color: var(--nsof-muted);
	text-decoration: none;
}

.nsof-filter.is-active {
	background: var(--nsof-primary);
	border-color: var(--nsof-primary);
	color: #fff;
}

/* Κάρτες ζητήσεων ------------------------------------------------------ */

.nsof-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.nsof-card {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	justify-content: space-between;
	background: var(--nsof-surface);
	border: 1px solid var(--nsof-border);
	border-radius: 12px;
	padding: 14px 18px;
}

.nsof-card.is-closed {
	opacity: 0.65;
}

.nsof-card-main {
	min-width: 0;
	flex: 1 1 auto;
}

.nsof-card-title {
	margin: 0 0 4px;
	font-size: 17px;
	line-height: 1.3;
}

.nsof-card-title a {
	text-decoration: none;
	color: inherit;
}

.nsof-card-desc {
	margin: 0 0 8px;
	color: var(--nsof-muted);
	font-size: 14px;
}

.nsof-card-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	font-size: 13px;
	color: var(--nsof-muted);
}

.nsof-card-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 8px;
}

/*
 * Σταθερό πλάτος με flex: 0 0, ώστε ένα θέμα με δικούς του κανόνες να μη
 * μπορεί να στριμώξει τον μετρητή.
 */
.nsof-card-count {
	flex: 0 0 78px;
	min-width: 78px;
	max-width: 78px;
	text-align: center;
	background: var(--nsof-soft);
	border-radius: 8px;
	padding: 10px 4px;
}

.nsof-card-count strong {
	display: block;
	font-size: 21px;
	line-height: 1.2;
}

.nsof-card-count span {
	font-size: 12px;
	color: var(--nsof-muted);
}

/* Εναλλαγή πλέγμα / λίστα ---------------------------------------------- */

.nsof-viewbar {
	display: flex;
	justify-content: flex-end;
	gap: 4px;
	margin: 0 0 10px;
}

.nsof-viewbtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 32px;
	padding: 0;
	border: 1px solid var(--nsof-border);
	border-radius: 8px;
	background: var(--nsof-surface);
	color: var(--nsof-muted);
	cursor: pointer;
}

.nsof-viewbtn.is-on {
	border-color: var(--nsof-primary);
	color: var(--nsof-primary);
}

.nsof-viewbtn .dashicons {
	width: 18px;
	height: 18px;
	font-size: 18px;
}

/* Πλέγμα --------------------------------------------------------------- */

/*
 * Οι στήλες μοιράζονται μόνες τους: τρεις σε πλατιά οθόνη, δύο σε tablet,
 * μία σε κινητό.
 */
.nsof-list.is-grid {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 250px, 1fr ) );
	gap: 12px;
	align-items: stretch;
}

.nsof-list.is-grid .nsof-card {
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
	gap: 10px;
}

.nsof-list.is-grid .nsof-card-main {
	flex: 1 1 auto;
}

.nsof-list.is-grid .nsof-card-title {
	font-size: 16px;
}

/* Οι μεγάλες περιγραφές κόβονται, ώστε οι κάρτες να μένουν ισοϋψείς. */
.nsof-list.is-grid .nsof-card-desc {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Ο μετρητής απαντήσεων γίνεται λωρίδα στο κάτω μέρος. */
.nsof-list.is-grid .nsof-card-count {
	flex: 0 0 auto;
	width: 100%;
	max-width: none;
	min-width: 0;
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 6px;
	padding: 7px 4px;
}

.nsof-list.is-grid .nsof-card-count strong {
	font-size: 17px;
}

/* Ετικέτες ------------------------------------------------------------- */

.nsof-chip {
	display: inline-block;
	font-size: 12px;
	padding: 3px 10px;
	border-radius: 6px;
	background: var(--nsof-soft);
}

.nsof-chip-plain {
	background: transparent;
	border: 1px solid var(--nsof-border);
	color: var(--nsof-muted);
}

.nsof-chip-warn {
	border-color: currentColor;
	color: var(--nsof-warn);
}

.nsof-tone-0 { background: #eeedfe; color: #3c3489; }
.nsof-tone-1 { background: #e1f5ee; color: #085041; }
.nsof-tone-2 { background: #faece7; color: #712b13; }
.nsof-tone-3 { background: #e6f1fb; color: #0c447c; }
.nsof-tone-4 { background: #fbeaf0; color: #72243e; }
.nsof-tone-5 { background: #faeeda; color: #633806; }

/* Λεπτομέρεια ζήτησης -------------------------------------------------- */

.nsof-back {
	margin: 0 0 10px;
	font-size: 14px;
}

.nsof-single {
	background: var(--nsof-surface);
	border: 1px solid var(--nsof-border);
	border-radius: 12px;
	padding: 18px;
	margin-bottom: 20px;
}

.nsof-single h2 {
	margin: 0 0 8px;
}

.nsof-single-desc {
	margin: 12px 0;
}

.nsof-photos {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 12px 0;
}

.nsof-photos img {
	width: 120px;
	height: 120px;
	object-fit: cover;
	border-radius: 8px;
}

/* Απαντήσεις ----------------------------------------------------------- */

.nsof-quotes h3 {
	margin: 0 0 6px;
}

.nsof-hint {
	color: var(--nsof-muted);
	font-size: 13px;
	margin: 0 0 12px;
}

.nsof-quote {
	background: var(--nsof-surface);
	border: 1px solid var(--nsof-border);
	border-radius: 12px;
	padding: 14px 18px;
}

.nsof-quote-accepted {
	border-color: var(--nsof-primary);
}

.nsof-quote-declined {
	opacity: 0.6;
}

.nsof-quote-head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
}

.nsof-quote-who {
	flex: 1 1 auto;
	min-width: 0;
}

.nsof-quote-who a {
	text-decoration: none;
	color: inherit;
	font-weight: 500;
}

.nsof-quote-who em {
	display: block;
	font-size: 13px;
	color: var(--nsof-muted);
	font-style: normal;
}

.nsof-quote-price {
	font-size: 18px;
	font-weight: 600;
	white-space: nowrap;
}

.nsof-quote-includes {
	margin: 0 0 8px;
	font-size: 14px;
}

.nsof-quote-state {
	margin: 8px 0 0;
	font-size: 13px;
	color: var(--nsof-muted);
}

.nsof-quote-state.nsof-ok {
	color: var(--nsof-primary);
	font-weight: 500;
}

.nsof-quote-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 10px;
	align-items: center;
}

.nsof-quote-actions form {
	display: flex;
	gap: 8px;
	margin: 0;
}

.nsof-avatar {
	flex: 0 0 auto;
	border-radius: 50%;
}

.nsof-avatar-fallback {
	display: inline-block;
	width: 32px;
	height: 32px;
	background: var(--nsof-soft);
}

/* Κάρτες προσφορών ----------------------------------------------------- */

.nsof-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 14px;
}

.nsof-deal {
	background: var(--nsof-surface);
	border: 1px solid var(--nsof-border);
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.nsof-deal-media {
	position: relative;
	height: 140px;
	background: var(--nsof-soft);
	display: flex;
	align-items: center;
	justify-content: center;
}

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

.nsof-deal-noimg {
	font-size: 28px;
	color: var(--nsof-muted);
}

.nsof-deal-pct {
	position: absolute;
	top: 10px;
	left: 10px;
	background: #e24b4a;
	color: #fff;
	font-size: 12px;
	padding: 3px 10px;
	border-radius: 6px;
}

.nsof-deal-body {
	padding: 12px 14px 14px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1 1 auto;
}

.nsof-deal-title {
	margin: 4px 0 0;
	font-size: 16px;
	line-height: 1.3;
}

.nsof-deal-new {
	font-size: 19px;
	font-weight: 600;
}

.nsof-deal-old {
	color: var(--nsof-muted);
	text-decoration: line-through;
	font-size: 14px;
}

.nsof-deal-text {
	display: inline-block;
	background: #faeeda;
	color: #633806;
	padding: 4px 12px;
	border-radius: 6px;
	font-size: 14px;
}

.nsof-deal-owner {
	display: flex;
	align-items: center;
	gap: 8px;
	padding-top: 10px;
	border-top: 1px solid var(--nsof-border);
	font-size: 13px;
	color: var(--nsof-muted);
	overflow: hidden;
}

.nsof-deal-owner a {
	color: inherit;
	text-decoration: none;
}

.nsof-deal-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-top: auto;
	padding-top: 6px;
}

.nsof-deal-foot form {
	margin: 0;
}

.nsof-expiry {
	font-size: 12px;
	color: var(--nsof-muted);
}

.nsof-expiry-soon {
	color: var(--nsof-warn);
}

.nsof-deal-count,
.nsof-deal-done {
	font-size: 12px;
	color: var(--nsof-muted);
}

/* Φόρμες --------------------------------------------------------------- */

.nsof-form {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 16px 0;
}

.nsof-form-boxed {
	background: var(--nsof-surface);
	border: 1px solid var(--nsof-border);
	border-radius: 12px;
	padding: 18px;
}

.nsof-form h4 {
	margin: 0;
}

.nsof-form label {
	display: block;
}

/*
 * Το display:block παραπάνω νικούσε το [hidden], οπότε τα πεδία που κρύβει
 * το JS (περιοχή, τιμές/κείμενο προσφοράς) έμεναν ορατά. Ο κανόνας μπαίνει
 * τελευταίος και με !important για να μη σπάσει ξανά από θέμα.
 */
.nsof-wrap [hidden] {
	display: none !important;
}

.nsof-field-hint {
	display: block;
	margin-top: 4px;
	font-size: 12px;
	color: var(--nsof-muted);
	line-height: 1.4;
	font-weight: 400;
}

.nsof-form label > span {
	display: block;
	font-size: 14px;
	font-weight: 500;
	margin-bottom: 4px;
}

.nsof-form input[type="text"],
.nsof-form input[type="date"],
.nsof-form input[type="search"],
.nsof-form select,
.nsof-form textarea {
	width: 100%;
}

.nsof-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: flex-start;
}

.nsof-row > * {
	flex: 1 1 160px;
	min-width: 0;
}

/*
 * Η γραμμή με το autocomplete χρειάζεται στοίβαξη: αλλιώς η λίστα πόλεων
 * περνάει κάτω από το διπλανό select αντί να καθίσει από πάνω του.
 */
.nsof-row > label:has( .neo-social-city-ac ) {
	position: relative;
	z-index: 4;
}

/*
 * Οι ετικέτες με checkbox χρειάζονται flex, αλλιώς ένα θέμα με
 * display:block στα label σπάει τη σειρά.
 */
.nsof-form .nsof-check,
.nsof-cats .nsof-check {
	display: flex;
	align-items: center;
	gap: 8px;
}

.nsof-form .nsof-check > span,
.nsof-cats .nsof-check > span {
	margin: 0;
	font-weight: 400;
}

.nsof-budget {
	background: var(--nsof-soft);
	border-radius: 8px;
	padding: 12px;
}

.nsof-budget-label {
	display: block;
	font-size: 14px;
	font-weight: 500;
	margin-bottom: 6px;
}

.nsof-form-actions {
	display: flex;
	justify-content: flex-end;
	gap: 8px;
	padding-top: 8px;
	border-top: 1px solid var(--nsof-border);
}

.nsof-cats {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 12px;
}

.nsof-cats fieldset {
	border: 1px solid var(--nsof-border);
	border-radius: 8px;
	padding: 10px 12px;
	margin: 0;
	max-height: 220px;
	overflow-y: auto;
}

.nsof-cats legend {
	font-size: 13px;
	font-weight: 500;
	padding: 0 4px;
}

/* Κουμπιά και μηνύματα ------------------------------------------------- */

.nsof-btn {
	display: inline-block;
	padding: 7px 14px;
	border-radius: 8px;
	border: 1px solid var(--nsof-border);
	background: transparent;
	color: inherit;
	text-decoration: none;
	font-size: 14px;
	cursor: pointer;
	line-height: 1.3;
}

.nsof-btn:hover {
	background: var(--nsof-soft);
}

.nsof-btn-primary {
	background: var(--nsof-primary);
	border-color: var(--nsof-primary);
	color: #fff;
}

.nsof-btn-primary:hover {
	opacity: 0.9;
	background: var(--nsof-primary);
}

.nsof-btn-small {
	padding: 5px 12px;
	font-size: 13px;
}

.nsof-empty {
	padding: 24px;
	text-align: center;
	color: var(--nsof-muted);
	background: var(--nsof-soft);
	border-radius: 12px;
}

.nsof-notice {
	padding: 10px 14px;
	border-radius: 8px;
	background: var(--nsof-soft);
	margin-bottom: 14px;
	font-size: 14px;
}

.nsof-notice-error {
	background: #fceaea;
	color: #791f1f;
}

.nsof-block {
	margin-bottom: 28px;
}

.nsof-block h3 {
	margin: 0 0 10px;
}

.nsof-pager {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin-top: 18px;
}

/* Ενσωματωμένο σε Σελίδα ή προφίλ: χωρίς τα περιθώρια της δικής μας σελίδας. */
.nsof-embed {
	padding: 4px 0;
}

.nsof-embed-actions {
	margin: 0 0 14px;
}

.nsof-profile-btn {
	display: block;
	text-align: center;
}

/* Διαχείριση ------------------------------------------------------------ */

.nsof-owner-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	padding-top: 12px;
	margin-top: 12px;
	border-top: 1px solid var(--nsof-border);
}

.nsof-owner-bar form {
	margin: 0;
	display: flex;
	gap: 8px;
}

.nsof-owner-note {
	margin-left: auto;
	font-size: 12px;
	color: var(--nsof-muted);
}

.nsof-btn-danger {
	color: #8a1c1c;
	border-color: rgba(138, 28, 28, 0.35);
}

.nsof-btn-danger:hover {
	background: #fceaea;
}

.nsof-btn-danger-solid {
	background: #8a1c1c;
	border-color: #8a1c1c;
	color: #fff;
}

.nsof-btn-danger-solid:hover {
	background: #8a1c1c;
	opacity: 0.9;
}

/*
 * Τα κλειδωμένα πεδία είναι κείμενο, όχι απενεργοποιημένα κουτιά: ένα
 * γκριζαρισμένο select μοιάζει με βλάβη και ο χρήστης νομίζει ότι κόλλησε.
 */
.nsof-locked {
	padding: 7px 11px;
	border-radius: 8px;
	background: var(--nsof-soft);
	border: 1px solid var(--nsof-border);
	color: var(--nsof-muted);
	font-size: 14px;
}

.nsof-locked-label {
	display: block;
	font-size: 13px;
	font-weight: 500;
	margin-bottom: 5px;
	color: var(--nsof-muted);
}

.nsof-warn-box {
	background: #faeeda;
	color: #633806;
	border-radius: 8px;
	padding: 9px 13px;
	font-size: 13px;
	line-height: 1.5;
}

.nsof-confirm {
	background: var(--nsof-surface);
	border: 1px solid rgba(138, 28, 28, 0.3);
	border-radius: 12px;
	padding: 16px 18px;
	margin: 14px 0;
}

.nsof-confirm p {
	margin: 0 0 6px;
}

.nsof-confirm .nsof-confirm-body {
	margin: 0 0 14px;
	font-size: 13px;
	color: var(--nsof-muted);
	line-height: 1.5;
}

.nsof-confirm-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.nsof-confirm-actions form {
	margin: 0;
}

.nsof-quote-withdrawn,
.nsof-deal.is-dim {
	opacity: 0.62;
}

.nsof-file {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 13px;
	text-decoration: none;
	color: var(--nsof-primary);
	margin: 2px 0;
}

.nsof-file:hover {
	text-decoration: underline;
}

.nsof-file .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
}

.nsof-reach {
	background: var(--nsof-soft);
	border-radius: 8px;
	padding: 12px;
}

.nsof-reach > .nsof-check {
	margin-bottom: 6px;
	align-items: flex-start;
}

.nsof-reach-cat,
.nsof-reach-conn {
	margin: 10px 0 0 24px;
	padding-top: 10px;
	border-top: 1px solid var(--nsof-border);
}

.nsof-aud-types {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
}



.nsof-hidden-flag {
	display: inline-block;
	font-size: 12px;
	padding: 3px 10px;
	border-radius: 6px;
	background: var(--nsof-soft);
	color: var(--nsof-muted);
}

.nsof-photo-picks {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.nsof-photo-pick {
	position: relative;
	display: block;
	width: 84px;
}

.nsof-photo-pick img {
	width: 84px;
	height: 84px;
	object-fit: cover;
	border-radius: 8px;
	display: block;
}

/*
 * Το × κάθεται πάνω δεξιά και κρύβει το checkbox από κάτω του. Στις νέες
 * φωτογραφίες είναι button αντί για label, αλλά η όψη είναι ίδια.
 */
.nsof-photo-x {
	position: absolute;
	top: 4px;
	right: 4px;
	width: 22px;
	height: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, .58);
	color: #fff;
	font-size: 16px;
	line-height: 1;
	padding: 0;
	margin: 0;
	cursor: pointer;
	appearance: none;
}

.nsof-photo-x input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

.nsof-photo-pick.is-dropped { opacity: .35; }
.nsof-photo-pick.is-dropped .nsof-photo-x { background: #a32d2d; }

.nsof-photo-msg {
	margin: 6px 0 0;
	font-size: 12px;
	color: #633806;
}

.nsof-photo-msg:empty { display: none; }
.nsof-photo-preview:empty,
.nsof-single-preview:empty { display: none; }
.nsof-photo-preview,
.nsof-single-preview { margin-top: 8px; }

/*
 * Το autocomplete πόλεων έρχεται από τον Πυρήνα. Εδώ μόνο το ταιριάζουμε με
 * τη διάταξη των δικών μας φορμών: πλήρες πλάτος και σωστό z-index ώστε η
 * λίστα να μην κρύβεται κάτω από το επόμενο πεδίο.
 */
.nsof-wrap .neo-social-city-ac {
	position: relative;
	width: 100%;
	z-index: 3;
}

.nsof-wrap .neo-social-city-ac .neo-social-city-input {
	width: 100%;
}

.nsof-toolbar .neo-social-city-ac {
	flex: 1 1 160px;
	min-width: 130px;
}

.nsof-wrap .neo-social-city-list {
	z-index: 20;
}

@media (max-width: 600px) {
	/* Σε στενή οθόνη το κουμπί δημιουργίας παίρνει δική του γραμμή. */
	.nsof-toolbar .nsof-btn-primary {
		flex: 1 1 100%;
		margin-left: 0;
		text-align: center;
	}

	.nsof-card {
		flex-direction: column;
	}

	.nsof-card-count {
		flex: 0 0 auto;
		max-width: none;
		width: 100%;
		display: flex;
		align-items: baseline;
		justify-content: center;
		gap: 6px;
	}
}

/* Ιδιωτική (στοχευμένη) ζήτηση ----------------------------------------- */

/*
 * Ίσιες γωνίες: στρογγυλές γωνίες με μονόπλευρο περίγραμμα δείχνουν
 * σπασμένες στις περισσότερες αναλογίες.
 */
.nsof-card.is-targeted {
	border-left: 3px solid #7f77dd;
	border-radius: 0;
}

.nsof-chip-lock {
	background: #eeedfe;
	color: #3c3489;
}

.nsof-chip-lock::before {
	content: "\f160";
	font-family: dashicons;
	font-size: 13px;
	vertical-align: -2px;
	margin-inline-end: 4px;
}

/* Κουμπί «Ζήτησε προσφορά» στη μπάρα του προφίλ ------------------------ */

.nsof-ask-btn .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
}

/* Διακόπτης «δέχομαι ζητήσεις» ----------------------------------------- */

/*
 * Δικό του πλαίσιο ώστε να μη διαβάζεται σαν άλλο ένα checkbox της λίστας:
 * τα υπόλοιπα ρυθμίζουν το «πώς», αυτό αποφασίζει το «αν».
 */
.nsof-switch-box {
	border: 1px solid var(--nsof-border);
	border-radius: 8px;
	padding: 12px 14px;
	margin-bottom: 18px;
	background: var(--nsof-soft);
}

.nsof-switch-box .nsof-check {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
}

.nsof-switch-box .nsof-check input {
	margin-top: 3px;
	flex: 0 0 auto;
}

.nsof-switch-box strong {
	display: block;
	font-weight: 500;
}

.nsof-switch-box small {
	display: block;
	margin-top: 2px;
	font-size: 13px;
	color: var(--nsof-muted);
	line-height: 1.5;
}

.nsof-switch-form {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}

.nsof-switch-form .nsof-check {
	flex: 1 1 240px;
}

.nsof-switch-form .nsof-btn {
	flex: 0 0 auto;
	white-space: nowrap;
}

/* Πεδίο πολλών πόλεων --------------------------------------------------- */

.nsof-cities {
	position: relative;
}

.nsof-cities-box {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
	border: 1px solid var(--nsof-border);
	border-radius: 8px;
	padding: 8px;
	background: var(--nsof-surface);
	cursor: text;
}

.nsof-cities-input {
	flex: 1 1 140px;
	min-width: 120px;
	height: 28px;
	border: 0;
	padding: 0 4px;
	background: transparent;
	outline: none;
}

.nsof-city-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	padding: 4px 8px;
	border-radius: 6px;
	background: var(--nsof-soft);
}

.nsof-city-x {
	border: 0;
	background: transparent;
	padding: 0;
	font-size: 15px;
	line-height: 1;
	cursor: pointer;
	color: var(--nsof-muted);
}

.nsof-city-x:hover {
	color: inherit;
}

.nsof-cities-list {
	display: none;
	position: absolute;
	z-index: 20;
	left: 0;
	right: 0;
	margin-top: 4px;
	background: var(--nsof-surface);
	border: 1px solid var(--nsof-border);
	border-radius: 8px;
	overflow: hidden;
}

.nsof-cities-list.is-open {
	display: block;
}

.nsof-cities-opt {
	padding: 8px 12px;
	font-size: 14px;
	cursor: pointer;
}

.nsof-cities-opt:hover {
	background: var(--nsof-soft);
}

/* Ενημερωτικό πλαίσιο, π.χ. όταν η ζήτηση θα δεθεί με ένα έργο. */
.nsof-notice-info {
	background: #e6f1fb;
	color: #0c447c;
	border-color: #b5d4f4;
}
