MediaWiki:Common.css: відмінності між версіями
Admin (обговорення | внесок) (Стилі callout-плашок) |
Admin (обговорення | внесок) (Картки: повна консолідація (заголовки→ink, тіні→shadow-токени, CTA/meta/лінки→токени)) |
||
| (Не показано 16 проміжних версій цього користувача) | |||
| Рядок 15: | Рядок 15: | ||
display: flex; | display: flex; | ||
flex-direction: column; | flex-direction: column; | ||
background: | background: var(--k-bg); | ||
border: 1px solid | border: 1px solid var(--k-border); | ||
border-radius: | border-radius: var(--k-radius-md); | ||
overflow: hidden; | overflow: hidden; | ||
box-shadow: | box-shadow: var(--k-shadow-1); | ||
transition: transform .15s ease, box-shadow .15s ease; | transition: transform .15s ease, box-shadow .15s ease; | ||
} | } | ||
.place-card:hover { | .place-card:hover { | ||
transform: translateY(-2px); | transform: translateY(-2px); | ||
box-shadow: | box-shadow: var(--k-shadow-2); | ||
} | } | ||
.place-card__img { | .place-card__img { | ||
| Рядок 40: | Рядок 40: | ||
.place-card__body { padding: 14px 18px 18px; } | .place-card__body { padding: 14px 18px 18px; } | ||
.place-card__title { font-size: 17px; font-weight: 700; margin: 0 0 8px; line-height: 1.25; } | .place-card__title { font-size: 17px; font-weight: 700; margin: 0 0 8px; line-height: 1.25; } | ||
.place-card__title a { color: | .place-card__title a { color: var(--k-ink); text-decoration: none; } | ||
.place-card__title a:hover { color: | .place-card__title a:hover { color: var(--k-accent); } | ||
.place-card__meta { font-size: 13px; color: | .place-card__meta { font-size: 13px; color: var(--k-text-muted); margin: 0 0 10px; line-height: 1.5; } | ||
.place-card__desc { font-size: 14px; line-height: 1.5; color: | .place-card__desc { font-size: 14px; line-height: 1.5; color: var(--k-text-secondary); display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; } | ||
/* Whole card clickable (stretched link) */ | |||
.place-card { position: relative; cursor: pointer; } | |||
.place-card__title a::after { content:""; position:absolute; top:0; left:0; right:0; bottom:0; z-index:1; } | |||
.place-card__meta a { position: relative; z-index:2; } | |||
/* Place detail view (на власній сторінці місця) */ | |||
.place-detail { max-width: 760px; } | |||
.place-detail__img img { display:block; max-width:100%; height:auto; border-radius:14px; margin:4px 0 16px; } | |||
.place-detail__meta { font-size:14px; color:var(--k-text-muted); line-height:1.7; margin:0 0 14px; } | |||
.place-detail__desc { font-size:16px; line-height:1.65; color:var(--k-text-secondary); } | |||
.place-detail__desc--empty { color:var(--k-text-hint); font-style:italic; } | |||
/* Grid: 2 columns desktop, 1 column mobile */ | /* Grid: 2 columns desktop, 1 column mobile */ | ||
| Рядок 475: | Рядок 486: | ||
/* Блок "Інструменти" (#p-tb) — лише для адмінів. | /* Блок "Інструменти" (#p-tb) — лише для адмінів. | ||
Body отримує клас usergroup-sysop через Common.js. */ | Body отримує клас usergroup-sysop через Common.js. */ | ||
/* Меню «Інструменти» (page-tools) приховане всюди для всіх */ | |||
#p-tb, | |||
#vector-page-tools-dropdown, | |||
#vector-page-tools-pinned-container, | |||
#vector-page-tools-unpinned-container, | |||
.vector-page-tools-landmark { display: none !important; } | |||
/* Сховати tabs "Обговорення" і "Головна" з UI */ | /* Сховати tabs "Обговорення" і "Головна" з UI */ | ||
| Рядок 541: | Рядок 557: | ||
display: flex; | display: flex; | ||
flex-direction: column; | flex-direction: column; | ||
background: | background: var(--k-bg); | ||
border: 1px solid | border: 1px solid var(--k-border); | ||
border-radius: | border-radius: var(--k-radius-md); | ||
overflow: hidden; | overflow: hidden; | ||
box-shadow: | box-shadow: var(--k-shadow-1); | ||
transition: transform .15s ease, box-shadow .15s ease; | transition: transform .15s ease, box-shadow .15s ease; | ||
} | } | ||
.service-card:hover { | .service-card:hover { | ||
transform: translateY(-2px); | transform: translateY(-2px); | ||
box-shadow: | box-shadow: var(--k-shadow-2); | ||
} | } | ||
.service-card__body { padding: 16px 20px 18px; } | .service-card__body { padding: 16px 20px 18px; } | ||
| Рядок 559: | Рядок 575: | ||
line-height: 1.25; | line-height: 1.25; | ||
} | } | ||
.service-card__title a { color: | .service-card__title a { color: var(--k-ink); text-decoration: none; } | ||
.service-card__title a:hover { color: | .service-card__title a:hover { color: var(--k-accent); } | ||
.service-card__members { | .service-card__members { | ||
display: inline-block; | display: inline-block; | ||
| Рядок 566: | Рядок 582: | ||
font-size: 12px; | font-size: 12px; | ||
font-weight: 500; | font-weight: 500; | ||
color: | color: var(--k-text-muted); | ||
white-space: nowrap; | white-space: nowrap; | ||
vertical-align: middle; | vertical-align: middle; | ||
| Рядок 573: | Рядок 589: | ||
font-size: 14px; | font-size: 14px; | ||
line-height: 1.5; | line-height: 1.5; | ||
color: | color: var(--k-text-secondary); | ||
margin-bottom: 12px; | margin-bottom: 12px; | ||
} | } | ||
| Рядок 581: | Рядок 597: | ||
gap: 4px; | gap: 4px; | ||
font-size: 13px; | font-size: 13px; | ||
color: | color: var(--k-text-secondary); | ||
border-top: 1px solid #f3f4f6; | border-top: 1px solid #f3f4f6; | ||
padding-top: 10px; | padding-top: 10px; | ||
| Рядок 592: | Рядок 608: | ||
background-size: 14px 14px; | background-size: 14px 14px; | ||
} | } | ||
.service-card__row a { color: | .service-card__row a { color: var(--k-accent) !important; text-decoration: none; } | ||
.service-card__row a:hover { text-decoration: underline; } | .service-card__row a:hover { text-decoration: underline; } | ||
/* SVG-іконки (Heroicons solid, fill | /* SVG-іконки (Heroicons solid, fill var(--k-text-secondary), URL-encoded) */ | ||
.service-card__row--phone { | .service-card__row--phone { | ||
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27%234b5563%27%3E%3Cpath%20fill-rule%3D%27evenodd%27%20d%3D%27M1.5%204.5a3%203%200%200%201%203-3h1.372c.86%200%201.61.586%201.819%201.42l1.105%204.423a1.875%201.875%200%200%201-.694%201.955l-1.293.97c-.135.101-.164.249-.126.352a11.285%2011.285%200%200%200%206.197%206.197c.103.038.25.009.352-.126l.97-1.293a1.875%201.875%200%200%201%201.955-.694l4.423%201.105c.834.209%201.42.959%201.42%201.82V19.5a3%203%200%200%201-3%203h-2.25C8.552%2022.5%201.5%2015.448%201.5%206.75V4.5z%27%20clip-rule%3D%27evenodd%27%2F%3E%3C%2Fsvg%3E"); | background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27%234b5563%27%3E%3Cpath%20fill-rule%3D%27evenodd%27%20d%3D%27M1.5%204.5a3%203%200%200%201%203-3h1.372c.86%200%201.61.586%201.819%201.42l1.105%204.423a1.875%201.875%200%200%201-.694%201.955l-1.293.97c-.135.101-.164.249-.126.352a11.285%2011.285%200%200%200%206.197%206.197c.103.038.25.009.352-.126l.97-1.293a1.875%201.875%200%200%201%201.955-.694l4.423%201.105c.834.209%201.42.959%201.42%201.82V19.5a3%203%200%200%201-3%203h-2.25C8.552%2022.5%201.5%2015.448%201.5%206.75V4.5z%27%20clip-rule%3D%27evenodd%27%2F%3E%3C%2Fsvg%3E"); | ||
| Рядок 614: | Рядок 630: | ||
justify-content: center; | justify-content: center; | ||
text-align: center; | text-align: center; | ||
background: | background: var(--k-bg-subtle); | ||
border: 2px dashed | border: 2px dashed var(--k-border-strong); | ||
box-shadow: none; | box-shadow: none; | ||
color: | color: var(--k-text-secondary); | ||
text-decoration: none; | text-decoration: none; | ||
padding: 16px 20px 18px; | padding: 16px 20px 18px; | ||
| Рядок 623: | Рядок 639: | ||
} | } | ||
.service-card--cta:hover { | .service-card--cta:hover { | ||
border-color: | border-color: var(--k-accent); | ||
background: #f0f6ff; | background: #f0f6ff; | ||
color: | color: var(--k-accent); | ||
transform: translateY(-2px); | transform: translateY(-2px); | ||
box-shadow: none; | box-shadow: none; | ||
| Рядок 634: | Рядок 650: | ||
height: 36px; | height: 36px; | ||
border-radius: 50%; | border-radius: 50%; | ||
background: | background: var(--k-bg); | ||
border: 1.5px solid currentColor; | border: 1.5px solid currentColor; | ||
display: flex; | display: flex; | ||
| Рядок 652: | Рядок 668: | ||
display: block; | display: block; | ||
font-size: 12px; | font-size: 12px; | ||
color: | color: var(--k-text-muted); | ||
margin-top: 4px; | margin-top: 4px; | ||
} | } | ||
| Рядок 2021: | Рядок 2037: | ||
============================================================ */ | ============================================================ */ | ||
.callout { | .callout { | ||
margin: 14px 0; | margin: 14px 0; | ||
padding: 12px 14px; | padding: 12px 14px; | ||
border-radius: | border-radius: 0 6px 6px 0; | ||
} | } | ||
.callout__icon { | .callout__icon { display: none; } | ||
.callout__body > :first-child { margin-top: 0; } | .callout__body > :first-child { margin-top: 0; } | ||
.callout__body > :last-child { margin-bottom: 0; } | .callout__body > :last-child { margin-bottom: 0; } | ||
.callout__label { | .callout__label { font-weight: 700; margin-bottom: 2px; color: #202122; } | ||
.callout--note { background: #f3f5f8; border-left: 1px solid #3a59b8; } | |||
font- | .callout--tip { background: #f2f7f5; border-left: 1px solid #1c8a45; } | ||
.callout--warning { background: #f8f4f3; border-left: 1px solid #d92c1c; } | |||
/* Картки лікарів: додаткові рядки (клініка, ціна, CNAS) */ | |||
.service-card__row--clinic { | |||
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27%234b5563%27%3E%3Cpath%20fill-rule%3D%27evenodd%27%20d%3D%27M11.54%2022.351l.07.04.028.016a.76.76%200%2000.723%200l.028-.015.071-.041a16.975%2016.975%200%20001.144-.742%2019.58%2019.58%200%20002.683-2.282c1.944-1.99%203.963-4.98%203.963-8.827a8.25%208.25%200%2000-16.5%200c0%203.846%202.02%206.837%203.963%208.827a19.58%2019.58%200%20002.682%202.282%2016.975%2016.975%200%20001.145.742zM12%2013.5a3%203%200%20100-6%203%203%200%20000%206z%27%20clip-rule%3D%27evenodd%27%2F%3E%3C%2Fsvg%3E"); | |||
} | |||
.service-card__row--price { | |||
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27%234b5563%27%3E%3Cpath%20d%3D%27M12%207.5a2.25%202.25%200%20100%204.5%202.25%202.25%200%20000-4.5z%27%2F%3E%3Cpath%20fill-rule%3D%27evenodd%27%20d%3D%27M1.5%204.875C1.5%203.839%202.34%203%203.375%203h17.25c1.035%200%201.875.84%201.875%201.875v9.75c0%201.036-.84%201.875-1.875%201.875H3.375A1.875%201.875%200%20011.5%2014.625v-9.75zM8.25%209.75a3.75%203.75%200%20117.5%200%203.75%203.75%200%2001-7.5%200zM18.75%209a.75.75%200%2000-.75.75v.008c0%20.414.336.75.75.75h.008a.75.75%200%2000.75-.75V9.75a.75.75%200%2000-.75-.75h-.008zM4.5%209.75A.75.75%200%20015.25%209h.008a.75.75%200%2001.75.75v.008a.75.75%200%2001-.75.75H5.25a.75.75%200%2001-.75-.75V9.75z%27%20clip-rule%3D%27evenodd%27%2F%3E%3Cpath%20d%3D%27M2.25%2018a.75.75%200%20000%201.5c5.4%200%2010.63.722%2015.6%202.075%201.19.324%202.4-.558%202.4-1.82V18.75a.75.75%200%2000-.75-.75H2.25z%27%2F%3E%3C%2Fsvg%3E"); | |||
} | |||
.service-card__row--cnas { | |||
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27%234b5563%27%3E%3Cpath%20fill-rule%3D%27evenodd%27%20d%3D%27M12.516%202.17a.75.75%200%2000-1.032%200%2011.209%2011.209%200%2001-7.877%203.08.75.75%200%2000-.722.515A12.74%2012.74%200%20002.25%209.75c0%205.942%204.064%2010.933%209.563%2012.348a.749.749%200%2000.374%200C17.686%2020.683%2021.75%2015.692%2021.75%209.75c0-1.44-.24-2.83-.678-4.128a.75.75%200%2000-.722-.515%2011.209%2011.209%200%2001-7.834-3.08zM15.53%209.53a.75.75%200%2000-1.06-1.06l-3.97%203.97-1.47-1.47a.75.75%200%2000-1.06%201.06l2%202a.75.75%200%20001.06%200l4.5-4.5z%27%20clip-rule%3D%27evenodd%27%2F%3E%3C%2Fsvg%3E"); | |||
}/* === Країнопедія UI Kit: дизайн-токени + house-компоненти === */ | |||
/* ЄДИНЕ ДЖЕРЕЛО ПРАВДИ. Живе в MediaWiki:Common.css (сайт) і віддзеркалюється | |||
на сторінці https://nomadica.uno/uikit/ (вона вантажить цей же Common.css живим). | |||
Правиш тут → міняється і сайт, і кіт. */ | |||
:root{ | |||
/* — Бренд-мотив (чотири кольори смугастих банерів) — */ | |||
--k-brand-blue:#1070b0; --k-brand-red:#f84840; --k-brand-yellow:#f8b020; --k-brand-teal:#00b898; | |||
/* — Дієві / семантичні — */ | |||
--k-accent:#2a6df4; --k-accent-hover:#1b57cc; | |||
--k-danger:#f84840; --k-success:#00b898; --k-warning:#f8b020; | |||
/* — Чорнило / текст — */ | |||
--k-ink:#1a2240; --k-text:#202122; --k-text-secondary:#374151; --k-text-muted:#6b7280; --k-text-hint:#9ca3af; | |||
/* — Поверхні / межі — */ | |||
--k-bg:#ffffff; --k-bg-subtle:#fafbfd; --k-border:#eef1f6; --k-border-strong:#e3e7ef; | |||
/* — Скруглення — */ | |||
--k-radius-xs:6px; --k-radius-sm:8px; --k-radius-md:14px; --k-radius-lg:20px; --k-radius-pill:999px; | |||
/* — Тіні — */ | |||
--k-shadow-1:0 1px 3px rgba(26,34,64,.08); | |||
--k-shadow-2:0 8px 30px rgba(26,34,64,.16); | |||
--k-shadow-3:0 16px 50px rgba(26,34,64,.22); | |||
/* — Відступи / гепи (крок 4px) — */ | |||
--k-space-0:0; --k-space-1:4px; --k-space-2:8px; --k-space-3:12px; --k-space-4:16px; | |||
--k-space-5:20px; --k-space-6:24px; --k-space-8:32px; --k-space-10:40px; --k-space-12:48px; | |||
/* — Типографіка — */ | |||
--k-font-sans:-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; | |||
--k-fs-xs:12px; --k-fs-sm:13px; --k-fs-base:14px; --k-fs-md:16px; --k-fs-lg:20px; --k-fs-xl:24px; --k-fs-2xl:30px; | |||
--k-fw-normal:400; --k-fw-medium:600; --k-fw-bold:700; | |||
--k-lh-tight:1.2; --k-lh-base:1.5; --k-lh-relaxed:1.7; | |||
/* — Шари (z-index) — */ | |||
--k-z-fixed:1000; --k-z-overlay:1001; --k-z-tip:1002; | |||
} | } | ||
. | |||
. | /* ——— Компоненти (розширюємо під приклад Александра) ——— */ | ||
. | .k-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--k-space-2); | ||
. | font:var(--k-fw-medium) var(--k-fs-base)/var(--k-lh-tight) var(--k-font-sans);padding:var(--k-space-2) var(--k-space-4); | ||
. | border-radius:var(--k-radius-pill);border:1px solid transparent;cursor:pointer; | ||
. | transition:background .15s,border-color .15s,box-shadow .15s} | ||
.k-btn--primary{background:var(--k-accent);color:#fff} | |||
.k-btn--primary:hover{background:var(--k-accent-hover)} | |||
.k-btn--quiet{background:var(--k-bg-subtle);color:var(--k-text);border-color:var(--k-border-strong)} | |||
.k-btn--quiet:hover{background:#f0f2f6} | |||
.k-btn--danger{background:var(--k-danger);color:#fff} | |||
.k-btn--danger:hover{filter:brightness(.94)} | |||
.k-input,.k-textarea{width:100%;box-sizing:border-box;background:var(--k-bg-subtle); | |||
border:1px solid var(--k-border);border-radius:var(--k-radius-sm);padding:9px 11px; | |||
font:var(--k-fs-base)/var(--k-lh-base) var(--k-font-sans);color:var(--k-text); | |||
transition:border-color .15s,background .15s,box-shadow .15s} | |||
.k-input::placeholder,.k-textarea::placeholder{color:var(--k-text-hint)} | |||
.k-input:focus,.k-textarea:focus{outline:none;background:var(--k-bg); | |||
border-color:var(--k-accent);box-shadow:0 0 0 3px rgba(42,109,244,.12)} | |||
.k-card{background:var(--k-bg);border:1px solid var(--k-border);border-radius:var(--k-radius-md); | |||
box-shadow:var(--k-shadow-1);padding:var(--k-space-4);transition:transform .15s,box-shadow .15s} | |||
.k-card:hover{transform:translateY(-2px);box-shadow:var(--k-shadow-2)} | |||
.k-dialog{background:var(--k-bg);border-radius:var(--k-radius-md);box-shadow:var(--k-shadow-2);padding:20px 22px} | |||
.k-pill{display:inline-flex;align-items:center;gap:var(--k-space-1);padding:var(--k-space-1) var(--k-space-3); | |||
border-radius:var(--k-radius-pill);font:var(--k-fw-medium) var(--k-fs-xs)/var(--k-lh-tight) var(--k-font-sans)} | |||
.k-pill--blue{background:rgba(16,112,176,.12);color:var(--k-brand-blue)} | |||
.k-pill--red{background:rgba(248,72,64,.12);color:var(--k-danger)} | |||
.k-pill--yellow{background:rgba(248,176,32,.16);color:#9a6a00} | |||
.k-pill--teal{background:rgba(0,184,152,.14);color:#067a64} | |||
.k-form{display:flex;flex-direction:column;gap:var(--k-space-5)} /* геп між полями — регулюється тут */ | |||
.k-field{display:flex;flex-direction:column;gap:var(--k-space-3)} /* геп лейбл → інпут (12px) */ | |||
.k-label{font:var(--k-fw-medium) var(--k-fs-sm)/var(--k-lh-base) var(--k-font-sans);color:var(--k-text-secondary)} | |||
.k-label span{font-weight:var(--k-fw-normal);color:var(--k-text-hint)} | |||
/* Картки (ціль міграції .place-card / .service-card) */ | |||
.k-card--media{padding:0;overflow:hidden} | |||
.k-card__img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--k-bg-subtle)} | |||
.k-card__body{padding:var(--k-space-4) var(--k-space-5) var(--k-space-5)} | |||
.k-card__title{margin:0 0 var(--k-space-2);font:var(--k-fw-bold) var(--k-fs-md)/var(--k-lh-tight) var(--k-font-sans);color:var(--k-ink)} | |||
.k-card__title a{color:inherit;text-decoration:none} | |||
.k-card__title a:hover{color:var(--k-accent)} | |||
.k-card__meta{margin:0 0 var(--k-space-2);font-size:var(--k-fs-sm);color:var(--k-text-muted)} | |||
.k-card__desc{font-size:var(--k-fs-base);line-height:var(--k-lh-base);color:var(--k-text-secondary)} | |||
.k-card__rows{display:flex;flex-direction:column;gap:var(--k-space-2);margin-top:var(--k-space-3)} | |||
.k-card__row{display:flex;align-items:center;gap:var(--k-space-2);font-size:var(--k-fs-sm);color:var(--k-text-secondary)} | |||
.k-card__row a{color:var(--k-accent);text-decoration:none} | |||
.k-card__price{font-weight:var(--k-fw-bold);color:var(--k-ink)} | |||
.k-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--k-radius-xs);font:var(--k-fw-medium) var(--k-fs-xs)/1.2 var(--k-font-sans);background:var(--k-bg-subtle);color:var(--k-text-secondary)} | |||
.k-badge--success{background:rgba(0,184,152,.14);color:#067a64} | |||
/* === /krai-uikit === */ | |||
/* === Країнопедія: віджет «Повідомити про правку» (krai-feedback) — на UI Kit === */ | |||
/* Кольори/радіуси/тіні — з токенів --k-*. Тут лише layout/позиціонування. */ | |||
.krai-fb-btn{position:fixed;right:16px;bottom:16px;z-index:var(--k-z-fixed,1000);background:var(--k-bg);color:var(--k-ink);box-shadow:var(--k-shadow-2)} | |||
@media(max-width:640px){.krai-fb-btn{right:10px;bottom:10px}} | |||
.krai-fb-tip{position:absolute;z-index:var(--k-z-tip,1002);padding:6px 12px;font-size:13px;background:var(--k-bg);color:var(--k-ink);box-shadow:var(--k-shadow-2);white-space:nowrap} | |||
.krai-fb-overlay{display:none;position:fixed;inset:0;z-index:1001;background:rgba(26,34,64,.5);align-items:center;justify-content:center;padding:16px} | |||
.krai-fb-overlay.is-open{display:flex} | |||
.krai-fb-modal{max-width:460px;width:100%;position:relative;max-height:90vh;overflow:auto} | |||
.krai-fb-close{position:absolute;top:8px;right:12px;background:none;border:none;font-size:26px;line-height:1;color:var(--k-text-muted);cursor:pointer} | |||
.krai-fb-title{margin:0 0 4px;font-size:20px;color:var(--k-ink);border:none;padding:0} | |||
.krai-fb-sub{margin:0 0 14px;font-size:13px;color:var(--k-text-muted)} | |||
.krai-fb-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0} | |||
.krai-fb-actions{display:flex;justify-content:flex-end;gap:10px} | |||
.krai-fb-msg{font-size:13px} | |||
.krai-fb-msg:empty{display:none} | |||
.krai-fb-msg.is-ok{color:var(--k-success)} | |||
.krai-fb-msg.is-err{color:var(--k-danger)} | |||
/* === /krai-feedback === */ | |||
Поточна версія на 02:21, 3 серпня 2026
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;800&display=swap');
/* Жорстка заборона Chrome Android Auto-Dark / Force Dark — сайт лише світлий */
:root { color-scheme: only light; }
html { background-color: #ffffff; color-scheme: only light; }
body { background-color: #ffffff; }
@media (prefers-color-scheme: dark) {
/* Сигнал браузеру: ми НЕ підтримуємо темну тему (та не намагайся її форсити) */
:root { color-scheme: only light !important; }
html, body { background-color: #ffffff !important; }
}
/* Place card — vertical layout (image top, body below) */
.place-card {
display: flex;
flex-direction: column;
background: var(--k-bg);
border: 1px solid var(--k-border);
border-radius: var(--k-radius-md);
overflow: hidden;
box-shadow: var(--k-shadow-1);
transition: transform .15s ease, box-shadow .15s ease;
}
.place-card:hover {
transform: translateY(-2px);
box-shadow: var(--k-shadow-2);
}
.place-card__img {
width: 100%;
aspect-ratio: 16 / 10;
overflow: hidden;
background: #f5f7fb;
}
.place-card__img a, .place-card__img img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.place-card__body { padding: 14px 18px 18px; }
.place-card__title { font-size: 17px; font-weight: 700; margin: 0 0 8px; line-height: 1.25; }
.place-card__title a { color: var(--k-ink); text-decoration: none; }
.place-card__title a:hover { color: var(--k-accent); }
.place-card__meta { font-size: 13px; color: var(--k-text-muted); margin: 0 0 10px; line-height: 1.5; }
.place-card__desc { font-size: 14px; line-height: 1.5; color: var(--k-text-secondary); display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
/* Whole card clickable (stretched link) */
.place-card { position: relative; cursor: pointer; }
.place-card__title a::after { content:""; position:absolute; top:0; left:0; right:0; bottom:0; z-index:1; }
.place-card__meta a { position: relative; z-index:2; }
/* Place detail view (на власній сторінці місця) */
.place-detail { max-width: 760px; }
.place-detail__img img { display:block; max-width:100%; height:auto; border-radius:14px; margin:4px 0 16px; }
.place-detail__meta { font-size:14px; color:var(--k-text-muted); line-height:1.7; margin:0 0 14px; }
.place-detail__desc { font-size:16px; line-height:1.65; color:var(--k-text-secondary); }
.place-detail__desc--empty { color:var(--k-text-hint); font-style:italic; }
/* Grid: 2 columns desktop, 1 column mobile */
.places-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 18px;
margin: 16px 0;
}
@media (max-width: 640px) {
.places-grid { grid-template-columns: 1fr; }
}
/* Add-place button */
.add-place-btn{ text-align:center; margin:20px 0; }
.add-place-btn a{
display:inline-block; background:#2a6df4; color:#fff !important;
padding:10px 14px; border-radius:8px; text-decoration:none;
font-weight:600; box-shadow:0 1px 2px rgba(0,0,0,.12);
}
.add-place-btn a:hover{ background:#1f57c2; }
/* Banner image — responsive (full width on mobile, native on desktop) */
.banner-wrapper { width: 100%; }
.banner-wrapper img,
.banner-image img { max-width: 100%; height: auto; display: block; }
/* Wikitable — clean style: no borders, cells separated by white gaps over light-gray fill */
.wikitable {
background: transparent;
border: 0;
border-collapse: separate;
border-spacing: 3px;
margin: 1em 0;
color: inherit;
}
.wikitable > * > tr > th,
.wikitable > * > tr > td {
background: #f5f7fb;
border: 0;
padding: 12px 16px;
vertical-align: top;
}
.wikitable > * > tr > th {
background: #e8eef7;
font-weight: 600;
text-align: left;
}
/* PageForms — Place form: card layout, modern inputs */
.pf-place-form { max-width: 720px; margin: 0 auto; }
#pfForm { background: #fff; }
#pfForm .pf-place-form h2 {
font-size: 12px; text-transform: uppercase; letter-spacing: 0.8px;
color: #6b7280; font-weight: 600; margin: 28px 0 12px;
padding-bottom: 6px; border-bottom: 1px solid #e8eef7;
}
#pfForm .pf-place-form h2:first-child { margin-top: 0; }
#pfForm dl { margin: 0 0 16px; }
#pfForm dt { font-size: 13px; color: #374151; font-weight: 600; margin-bottom: 6px; }
#pfForm dt small { font-weight: 400; color: #9ca3af; margin-left: 4px; }
#pfForm dd { margin: 0; }
#pfForm .inputSpan { display: block; }
#pfForm .createboxInput {
width: 100%; max-width: 100%; box-sizing: border-box;
padding: 10px 14px; font-size: 15px; line-height: 1.4;
background: #fafbfd; border: 1px solid #eef1f6; border-radius: 8px;
font-family: inherit; color: #111827;
transition: border-color .15s, background .15s, box-shadow .15s;
}
#pfForm .createboxInput:focus {
outline: none; background: #fff; border-color: #2a6df4;
box-shadow: 0 0 0 3px rgba(42,109,244,0.15);
}
#pfForm .createboxInput::placeholder { color: #9ca3af; }
#pfForm textarea { min-height: 110px; resize: vertical; }
#pfForm .pfUploadable {
display: inline-block; margin-top: 8px; font-size: 13px;
color: #2a6df4; text-decoration: none;
}
#pfForm .pfUploadable:hover { text-decoration: underline; }
/* coords row: keep Lat/Lon inputs side-by-side */
#pfForm .pf-coord-label { font-size: 13px; color: #6b7280; margin-right: 4px; }
#pfForm dd:has(.pf-coord-label) .inputSpan { display: inline-block; width: auto; }
#pfForm dd:has(.pf-coord-label) .createboxInput { width: 140px; display: inline-block; }
#pfForm dd:has(.pf-coord-label) { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
/* Logo wordmark — Manrope font + tagline */
.mw-logo { align-items: center; gap: 7px; overflow: visible !important; }
.mw-logo-icon { height: 43px !important; width: auto !important; flex-shrink: 0; }
.mw-logo-container,
.vector-header-start .mw-logo-container {
display: inline-block;
overflow: visible !important;
max-width: none !important;
width: auto !important;
}
.mw-logo-wordmark {
font-family: 'Manrope', system-ui, -apple-system, sans-serif !important;
font-weight: 700 !important;
font-size: 24px !important;
color: #1a2240 !important;
letter-spacing: -0.015em;
line-height: 1.1;
display: block;
white-space: nowrap;
overflow: visible;
}
.mw-logo-container::after {
content: 'вікіпедія для емігрантів';
display: block;
font-family: 'Manrope', system-ui, sans-serif;
font-size: 7px;
font-weight: 600;
letter-spacing: 0.16em;
text-transform: uppercase;
color: #4b5d8c;
margin-top: 3px;
white-space: nowrap;
}
/* Search input — restrained, encyclopedic */
.vector-search-box .cdx-search-input,
.cdx-typeahead-search .cdx-search-input,
form.cdx-search-input {
border-radius: 999px !important;
background: #f4f6fa !important;
border: 1px solid transparent !important;
box-shadow: none !important;
transition: background 0.2s ease, border-color 0.2s ease;
overflow: hidden;
padding: 0 !important;
}
.vector-search-box .cdx-search-input:hover,
.cdx-typeahead-search .cdx-search-input:hover,
form.cdx-search-input:hover {
background: #eef1f7 !important;
}
.vector-search-box .cdx-search-input:focus-within,
.cdx-typeahead-search .cdx-search-input:focus-within,
form.cdx-search-input:focus-within {
background: #ffffff !important;
border-color: #1a2240 !important;
box-shadow: none !important;
}
.cdx-search-input .cdx-text-input,
.cdx-typeahead-search .cdx-text-input {
border: none !important;
background: transparent !important;
}
.cdx-search-input .cdx-text-input__input,
.cdx-typeahead-search .cdx-text-input__input {
background: transparent !important;
border: none !important;
box-shadow: none !important;
height: 38px !important;
padding: 0 16px 0 36px !important;
font-size: 14px !important;
color: #1a2240 !important;
}
.cdx-search-input .cdx-text-input__input::placeholder,
.cdx-typeahead-search .cdx-text-input__input::placeholder {
color: #8b95ad !important;
font-weight: 400;
}
.cdx-search-input .cdx-text-input__start-icon,
.cdx-typeahead-search .cdx-text-input__start-icon {
left: 12px !important;
top: 50% !important;
opacity: 0.5;
transform: translateY(-50%) scale(0.8) !important;
transform-origin: left center;
}
/* Ghost button — restrained */
.cdx-search-input .cdx-search-input__end-button,
.cdx-typeahead-search .cdx-search-input__end-button {
border-radius: 999px !important;
background: transparent !important;
color: #4b5d8c !important;
border: none !important;
padding: 0 16px !important;
height: 38px !important;
margin: 0 !important;
font-weight: 500 !important;
font-size: 13px !important;
letter-spacing: 0;
cursor: pointer;
transition: background 0.15s ease, color 0.15s ease;
}
.cdx-search-input .cdx-search-input__end-button:hover,
.cdx-typeahead-search .cdx-search-input__end-button:hover {
background: #eef1f7 !important;
color: #1a2240 !important;
}
/* Typeahead suggestions dropdown */
.cdx-typeahead-search .cdx-menu {
border-radius: 14px !important;
border: 1px solid #e3e7ef !important;
box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08) !important;
margin-top: 6px !important;
overflow: hidden;
}
.cdx-typeahead-search .cdx-menu-item:hover,
.cdx-typeahead-search .cdx-menu-item--highlighted {
background: #f4f6fa !important;
}
/* Hide TOC header "Зміст сховати" in left sidebar */
#mw-panel-toc .vector-toc-pinnable-header { display: none !important; }
/* ============================================================
Page hero — повноширинний блок з заголовком на сторінках країн
============================================================
Hero рендериться як position:absolute всередині .mw-page-container-inner,
щоб не залежати від grid-колонок (mainMenu / pageContent).
.mw-page-container-inner отримує padding-top на висоту hero, щоб
контент починався під ним.
Поки сірий фон. Щоб поставити зображення — заміни значення
--page-hero-bg на url(...) (можна на конкретну країну).
*/
:root {
--page-hero-bg: #e8e8e8;
--page-hero-fg: #1a2240;
--page-hero-height: 500px;
}
/* Country-specific hero backgrounds */
body.page-🇷🇴_Румунія {
--page-hero-bg: url("/resources/assets/hero/romania.png");
--page-hero-fg: #ffffff;
}
body:is(.page-🇷🇴_Румунія, .page-has-hero) .mw-page-container-inner {
position: relative;
padding-top: calc(var(--page-hero-height) + 24px); /* hero + top offset (12) + bottom gap (12) — симетрично */
}
/* Прибрати весь верхній відступ TOC sidebar — pinnable-header ("Зміст" + кнопки)
та дефолтні top-paddings на обгортках. */
.skin-vector-2022 .vector-toc-pinnable-header {
display: none !important;
}
.skin-vector-2022 #mw-panel-toc,
.skin-vector-2022 #vector-toc-pinned-container,
.skin-vector-2022 #vector-toc {
padding-top: 0 !important;
margin-top: 0 !important;
}
/* Прибрати "Матеріал з Країнопедії" та інший pre-content шум, який створює
асиметрію між верхнім (24px) і нижнім (виглядав ~70px) відступом hero. */
body:is(.page-🇷🇴_Румунія, .page-has-hero) .vector-body-before-content,
body:is(.page-🇷🇴_Румунія, .page-has-hero) #contentSub {
display: none !important;
}
body:is(.page-🇷🇴_Румунія, .page-has-hero) #mw-content-text > .mw-parser-output > :first-child {
margin-top: 0 !important;
}
/* Vector-2022 додає власні top-paddings на content-обгортки — занулюємо
щоб body-текст починався одразу під padding-top контейнера. */
body:is(.page-🇷🇴_Румунія, .page-has-hero) main#content.mw-body,
body:is(.page-🇷🇴_Румунія, .page-has-hero) #bodyContent.vector-body,
body:is(.page-🇷🇴_Румунія, .page-has-hero) #mw-content-text,
body:is(.page-🇷🇴_Румунія, .page-has-hero) #mw-content-text > .mw-parser-output {
padding-top: 0 !important;
margin-top: 0 !important;
}
body:is(.page-🇷🇴_Румунія, .page-has-hero) .vector-page-titlebar {
position: absolute;
top: 12px;
left: 0;
right: 0;
width: auto;
height: var(--page-hero-height);
margin: 0;
padding: 0 32px;
background: var(--page-hero-bg);
background-size: cover;
background-position: center;
display: flex;
align-items: center;
justify-content: center;
border-radius: 16px;
box-sizing: border-box;
z-index: 1;
}
body:is(.page-🇷🇴_Румунія, .page-has-hero) .vector-page-titlebar .firstHeading {
text-align: center;
font-size: 40px;
font-weight: 700;
color: var(--page-hero-fg);
margin: 0;
border: none;
padding: 0;
word-wrap: break-word;
line-height: 1.2;
}
/* Mobile: коротший hero */
@media screen and (max-width: 720px) {
body:is(.page-🇷🇴_Румунія, .page-has-hero) {
--page-hero-height: 220px;
}
body:is(.page-🇷🇴_Румунія, .page-has-hero) .vector-page-titlebar {
padding: 0 16px;
}
body:is(.page-🇷🇴_Румунія, .page-has-hero) .vector-page-titlebar .firstHeading {
font-size: 28px;
}
}
/* MinervaNeue — hero для сторінок країн (картинка + заголовок, 60vh, з боковими відступами).
Верхній і нижній отступи рівні (12px). */
:is(.skin-minerva.page-🇷🇴_Румунія, .skin-minerva.page-has-hero) .pre-content.heading-holder {
position: relative;
margin: 12px;
padding: 0;
height: 60vh;
min-height: 280px;
background-image: var(--page-hero-bg);
background-size: cover;
background-position: center;
display: flex;
align-items: center;
justify-content: center;
border-radius: 16px;
overflow: hidden;
}
:is(.skin-minerva.page-🇷🇴_Румунія, .skin-minerva.page-has-hero) .pre-content.heading-holder .page-heading {
position: relative;
z-index: 1;
width: 100%;
padding: 0 20px;
text-align: center;
}
:is(.skin-minerva.page-🇷🇴_Румунія, .skin-minerva.page-has-hero) .pre-content.heading-holder .firstHeading {
font-family: "Manrope", sans-serif;
font-size: 36px;
font-weight: 700;
color: var(--page-hero-fg, #ffffff);
margin: 0;
border: none;
padding: 0;
line-height: 1.15;
text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
letter-spacing: -0.01em;
}
:is(.skin-minerva.page-🇷🇴_Румунія, .skin-minerva.page-has-hero) .pre-content.heading-holder .tagline {
display: none;
}
/* На зовсім малих екранах — трохи менший заголовок */
@media screen and (max-width: 360px) {
:is(.skin-minerva.page-🇷🇴_Румунія, .skin-minerva.page-has-hero) .pre-content.heading-holder .firstHeading {
font-size: 30px;
}
}
/* Minerva city hero — таб-бар (Стаття/Обговорення) і панель дій (зірка/
історія/ред.) у Minerva сидять усередині heading-holder як flex-сусіди
заголовка й тиснуть його. Ховаємо таб-бар, а панель дій кладемо на низ
hero по центру білими іконками — заголовок тоді центрується сам. */
.skin-minerva.page-has-hero .minerva__tab-container { display: none !important; }
.skin-minerva.page-has-hero .pre-content.heading-holder .page-actions-menu {
position: absolute;
bottom: 10px;
left: 0;
right: 0;
margin: 0;
border: 0 !important;
z-index: 2;
display: flex;
justify-content: center;
background: transparent;
filter: brightness(0) invert(1) drop-shadow(0 1px 3px rgba(0, 0, 0, 0.45));
}
/* Minerva city hero — нижчий за country (60vh). Банер міста широкий і
тонкий (≈4:1), тож менша висота = менше вертикального зуму й бокового
кропу. Country (page-🇷🇴_Румунія) лишається 60vh. */
.skin-minerva.page-has-hero .pre-content.heading-holder {
height: 200px !important;
min-height: 0 !important;
}
/* Page Tools (Інструменти, правий sidebar) — закріплено назавжди.
Ховаємо кнопки pin/unpin і примусово показуємо sidebar навіть якщо
у юзера збережений unpinned стан в preferences/куках. */
[data-event-name^="pinnable-header.vector-page-tools."] {
display: none !important;
}
/* Main Menu (Головне меню, лівий sidebar) — те саме: ховаємо кнопки
"сховати" / "перемістити на бічну панель", меню завжди залишається. */
[data-event-name^="pinnable-header.vector-main-menu."] {
display: none !important;
}
/* Vector-2022 хардкодом ховає sidebar landmark для незалогінених
(vector-feature-main-menu-pinned-disabled). Перевизначаємо — sidebar
показуємо завжди, JS переносить меню в pinned-container. */
html.vector-feature-main-menu-pinned-disabled
.vector-main-menu-container .vector-main-menu-landmark {
display: block !important;
}
html.vector-feature-main-menu-pinned-disabled
#vector-main-menu-dropdown {
display: none !important;
}
/* Чистимо лівий sidebar: ховаємо заголовок "Головне меню" з його роздільником,
прибираємо border-лінії на menu-heading, додаємо відступ між "Міста" і списком */
#vector-main-menu-pinned-container .vector-main-menu-pinnable-header {
display: none !important;
}
#vector-main-menu-pinned-container .vector-main-menu {
margin-top: 0 !important;
border: 0 !important;
box-shadow: none !important;
background-color: transparent !important;
}
#vector-main-menu-pinned-container .vector-menu-heading {
border-top: 0 !important;
border-bottom: 0 !important;
}
#p-cities .vector-menu-heading {
margin-bottom: 8px !important;
}
/* Блок "Інструменти" (#p-tb) — лише для адмінів.
Body отримує клас usergroup-sysop через Common.js. */
/* Меню «Інструменти» (page-tools) приховане всюди для всіх */
#p-tb,
#vector-page-tools-dropdown,
#vector-page-tools-pinned-container,
#vector-page-tools-unpinned-container,
.vector-page-tools-landmark { display: none !important; }
/* Сховати tabs "Обговорення" і "Головна" з UI */
#ca-talk, #ca-nstab-main { display: none !important; }
/* "Обговорення" в персональному меню (User_talk:current_user) */
#pt-mytalk { display: none !important; }
/* Sticky header (з'являється при скролі) — дублі іконок талку та watch-зірки */
#ca-talk-sticky-header,
#ca-watchstar-sticky-header { display: none !important; }
/* Toolbar (Читати / Редагувати / ...) переміщається JS всередину hero
і ставиться на 24px від нижнього краю, по центру */
body:is(.page-🇷🇴_Румунія, .page-has-hero) .vector-page-titlebar .vector-page-toolbar {
position: absolute;
bottom: 24px;
left: 0;
right: 0;
z-index: 2;
margin: 0;
padding: 0 24px;
display: flex;
justify-content: center;
}
body:is(.page-🇷🇴_Румунія, .page-has-hero) .vector-page-titlebar .vector-page-toolbar-container {
width: auto !important;
display: flex !important;
justify-content: center !important;
gap: 24px;
}
body:is(.page-🇷🇴_Румунія, .page-has-hero) .vector-page-titlebar .vector-page-toolbar a {
color: #ffffff !important;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}
/* Прибрати суцільну горизонтальну лінію під toolbar (box-shadow Vector),
лишається лише підкреслення активної вкладки */
body:is(.page-🇷🇴_Румунія, .page-has-hero) .vector-page-titlebar .vector-page-toolbar-container {
box-shadow: none !important;
}
/* Сховати dropdown "Інструменти" і зірочку (watch) з toolbar — глобально.
В toolbar це #vector-page-tools-dropdown (НЕ #p-cactions, той — "Більше опцій").
Також ховаємо правий sticky-rail "Інструменти". */
.skin-vector-2022 #vector-page-tools-dropdown,
.skin-vector-2022 .vector-page-tools-landmark,
.skin-vector-2022 #p-cactions,
.skin-vector-2022 #ca-watch,
.skin-vector-2022 #ca-unwatch {
display: none !important;
}
/* === Service cards (грід для Послуг — клінінг, переклад, доставка тощо) === */
.services-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 18px;
margin: 16px 0;
}
@media (max-width: 640px) {
.services-grid { grid-template-columns: 1fr; }
}
.service-card {
box-sizing: border-box;
display: flex;
flex-direction: column;
background: var(--k-bg);
border: 1px solid var(--k-border);
border-radius: var(--k-radius-md);
overflow: hidden;
box-shadow: var(--k-shadow-1);
transition: transform .15s ease, box-shadow .15s ease;
}
.service-card:hover {
transform: translateY(-2px);
box-shadow: var(--k-shadow-2);
}
.service-card__body { padding: 16px 20px 18px; }
.service-card__title {
font-size: 17px;
font-weight: 700;
margin: 0 0 8px;
line-height: 1.25;
}
.service-card__title a { color: var(--k-ink); text-decoration: none; }
.service-card__title a:hover { color: var(--k-accent); }
.service-card__members {
display: inline-block;
margin-left: 6px;
font-size: 12px;
font-weight: 500;
color: var(--k-text-muted);
white-space: nowrap;
vertical-align: middle;
}
.service-card__desc {
font-size: 14px;
line-height: 1.5;
color: var(--k-text-secondary);
margin-bottom: 12px;
}
.service-card__meta {
display: flex;
flex-direction: column;
gap: 4px;
font-size: 13px;
color: var(--k-text-secondary);
border-top: 1px solid #f3f4f6;
padding-top: 10px;
}
.service-card__row {
line-height: 1.5;
padding-left: 22px;
background-repeat: no-repeat;
background-position: 0 4px;
background-size: 14px 14px;
}
.service-card__row a { color: var(--k-accent) !important; text-decoration: none; }
.service-card__row a:hover { text-decoration: underline; }
/* SVG-іконки (Heroicons solid, fill var(--k-text-secondary), URL-encoded) */
.service-card__row--phone {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27%234b5563%27%3E%3Cpath%20fill-rule%3D%27evenodd%27%20d%3D%27M1.5%204.5a3%203%200%200%201%203-3h1.372c.86%200%201.61.586%201.819%201.42l1.105%204.423a1.875%201.875%200%200%201-.694%201.955l-1.293.97c-.135.101-.164.249-.126.352a11.285%2011.285%200%200%200%206.197%206.197c.103.038.25.009.352-.126l.97-1.293a1.875%201.875%200%200%201%201.955-.694l4.423%201.105c.834.209%201.42.959%201.42%201.82V19.5a3%203%200%200%201-3%203h-2.25C8.552%2022.5%201.5%2015.448%201.5%206.75V4.5z%27%20clip-rule%3D%27evenodd%27%2F%3E%3C%2Fsvg%3E");
}
.service-card__row--telegram {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27%234b5563%27%3E%3Cpath%20d%3D%27M3.478%202.405a.75.75%200%200%200-.926.94l2.432%207.905H13.5a.75.75%200%200%201%200%201.5H4.984l-2.432%207.905a.75.75%200%200%200%20.926.94%2060.519%2060.519%200%200%200%2018.445-8.986.75.75%200%200%200%200-1.218A60.517%2060.517%200%200%200%203.478%202.405z%27%2F%3E%3C%2Fsvg%3E");
}
.service-card__row--languages {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27%234b5563%27%3E%3Cpath%20fill-rule%3D%27evenodd%27%20d%3D%27M9%202.25a.75.75%200%200%201%20.75.75v1.506a49.38%2049.38%200%200%201%205.343.371.75.75%200%201%201-.186%201.489c-.66-.083-1.323-.151-1.99-.206a18.67%2018.67%200%200%201-2.969%206.323c.317.384.65.753.998%201.107a.75.75%200%201%201-1.07%201.052A18.902%2018.902%200%200%201%209%2013.687a18.823%2018.823%200%200%201-5.656%204.482.75.75%200%201%201-.688-1.333%2017.323%2017.323%200%200%200%205.396-4.353A18.72%2018.72%200%200%201%205.89%208.598a.75.75%200%200%201%201.388-.568A17.21%2017.21%200%200%200%209%2011.224a17.17%2017.17%200%200%200%202.391-5.165%2048.038%2048.038%200%200%200-8.298.307.75.75%200%200%201-.186-1.489%2049.159%2049.159%200%200%201%205.343-.371V3A.75.75%200%200%201%209%202.25zM15.75%209a.75.75%200%200%201%20.68.433l5.25%2011.25a.75.75%200%201%201-1.36.634l-1.198-2.567h-6.744l-1.198%202.567a.75.75%200%200%201-1.36-.634l5.25-11.25A.75.75%200%200%201%2015.75%209zm-2.672%208.25h5.344l-2.672-5.726-2.672%205.726z%27%20clip-rule%3D%27evenodd%27%2F%3E%3C%2Fsvg%3E");
}
.service-card__row--website {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27%234b5563%27%3E%3Cpath%20fill-rule%3D%27evenodd%27%20d%3D%27M12%202.25c-5.385%200-9.75%204.365-9.75%209.75s4.365%209.75%209.75%209.75%209.75-4.365%209.75-9.75S17.385%202.25%2012%202.25zM4.575%2015.6a8.25%208.25%200%200%200%209.348%204.425%201.966%201.966%200%200%200-1.84-1.275.983.983%200%200%201-.97-.822l-.073-.437c-.094-.565.25-1.11.8-1.267l.99-.282c.427-.123.783-.418.982-.816l.036-.073a1.453%201.453%200%200%201%202.328-.377L16.5%2015h.628a2.25%202.25%200%200%201%201.983%201.186%208.25%208.25%200%200%200-6.345-12.4c.044.262.18.503.389.676l1.068.89c.442.369.535%201.01.216%201.49l-.51.766a2.25%202.25%200%200%201-1.161.886l-.143.048a1.107%201.107%200%200%200-.57%201.664c.369.555.169%201.307-.427%201.605L9%2013.125l.423%201.059a.956.956%200%200%201-1.652.928l-.679-.906a1.125%201.125%200%200%200-1.906.143l-.476.952a.992.992%200%200%201-.785.572l-.504.054z%27%20clip-rule%3D%27evenodd%27%2F%3E%3C%2Fsvg%3E");
}
/* CTA-картка "Я виконавець, додати себе" — як service-card, але з пунктирною рамкою */
.service-card--cta {
align-items: center;
justify-content: center;
text-align: center;
background: var(--k-bg-subtle);
border: 2px dashed var(--k-border-strong);
box-shadow: none;
color: var(--k-text-secondary);
text-decoration: none;
padding: 16px 20px 18px;
transition: border-color .15s, background .15s, color .15s, transform .15s;
}
.service-card--cta:hover {
border-color: var(--k-accent);
background: #f0f6ff;
color: var(--k-accent);
transform: translateY(-2px);
box-shadow: none;
text-decoration: none;
}
.service-card--cta__plus {
width: 36px;
height: 36px;
border-radius: 50%;
background: var(--k-bg);
border: 1.5px solid currentColor;
display: flex;
align-items: center;
justify-content: center;
font-size: 22px;
line-height: 1;
margin: 0 auto 10px;
}
.service-card--cta__title {
display: block;
font-weight: 600;
font-size: 15px;
color: inherit;
}
.service-card--cta__hint {
display: block;
font-size: 12px;
color: var(--k-text-muted);
margin-top: 4px;
}
.service-card--cta:hover .service-card--cta__hint { color: inherit; opacity: .85; }
/* extlink-обгортка навколо CTA-картки має заповнити висоту cargo-картки */
.services-grid > a {
display: flex;
text-decoration: none;
color: inherit;
}
.services-grid > a:hover { text-decoration: none; }
.services-grid > a > .service-card--cta {
flex: 1;
width: 100%;
display: flex;
flex-direction: column;
}
/* Прибираємо стрілочку external link зі всіх <a> у грідах послуг */
.services-grid > a.external {
background-image: none !important;
padding-right: 0 !important;
}
/* Гарантія однакової висоти CTA-картки і звичайних cargo-карток */
.services-grid { align-items: stretch; }
.services-grid > a { box-sizing: border-box; align-self: stretch; }
.services-grid > a > .service-card--cta { box-sizing: border-box; }
/* Mobile (MinervaNeue) — лого + назва сайту в шапці */
.skin-minerva .branding-box a {
display: inline-flex;
align-items: center;
gap: 8px;
text-decoration: none;
color: inherit;
}
.skin-minerva .branding-box span img {
width: auto;
height: 28px;
display: block;
}
.skin-minerva .branding-box span::after {
content: "Країнопедія";
font-family: "Manrope", sans-serif;
font-weight: 600;
font-size: 17px;
color: #1a2240;
white-space: nowrap;
}
.skin-minerva .branding-box span {
display: inline-flex;
align-items: center;
gap: 8px;
}
/* MinervaNeue — секція "Міста" у бургер-drawer (нашого Common.js) */
.skin-minerva .cities-drawer-section {
border-top: 1px solid #eaecf0;
margin-top: 8px;
}
.skin-minerva .cities-drawer-section__heading {
margin: 0;
padding: 14px 16px 6px;
font-family: inherit;
font-size: 16px;
font-weight: 700;
color: #202122;
text-transform: none;
letter-spacing: normal;
border: none;
background: transparent;
}
/* Desktop sidebar — заголовок портлету "Міста" як рядки TOC (жирний + темний) */
.skin-vector-2022 #p-cities .vector-menu-heading {
font-size: 14px;
font-weight: 700;
color: #202122;
text-transform: none;
letter-spacing: normal;
}
.skin-minerva .cities-drawer-section__list {
margin: 0;
padding: 0;
list-style: none;
}
.skin-minerva .cities-drawer-item .toggle-list-item__anchor {
display: flex;
align-items: center;
gap: 12px;
padding: 10px 16px;
text-decoration: none;
color: #202122;
font-size: 16px;
}
.skin-minerva .cities-drawer-item .toggle-list-item__label {
flex: 1;
}
.skin-minerva .cities-drawer-item__icon {
width: 20px;
height: 20px;
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27%2354595d%27%3E%3Cpath%20fill-rule%3D%27evenodd%27%20d%3D%27M11.54%2022.351l.07.04.028.016a.76.76%200%2000.723%200l.028-.015.071-.041a16.975%2016.975%200%20001.144-.742%2019.58%2019.58%200%20002.683-2.282c1.944-1.99%203.963-4.98%203.963-8.827a8.25%208.25%200%2000-16.5%200c0%203.846%202.02%206.837%203.963%208.827a19.58%2019.58%200%20002.682%202.282%2016.975%2016.975%200%20001.145.742zM12%2013.5a3%203%200%20100-6%203%203%200%20000%206z%27%20clip-rule%3D%27evenodd%27%2F%3E%3C%2Fsvg%3E");
background-repeat: no-repeat;
background-position: center;
background-size: 18px 18px;
flex-shrink: 0;
}
/* Неіснуюча сторінка міста — приглушений колір + знак + */
.skin-minerva .cities-drawer-item--missing .toggle-list-item__label {
color: #9aa0a6;
}
.skin-minerva .cities-drawer-item--missing .cities-drawer-item__icon {
opacity: 0.45;
}
.skin-minerva .cities-drawer-item--missing .toggle-list-item__anchor::after {
content: "+";
margin-left: auto;
color: #9aa0a6;
font-size: 22px;
line-height: 1;
font-weight: 400;
}
/* MinervaNeue — кнопка "Увійти" виділена як CTA */
.skin-minerva #p-personal { padding: 6px 12px; }
.skin-minerva #p-personal .toggle-list-item {
margin: 0;
}
.skin-minerva #p-personal .toggle-list-item__anchor {
display: flex;
align-items: center;
gap: 12px;
background: #f84840;
color: #ffffff !important;
border-radius: 10px;
padding: 12px 14px;
font-weight: 600;
box-shadow: 0 2px 6px rgba(248, 72, 64, 0.25);
transition: background .15s, box-shadow .15s, transform .1s;
}
.skin-minerva #p-personal .toggle-list-item__anchor:hover,
.skin-minerva #p-personal .toggle-list-item__anchor:active {
background: #e63a32;
color: #ffffff !important;
box-shadow: 0 3px 8px rgba(248, 72, 64, 0.35);
}
.skin-minerva #p-personal .toggle-list-item__label {
color: #ffffff;
}
/* Зробити іконку білою (вона SVG-mask на background-image) */
.skin-minerva #p-personal .minerva-icon {
filter: brightness(0) invert(1);
}
/* MinervaNeue — прибрати вбудоване "Домашня"/"Випадкова" з drawer */
.skin-minerva #p-navigation {
display: none;
}
/* MinervaNeue — верхня менюшка без сірого фону */
.skin-minerva .header-container,
.skin-minerva .header-container.header-chrome,
.skin-minerva .minerva-header {
background: #ffffff !important;
border-bottom: none !important;
box-shadow: none !important;
}
/* MinervaNeue — прибрати порожній banner-container/siteNotice над hero */
.skin-minerva .banner-container:empty,
.skin-minerva #siteNotice:empty {
display: none;
}
/* MinervaNeue — закріпити "Налаштування" внизу drawer + світліший фон + сховати scrollbar */
.skin-minerva #mw-mf-page-left {
display: flex;
flex-direction: column;
min-height: 100%;
background: #ffffff;
scrollbar-width: none; /* Firefox */
-ms-overflow-style: none; /* IE/Edge legacy */
}
.skin-minerva #mw-mf-page-left::-webkit-scrollbar {
display: none; /* WebKit (Chrome, Safari, Brave) */
width: 0;
height: 0;
}
.skin-minerva #mw-mf-page-left #pt-preferences {
order: 99;
margin-top: auto;
border-top: 1px solid #eaecf0;
padding-top: 4px;
}
/* Disclaimer (єдиний пункт у ul.hlist після видалення About) — під налаштуваннями */
.skin-minerva #mw-mf-page-left ul.hlist {
order: 100;
margin: 0 0 8px;
padding: 0;
list-style: none;
}
.skin-minerva #mw-mf-page-left ul.hlist .toggle-list-item__anchor {
font-size: 13px;
color: #72777d;
padding: 8px 16px;
}
/* MinervaNeue — баннер "Про Країнопедію" зверху drawer (4 сторони — 4 окремі кольори) */
.skin-minerva .drawer-about-banner {
display: flex;
align-items: center;
justify-content: space-between;
margin: 12px;
padding: 24px 20px;
background: transparent;
border-top: 2px solid #00b898;
border-right: 2px solid #f8b020;
border-bottom: 2px solid #f84840;
border-left: 2px solid #1070b0;
border-radius: 0;
color: #1a2240 !important;
text-decoration: none !important;
font-family: "Manrope", sans-serif;
position: relative;
order: -10;
}
.skin-minerva .drawer-about-banner__title {
display: flex;
flex-direction: column;
gap: 4px;
line-height: 1.2;
}
.skin-minerva .drawer-about-banner__kicker,
.skin-minerva .drawer-about-banner__name {
font-size: 18px;
font-weight: 700;
letter-spacing: -0.01em;
text-transform: none;
color: #1a2240;
}
.skin-minerva .drawer-about-banner__arrow {
font-size: 22px;
line-height: 1;
color: #72777d;
transition: transform .15s ease, color .15s ease;
flex-shrink: 0;
margin-left: 12px;
}
.skin-minerva .drawer-about-banner:hover,
.skin-minerva .drawer-about-banner:active {
text-decoration: none !important;
color: #1a2240 !important;
}
.skin-minerva .drawer-about-banner:hover .drawer-about-banner__arrow,
.skin-minerva .drawer-about-banner:active .drawer-about-banner__arrow {
transform: translateX(4px);
color: #1a2240;
}
/* Vector-2022 (desktop) — wordmark як текст замість картинки.
$wgLogos['wordmark'] — png для Minerva (мобілка); на десктопі
ховаємо img і малюємо текст "Країнопедія" через ::before. */
.skin-vector-2022 .mw-logo-wordmark {
display: none !important;
}
.skin-vector-2022 .mw-logo-container::before {
content: 'Країнопедія';
font-family: 'Manrope', system-ui, sans-serif;
font-weight: 600;
font-size: 24px;
color: #1a2240;
letter-spacing: -0.015em;
line-height: 1.1;
display: block;
white-space: nowrap;
}
/* ====================================================================
Special:UserLogin / Special:CreateAccount — beautiful auth pages v2
==================================================================== */
/* BODY стає flex-контейнером на весь viewport, щоб header + page-container + footer
правильно розподілили висоту. Інакше .mw-page-container з min-height:100vh
опускається нижче хедера → overflow + форма візуально вище центру. */
body.mw-special-Userlogin,
body.mw-special-CreateAccount {
min-height: 100vh !important;
display: flex !important;
flex-direction: column !important;
background-color: #1a2240 !important;
background-image: url('/images/login-bg.png?v=2') !important;
background-size: cover !important;
background-repeat: no-repeat !important;
background-position: center center !important;
background-attachment: fixed !important;
}
/* Покрити html теж, щоб не було просвіту якщо body не покриває все */
html.client-js body.mw-special-Userlogin,
html body.mw-special-Userlogin {
background-color: #1a2240 !important;
}
html:has(body.mw-special-Userlogin) {
background-image: url('/images/login-bg.png?v=2') !important;
background-size: cover !important;
background-repeat: no-repeat !important;
background-position: center center !important;
background-attachment: fixed !important;
background-color: #1a2240 !important;
min-height: 100vh;
}
body.mw-special-Userlogin .vector-header-container,
body.mw-special-CreateAccount .vector-header-container {
flex: 0 0 auto;
/* Як на головній — Vector default: max-width 99.75em, центровано */
max-width: 99.75em !important;
min-width: 31.25em !important;
margin-left: auto !important;
margin-right: auto !important;
width: 100% !important;
align-self: center !important;
box-sizing: border-box !important;
}
/* Фон + повна ширина viewport (прибираємо Vector max-width центрування) */
body.mw-special-Userlogin .mw-page-container,
body.mw-special-CreateAccount .mw-page-container {
background: transparent !important;
flex: 1 1 auto !important;
min-height: 0 !important;
display: flex !important;
flex-direction: column !important;
max-width: none !important;
width: 100% !important;
margin: 0 !important;
padding: 0 !important;
border: none !important;
}
/* Inner — замінити Vector grid (з зарезервованою sidebar-колонкою) на flex column,
flex:1 щоб займало всю висоту в page-container, justify-center для вертикалі */
body.mw-special-Userlogin .mw-page-container-inner,
body.mw-special-CreateAccount .mw-page-container-inner {
flex: 1 1 auto !important;
display: flex !important;
flex-direction: column !important;
align-items: center !important;
justify-content: center !important;
padding-top: 24px !important;
padding-bottom: 24px !important;
grid-template-columns: 1fr !important;
grid-template-areas: none !important;
width: 100% !important;
max-width: none !important;
position: relative !important;
}
body.mw-special-Userlogin .mw-content-container,
body.mw-special-CreateAccount .mw-content-container {
display: flex !important;
flex-direction: column !important;
align-items: center !important;
justify-content: center !important;
width: 100% !important;
max-width: none !important;
margin: 0 !important;
grid-column: 1 / -1 !important;
}
/* (стара flex-розкладка .mw-body / #bodyContent видалена — тепер
.mw-body це повноцінна картка, див. секцію нижче) */
/* Footer — стискається до контенту і центрується по горизонталі */
body.mw-special-Userlogin .mw-footer-container,
body.mw-special-CreateAccount .mw-footer-container {
flex: 0 0 auto;
margin-top: auto;
width: auto !important;
max-width: max-content !important;
margin-left: auto !important;
margin-right: auto !important;
background: none !important;
padding: 16px !important;
color: #ffffff !important;
}
/* Усі тексти і посилання у футері — білі з легкою тінню для читабельності */
body.mw-special-Userlogin .mw-footer-container,
body.mw-special-Userlogin .mw-footer-container *,
body.mw-special-CreateAccount .mw-footer-container,
body.mw-special-CreateAccount .mw-footer-container * {
color: #ffffff !important;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}
body.mw-special-Userlogin .mw-footer-container a,
body.mw-special-CreateAccount .mw-footer-container a {
color: #ffffff !important;
text-decoration: none;
}
body.mw-special-Userlogin .mw-footer-container a:hover,
body.mw-special-CreateAccount .mw-footer-container a:hover {
color: #ffffff !important;
text-decoration: underline;
}
body.mw-special-Userlogin #mw-footer,
body.mw-special-CreateAccount #mw-footer {
padding: 0 !important;
}
/* Футер-плейси — в один рядок, відцентровано, маленький розмір */
body.mw-special-Userlogin #footer-places,
body.mw-special-CreateAccount #footer-places {
display: flex !important;
flex-wrap: wrap;
gap: 16px;
justify-content: center;
margin: 0 !important;
padding: 0 !important;
}
body.mw-special-Userlogin #footer-places li,
body.mw-special-CreateAccount #footer-places li {
font-size: 12px;
color: #ffffff !important;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
position: relative;
z-index: 2;
}
body.mw-special-Userlogin #footer-places li a,
body.mw-special-CreateAccount #footer-places li a {
color: #ffffff !important;
text-decoration: none;
}
body.mw-special-Userlogin #footer-places li a:hover,
body.mw-special-CreateAccount #footer-places li a:hover {
color: #ffffff !important;
text-decoration: underline;
}
/* Темний градієнт прикріплений до низу viewport — fixed щоб завжди знизу */
body.mw-special-Userlogin::after,
body.mw-special-CreateAccount::after {
content: "";
position: fixed;
left: 0;
right: 0;
bottom: 0;
height: 180px;
background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.55) 100%);
pointer-events: none;
z-index: 3;
}
/* Footer — натуральний flex-потік, margin-top: auto штовхне його до низу
.mw-page-container. Не fixed, тому фізично під формою — не перекриває.
margin-top: 50px — мінімальний відступ від форми (якщо контент короткий —
auto штовхне ще нижче, до низу viewport). */
body.mw-special-Userlogin .mw-footer-container,
body.mw-special-CreateAccount .mw-footer-container {
position: relative !important;
z-index: 4 !important;
margin-top: 50px !important;
}
/* Sitenotice між inner і footer — не повинен заважати */
body.mw-special-Userlogin .vector-sitenotice-container,
body.mw-special-CreateAccount .vector-sitenotice-container {
flex: 0 0 auto;
}
/* Прибрати "Мобільний вигляд" з футера */
#footer-places-mobileview {
display: none !important;
}
/* Прибрати page-toolbar і tools-dropdown на сторінках авторизації */
body.mw-special-Userlogin .vector-page-toolbar,
body.mw-special-Userlogin .vector-page-titlebar-toc,
body.mw-special-CreateAccount .vector-page-toolbar,
body.mw-special-CreateAccount .vector-page-titlebar-toc {
display: none !important;
}
/* Сховати весь лівий sidebar (main menu + TOC) на auth-сторінках —
щоб контент-область займала всю ширину і form міг центруватись по екрану. */
body.mw-special-Userlogin .vector-main-menu-container,
body.mw-special-Userlogin .vector-main-menu-landmark,
body.mw-special-Userlogin #mw-panel,
body.mw-special-Userlogin #mw-panel-toc,
body.mw-special-Userlogin .vector-page-tools-landmark,
body.mw-special-CreateAccount .vector-main-menu-container,
body.mw-special-CreateAccount .vector-main-menu-landmark,
body.mw-special-CreateAccount #mw-panel,
body.mw-special-CreateAccount #mw-panel-toc,
body.mw-special-CreateAccount .vector-page-tools-landmark {
display: none !important;
}
/* .mw-content-container — flex row для двох карток (login | register) поряд */
body.mw-special-Userlogin .mw-content-container,
body.mw-special-CreateAccount .mw-content-container {
margin: 0 !important;
padding: 0 !important;
width: 100% !important;
height: 100% !important;
max-width: none !important;
background: none !important;
border: none !important;
display: flex !important;
flex-direction: row !important;
flex-wrap: wrap !important;
align-items: center !important;
justify-content: center !important;
gap: 24px !important;
flex: 1 1 auto !important;
grid-column: 1 / -1 !important;
}
/* Картки однакової ширини */
body.mw-special-Userlogin .mw-body,
body.mw-special-Userlogin .mw-register-panel,
body.mw-special-CreateAccount .mw-body,
body.mw-special-CreateAccount .mw-register-panel {
flex: 0 1 420px !important;
}
/* === ПРАВА панель: реєстрація === */
.mw-register-panel {
background: #ffffff;
border-radius: 20px;
padding: 56px 32px 40px;
box-shadow:
0 1px 2px rgba(26, 34, 64, 0.04),
0 8px 32px rgba(26, 34, 64, 0.10);
position: relative;
overflow: hidden;
box-sizing: border-box;
text-align: center;
z-index: 2;
align-self: stretch;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
/* Top-stripe як у лівій */
.mw-register-panel::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg,
#f84840 0%, #f84840 25%,
#f8b020 25%, #f8b020 50%,
#1070b0 50%, #1070b0 75%,
#00b898 75%, #00b898 100%);
z-index: 1;
}
.mw-register-panel__title {
font-family: "Manrope", sans-serif;
font-weight: 800;
font-size: 32px;
color: #1a2240;
letter-spacing: -0.02em;
line-height: 1.1;
margin-bottom: 8px;
}
.mw-register-panel__sub {
font-family: "Manrope", sans-serif;
font-weight: 400;
font-size: 15px;
color: #6b7280;
line-height: 1.4;
margin-bottom: 32px;
max-width: 280px;
}
.mw-register-panel__cta {
display: inline-block;
background: #00b898;
color: #ffffff !important;
font-family: "Manrope", sans-serif;
font-weight: 600;
font-size: 16px;
padding: 14px 28px;
border-radius: 10px;
text-decoration: none !important;
transition: background 0.15s, transform 0.05s;
}
.mw-register-panel__cta:hover {
background: #009e82;
text-decoration: none !important;
}
.mw-register-panel__cta:active {
transform: translateY(1px);
}
/* Mobile — стак вертикально */
@media (max-width: 880px) {
body.mw-special-Userlogin .mw-body,
body.mw-special-Userlogin .mw-register-panel,
body.mw-special-CreateAccount .mw-body,
body.mw-special-CreateAccount .mw-register-panel {
flex: 0 1 calc(100% - 32px) !important;
max-width: 420px !important;
}
}
/* .mw-body — це КАРТКА входу (зліва). Біла, з тінню, top-страйп. */
body.mw-special-Userlogin .mw-body,
body.mw-special-CreateAccount .mw-body {
background: #ffffff !important;
border-radius: 20px !important;
padding: 40px 32px 32px !important;
box-shadow:
0 1px 2px rgba(26, 34, 64, 0.04),
0 8px 32px rgba(26, 34, 64, 0.10) !important;
overflow: hidden !important;
width: calc(100% - 32px) !important;
max-width: 420px !important;
display: block !important;
align-items: initial !important;
box-sizing: border-box !important;
position: relative !important;
margin: 0 !important;
z-index: 2 !important;
}
/* 4-кольорова смуга зверху карточки (бренд-акцент) */
body.mw-special-Userlogin .mw-body::before,
body.mw-special-CreateAccount .mw-body::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg,
#00b898 0%, #00b898 25%,
#1070b0 25%, #1070b0 50%,
#f8b020 50%, #f8b020 75%,
#f84840 75%, #f84840 100%);
z-index: 1;
}
/* Сховати page-titlebar (header області) — він не потрібен на login */
body.mw-special-Userlogin .mw-body-header,
body.mw-special-CreateAccount .mw-body-header {
display: none !important;
}
/* Оригінальний h1 .firstHeading "Вхід до системи" приховуємо —
замість нього welcome з MediaWiki:Loginprompt виступає як заголовок */
body.mw-special-Userlogin .firstHeading,
body.mw-special-CreateAccount .firstHeading {
display: none !important;
}
/* Welcome — контейнер */
body.mw-special-Userlogin #userloginprompt,
body.mw-special-CreateAccount #userloginprompt {
display: block !important;
text-align: center;
margin: 0 0 28px;
padding: 0;
background: none;
}
body.mw-special-Userlogin .login-welcome,
body.mw-special-CreateAccount .login-welcome {
display: block;
}
/* "Вітаємо" — заголовок */
body.mw-special-Userlogin .login-welcome-title,
body.mw-special-CreateAccount .login-welcome-title {
font-family: "Manrope", sans-serif;
font-weight: 800;
font-size: 32px;
color: #1a2240;
letter-spacing: -0.02em;
line-height: 1.1;
margin: 0 0 8px;
}
/* "Раді бачити знову" — підзаголовок */
body.mw-special-Userlogin .login-welcome-sub,
body.mw-special-CreateAccount .login-welcome-sub {
font-family: "Manrope", sans-serif;
font-weight: 400;
font-size: 15px;
color: #6b7280;
letter-spacing: 0;
line-height: 1.4;
margin: 0;
}
/* #bodyContent / #mw-content-text — прозорі прохідники всередині .mw-body */
body.mw-special-Userlogin #bodyContent,
body.mw-special-CreateAccount #bodyContent,
body.mw-special-Userlogin #mw-content-text,
body.mw-special-CreateAccount #mw-content-text {
background: none !important;
border: none !important;
padding: 0 !important;
margin: 0 !important;
width: 100% !important;
max-width: none !important;
box-sizing: border-box;
}
/* #userloginForm — не картка, просто wrapper для форми */
body.mw-special-Userlogin #userloginForm,
body.mw-special-CreateAccount #userloginForm {
background: none !important;
border-radius: 0 !important;
padding: 0 !important;
box-shadow: none !important;
margin: 16px 0 0 0 !important;
overflow: visible !important;
}
body.mw-special-Userlogin #userloginForm::before,
body.mw-special-CreateAccount #userloginForm::before {
content: none !important;
}
/* Видалити старий top-stripe з #userloginForm (тепер на .mw-body) */
body.mw-special-Userlogin #userloginForm::before,
body.mw-special-CreateAccount #userloginForm::before {
content: none !important;
}
body.mw-special-Userlogin #userloginForm form,
body.mw-special-CreateAccount #userloginForm form {
margin: 0;
}
/* Зануляємо паддінги/маржини wrapper-ів MediaWiki HTMLForm, щоб все
мало єдиний контейнер і вирівнювалось по тій самій сітці. */
body.mw-special-Userlogin .mw-htmlform-field-HTMLTextField,
body.mw-special-Userlogin .mw-htmlform-field-HTMLCheckField,
body.mw-special-Userlogin .mw-htmlform-field-HTMLSubmitField,
body.mw-special-Userlogin .mw-htmlform-field-HTMLInfoField,
body.mw-special-CreateAccount .mw-htmlform-field-HTMLTextField,
body.mw-special-CreateAccount .mw-htmlform-field-HTMLCheckField,
body.mw-special-CreateAccount .mw-htmlform-field-HTMLSubmitField,
body.mw-special-CreateAccount .mw-htmlform-field-HTMLInfoField {
padding: 0 !important;
}
body.mw-special-Userlogin #userloginForm .mw-input,
body.mw-special-Userlogin #userloginForm .cdx-text-input,
body.mw-special-CreateAccount #userloginForm .mw-input,
body.mw-special-CreateAccount #userloginForm .cdx-text-input,
body.mw-special-CreateAccount .mw-htmlform-codex .mw-input,
body.mw-special-CreateAccount .mw-htmlform-codex .cdx-text-input {
padding: 0 !important;
margin: 0 !important;
width: 100% !important;
box-sizing: border-box !important;
}
/* MediaWiki .mw-ui-vform-field має дефолтний max-width 25em — звужує
всі поля до лівого краю. Знімаємо ліміт, форма теж на повну ширину. */
body.mw-special-Userlogin .mw-ui-vform-field,
body.mw-special-Userlogin .mw-htmlform-codex,
body.mw-special-Userlogin #userloginForm form,
body.mw-special-CreateAccount .mw-ui-vform-field,
body.mw-special-CreateAccount .mw-htmlform-codex,
body.mw-special-CreateAccount #userloginForm form {
max-width: none !important;
width: 100% !important;
box-sizing: border-box !important;
}
/* Spacing для полів */
body.mw-special-Userlogin .mw-htmlform-field-HTMLTextField,
body.mw-special-CreateAccount .mw-htmlform-field-HTMLTextField {
margin-bottom: 16px !important;
}
/* Лейбли — компактні, приглушені */
body.mw-special-Userlogin .mw-htmlform-field-HTMLTextField > label,
body.mw-special-CreateAccount .mw-htmlform-field-HTMLTextField > label {
display: block;
font-size: 13px;
font-weight: 600;
color: #4a5568;
margin-bottom: 6px;
font-family: "Manrope", sans-serif;
}
/* Інпути — pill-style, soft fill, focus → білий + темний бордер */
body.mw-special-Userlogin #userloginForm .cdx-text-input__input,
body.mw-special-CreateAccount #userloginForm .cdx-text-input__input,
body.mw-special-CreateAccount .mw-htmlform-codex .cdx-text-input__input {
background: #f4f6fa !important;
border: 1px solid transparent !important;
border-radius: 10px !important;
padding: 12px 14px !important;
font-size: 15px !important;
width: 100% !important;
box-sizing: border-box !important;
box-shadow: none !important;
transition: border-color 0.15s, background 0.15s !important;
font-family: "Manrope", sans-serif !important;
}
body.mw-special-Userlogin #userloginForm .cdx-text-input__input:focus,
body.mw-special-CreateAccount #userloginForm .cdx-text-input__input:focus,
body.mw-special-CreateAccount .mw-htmlform-codex .cdx-text-input__input:focus {
background: #ffffff !important;
border-color: #1a2240 !important;
outline: none !important;
box-shadow: none !important;
}
/* Checkbox "Запам'ятати мене" */
body.mw-special-Userlogin .mw-userlogin-rememberme {
margin: 8px 0 24px;
}
body.mw-special-Userlogin .cdx-checkbox {
display: flex;
align-items: center;
gap: 8px;
}
body.mw-special-Userlogin .cdx-checkbox__label {
font-size: 14px;
font-family: "Manrope", sans-serif;
color: #4a5568;
cursor: pointer;
}
body.mw-special-Userlogin .cdx-checkbox__input {
width: 18px;
height: 18px;
margin: 0;
cursor: pointer;
}
/* Submit "Вхід" / "Створити обліковий запис" — коралова CTA */
body.mw-special-Userlogin #wpLoginAttempt,
body.mw-special-CreateAccount #wpCreateaccount,
body.mw-special-CreateAccount button.mw-htmlform-submit {
background: #f84840 !important;
border-color: #f84840 !important;
color: #ffffff !important;
border-radius: 10px !important;
padding: 12px 24px !important;
font-weight: 700 !important;
width: 100% !important;
font-size: 15px !important;
font-family: "Manrope", sans-serif !important;
box-shadow: 0 2px 8px rgba(248, 72, 64, 0.25) !important;
transition: background 0.15s, box-shadow 0.15s !important;
margin-top: 4px;
}
body.mw-special-Userlogin #wpLoginAttempt:hover,
body.mw-special-CreateAccount #wpCreateaccount:hover {
background: #e63a32 !important;
border-color: #e63a32 !important;
box-shadow: 0 4px 12px rgba(248, 72, 64, 0.35) !important;
}
/* Допоміжні лінки ("Допомога з входу", "Забули пароль") — центровано */
body.mw-special-Userlogin .mw-userlogin-help,
body.mw-special-Userlogin .mw-form-related-link-container,
body.mw-special-CreateAccount .mw-form-related-link-container {
text-align: center !important;
font-size: 14px;
margin-top: 16px;
}
body.mw-special-Userlogin .mw-userlogin-help a,
body.mw-special-Userlogin .mw-form-related-link-container a,
body.mw-special-CreateAccount .mw-form-related-link-container a {
color: #1070b0;
text-decoration: none;
font-weight: 500;
}
body.mw-special-Userlogin .mw-userlogin-help a:hover,
body.mw-special-Userlogin .mw-form-related-link-container a:hover {
color: #1a2240;
text-decoration: underline;
}
/* "Допомога з входу" — приховаємо як external/непотрібне посилання */
body.mw-special-Userlogin .mw-userlogin-help {
display: none;
}
/* "Немає облікового запису?" — footer-секція форми, з top-розділювачем.
Wrapper-и батьків зануляємо, щоб footer вийшов до самих країв картки. */
body.mw-special-Userlogin .mw-htmlform-field-HTMLInfoField:has(#mw-createaccount-cta) {
margin: 24px -32px -32px !important;
padding: 0 !important;
width: calc(100% + 64px) !important;
}
body.mw-special-Userlogin .mw-htmlform-field-HTMLInfoField:has(#mw-createaccount-cta) > .mw-input {
margin: 0 !important;
padding: 0 !important;
width: 100% !important;
}
body.mw-special-Userlogin #mw-createaccount-cta {
margin: 0 !important;
padding: 20px 32px !important;
background: #f9fafc;
border-radius: 0 0 20px 20px;
border-top: 1px solid #eef0f4;
text-align: center;
font-size: 14px;
color: #6b7280;
font-family: "Manrope", sans-serif;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
flex-wrap: wrap;
box-shadow: none;
width: 100%;
box-sizing: border-box;
}
body.mw-special-Userlogin #mw-createaccount-join {
background: transparent !important;
border: none !important;
color: #1070b0 !important;
border-radius: 0 !important;
padding: 0 !important;
font-weight: 700 !important;
font-size: 14px !important;
font-family: "Manrope", sans-serif !important;
text-decoration: none !important;
box-shadow: none !important;
transition: color 0.15s !important;
}
body.mw-special-Userlogin #mw-createaccount-join:hover {
background: transparent !important;
color: #f84840 !important;
text-decoration: underline !important;
}
/* Прибрати сірі силуети людей знизу (фоновий help-icon) */
body.mw-special-Userlogin .mw-userlogin-help-icon,
body.mw-special-Userlogin #userloginprompt::before,
body.mw-special-Userlogin .mw-ui-container > .mw-userlogin-help-icon {
display: none !important;
}
/* Mobile — менші відступи в карточці */
@media screen and (max-width: 480px) {
body.mw-special-Userlogin #userloginForm,
body.mw-special-CreateAccount #userloginForm {
padding: 24px 20px;
}
body.mw-special-Userlogin .firstHeading,
body.mw-special-CreateAccount .firstHeading {
font-size: 26px;
margin-top: 16px;
}
}
/* ====================================================================
Special:UserLogin / Special:CreateAccount — mobile (≤720px)
Чистіший фокусований логін: без лого, без warning, без футера/градієнта
==================================================================== */
@media (max-width: 720px) {
/* 1) Лого (MobileFrontend watermark) */
body.mw-special-Userlogin .mw-mf-watermark,
body.mw-special-CreateAccount .mw-mf-watermark,
body.mw-special-Userlogin .mw-htmlform-field-HTMLInfoField,
body.mw-special-CreateAccount .mw-htmlform-field-HTMLInfoField {
display: none !important;
}
/* 2) Warning "Проєкт «Країнопедія» творять такі ж люди..." */
body.mw-special-Userlogin #userloginForm .cdx-message--warning,
body.mw-special-Userlogin #userloginForm .mw-message-box-warning,
body.mw-special-CreateAccount #userloginForm .cdx-message--warning,
body.mw-special-CreateAccount #userloginForm .mw-message-box-warning {
display: none !important;
}
/* 3) Футер */
body.mw-special-Userlogin .mw-footer-container,
body.mw-special-Userlogin #mw-footer,
body.mw-special-CreateAccount .mw-footer-container,
body.mw-special-CreateAccount #mw-footer {
display: none !important;
}
/* 4) Темний градієнт знизу viewport */
body.mw-special-Userlogin::after,
body.mw-special-CreateAccount::after {
content: none !important;
display: none !important;
background: none !important;
}
/* 5) Вирівнювання після зняття зайвого:
— карточка з трохи компактнішим паддінгом
— welcome-блок ближче до форми
— заголовок трохи менший на маленьких екранах */
body.mw-special-Userlogin .mw-body,
body.mw-special-CreateAccount .mw-body {
padding: 32px 24px 28px !important;
margin-left: auto !important;
margin-right: auto !important;
}
body.mw-special-Userlogin #userloginprompt,
body.mw-special-CreateAccount #userloginprompt {
margin: 0 0 24px !important;
}
body.mw-special-Userlogin .login-welcome-title,
body.mw-special-CreateAccount .login-welcome-title {
font-size: 28px !important;
}
/* Прибрати верхній margin форми (раніше відстоювала від warning) */
body.mw-special-Userlogin #userloginForm,
body.mw-special-CreateAccount #userloginForm {
margin-top: 0 !important;
}
}
/* ====================================================================
Special:UserLogin / Special:CreateAccount — header
Бар хедера на всю ширину viewport, але контент центровано
в межах звичайної Vector ширини
==================================================================== */
body.mw-special-Userlogin .vector-header-container,
body.mw-special-CreateAccount .vector-header-container {
max-width: none !important;
min-width: 0 !important;
width: 100% !important;
padding-left: 0 !important;
padding-right: 0 !important;
align-self: auto !important;
}
body.mw-special-Userlogin .mw-header,
body.mw-special-CreateAccount .mw-header {
max-width: 99.75em !important;
min-width: 31.25em !important;
margin-left: auto !important;
margin-right: auto !important;
padding-left: 24px !important;
padding-right: 24px !important;
width: 100% !important;
box-sizing: border-box !important;
}
/* ====================================================================
Special:CreateAccount — two-panel layout (form | benefits sidebar)
ВАЖЛИВО: benefits-блок є SIBLING #userloginForm всередині .mw-ui-container,
а не дитиною #userloginForm. Тому flex ставимо на .mw-ui-container.
==================================================================== */
@media (min-width: 880px) {
/* .mw-body — прозорий wrapper, картки на дітях */
body.mw-special-CreateAccount .mw-body {
background: transparent !important;
box-shadow: none !important;
border-radius: 0 !important;
padding: 0 !important;
max-width: 920px !important;
width: calc(100% - 32px) !important;
overflow: visible !important;
}
body.mw-special-CreateAccount .mw-body::before {
content: none !important;
}
/* Спільний flex-родитель для двох карток */
body.mw-special-CreateAccount .mw-ui-container {
display: flex !important;
flex-direction: row !important;
gap: 24px !important;
align-items: stretch !important;
width: 100% !important;
max-width: none !important;
}
/* === Ліва картка — #userloginForm wrapper з формою === */
body.mw-special-CreateAccount #userloginForm {
flex: 0 0 440px;
background: #ffffff !important;
border-radius: 20px !important;
padding: 40px 32px 32px !important;
box-shadow:
0 1px 2px rgba(26, 34, 64, 0.04),
0 8px 32px rgba(26, 34, 64, 0.10) !important;
position: relative !important;
overflow: hidden !important;
box-sizing: border-box !important;
margin: 0 !important;
}
body.mw-special-CreateAccount #userloginForm::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg,
#00b898 0%, #00b898 25%,
#1070b0 25%, #1070b0 50%,
#f8b020 50%, #f8b020 75%,
#f84840 75%, #f84840 100%);
z-index: 1;
}
/* === Права картка — benefits-блок === */
body.mw-special-CreateAccount .mw-createacct-benefits-container {
flex: 0 0 440px;
background: #ffffff !important;
border-radius: 20px !important;
padding: 48px 28px 36px !important;
box-shadow:
0 1px 2px rgba(26, 34, 64, 0.04),
0 8px 32px rgba(26, 34, 64, 0.10) !important;
position: relative !important;
overflow: hidden !important;
box-sizing: border-box !important;
text-align: center !important;
margin: 0 !important;
align-self: stretch;
}
body.mw-special-CreateAccount .mw-createacct-benefits-container::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg,
#f84840 0%, #f84840 25%,
#f8b020 25%, #f8b020 50%,
#1070b0 50%, #1070b0 75%,
#00b898 75%, #00b898 100%);
z-index: 1;
}
body.mw-special-CreateAccount .mw-createacct-benefits-container h2 {
font-family: "Manrope", sans-serif;
font-weight: 800;
font-size: 22px;
color: #1a2240;
letter-spacing: -0.02em;
line-height: 1.2;
margin: 0 0 28px !important;
border-bottom: none !important;
padding: 0 !important;
}
body.mw-special-CreateAccount .mw-createacct-benefits-list {
display: flex;
flex-direction: column;
gap: 20px;
}
body.mw-special-CreateAccount .mw-number-text {
display: block;
text-align: center;
}
body.mw-special-CreateAccount .mw-number-text h3 {
font-family: "Manrope", sans-serif;
font-weight: 800;
font-size: 40px;
color: #00b898;
line-height: 1;
margin: 0 0 4px !important;
border: none !important;
padding: 0 !important;
}
body.mw-special-CreateAccount .mw-number-text p {
font-family: "Manrope", sans-serif;
font-weight: 400;
font-size: 14px;
color: #6b7280;
margin: 0 !important;
}
}
/* Tablet/mobile — стак вертикально */
@media (max-width: 879px) {
body.mw-special-CreateAccount .mw-ui-container {
display: block !important;
}
body.mw-special-CreateAccount .mw-createacct-benefits-container {
margin-top: 16px !important;
}
}
/* Прибрати дефолтні MediaWiki іконки з benefits-блока (icon-edits/pages/contributors) */
body.mw-special-CreateAccount .mw-number-text.icon-edits,
body.mw-special-CreateAccount .mw-number-text.icon-pages,
body.mw-special-CreateAccount .mw-number-text.icon-contributors {
background-image: none !important;
padding-left: 0 !important;
padding-top: 0 !important;
}
body.mw-special-CreateAccount .mw-number-text.icon-edits::before,
body.mw-special-CreateAccount .mw-number-text.icon-pages::before,
body.mw-special-CreateAccount .mw-number-text.icon-contributors::before,
body.mw-special-CreateAccount .mw-number-text.icon-edits::after,
body.mw-special-CreateAccount .mw-number-text.icon-pages::after,
body.mw-special-CreateAccount .mw-number-text.icon-contributors::after {
content: none !important;
display: none !important;
}
/* Цифри статистики — кольори бренду як у плашці зверху */
body.mw-special-CreateAccount .mw-number-text.icon-edits h3 {
color: #f84840 !important;
}
body.mw-special-CreateAccount .mw-number-text.icon-pages h3 {
color: #f8b020 !important;
}
body.mw-special-CreateAccount .mw-number-text.icon-contributors h3 {
color: #1070b0 !important;
}
/* ====================================================================
CreateAccount: чистка benefits-панелі та "Дякуємо + увійти" знизу
==================================================================== */
/* Прибрати 4-кольорову плашку зверху benefits-панелі */
body.mw-special-CreateAccount .mw-createacct-benefits-container::before {
content: none !important;
}
/* Сховати JS-інжектовану register-панель на CreateAccount —
тепер benefits-панель сама хостить нагадування про вхід */
body.mw-special-CreateAccount .mw-register-panel {
display: none !important;
}
/* Benefits-панель — flex column, щоб thanks/hint липли до низу */
@media (min-width: 880px) {
body.mw-special-CreateAccount .mw-createacct-benefits-container {
display: flex !important;
flex-direction: column !important;
}
}
/* "Дякуємо за участь!" — heading знизу панелі */
.benefits-thanks {
font-family: "Manrope", sans-serif;
font-weight: 800;
font-size: 22px;
color: #1a2240;
letter-spacing: -0.02em;
margin: 32px 0 6px;
text-align: center;
line-height: 1.2;
}
@media (min-width: 880px) {
.benefits-thanks {
margin-top: auto;
}
}
/* Підказка про вхід */
.benefits-login-hint {
font-family: "Manrope", sans-serif;
font-weight: 400;
font-size: 14px;
color: #6b7280;
text-align: center;
line-height: 1.4;
}
.benefits-login-hint a {
color: #f84840;
text-decoration: none;
font-weight: 600;
}
.benefits-login-hint a:hover {
text-decoration: underline;
}
/* ====================================================================
Special:UserLogin — права картка зі stats (інжектується JS)
Симетрія з benefits-панеллю на CreateAccount
==================================================================== */
/* Прибрати top-stripe з register-панелі (для симетрії з benefits) */
body.mw-special-Userlogin .mw-register-panel::before {
content: none !important;
}
/* Розкладка: title+sub зверху, stats посередині, CTA знизу */
body.mw-special-Userlogin .mw-register-panel {
justify-content: flex-start !important;
padding: 48px 28px 36px !important;
}
body.mw-special-Userlogin .mw-register-panel .mw-register-panel__title {
font-size: 22px;
margin-bottom: 6px;
}
body.mw-special-Userlogin .mw-register-panel .mw-register-panel__sub {
margin-bottom: 24px;
}
/* Stats list — як у benefits */
body.mw-special-Userlogin .mw-register-panel .mw-createacct-benefits-list {
display: flex;
flex-direction: column;
gap: 20px;
width: 100%;
margin: 0 0 24px;
}
body.mw-special-Userlogin .mw-register-panel .mw-number-text {
display: block;
text-align: center;
background-image: none !important;
background: none;
padding: 0;
}
body.mw-special-Userlogin .mw-register-panel .mw-number-text::before,
body.mw-special-Userlogin .mw-register-panel .mw-number-text::after {
content: none !important;
}
body.mw-special-Userlogin .mw-register-panel .mw-number-text h3 {
font-family: "Manrope", sans-serif;
font-weight: 800;
font-size: 40px;
line-height: 1;
margin: 0 0 4px !important;
border: none !important;
padding: 0 !important;
}
body.mw-special-Userlogin .mw-register-panel .mw-number-text.icon-edits h3 { color: #f84840 !important; }
body.mw-special-Userlogin .mw-register-panel .mw-number-text.icon-pages h3 { color: #f8b020 !important; }
body.mw-special-Userlogin .mw-register-panel .mw-number-text.icon-contributors h3 { color: #1070b0 !important; }
body.mw-special-Userlogin .mw-register-panel .mw-number-text p {
font-family: "Manrope", sans-serif;
font-weight: 400;
font-size: 14px;
color: #6b7280;
margin: 0 !important;
}
/* CTA — прилипає до низу */
body.mw-special-Userlogin .mw-register-panel .mw-register-panel__cta {
margin-top: auto;
}
/* ============================================================
Hero — ховаємо кнопки дій для анонімних (незалогінених) читачів.
Common.js додає body.usergroup-anon. Залогінені редактори бачать кнопки.
Desktop (Vector): тулбар Читати/Код/Історія всередині hero.
Mobile (Minerva): панель дій (мова/зірка/історія/ред.) на низу hero.
============================================================ */
body.usergroup-anon:is(.page-🇷🇴_Румунія, .page-has-hero) .vector-page-titlebar .vector-page-toolbar {
display: none !important;
}
body.usergroup-anon:is(.skin-minerva.page-🇷🇴_Румунія, .skin-minerva.page-has-hero) .pre-content.heading-holder .page-actions-menu {
display: none !important;
}
/* Hero kicker — лінк «← Країна» над заголовком міста (повернення на країну).
Генерується в Common.js, існує лише на сторінках міст. */
.hero-titlewrap {
display: flex;
flex-direction: column;
align-items: center;
gap: 2px;
}
.hero-kicker {
display: inline-block;
color: var(--page-hero-fg, #ffffff);
font-size: 15px;
font-weight: 600;
letter-spacing: 0.02em;
text-decoration: none;
opacity: 0.92;
text-shadow: 0 1px 6px rgba(0, 0, 0, 0.35);
}
.hero-kicker:hover,
.hero-kicker:focus {
opacity: 1;
text-decoration: underline;
}
/* «← Назад» на звичайних внутрішніх сторінках (інжектиться Common.js). */
.page-back-link {
display: block;
margin-bottom: 4px;
color: #4b5563;
font-size: 14px;
font-weight: 600;
text-decoration: none;
}
.page-back-link:hover,
.page-back-link:focus {
color: #1a2240;
text-decoration: underline;
}
/* ============================================================
Callout-плашки — шаблони {{Увага}} / {{Порада}} / {{Нотатка з досвіду}}
============================================================ */
.callout {
margin: 14px 0;
padding: 12px 14px;
border-radius: 0 6px 6px 0;
}
.callout__icon { display: none; }
.callout__body > :first-child { margin-top: 0; }
.callout__body > :last-child { margin-bottom: 0; }
.callout__label { font-weight: 700; margin-bottom: 2px; color: #202122; }
.callout--note { background: #f3f5f8; border-left: 1px solid #3a59b8; }
.callout--tip { background: #f2f7f5; border-left: 1px solid #1c8a45; }
.callout--warning { background: #f8f4f3; border-left: 1px solid #d92c1c; }
/* Картки лікарів: додаткові рядки (клініка, ціна, CNAS) */
.service-card__row--clinic {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27%234b5563%27%3E%3Cpath%20fill-rule%3D%27evenodd%27%20d%3D%27M11.54%2022.351l.07.04.028.016a.76.76%200%2000.723%200l.028-.015.071-.041a16.975%2016.975%200%20001.144-.742%2019.58%2019.58%200%20002.683-2.282c1.944-1.99%203.963-4.98%203.963-8.827a8.25%208.25%200%2000-16.5%200c0%203.846%202.02%206.837%203.963%208.827a19.58%2019.58%200%20002.682%202.282%2016.975%2016.975%200%20001.145.742zM12%2013.5a3%203%200%20100-6%203%203%200%20000%206z%27%20clip-rule%3D%27evenodd%27%2F%3E%3C%2Fsvg%3E");
}
.service-card__row--price {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27%234b5563%27%3E%3Cpath%20d%3D%27M12%207.5a2.25%202.25%200%20100%204.5%202.25%202.25%200%20000-4.5z%27%2F%3E%3Cpath%20fill-rule%3D%27evenodd%27%20d%3D%27M1.5%204.875C1.5%203.839%202.34%203%203.375%203h17.25c1.035%200%201.875.84%201.875%201.875v9.75c0%201.036-.84%201.875-1.875%201.875H3.375A1.875%201.875%200%20011.5%2014.625v-9.75zM8.25%209.75a3.75%203.75%200%20117.5%200%203.75%203.75%200%2001-7.5%200zM18.75%209a.75.75%200%2000-.75.75v.008c0%20.414.336.75.75.75h.008a.75.75%200%2000.75-.75V9.75a.75.75%200%2000-.75-.75h-.008zM4.5%209.75A.75.75%200%20015.25%209h.008a.75.75%200%2001.75.75v.008a.75.75%200%2001-.75.75H5.25a.75.75%200%2001-.75-.75V9.75z%27%20clip-rule%3D%27evenodd%27%2F%3E%3Cpath%20d%3D%27M2.25%2018a.75.75%200%20000%201.5c5.4%200%2010.63.722%2015.6%202.075%201.19.324%202.4-.558%202.4-1.82V18.75a.75.75%200%2000-.75-.75H2.25z%27%2F%3E%3C%2Fsvg%3E");
}
.service-card__row--cnas {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27%234b5563%27%3E%3Cpath%20fill-rule%3D%27evenodd%27%20d%3D%27M12.516%202.17a.75.75%200%2000-1.032%200%2011.209%2011.209%200%2001-7.877%203.08.75.75%200%2000-.722.515A12.74%2012.74%200%20002.25%209.75c0%205.942%204.064%2010.933%209.563%2012.348a.749.749%200%2000.374%200C17.686%2020.683%2021.75%2015.692%2021.75%209.75c0-1.44-.24-2.83-.678-4.128a.75.75%200%2000-.722-.515%2011.209%2011.209%200%2001-7.834-3.08zM15.53%209.53a.75.75%200%2000-1.06-1.06l-3.97%203.97-1.47-1.47a.75.75%200%2000-1.06%201.06l2%202a.75.75%200%20001.06%200l4.5-4.5z%27%20clip-rule%3D%27evenodd%27%2F%3E%3C%2Fsvg%3E");
}/* === Країнопедія UI Kit: дизайн-токени + house-компоненти === */
/* ЄДИНЕ ДЖЕРЕЛО ПРАВДИ. Живе в MediaWiki:Common.css (сайт) і віддзеркалюється
на сторінці https://nomadica.uno/uikit/ (вона вантажить цей же Common.css живим).
Правиш тут → міняється і сайт, і кіт. */
:root{
/* — Бренд-мотив (чотири кольори смугастих банерів) — */
--k-brand-blue:#1070b0; --k-brand-red:#f84840; --k-brand-yellow:#f8b020; --k-brand-teal:#00b898;
/* — Дієві / семантичні — */
--k-accent:#2a6df4; --k-accent-hover:#1b57cc;
--k-danger:#f84840; --k-success:#00b898; --k-warning:#f8b020;
/* — Чорнило / текст — */
--k-ink:#1a2240; --k-text:#202122; --k-text-secondary:#374151; --k-text-muted:#6b7280; --k-text-hint:#9ca3af;
/* — Поверхні / межі — */
--k-bg:#ffffff; --k-bg-subtle:#fafbfd; --k-border:#eef1f6; --k-border-strong:#e3e7ef;
/* — Скруглення — */
--k-radius-xs:6px; --k-radius-sm:8px; --k-radius-md:14px; --k-radius-lg:20px; --k-radius-pill:999px;
/* — Тіні — */
--k-shadow-1:0 1px 3px rgba(26,34,64,.08);
--k-shadow-2:0 8px 30px rgba(26,34,64,.16);
--k-shadow-3:0 16px 50px rgba(26,34,64,.22);
/* — Відступи / гепи (крок 4px) — */
--k-space-0:0; --k-space-1:4px; --k-space-2:8px; --k-space-3:12px; --k-space-4:16px;
--k-space-5:20px; --k-space-6:24px; --k-space-8:32px; --k-space-10:40px; --k-space-12:48px;
/* — Типографіка — */
--k-font-sans:-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
--k-fs-xs:12px; --k-fs-sm:13px; --k-fs-base:14px; --k-fs-md:16px; --k-fs-lg:20px; --k-fs-xl:24px; --k-fs-2xl:30px;
--k-fw-normal:400; --k-fw-medium:600; --k-fw-bold:700;
--k-lh-tight:1.2; --k-lh-base:1.5; --k-lh-relaxed:1.7;
/* — Шари (z-index) — */
--k-z-fixed:1000; --k-z-overlay:1001; --k-z-tip:1002;
}
/* ——— Компоненти (розширюємо під приклад Александра) ——— */
.k-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--k-space-2);
font:var(--k-fw-medium) var(--k-fs-base)/var(--k-lh-tight) var(--k-font-sans);padding:var(--k-space-2) var(--k-space-4);
border-radius:var(--k-radius-pill);border:1px solid transparent;cursor:pointer;
transition:background .15s,border-color .15s,box-shadow .15s}
.k-btn--primary{background:var(--k-accent);color:#fff}
.k-btn--primary:hover{background:var(--k-accent-hover)}
.k-btn--quiet{background:var(--k-bg-subtle);color:var(--k-text);border-color:var(--k-border-strong)}
.k-btn--quiet:hover{background:#f0f2f6}
.k-btn--danger{background:var(--k-danger);color:#fff}
.k-btn--danger:hover{filter:brightness(.94)}
.k-input,.k-textarea{width:100%;box-sizing:border-box;background:var(--k-bg-subtle);
border:1px solid var(--k-border);border-radius:var(--k-radius-sm);padding:9px 11px;
font:var(--k-fs-base)/var(--k-lh-base) var(--k-font-sans);color:var(--k-text);
transition:border-color .15s,background .15s,box-shadow .15s}
.k-input::placeholder,.k-textarea::placeholder{color:var(--k-text-hint)}
.k-input:focus,.k-textarea:focus{outline:none;background:var(--k-bg);
border-color:var(--k-accent);box-shadow:0 0 0 3px rgba(42,109,244,.12)}
.k-card{background:var(--k-bg);border:1px solid var(--k-border);border-radius:var(--k-radius-md);
box-shadow:var(--k-shadow-1);padding:var(--k-space-4);transition:transform .15s,box-shadow .15s}
.k-card:hover{transform:translateY(-2px);box-shadow:var(--k-shadow-2)}
.k-dialog{background:var(--k-bg);border-radius:var(--k-radius-md);box-shadow:var(--k-shadow-2);padding:20px 22px}
.k-pill{display:inline-flex;align-items:center;gap:var(--k-space-1);padding:var(--k-space-1) var(--k-space-3);
border-radius:var(--k-radius-pill);font:var(--k-fw-medium) var(--k-fs-xs)/var(--k-lh-tight) var(--k-font-sans)}
.k-pill--blue{background:rgba(16,112,176,.12);color:var(--k-brand-blue)}
.k-pill--red{background:rgba(248,72,64,.12);color:var(--k-danger)}
.k-pill--yellow{background:rgba(248,176,32,.16);color:#9a6a00}
.k-pill--teal{background:rgba(0,184,152,.14);color:#067a64}
.k-form{display:flex;flex-direction:column;gap:var(--k-space-5)} /* геп між полями — регулюється тут */
.k-field{display:flex;flex-direction:column;gap:var(--k-space-3)} /* геп лейбл → інпут (12px) */
.k-label{font:var(--k-fw-medium) var(--k-fs-sm)/var(--k-lh-base) var(--k-font-sans);color:var(--k-text-secondary)}
.k-label span{font-weight:var(--k-fw-normal);color:var(--k-text-hint)}
/* Картки (ціль міграції .place-card / .service-card) */
.k-card--media{padding:0;overflow:hidden}
.k-card__img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--k-bg-subtle)}
.k-card__body{padding:var(--k-space-4) var(--k-space-5) var(--k-space-5)}
.k-card__title{margin:0 0 var(--k-space-2);font:var(--k-fw-bold) var(--k-fs-md)/var(--k-lh-tight) var(--k-font-sans);color:var(--k-ink)}
.k-card__title a{color:inherit;text-decoration:none}
.k-card__title a:hover{color:var(--k-accent)}
.k-card__meta{margin:0 0 var(--k-space-2);font-size:var(--k-fs-sm);color:var(--k-text-muted)}
.k-card__desc{font-size:var(--k-fs-base);line-height:var(--k-lh-base);color:var(--k-text-secondary)}
.k-card__rows{display:flex;flex-direction:column;gap:var(--k-space-2);margin-top:var(--k-space-3)}
.k-card__row{display:flex;align-items:center;gap:var(--k-space-2);font-size:var(--k-fs-sm);color:var(--k-text-secondary)}
.k-card__row a{color:var(--k-accent);text-decoration:none}
.k-card__price{font-weight:var(--k-fw-bold);color:var(--k-ink)}
.k-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--k-radius-xs);font:var(--k-fw-medium) var(--k-fs-xs)/1.2 var(--k-font-sans);background:var(--k-bg-subtle);color:var(--k-text-secondary)}
.k-badge--success{background:rgba(0,184,152,.14);color:#067a64}
/* === /krai-uikit === */
/* === Країнопедія: віджет «Повідомити про правку» (krai-feedback) — на UI Kit === */
/* Кольори/радіуси/тіні — з токенів --k-*. Тут лише layout/позиціонування. */
.krai-fb-btn{position:fixed;right:16px;bottom:16px;z-index:var(--k-z-fixed,1000);background:var(--k-bg);color:var(--k-ink);box-shadow:var(--k-shadow-2)}
@media(max-width:640px){.krai-fb-btn{right:10px;bottom:10px}}
.krai-fb-tip{position:absolute;z-index:var(--k-z-tip,1002);padding:6px 12px;font-size:13px;background:var(--k-bg);color:var(--k-ink);box-shadow:var(--k-shadow-2);white-space:nowrap}
.krai-fb-overlay{display:none;position:fixed;inset:0;z-index:1001;background:rgba(26,34,64,.5);align-items:center;justify-content:center;padding:16px}
.krai-fb-overlay.is-open{display:flex}
.krai-fb-modal{max-width:460px;width:100%;position:relative;max-height:90vh;overflow:auto}
.krai-fb-close{position:absolute;top:8px;right:12px;background:none;border:none;font-size:26px;line-height:1;color:var(--k-text-muted);cursor:pointer}
.krai-fb-title{margin:0 0 4px;font-size:20px;color:var(--k-ink);border:none;padding:0}
.krai-fb-sub{margin:0 0 14px;font-size:13px;color:var(--k-text-muted)}
.krai-fb-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0}
.krai-fb-actions{display:flex;justify-content:flex-end;gap:10px}
.krai-fb-msg{font-size:13px}
.krai-fb-msg:empty{display:none}
.krai-fb-msg.is-ok{color:var(--k-success)}
.krai-fb-msg.is-err{color:var(--k-danger)}
/* === /krai-feedback === */