:root {
    --bg: #f7f3fb;
    --bg-soft: #fcfaff;
    --surface: rgba(255,255,255,0.94);
    --surface-strong: #ffffff;
    --surface-tint: #f2eafb;
    --text: #1d1730;
    --muted: #665d79;
    --primary: #6f2c91;
    --primary-strong: #582274;
    --accent: #e9ddf6;
    --line: rgba(111, 44, 145, 0.14);
    --line-strong: rgba(111, 44, 145, 0.24);
    --success: #178d64;
    --warning: #b7791f;
    --danger: #c44949;
    --shadow: 0 22px 50px rgba(77, 51, 110, 0.12);
    --radius: 22px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: Inter, system-ui, sans-serif;
    color: var(--text);
    background:
        radial-gradient(circle at top right, rgba(111,44,145,0.08), transparent 24%),
        radial-gradient(circle at top left, rgba(111,44,145,0.06), transparent 20%),
        linear-gradient(180deg, #fbf8fe 0%, #f4eef9 100%);
    min-height: 100vh;
}
a { color: inherit; text-decoration: none; }
.container { width: min(1160px, calc(100% - 2rem)); margin: 0 auto; }
.site-header {
    position: sticky; top: 0; z-index: 20;
    border-bottom: 1px solid rgba(111,44,145,0.08);
    background: rgba(251,248,254,0.88);
    backdrop-filter: blur(16px);
}
.header-inner {
    display: flex; align-items: center; justify-content: space-between;
    padding: 1rem 0;
}
.brand { display:flex; align-items:center; gap:.75rem; font-weight:800; font-size:1.2rem; }
.brand-badge {
    display:grid; place-items:center; width:42px; height:42px; border-radius:14px;
    background: linear-gradient(135deg, #8d49b0, #6f2c91);
    color:#fff;
    box-shadow: 0 10px 24px rgba(111,44,145,0.22);
}
.nav { display:flex; gap:.95rem; align-items:center; }
.nav a { color: var(--muted); font-weight:600; }
.nav a:hover { color: var(--primary); }
.nav-ghost {
    border:1px solid var(--line); padding:.7rem 1rem; border-radius:999px; background:#fff;
}
.hero { padding: 3.7rem 0 1.2rem; }
.hero-grid, .form-shell, .form-split, .footer-grid, .feature-grid, .services-grid, .steps, .contact-grid, .admin-grid { display:grid; gap:1.1rem; }
.hero-grid { grid-template-columns: 1.1fr .9fr; align-items: stretch; }
.card {
    background: var(--surface);
    border: 1px solid rgba(111,44,145,0.08);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}
.hero-card, .step, .service, .feature, .contact-card, .form-card, .table-card { padding: 1.45rem; }
.kicker {
    display:inline-flex; gap:.55rem; align-items:center; padding:.5rem .85rem;
    border:1px solid rgba(111,44,145,.14); border-radius:999px;
    color: var(--primary); background: rgba(111,44,145,.08); font-weight:700; font-size:.88rem;
}
.hero h1 { font-size: clamp(2.25rem, 5vw, 4rem); line-height:1.04; margin: .9rem 0 .7rem; letter-spacing: -0.03em; }
.hero p.lead, .section-head p, .muted, .service p, .feature p, .contact-card p, .form-card p, .table-card p { color: var(--muted); line-height: 1.65; }
.cta-row { display:flex; gap:.85rem; flex-wrap:wrap; margin-top:1.2rem; }
.btn {
    display:inline-flex; justify-content:center; align-items:center; gap:.55rem;
    padding: .9rem 1.15rem; border-radius: 15px; font-weight: 800; border: 0;
    cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: linear-gradient(135deg, var(--primary), var(--primary-strong)); color:#fff; box-shadow: 0 14px 28px rgba(111,44,145,0.18); }
.btn-secondary { background: #fff; color: var(--text); border:1px solid var(--line); }
.stats { display:grid; grid-template-columns: repeat(3, 1fr); gap:1rem; margin-top:1.2rem; }
.stat { padding:1rem; border-radius:18px; background: #fff; border:1px solid var(--line); }
.stat strong { display:block; font-size:1.05rem; margin-bottom:.35rem; }
.panel-highlight { padding: 1.5rem; background: linear-gradient(180deg, #fff 0%, #fbf7ff 100%); }
.mini-result, .note-box, .hero-mini, .warning-box, .success-box, .status-box {
    margin-top:1rem; padding:1rem; border-radius:18px; background: #fff; border:1px solid var(--line);
}
.mini-result .score { font-size:2.2rem; font-weight:800; color: var(--primary); }
section.block { padding: 1.2rem 0 2.4rem; }
.section-head { margin-bottom: 1rem; }
.section-head h2 { font-size: clamp(1.55rem, 3vw, 2.35rem); margin:0 0 .35rem; letter-spacing:-0.02em; }
.steps { grid-template-columns: repeat(4, 1fr); }
.step-number {
    width:42px; height:42px; display:grid; place-items:center; border-radius:14px;
    background: linear-gradient(135deg, #8d49b0, #6f2c91); color:#fff; font-weight:800; margin-bottom:.85rem;
}
.services-grid { grid-template-columns: repeat(3, 1fr); }
.service .price { font-weight:800; font-size:1.4rem; margin-top:.9rem; color: var(--primary); }
.service ul { padding-left: 1.1rem; color: var(--muted); }
.feature-grid { grid-template-columns: repeat(2, 1fr); }
.feature { display:flex; gap:1rem; align-items:flex-start; }
.feature .icon {
    min-width:52px; width:52px; height:52px; border-radius:16px; display:grid; place-items:center;
    background: var(--surface-tint); border:1px solid var(--line); font-size:1.35rem;
}
.form-shell, .form-split { grid-template-columns: 1.15fr .85fr; }
.form-card label { display:block; margin-bottom:.42rem; font-weight:700; }
.form-card .help { font-size:.92rem; color: var(--muted); margin-top:.38rem; }
input, textarea, select {
    width:100%; padding:.92rem 1rem; border-radius:15px; border:1px solid rgba(111,44,145,.16);
    background: #fff; color: var(--text); outline: none; font: inherit;
}
input::placeholder, textarea::placeholder { color: #9388a8; }
textarea { min-height: 125px; resize: vertical; }
input:focus, textarea:focus, select:focus {
    border-color: rgba(111,44,145,.5);
    box-shadow: 0 0 0 4px rgba(111,44,145,.08);
}
select { appearance: auto; }
select option { color: #1d1730; background: #ffffff; }
.grid-2, .grid-3, .kv-grid, .results-grid { display:grid; gap:1rem; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.check-row { display:flex; gap:.75rem; flex-wrap:wrap; }
.check {
    display:flex; align-items:center; gap:.55rem; padding:.85rem .95rem; border-radius:15px;
    border:1px solid var(--line); background: #fff;
}
.check input { width:auto; accent-color: var(--primary); }
.flash {
    padding: .95rem 1.1rem; border-radius: 16px; margin-bottom: 1rem; font-weight: 700;
}
.flash-success { background: rgba(23,141,100,.09); border:1px solid rgba(23,141,100,.18); }
.flash-error { background: rgba(196,73,73,.09); border:1px solid rgba(196,73,73,.18); }
.contact-grid { grid-template-columns: repeat(3, 1fr); }
.site-footer {
    margin-top: 3rem; padding: 2rem 0 2.7rem; border-top: 1px solid rgba(111,44,145,0.08); background: rgba(255,255,255,0.55);
}
.footer-grid { grid-template-columns: 1.15fr .85fr 1fr; }
.footer-grid p, .footer-grid li, .footer-grid a { color: var(--muted); }
.footer-grid ul { list-style:none; margin:0; padding:0; display:grid; gap:.45rem; }
.table-card { overflow:auto; }
.table-card table { width:100%; border-collapse: collapse; }
.table-card th, .table-card td {
    text-align:left; padding:.9rem .65rem; border-bottom:1px solid rgba(111,44,145,0.08); vertical-align: top;
}
.table-card th { color: var(--muted); font-size:.92rem; }
.badge, .status-pill {
    display:inline-flex; padding:.34rem .62rem; border-radius:999px; font-size:.82rem; font-weight:800;
    background: rgba(111,44,145,.09); border:1px solid rgba(111,44,145,.14); color: var(--primary);
}
.admin-top { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1rem; }
.page-actions, .admin-nav, .inline-form { display:flex; gap:.75rem; flex-wrap:wrap; align-items:end; }
.admin-nav a{padding:.62rem .9rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted)}
.admin-nav a.active{background:linear-gradient(135deg,var(--primary),var(--primary-strong));color:#fff;border-color:transparent}
.kv-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.kv-item{padding:1rem;border:1px solid var(--line);border-radius:18px;background:#fff}
.kv-item span{display:block;color:var(--muted);font-size:.85rem;margin-bottom:.35rem}
.kv-item strong{font-size:1rem}
.results-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.result-card{padding:1rem;border-radius:18px;background:#fff;border:1px solid var(--line)}
.result-card.good{border-color:rgba(23,141,100,.28);background:rgba(23,141,100,.04)}
.result-card.poor{border-color:rgba(196,73,73,.28);background:rgba(196,73,73,.04)}
.result-card.ok{border-color:rgba(183,121,31,.28);background:rgba(183,121,31,.04)}
.result-card.unknown{border-color:var(--line);background:#fff}
.result-card.high{border-color:rgba(111,44,145,.28);background:rgba(111,44,145,.04)}
.result-card h4{margin:0 0 .45rem;font-size:1rem}
.result-card p{margin:0;color:var(--muted)}
.inline-form>div{flex:1 1 180px}
.table-actions{white-space:nowrap}
.table-actions a{margin-right:.35rem}
.hero-mini{background:var(--surface-tint)}
.warning-box{background:rgba(183,121,31,.06);border-color:rgba(183,121,31,.18)}
.success-box{background:rgba(23,141,100,.06);border-color:rgba(23,141,100,.18)}
.status-box{background:rgba(111,44,145,.05)}
.trust-row { display:grid; grid-template-columns: repeat(3, 1fr); gap:1rem; }
.trust-card { padding:1rem; border-radius:18px; background:#fff; border:1px solid var(--line); }
.form-intro-list { margin: .9rem 0 0; padding-left: 1.1rem; color: var(--muted); }
.action-log { display:grid; gap:.85rem; }
.action-item { padding:1rem; border:1px solid var(--line); border-radius:18px; background:#fff; }
.action-item h4 { margin:0 0 .3rem; }
.action-meta { color: var(--muted); font-size:.9rem; margin-bottom:.55rem; }
.small { font-size:.9rem; color: var(--muted); }
@media (max-width: 980px) {
    .hero-grid, .form-shell, .form-split, .footer-grid, .feature-grid, .services-grid, .steps, .contact-grid, .trust-row { grid-template-columns: 1fr; }
    .stats, .grid-2, .grid-3 { grid-template-columns: 1fr; }
    .nav { display:none; }
    .hero { padding-top: 2.2rem; }
}

.is-hidden { display:none !important; }
.context-box {
    margin: 1rem 0;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: linear-gradient(180deg, #fff, #fcf9ff);
}
.context-box-head {
    display:flex;
    justify-content:space-between;
    gap:1rem;
    align-items:center;
    margin-bottom:.85rem;
    color: var(--muted);
    font-size:.95rem;
}
.context-box-head strong { color: var(--text); font-size:1rem; }
.subnav {
    display:flex;
    gap:.65rem;
    flex-wrap:wrap;
    margin: 1rem 0;
}
.subnav a {
    padding:.6rem .9rem;
    border-radius:999px;
    border:1px solid var(--line);
    background:#fff;
    color:var(--muted);
    font-weight:700;
}
.section-stack { display:grid; gap:1rem; }
.money-grid { display:grid; grid-template-columns: repeat(4, 1fr); gap:1rem; }
.metric-card {
    padding:1rem;
    border-radius:18px;
    background:#fff;
    border:1px solid var(--line);
}
.metric-card span { display:block; color:var(--muted); font-size:.85rem; margin-bottom:.35rem; }
.metric-card strong { font-size:1.15rem; }
.timeline { display:grid; gap:.85rem; }
.timeline-item {
    padding:1rem;
    border-radius:18px;
    border:1px solid var(--line);
    background:#fff;
}
.timeline-item h4, .timeline-item p { margin:.15rem 0; }
.inline-grid { display:grid; gap:1rem; grid-template-columns: repeat(2, 1fr); }
.anchor-card { scroll-margin-top: 100px; }
.table-card.compact th, .table-card.compact td { padding: .75rem .55rem; }
@media (max-width: 980px) {
    .money-grid, .inline-grid { grid-template-columns: 1fr; }
    .context-box-head { flex-direction:column; align-items:flex-start; }
}
