/* ==========================================================================
   SIG Projetos — páginas do site (início, contas, meus projetos)
   ========================================================================== */
:root {
    --sig-primaria: #0d8a72;
    --sig-primaria-escura: #08604f;
    --sig-primaria-clara: #e6f6f2;
    --sig-acento: #14b8a6;
    --sig-texto: #0f172a;
    --sig-suave: #64748b;
    --sig-borda: #e2e8f0;
    --sig-fundo: #f4f7f9;
    --sig-superficie: #ffffff;
    --sig-raio: 14px;
    --sig-sombra: 0 1px 2px rgba(15, 23, 42, .06), 0 8px 24px rgba(15, 23, 42, .06);
    --sig-sombra-forte: 0 12px 40px rgba(15, 23, 42, .16);
    --bs-primary: var(--sig-primaria);
    --bs-primary-rgb: 13, 138, 114;
    --bs-link-color: var(--sig-primaria);
    --bs-link-color-rgb: 13, 138, 114;
    --bs-link-hover-color: var(--sig-primaria-escura);
    --bs-body-font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --bs-body-color: var(--sig-texto);
    --bs-border-radius: 10px;
}

body { font-family: var(--bs-body-font-family); color: var(--sig-texto); -webkit-font-smoothing: antialiased; }
.sig-site { background: var(--sig-fundo); min-height: 100vh; display: flex; flex-direction: column; }
.sig-conteudo { flex: 1; }
a { text-decoration: none; }
h1, h2, h3, .h1, .h2, .h3 { letter-spacing: -.02em; font-weight: 700; }

/* Botões */
.btn { font-weight: 600; border-radius: 10px; }
.btn-primary { --bs-btn-bg: var(--sig-primaria); --bs-btn-border-color: var(--sig-primaria); --bs-btn-hover-bg: var(--sig-primaria-escura);
    --bs-btn-hover-border-color: var(--sig-primaria-escura); --bs-btn-active-bg: var(--sig-primaria-escura); --bs-btn-active-border-color: var(--sig-primaria-escura);
    --bs-btn-disabled-bg: var(--sig-primaria); --bs-btn-disabled-border-color: var(--sig-primaria); box-shadow: 0 6px 16px rgba(13, 138, 114, .25); }
