/* Sensus PR rebrand: admin + login screens.
   These pages keep their original markup (dmn__*, form-control, table, btn, paginator...);
   this sheet restyles it with the rebrand tokens from style_3-0.css. Everything is scoped to .rs-admin. */

.rs-admin { --admin-img-bg: repeating-conic-gradient(oklch(0.24 0.03 290) 0% 25%, oklch(0.19 0.025 290) 0% 50%) 0 0 / 14px 14px; padding: clamp(24px, 4vw, 56px) var(--pad-x) var(--sec-y); max-width: 1400px; margin: 0 auto; width: 100%; box-sizing: border-box; font-size: 16px; line-height: 1.5; color: var(--text); }
.rs-admin *, .rs-admin *::before, .rs-admin *::after { box-sizing: border-box; }
.rs-admin h1, .rs-admin h2, .rs-admin h3, .rs-admin h4 { font-weight: 300; letter-spacing: -0.02em; margin: 0; }

/* legacy entrance helpers: never leave anything hidden */
.rs-admin .fade-animation, .rs-admin .fadecontainer, .rs-admin [class*="fade-in"] { opacity: 1 !important; transform: none !important; animation: none !important; visibility: visible !important; }
.rs-admin .text-center, .rs-admin .text--center { text-align: center; }
.rs-admin .text-left { text-align: left; }
.rs-admin .text-right, .rs-admin .text--right { text-align: right; }
.rs-admin .pointer { cursor: pointer; }
.rs-admin .display--none, .rs-admin .hidden { display: none; }
.rs-admin .mb-2 { margin-bottom: 8px; } .rs-admin .mb-3 { margin-bottom: 12px; } .rs-admin .mb-5 { margin-bottom: 20px; } .rs-admin .mb-7 { margin-bottom: 28px; } .rs-admin .mb-10 { margin-bottom: 40px; }
.rs-admin .container { max-width: 1200px; width: 100%; margin: 0 auto; padding: 0; }
.rs-admin .well { background: transparent; border: 0; padding: 0; margin: 0; }
.rs-admin .img-responsive { max-width: 100%; height: auto; }
.rs-admin hr { border: 0; border-top: 1px solid var(--hair-2); margin: 24px 0; }
.rs-admin a { color: var(--accent); }

/* ---------- Admin top menu ---------- */
.rs-admin .dmn__menuwrap { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; width: fit-content; max-width: 100%; margin: 0 auto clamp(32px, 4vw, 56px); padding: 4px; border: 1px solid var(--hair-2); border-radius: 999px; }
.rs-admin .dmn__navbuttons { margin: 0; }
.rs-admin .dmn__navbuttons span { display: block; padding: 10px 20px; border-radius: 999px; font-size: 14px; color: var(--text-2); transition: background .2s, color .2s; }
.rs-admin .dmn__navbuttons span:hover { color: var(--text); }
.rs-admin .dmn__navbuttons.is-active span { background: var(--text); color: var(--bg); }

/* ---------- Titles ---------- */
.rs-admin .dmn__main__title, .rs-admin .dmn__title, .rs-admin .dmn__blog__newmodify__title { font-size: clamp(26px, 3vw, 40px); font-weight: 300; letter-spacing: -0.025em; text-align: center; margin: 0; }
.rs-admin .dmn__subtitle, .rs-admin .dmn__blog__newmodify__subtitle { font-family: var(--mono); font-size: 12px; font-weight: 400; letter-spacing: .14em; text-transform: uppercase; color: var(--text-3); text-align: center; margin: 0 0 20px; }
.rs-admin .dmn__main__inline { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: clamp(20px, 3vw, 36px); }
.rs-admin .dmn__main__addicon { width: 38px; height: 38px; padding: 10px; border-radius: 50%; background: var(--accent); fill: var(--bg); margin: 0; transition: transform .2s; }
.rs-admin .insert:hover .dmn__main__addicon { transform: scale(1.08); }

/* ---------- Dashboard cards ---------- */
.rs-admin .container.dmn__main { margin: 0 auto; }
.rs-admin .dmn__main { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 16px; margin: 0; }
.rs-admin .dmn__main__cards { height: auto; width: auto; max-width: none; margin: 0; padding: 28px; border: 1px solid var(--hair-2); border-radius: 24px; background: linear-gradient(145deg, oklch(1 0 0 / .05), oklch(1 0 0 / .01)); text-align: left; font-size: 15px; line-height: 1.7; color: var(--text-2); transition: border-color .25s, transform .25s; }
.rs-admin .dmn__main__cards:hover { border-color: var(--accent); transform: translateY(-2px); }
.rs-admin .dmn__main__cards__title { margin: 0 0 16px; font-size: 28px; font-weight: 300; letter-spacing: -0.02em; color: var(--text); }
.rs-admin .dmn__main__cards__icon { width: 44px; height: 44px; margin: 0 0 12px; fill: var(--accent); display: block; }
.rs-admin .dmn__main__cards br { display: none; }
.rs-admin .dmn__main__cards span { display: block; }
.rs-admin .dmn__main__cards__text-red { color: oklch(0.75 0.15 25); }

