/* Корневой сайт платформы: страница сервиса и форма заявки. Без inline-стилей и скриптов (CSP). */
:root {
  --root-ink: #14213d;
  --root-ink-2: #4b5563;
  --root-accent: #1f6feb;
  --root-accent-2: #0b3d91;
  --root-sky: #eaf2ff;
  --root-line: #e5e7eb;
  --root-good: #0ca30c;
}
.root-wrap { max-width: 640px; }
.root-hp { position: absolute; left: -9999px; }
.root-body { color: var(--root-ink); background: #fff; }
.root-body h1, .root-body h2, .root-body h3 { font-weight: 700; letter-spacing: -.01em; }
.root-body h2 { font-size: 1.75rem; margin-bottom: .5rem; }
.root-body h3 { font-size: 1.1rem; }
.root-sub { color: var(--root-ink-2); font-size: 1.05rem; margin-bottom: 2rem; max-width: 46rem; }

/* шапка */
.root-nav { position: sticky; top: 0; z-index: 10; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--root-line); padding: .6rem 0; }
.root-logo { font-weight: 800; font-size: 1.25rem; color: var(--root-ink); text-decoration: none; }
.root-logo span { color: var(--root-accent); }
.root-menu a { color: var(--root-ink-2); margin: 0 .9rem; text-decoration: none; font-weight: 500; }
.root-menu a:hover { color: var(--root-accent); }
.root-cta { white-space: nowrap; }

/* первый экран */
.root-hero { background: linear-gradient(135deg, var(--root-accent-2), var(--root-accent) 60%, #4f8df5); color: #fff; padding: 4.5rem 0 4rem; }
.root-hero h1 { font-size: 2.4rem; line-height: 1.15; margin-bottom: 1rem; }
.root-kicker { text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; opacity: .85; margin-bottom: .75rem; }
.root-lead { font-size: 1.15rem; opacity: .95; max-width: 40rem; }
.root-hero-actions { margin: 1.5rem 0 1rem; }
.root-hero-actions .btn { margin: 0 .6rem .6rem 0; }
.root-hero .btn-primary { background: #fff; color: var(--root-accent-2); border-color: #fff; font-weight: 600; }
.root-hero .btn-primary:hover { background: var(--root-sky); border-color: var(--root-sky); }
.root-hero-note { font-size: .9rem; opacity: .8; margin: 0; }

/* макет экрана кассира */
.root-screen { background: #fff; color: var(--root-ink); border-radius: 12px; box-shadow: 0 20px 50px rgba(0,0,0,.25); padding: 0 0 .5rem; overflow: hidden; }
.root-screen-bar { display: flex; align-items: center; gap: 6px; background: #f3f4f6; padding: .6rem .9rem; font-size: .8rem; color: var(--root-ink-2); }
.root-screen-bar i { width: 9px; height: 9px; border-radius: 50%; background: #d1d5db; display: inline-block; }
.root-screen-bar b { margin-left: .6rem; font-weight: 500; }
.root-screen-row { display: flex; justify-content: space-between; padding: .65rem 1rem; border-bottom: 1px solid var(--root-line); font-size: .95rem; }
.root-screen-row em { font-style: normal; color: var(--root-ink-2); }
.root-screen-row em.good { color: var(--root-good); font-weight: 600; }
.root-screen-row.muted { color: var(--root-ink-2); border-bottom: 0; }

/* секции */
.root-section { padding: 3.5rem 0; }
.root-section-alt { background: #f8fafc; }
.root-aud { border-left: 3px solid var(--root-accent); padding: .25rem 0 .25rem 1rem; margin-bottom: 1rem; }
.root-aud p { color: var(--root-ink-2); margin: 0; }
.root-features .root-feat { background: #fff; border: 1px solid var(--root-line); border-radius: 10px; padding: 1.25rem; height: calc(100% - 1.25rem); margin-bottom: 1.25rem; }
.root-feat p { color: var(--root-ink-2); margin: 0; font-size: .95rem; }
.root-ico { width: 40px; height: 40px; border-radius: 10px; background: var(--root-sky); display: flex; align-items: center; justify-content: center; margin-bottom: .9rem; }
.root-ico svg { width: 22px; height: 22px; fill: none; stroke: var(--root-accent); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.root-mod { background: #fff; border: 1px solid var(--root-line); border-top: 4px solid var(--root-accent); border-radius: 10px; padding: 1.25rem; margin-bottom: 1.25rem; height: calc(100% - 1.25rem); }
.root-mod p { color: var(--root-ink-2); margin: 0; }
.root-badge { display: inline-block; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--root-accent); background: var(--root-sky); border-radius: 4px; padding: .15rem .5rem; margin-bottom: .6rem; }
.root-steps .root-step { position: relative; padding: 1rem 1rem 1rem 3.4rem; margin-bottom: 1rem; }
.root-step b { position: absolute; left: .5rem; top: .9rem; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--root-accent); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; }
.root-step p { color: var(--root-ink-2); margin: 0; font-size: .95rem; }
.root-step code { color: var(--root-ink); background: var(--root-sky); padding: 0 .3rem; border-radius: 3px; }
.root-list { list-style: none; padding: 0; margin: 0; }
.root-list li { padding: .6rem 0 .6rem 1.8rem; position: relative; border-bottom: 1px solid var(--root-line); color: var(--root-ink-2); }
.root-list li::before { content: ""; position: absolute; left: .2rem; top: 1rem; width: .7rem; height: .7rem; border-radius: 50%; background: var(--root-good); }
.root-list li b { color: var(--root-ink); }
.root-faq { margin-bottom: 1.5rem; }
.root-faq p { color: var(--root-ink-2); margin: 0; }
.root-request { background: linear-gradient(180deg, #f8fafc, var(--root-sky)); }
.root-footer { padding: 1.5rem 0; font-size: .9rem; color: var(--root-ink-2); border-top: 1px solid var(--root-line); }
.root-footer a { color: var(--root-ink-2); }
@media (max-width: 767px) {
  .root-hero { padding: 3rem 0; }
  .root-hero h1 { font-size: 1.8rem; }
  .root-section { padding: 2.5rem 0; }
}

/* редактор текстов (виден только вошедшему в /edit) */
.root-ed[contenteditable="true"] { outline: 1px dashed rgba(31,111,235,.55); outline-offset: 2px; border-radius: 3px; cursor: text; min-width: 1ch; }
.root-ed[contenteditable="true"]:hover { background: rgba(31,111,235,.08); }
.root-ed[contenteditable="true"]:focus { outline: 2px solid var(--root-accent); background: #fff; color: var(--root-ink); }
.root-hero .root-ed[contenteditable="true"]:focus { color: var(--root-ink); }
.root-ed.is-changed { outline-color: #eda100; background: rgba(237,161,0,.12); }
.root-editor { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; background: #14213d; color: #fff; padding: .6rem 0; box-shadow: 0 -4px 16px rgba(0,0,0,.2); }
.root-editor .container { gap: .75rem; }
.root-editor-status { flex: 1 1 auto; font-size: .9rem; opacity: .9; }
.root-editor-status.is-ok { color: #7ee27e; }
.root-editor-status.is-err { color: #ff9b9b; }
.root-editor-logout { margin: 0; }
body.root-body { padding-bottom: 0; }