.btn-light { --bs-btn-bg: #fff; --bs-btn-border-color: var(--sig-borda); --bs-btn-hover-bg: #f1f5f9; --bs-btn-hover-border-color: #cbd5e1; }
.btn-link { color: var(--sig-primaria); font-weight: 600; }
.sig-btn-fantasma { border: 1px solid var(--sig-borda); background: rgba(255,255,255,.7); color: var(--sig-texto); }
.sig-btn-fantasma:hover { background: #fff; border-color: #cbd5e1; }
.form-control, .form-select { border-radius: 10px; border-color: #d7dee7; padding: .6rem .8rem; }
.form-control:focus, .form-select:focus { border-color: var(--sig-acento); box-shadow: 0 0 0 .2rem rgba(20, 184, 166, .18); }
.form-label { font-weight: 600; font-size: .9rem; margin-bottom: .35rem; }
.form-check-input:checked { background-color: var(--sig-primaria); border-color: var(--sig-primaria); }
.alert { border-radius: 12px; border: none; }

/* Cabeçalho */
.sig-cabecalho { position: sticky; top: 0; z-index: 1020; background: rgba(255,255,255,.85); backdrop-filter: saturate(160%) blur(12px);
    border-bottom: 1px solid rgba(226, 232, 240, .8); padding: .6rem 0; }
.sig-marca { display: inline-flex; align-items: center; gap: .55rem; color: var(--sig-texto); font-weight: 800; font-size: 1.12rem; letter-spacing: -.02em; }
.sig-marca:hover { color: var(--sig-texto); }
.sig-nav { gap: .25rem; margin-left: 1rem; }
.sig-nav a { color: var(--sig-suave); font-weight: 600; font-size: .92rem; padding: .45rem .75rem; border-radius: 10px; }
.sig-nav a:hover { color: var(--sig-texto); background: #eef2f6; }

/* Avatar e menu do usuário */
.sig-avatar { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%;
    background: linear-gradient(135deg, var(--sig-acento), var(--sig-primaria-escura)); color: #fff; font-weight: 700; font-size: .8rem; flex: none; }
.sig-avatar-grande { width: 64px; height: 64px; font-size: 1.4rem; }
.sig-avatar-mini { width: 22px; height: 22px; font-size: .62rem; }
.sig-avatar-btn { display: inline-flex; align-items: center; gap: .5rem; border: 1px solid var(--sig-borda); background: #fff; padding: 3px 10px 3px 3px; border-radius: 999px; color: var(--sig-texto); font-weight: 600; font-size: .9rem; }
.sig-avatar-btn:hover { border-color: #cbd5e1; }
.sig-dropdown { border: 1px solid var(--sig-borda); border-radius: 12px; box-shadow: var(--sig-sombra-forte); padding: .35rem; min-width: 230px; }
.sig-dropdown .dropdown-item { border-radius: 8px; padding: .5rem .75rem; font-size: .92rem; display: flex; gap: .6rem; align-items: center; }
.sig-dropdown .dropdown-item:active { background: var(--sig-primaria); }

/* Rodapé */
.sig-rodape { border-top: 1px solid var(--sig-borda); background: #fff; padding: 1.2rem 0; font-size: .9rem; margin-top: 2rem; }

/* Pílula / selos */
.sig-pilula { display: inline-flex; align-items: center; gap: .45rem; padding: .35rem .8rem; border-radius: 999px; background: var(--sig-primaria-clara);
    color: var(--sig-primaria-escura); font-weight: 600; font-size: .82rem; }
.sig-selo { position: absolute; left: 12px; top: 12px; display: inline-flex; gap: .35rem; align-items: center; padding: .28rem .6rem; border-radius: 999px;
    background: rgba(255,255,255,.92); color: var(--sig-texto); font-size: .76rem; font-weight: 600; box-shadow: 0 2px 8px rgba(0,0,0,.12); }
.sig-vis-publico { color: #047857; }
.sig-vis-link { color: #1d4ed8; }
.sig-vis-privado { color: #475569; }

/* ---------------------------------------------------------------- início */
.sig-hero { position: relative; overflow: hidden; padding: 5rem 0 4rem; background: radial-gradient(1200px 500px at 85% -10%, rgba(20,184,166,.18), transparent 60%),
    radial-gradient(900px 500px at -10% 110%, rgba(13,138,114,.12), transparent 60%), #f8fbfb; }
.sig-hero-mapa { position: absolute; inset: 0; opacity: .5;
    background-image: linear-gradient(rgba(13,138,114,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(13,138,114,.07) 1px, transparent 1px);
    background-size: 44px 44px; mask-image: radial-gradient(ellipse at 70% 30%, #000 30%, transparent 75%); }
.sig-hero-titulo { font-size: clamp(2.1rem, 4.5vw, 3.4rem); font-weight: 800; line-height: 1.08; margin: 1.1rem 0 1rem; letter-spacing: -.035em; }
.sig-hero-titulo span { background: linear-gradient(90deg, var(--sig-primaria), var(--sig-acento)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.sig-hero-texto { font-size: 1.12rem; color: var(--sig-suave); max-width: 600px; }
.sig-hero-cartao { background: #fff; border-radius: 18px; box-shadow: var(--sig-sombra-forte); border: 1px solid var(--sig-borda); overflow: hidden; transform: perspective(1200px) rotateY(-6deg) rotateX(2deg); }
.sig-hero-janela { display: flex; gap: 6px; padding: 10px 12px; border-bottom: 1px solid var(--sig-borda); background: #f8fafc; }
.sig-hero-janela span { width: 10px; height: 10px; border-radius: 50%; background: #e2e8f0; }
.sig-hero-janela span:nth-child(1) { background: #f87171; } .sig-hero-janela span:nth-child(2) { background: #fbbf24; } .sig-hero-janela span:nth-child(3) { background: #34d399; }
.sig-hero-demo { display: grid; grid-template-columns: 42% 58%; height: 280px; }
.sig-demo-lateral { padding: 12px; border-right: 1px solid var(--sig-borda); font-size: .78rem; }
.sig-demo-titulo { font-weight: 700; color: var(--sig-primaria-escura); margin-bottom: 8px; }
.sig-demo-item { padding: 6px 8px; border-radius: 8px; font-weight: 600; display: flex; gap: 6px; }
.sig-demo-item:first-of-type { background: var(--sig-primaria-clara); }
.sig-demo-sub { padding: 4px 8px 4px 26px; display: flex; gap: 8px; align-items: center; color: var(--sig-suave); }
.sig-demo-chave { width: 22px; height: 12px; border-radius: 999px; background: #cbd5e1; position: relative; flex: none; }
.sig-demo-chave::after { content: ''; position: absolute; top: 2px; left: 2px; width: 8px; height: 8px; border-radius: 50%; background: #fff; }
.sig-demo-chave.on { background: var(--sig-primaria); } .sig-demo-chave.on::after { left: 12px; }
.sig-demo-mapa { position: relative; background: linear-gradient(135deg, #e7f0e8, #dfe9f3); }
.sig-demo-mapa svg { width: 100%; height: 100%; }
.sig-demo-legenda { position: absolute; right: 10px; bottom: 10px; background: rgba(255,255,255,.95); border-radius: 10px; padding: 6px 9px; font-size: .7rem; display: flex; flex-direction: column; gap: 2px; box-shadow: var(--sig-sombra); }
.sig-demo-legenda i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 4px; vertical-align: -1px; }

.sig-recursos { margin-top: -1.5rem; margin-bottom: 3.5rem; position: relative; }
.sig-recurso { background: #fff; border: 1px solid var(--sig-borda); border-radius: var(--sig-raio); padding: 1.4rem; height: 100%; box-shadow: var(--sig-sombra); transition: transform .2s, box-shadow .2s; }
.sig-recurso:hover { transform: translateY(-3px); box-shadow: var(--sig-sombra-forte); }
.sig-recurso h3 { font-size: 1.02rem; margin: .9rem 0 .4rem; }
.sig-recurso p { color: var(--sig-suave); font-size: .9rem; margin: 0; }
.sig-recurso-icone { width: 44px; height: 44px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; font-size: 1.3rem;
    background: var(--sig-primaria-clara); color: var(--sig-primaria); }

.sig-busca { position: relative; min-width: min(380px, 100%); }
.sig-busca i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--sig-suave); }
.sig-busca .form-control { padding-left: 40px; border-radius: 999px; background: #fff; }

/* Cartões de projeto */
.sig-projeto-cartao { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--sig-borda); border-radius: var(--sig-raio);
    overflow: hidden; color: var(--sig-texto); box-shadow: var(--sig-sombra); transition: transform .2s, box-shadow .2s; }
a.sig-projeto-cartao:hover, .sig-projeto-meu:hover { transform: translateY(-3px); box-shadow: var(--sig-sombra-forte); color: var(--sig-texto); }
.sig-projeto-capa { position: relative; display: block; height: 150px; background-color: #dfe7ee; background-size: cover; background-position: center; }
.sig-projeto-capa::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(15,23,42,.18)); }
.sig-projeto-corpo { padding: 1rem 1.1rem 1.1rem; display: flex; flex-direction: column; flex: 1; }
.sig-projeto-corpo h3 { font-size: 1.05rem; margin: 0 0 .35rem; }
.sig-projeto-corpo h3 a { color: inherit; }
.sig-projeto-corpo p { color: var(--sig-suave); font-size: .88rem; margin-bottom: .9rem; flex: 1; }
.sig-projeto-meta { display: flex; align-items: center; gap: .5rem; font-size: .8rem; min-width: 0; }
.sig-projeto-numeros { display: flex; gap: .9rem; font-size: .8rem; color: var(--sig-suave); margin-bottom: .8rem; }
.sig-projeto-acoes { display: flex; gap: .4rem; align-items: center; border-top: 1px solid var(--sig-borda); padding-top: .8rem; }

.sig-vazio { text-align: center; padding: 3rem 1rem; background: #fff; border: 1px dashed #cbd5e1; border-radius: var(--sig-raio); color: var(--sig-suave); }
.sig-vazio > i { font-size: 2.4rem; color: var(--sig-acento); display: block; margin-bottom: .6rem; }
.sig-vazio-grande { padding: 4.5rem 1rem; }

/* Painel */
.sig-painel-topo { background: linear-gradient(180deg, #fff, var(--sig-fundo)); padding: 2.2rem 0 1rem; border-bottom: 1px solid var(--sig-borda); }
.sig-cartao { background: #fff; border: 1px solid var(--sig-borda); border-radius: var(--sig-raio); box-shadow: var(--sig-sombra); }
.modal-content { border: none; border-radius: 18px; box-shadow: var(--sig-sombra-forte); }
.modal-header, .modal-footer { border-color: var(--sig-borda); }
.sig-opcao-radio { display: flex; align-items: flex-start; gap: .7rem; padding: .65rem .8rem; border: 1px solid var(--sig-borda); border-radius: 12px; margin-bottom: .45rem; cursor: pointer; transition: border-color .15s, background .15s; }
.sig-opcao-radio:hover { border-color: #cbd5e1; }
.sig-opcao-radio:has(input:checked) { border-color: var(--sig-primaria); background: var(--sig-primaria-clara); }
.sig-opcao-radio input { margin-top: .3rem; accent-color: var(--sig-primaria); }
.sig-opcao-radio > i { font-size: 1.15rem; color: var(--sig-primaria); margin-top: .05rem; }
.sig-opcao-radio span { display: flex; flex-direction: column; line-height: 1.25; }
.sig-opcao-radio small { color: var(--sig-suave); }

/* Toast */
.sig-toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 20px); background: #0f172a; color: #fff; padding: .6rem 1rem; border-radius: 10px;
    font-size: .9rem; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; z-index: 2000; }
.sig-toast.visivel { opacity: 1; transform: translate(-50%, 0); }

/* Erro */
.sig-erro-codigo { font-size: 5rem; font-weight: 800; background: linear-gradient(90deg, var(--sig-primaria), var(--sig-acento)); -webkit-background-clip: text; background-clip: text; color: transparent; line-height: 1; }

/* ---------------------------------------------------------------- entrar / criar conta */
.sig-auth { display: grid; grid-template-columns: minmax(360px, 520px) 1fr; min-height: 100vh; background: #fff; }
.sig-auth-form { display: flex; flex-direction: column; padding: 2rem clamp(1.5rem, 4vw, 3.5rem); }
.sig-auth-caixa { margin: auto 0; padding: 2rem 0; max-width: 430px; width: 100%; }
.sig-auth-titulo { font-size: 1.9rem; font-weight: 800; letter-spacing: -.03em; }
.sig-auth-arte { position: relative; overflow: hidden; background: linear-gradient(150deg, #0b6b5a 0%, #0d8a72 45%, #14b8a6 100%); color: #fff; display: flex; align-items: flex-end; }
.sig-auth-mosaico { position: absolute; inset: 0; opacity: .22;
    background-image: linear-gradient(rgba(255,255,255,.25) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.25) 1px, transparent 1px),
        radial-gradient(circle at 30% 30%, rgba(255,255,255,.35) 0 2px, transparent 3px);
    background-size: 56px 56px, 56px 56px, 112px 112px; }
.sig-auth-arte::before { content: ''; position: absolute; width: 520px; height: 520px; right: -140px; top: -120px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.25), transparent 65%); }
.sig-auth-texto { position: relative; padding: clamp(2rem, 6vw, 5rem); max-width: 640px; }
.sig-auth-texto h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 800; line-height: 1.12; margin: 1rem 0; }
.sig-auth-texto p { opacity: .9; font-size: 1.05rem; }
.sig-auth-texto ul { list-style: none; padding: 0; margin: 1.2rem 0 0; display: grid; gap: .5rem; }
.sig-auth-texto li { display: flex; gap: .5rem; opacity: .95; }
.sig-auth-texto .sig-pilula { background: rgba(255,255,255,.16); color: #fff; }
.sig-campo-icone { position: relative; }
.sig-campo-icone > i { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); color: var(--sig-suave); }
.sig-campo-icone > i ~ .form-control { padding-left: 38px; }
.sig-ver-senha { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); border: none; background: transparent; color: var(--sig-suave); padding: 4px 8px; }
@media (max-width: 900px) {
    .sig-auth { grid-template-columns: 1fr; }
    .sig-auth-arte { display: none; }
}

/* Novo projeto: onde o mapa começa */
.sig-inicio-mapa { background: #f8fafc; border: 1px solid var(--sig-borda); border-radius: 14px; padding: 14px; height: 100%; }
.sig-inicio-previa { height: 300px; border-radius: 12px; overflow: hidden; border: 1px solid var(--sig-borda); background: #e2e8f0; }
.sig-inicio-previa .leaflet-control-attribution { font-size: 10px; }
.sig-inicio-mira { color: #dc2626; font-size: 22px; line-height: 22px; text-align: center; text-shadow: 0 0 3px #fff, 0 0 3px #fff; pointer-events: none; }
.sig-inicio-mira i { -webkit-text-stroke: 1px #dc2626; }
@media (max-width: 991.98px) { .sig-inicio-previa { height: 220px; } }
.sig-inicio-mapa .form-range { height: 38px; }
.sig-inicio-mapa .form-range::-webkit-slider-runnable-track { background: #dbe3ea; height: 6px; border-radius: 3px; }
.sig-inicio-mapa .form-range::-webkit-slider-thumb { margin-top: -5px; background: var(--sig-primaria); }
.sig-inicio-mapa .form-range::-moz-range-track { background: #dbe3ea; height: 6px; border-radius: 3px; }
.sig-inicio-mapa .form-range::-moz-range-thumb { background: var(--sig-primaria); }