/* ---------- Tables ---------- */
.rs-admin .table { width: 100%; margin: 0 0 24px; border-collapse: separate; border-spacing: 0; border: 1px solid var(--hair-2); border-radius: 16px; overflow: hidden; background: oklch(1 0 0 / .02); font-size: 14px; }
.rs-admin .table th { padding: 14px 16px; text-align: left; font-family: var(--mono); font-size: 11px; font-weight: 400; letter-spacing: .12em; text-transform: uppercase; color: var(--text-3); background: oklch(1 0 0 / .04); border: 0; border-bottom: 1px solid var(--hair-2); }
.rs-admin .table td { padding: 12px 16px; border: 0; border-bottom: 1px solid var(--hair); vertical-align: middle; color: var(--text-2); background: transparent; }
.rs-admin .table tr:nth-child(2n) { background: transparent; }
.rs-admin .table tbody tr:last-child td { border-bottom: 0; }
.rs-admin .table tbody tr:hover td { background: oklch(1 0 0 / .03); color: var(--text); }
.rs-admin .table img { max-height: 48px; width: auto; border-radius: 6px; background: var(--admin-img-bg); }
.rs-admin .dmn__blog__openicon { width: 22px; height: 22px; margin: 0; fill: var(--accent); }
.rs-admin .dmn__blog__deleteicon { width: 30px; height: 30px; padding: 8px; margin: 0; border-radius: 50%; background: oklch(0.6 0.2 25 / .25); fill: oklch(0.8 0.12 25); transition: background .2s; }
.rs-admin .delete:hover .dmn__blog__deleteicon { background: oklch(0.6 0.2 25 / .5); }
.rs-admin .dmn__subscribers__icon { width: 30px; height: 30px; padding: 8px; border-radius: 50%; background: oklch(0.6 0.2 25 / .25); fill: oklch(0.8 0.12 25); }
.rs-admin .dmn__subscribers__icon--approved { background: oklch(0.7 0.14 150 / .25); fill: oklch(0.85 0.12 150); }

/* ---------- Pagination ---------- */
.rs-admin .paginator { text-align: center; padding: 8px 0 0; }
.rs-admin .paginator__general { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; list-style: none; margin: 0; padding: 0; }
.rs-admin .paginator__pagerelement { list-style: none; display: inline-flex; }
.rs-admin .paginator__pagerelement a { display: flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; padding: 0 12px; border: 1px solid var(--hair-2); border-radius: 999px; font-size: 14px; color: var(--text-2); background: transparent; text-decoration: none; transition: background .2s, color .2s, border-color .2s; }
.rs-admin .paginator__pagerelement a:hover { border-color: var(--accent); color: var(--text); background: oklch(0.74 0.17 300 / .12); }

/* ---------- Forms ---------- */
.rs-admin label, .rs-admin .form-control-label, .rs-admin .control-label, .rs-admin .form-label { display: block; margin-bottom: 6px; font-family: var(--mono); font-size: 11px; font-weight: 400; letter-spacing: .12em; text-transform: uppercase; color: var(--text-3); }
.rs-admin .form-group { margin-bottom: 18px; }
.rs-admin .form-group:not(:last-child) { margin-bottom: 18px; }
.rs-admin .form-control, .rs-admin input[type="text"], .rs-admin input[type="email"], .rs-admin input[type="password"], .rs-admin input[type="number"], .rs-admin input[type="date"], .rs-admin input[type="url"], .rs-admin select, .rs-admin textarea { display: block; width: 100%; height: auto; min-height: 44px; padding: 10px 14px; font: inherit; font-size: 16px; color: var(--text); background: oklch(1 0 0 / .04); border: 1px solid var(--hair-2); border-radius: 12px; outline: none; transition: border-color .2s, background .2s; }
.rs-admin textarea { resize: vertical; min-height: 120px; }
.rs-admin .form-control:focus, .rs-admin input:focus, .rs-admin select:focus, .rs-admin textarea:focus { border-color: var(--accent); background: oklch(1 0 0 / .06); }
.rs-admin .form-control:disabled, .rs-admin input:disabled { opacity: .55; }
.rs-admin ::placeholder { color: var(--text-4); opacity: 1; }
.rs-admin select option { background: var(--bg); color: var(--text); }
.rs-admin input[type="checkbox"], .rs-admin input[type="radio"] { width: auto; min-height: 0; accent-color: var(--accent); margin-right: 8px; }
.rs-admin input[type="file"] { width: auto; min-height: 0; padding: 8px 0; border: 0; background: transparent; color: var(--text-2); }
.rs-admin input[type="file"]::file-selector-button { margin-right: 12px; padding: 8px 16px; border: 1px solid var(--hair-2); border-radius: 999px; background: transparent; color: var(--text); font: inherit; font-size: 13px; cursor: pointer; }
.rs-admin input[type="file"]::file-selector-button:hover { border-color: var(--accent); }
.rs-admin .form-horizontal .form-group { display: grid; grid-template-columns: minmax(140px, 220px) 1fr; gap: 8px 24px; align-items: center; }
.rs-admin .form-horizontal .control-label { margin: 0; }
.rs-admin .form-horizontal .form-group > [class*="col-"] { min-width: 0; }
.rs-admin .standardinput { width: 100%; }
.rs-admin .row { margin: 0; }

