:root {
    --brand-primary: #002b69;
    --brand-primary-hover: #001f4d;
    --brand-secondary: #1f6fe5;
    --brand-secondary-hover: #1858c7;
    --brand-soft: #e8eef6;
    --ok: #087a5a;
    --ok-bg: #ecf8f4;
    --whatsapp: #25d366;
    --page-background: #f6f7f8;
    --surface: #fff;
    --border-color: #d7dce0;
    --radius: 10px;
}
* { box-sizing: border-box; }
html { overflow-x: hidden; }
body.sp-body {
    margin: 0;
    font-family: system-ui, sans-serif;
    background: var(--page-background);
    color: #1b1f23;
    overflow-x: hidden;
}
.sp-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 1rem;
    background: #fff;
    border-bottom: 1px solid var(--border-color);
}
.sp-brand { margin: 0; font-weight: 700; color: var(--brand-primary); }
.sp-shell { display: grid; grid-template-columns: 200px 1fr; min-height: calc(100vh - 56px); }
body.is-public {
    background: #f3f6f5;
    min-height: 100vh;
}
body.is-public .sp-top { padding: 0.9rem 1.5rem; }
body.is-public .sp-brand { text-decoration: none; }
body.is-public .sp-public-nav { margin-left: auto; }
body.is-public .sp-public-nav a {
    color: #171b1f;
    text-decoration: none;
    font-weight: 600;
}
body.is-public .sp-public-nav a:hover { color: var(--brand-primary); }
body.is-public .sp-shell,
.sp-shell:not(:has(.sp-nav)) {
    display: block;
    min-height: calc(100vh - 56px);
}
body.is-public .sp-main {
    width: min(640px, calc(100% - 2rem));
    margin: 2rem auto 3rem;
    padding: 1.8rem 1.6rem;
    background: var(--surface);
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    box-shadow: 0 1px 2px rgba(18, 32, 51, 0.06);
}
body.is-public .sp-main h1 {
    margin: 0 0 1rem;
    font-size: 1.65rem;
    line-height: 1.2;
}
@media (min-width: 721px) {
    body.is-public .sp-main h1 { white-space: nowrap; }
}
body.is-public .sp-form { max-width: none; }
body.is-public .sp-row-phone,
body.is-public .sp-row-doc {
    grid-template-columns: minmax(180px, 200px) minmax(0, 1fr);
    align-items: end;
}
body.is-public .sp-form input,
body.is-public .sp-form select {
    height: 46px;
    min-height: 44px;
    max-height: 48px;
}
body.is-public .sp-form button {
    width: auto;
    justify-self: start;
    height: 46px;
    min-height: 46px;
}
.sp-nav { padding: 1rem 0.85rem; background: #fff; border-right: 1px solid var(--border-color); }
.sp-nav a {
    display: block;
    padding: 0.45rem 0.6rem;
    border-radius: 8px;
    color: #1b1f23;
    text-decoration: none;
}
.sp-nav a[aria-current="page"],
.sp-nav a:hover { background: var(--brand-soft); color: var(--brand-primary); }
.sp-main { padding: 1rem 1.1rem 2rem; }
.sp-form { display: grid; gap: 0.75rem; max-width: 720px; }
.sp-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.sp-form label { display: grid; gap: 0.25rem; font-size: 0.92rem; }
.sp-form input, .sp-form select, .sp-form textarea {
    width: 100%;
    max-width: 100%;
    min-height: 40px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 0.4rem 0.6rem;
}
.sp-form textarea { min-height: 72px; resize: vertical; }
.sp-check { display: flex; align-items: center; gap: 0.4rem; }
.sp-check input { width: auto; min-height: 0; }
.sp-form button, .sp-link-btn {
    border: 0;
    border-radius: 8px;
    background: var(--brand-primary);
    color: #fff;
    min-height: 40px;
    padding: 0 0.9rem;
    cursor: pointer;
}
.sp-link-btn { background: transparent; color: var(--brand-primary); }
.sp-alert { background: #fff4f2; border: 1px solid #f0c2bb; border-radius: 8px; padding: 0.65rem 0.8rem; }
.sp-badge { display: inline-block; background: var(--ok-bg); color: var(--brand-primary); border-radius: 999px; padding: 0.2rem 0.65rem; }
.sp-hint { margin: 0.2rem 0; color: #5b656b; font-size: 0.86rem; }
.sp-banner { border-radius: 8px; padding: 0.65rem 0.8rem; margin: 0 0 0.75rem; }
.sp-banner.is-published { background: var(--ok-bg); border: 1px solid #b7e0d4; }
.sp-banner.is-review { background: #fff8e8; border: 1px solid #ecd7a3; }
.sp-thumbs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; }
.sp-thumbs img {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid var(--border-color);
}
.sp-main, .sp-form, .sp-banner { min-width: 0; }
.sp-banner { overflow-wrap: anywhere; }
@media (max-width: 720px) {
    .sp-shell { grid-template-columns: 1fr; }
    .sp-nav {
        display: flex;
        flex-wrap: wrap;
        gap: 0.25rem;
        border-right: 0;
        border-bottom: 1px solid var(--border-color);
    }
    .sp-row { grid-template-columns: 1fr; }
    body.is-public .sp-row-phone,
    body.is-public .sp-row-doc { grid-template-columns: 1fr; }
    .sp-main { padding: 0.85rem 0.75rem 1.5rem; }
    body.is-public .sp-main {
        width: min(640px, calc(100% - 1.5rem));
        margin: 1.1rem auto 2rem;
        padding: 1.2rem 1rem;
    }
}
@media (max-width: 360px) {
    .sp-top { gap: 0.5rem; padding: 0.65rem 0.7rem; }
    .sp-brand { font-size: 0.95rem; }
    .sp-form button { width: 100%; }
    body.is-public .sp-form button { width: 100%; }
}