/* ---------- Buttons ---------- */
.rs-admin .btn, .rs-admin button, .rs-admin input[type="submit"], .rs-admin input[type="button"] { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 24px; border: 1px solid transparent; border-radius: 999px; font: inherit; font-size: 15px; letter-spacing: 0; text-transform: none; line-height: 1.2; color: var(--bg); background: var(--text); cursor: pointer; text-decoration: none; transition: background .2s, color .2s, border-color .2s; }
.rs-admin .btn:hover, .rs-admin button:hover, .rs-admin input[type="submit"]:hover { background: var(--accent); color: var(--bg); }
.rs-admin .btn-info, .rs-admin .btn-primary, .rs-admin .btn-accent, .rs-admin .btn-mid { background: var(--accent); color: var(--bg); }
.rs-admin .btn-info:hover, .rs-admin .btn-primary:hover, .rs-admin .btn-accent:hover, .rs-admin .btn-mid:hover { background: var(--text); color: var(--bg); }
.rs-admin .btn-warning, .rs-admin .btn-default, .rs-admin .btn-secondary { background: transparent; border-color: var(--hair-2); color: var(--text); }
.rs-admin .btn-warning:hover, .rs-admin .btn-default:hover, .rs-admin .btn-secondary:hover { border-color: var(--accent); background: oklch(0.74 0.17 300 / .12); color: var(--text); }
.rs-admin .dmn__blog__newmodify__cont__submitbtn, .rs-admin .dmn__backlinks__submitbtn, .rs-admin .dmn__subscribers__button, .rs-admin .dmn__blog__newmodify__gallery__btnadd, .rs-admin .dmn__blog__newmodify__gallery__modal__btn { margin: 8px 8px 8px 0; font-size: 15px; padding: 12px 24px; border-radius: 999px; }
.rs-admin .dmn__blog__newmodify__gallery__btninput { font-size: 14px; width: auto; border: 0; }

/* ---------- Feedback messages ---------- */
.rs-admin [id^="feedBack"], .rs-admin .feedback, .rs-admin .alert { margin: 0 0 16px; text-align: center; color: var(--accent); font-size: 15px; }
.rs-admin [id^="feedBack"]:empty { display: none; }
.rs-admin .alert { padding: 12px 16px; border: 1px solid var(--hair-2); border-radius: 12px; }

/* ---------- New / edit blog post ---------- */
.rs-admin .dmn__blog__newmodify__cont { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.rs-admin .dmn__blog__newmodify__cont > * { margin: 0; min-width: 0; }
.rs-admin .dmn__blog__newmodify__cont__left, .rs-admin .dmn__blog__newmodify__cont__right { grid-column: span 1; margin: 0; }
.rs-admin .dmn__blog__newmodify__cont__left2, .rs-admin .dmn__blog__newmodify__cont__right2 { grid-column: span 2; margin: 0; }
.rs-admin .dmn__blog__newmodify__cont__low-right { display: flex; justify-content: flex-end; align-items: flex-end; }
.rs-admin .dmn__blog__newmodify__gallery { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; margin-bottom: 20px; }
.rs-admin .dmn__blog__newmodify__gallery__minigallery { display: flex; flex-wrap: wrap; gap: 12px; }
.rs-admin .dmn__blog__newmodify__gallery__minigallery__element { height: 120px; margin: 0; border-radius: 12px; overflow: hidden; border: 1px solid var(--hair-2); }
.rs-admin .dmn__blog__newmodify__gallery__minigallery__img { height: 100%; width: auto; object-fit: cover; display: block; }
.rs-admin .dmn__blog__newmodify__gallery__modal { display: none; position: fixed; z-index: 1000; inset: 0; overflow: auto; background: oklch(0.05 0.02 290 / .8); backdrop-filter: blur(6px); }
.rs-admin .dmn__blog__newmodify__gallery__modal__content { width: min(92%, 720px); margin: 8vh auto; padding: 24px; border: 1px solid var(--hair-2); border-radius: 24px; background: var(--surface); color: var(--text); }
.rs-admin .dmn__blog__newmodify__gallery__modal__content__imgcont, .rs-admin .dmn__blog__newmodify__gallery__modal__content__img { max-width: 100%; max-height: 50vh; height: auto; border-radius: 12px; }
.rs-admin .dmn__blog__newmodify__gallery__modal__close { text-align: right; font-size: 32px; line-height: 1; color: var(--text-2); cursor: pointer; }
.rs-admin .modal-body { padding: 8px 0; }

/* ---------- Clients / testimonials / backlinks ---------- */
.rs-admin .dmn__backlinks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; width: 100%; }
.rs-admin .dmn__backlinks__left, .rs-admin .dmn__backlinks__right { width: auto; margin: 0; min-width: 0; }
.rs-admin .dmn__backlinks__imgcontainer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; width: 100%; font-size: 16px; margin-bottom: 16px; }
.rs-admin .dmn__backlinks__imgcontainer__element { width: auto; margin: 0; display: flex; align-items: center; gap: 12px; }
.rs-admin .dmn__backlinks__imgcontainer__imgupl { height: 56px; width: auto; border-radius: 8px; background: var(--admin-img-bg); padding: 4px; }

/* ---------- Login ---------- */
.rs-admin .login__container { max-width: 520px; margin: clamp(16px, 4vw, 48px) auto 0; text-align: left; padding: clamp(28px, 4vw, 48px); border: 1px solid var(--hair-2); border-radius: 28px; background: linear-gradient(145deg, oklch(1 0 0 / .05), oklch(1 0 0 / .01)); color: var(--text); }
.rs-admin .login__container__title { margin: 0 0 24px; font-size: clamp(30px, 3.4vw, 44px); font-weight: 300; letter-spacing: -0.025em; color: var(--text); text-align: left; }
.rs-admin .login__container__form { max-width: none; margin: 0; font-size: 16px; }
.rs-admin .login__container__form__element { width: 100%; margin: 0 0 16px; border: 1px solid var(--hair-2); border-radius: 12px; color: var(--text); font-weight: 400; }
.rs-admin .login__container__form__btn { margin-top: 12px; min-width: 0; font-size: 15px; padding: 12px 26px; }
.rs-admin .login__container a { color: var(--accent); }

@media (max-width: 900px) {
  .rs-admin .dmn__blog__newmodify__cont { grid-template-columns: 1fr; }
  .rs-admin .dmn__blog__newmodify__cont__left, .rs-admin .dmn__blog__newmodify__cont__right, .rs-admin .dmn__blog__newmodify__cont__left2, .rs-admin .dmn__blog__newmodify__cont__right2 { grid-column: 1 / -1; }
  .rs-admin .dmn__backlinks { grid-template-columns: 1fr; }
  .rs-admin .form-horizontal .form-group { grid-template-columns: 1fr; }
  .rs-admin .table { display: block; overflow-x: auto; white-space: nowrap; }
}

/* ---------- Polish ---------- */
.rs-admin label, .rs-admin .form-control-label, .rs-admin .control-label, .rs-admin .form-label { text-align: left; margin-top: 18px; }
.rs-admin label:first-child, .rs-admin .form-horizontal .control-label, .rs-admin .login__container label:first-child { margin-top: 0; }
.rs-admin .dmn__main__title, .rs-admin .dmn__blog__newmodify__title { font-size: clamp(24px, 2.6vw, 34px); margin-bottom: clamp(16px, 2.4vw, 28px); }
.rs-admin .dmn__main__inline .dmn__main__title { margin-bottom: 0; }
.rs-admin .dmn__blog__newmodify__cont { margin-bottom: 24px; }
.rs-admin .dmn__blog__newmodify__subtitle { margin-top: 28px; }
.rs-admin .login__container .rs-eyebrow { margin-bottom: 20px; }
.rs-admin .login__container + * { text-align: center; margin-top: 16px; }
.rs-admin input[type="submit"].btn-warning, .rs-admin input[type="button"].btn-warning { background: transparent; border-color: var(--hair-2); color: var(--text); }
.rs-admin input[type="submit"].btn-warning:hover, .rs-admin input[type="button"].btn-warning:hover { border-color: var(--accent); background: oklch(0.74 0.17 300 / .12); color: var(--text); }

/* Admin and login fill at least the screen height, footer included: the footer sticks to the bottom on short pages */
body.rs:has(> main.rs-admin) { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
body.rs:has(> main.rs-admin) > main.rs-admin { flex: 1 0 auto; }
body.rs:has(> main.rs-admin) > .rs-footer { flex: none; }
