/* ==========================================================
   MAKETBUS
   Style Principal
   ========================================================== */


/* ==========================================================
   RESET
   ========================================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html,
body{
    height:100%;
}


/* ==========================================================
   BODY
   ========================================================== */

body{

    font-family:
        "Segoe UI",
        Arial,
        Helvetica,
        sans-serif;

    background:#f4f6f9;

    color:#333;

}


/* ==========================================================
   LINKS
   ========================================================== */

a{

    color:#1565c0;

    text-decoration:none;

}

a:hover{

    text-decoration:underline;

}


/* ==========================================================
   LOGIN — LINKS DE AUTENTICAÇÃO
   Contraste específico sem alterar links globais.
   ========================================================== */
.login-link{
    color:#fff;
    font-weight:600;
    text-decoration:underline;
}

.login-link:hover,
.login-link:focus{
    color:#e5e7eb;
    text-decoration:underline;
}

/* ==========================================================
   HEADER
   ========================================================== */

.topo{

    height:65px;

    background:#1f2937;

    color:#fff;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:0 30px;

    box-shadow:0 2px 6px rgba(0,0,0,.15);

}

.logo{

    font-size:24px;

    font-weight:bold;

    letter-spacing:1px;

}

.topo a{

    color:#fff;

}


/* ==========================================================
   LAYOUT
   ========================================================== */

.container{

    display:flex;

    min-height:calc(100vh - 65px);

}


/* ==========================================================
   MENU
   ========================================================== */

.menu{

    width:240px;

    background:#273444;

    color:#fff;

    padding:25px 0;

}

.menu ul{

    list-style:none;

}

.menu li{

    margin-bottom:5px;

}

.menu a{

    display:block;

    color:#fff;

    padding:14px 25px;

    transition:.25s;

}

.menu a:hover{

    background:#1b2531;

    text-decoration:none;

}


/* ==========================================================
   CONTEÚDO
   ========================================================== */

main{

    flex:1;

    min-width:0;

    padding:35px;

}


/* ==========================================================
   TÍTULOS
   ========================================================== */

h1{

    margin-bottom:20px;

    font-size:30px;

    font-weight:600;

}

h2{

    margin-bottom:15px;

}

h3{

    margin-bottom:10px;

}

hr{

    border:0;

    border-top:1px solid #e5e7eb;

    margin:30px 0;

}


/* ==========================================================
   CARDS
   ========================================================== */

.card{

    background:#fff;

    border-radius:10px;

    padding:25px;

    margin-bottom:20px;

    box-shadow:0 2px 8px rgba(0,0,0,.08);

}

.card-conteudo{

    margin-top:15px;

}


/* ==========================================================
   FORMULÁRIOS
   ========================================================== */

.form-container{

    background:#fff;

    padding:25px;

    border-radius:10px;

    box-shadow:0 2px 8px rgba(0,0,0,.08);

}

.form-group{

    margin-bottom:20px;

}

.form-group label{

    display:block;

    margin-bottom:7px;

    font-weight:600;

    color:#444;

}

input,
select,
textarea{

    width:100%;

    padding:12px;

    border:1px solid #ccc;

    border-radius:6px;

    margin-bottom:15px;

    font-family:inherit;

    font-size:15px;

    background:#fff;

}

.form-group input,
.form-group select,
.form-group textarea{

    margin-bottom:0;

}

textarea,
.form-group textarea{

    min-height:120px;

    resize:vertical;

}

input:focus,
textarea:focus,
select:focus{

    outline:none;

    border-color:#1565c0;

}

.form-help{

    display:block;

    margin-top:5px;

    margin-bottom:15px;

    color:#777;

    font-size:13px;

}

.form-acoes{

    display:flex;

    align-items:center;

    gap:15px;

    margin-top:25px;

    flex-wrap:wrap;

}


/* ==========================================================
   CHECKBOX
   ========================================================== */

.form-check{

    display:flex;

    align-items:center;

    gap:10px;

    margin-bottom:15px;

}

.form-check input{

    width:18px;

    height:18px;

    margin:0;

    cursor:pointer;

}

.form-check label{

    cursor:pointer;

    color:#444;

}


/* ==========================================================
   UPLOAD
   ========================================================== */

.form-group input[type="file"]{

    background:#fff;

    padding:10px;

    cursor:pointer;

}


/* ==========================================================
   BOTÕES
   ========================================================== */

button,
.btn{

    display:inline-block;

    border:none;

    padding:12px 22px;

    border-radius:6px;

    cursor:pointer;

    transition:.2s;

    font-family:inherit;

    font-size:15px;

    text-decoration:none;

}

.btn:hover{

    text-decoration:none;

}

.btn-primary{

    background:#1565c0;

    color:#fff;

}

.btn-primary:hover{

    background:#0d47a1;

    color:#fff;

}

.btn-success{

    background:#198754;

    color:#fff;

}

.btn-success:hover{

    background:#146c43;

    color:#fff;

}

.btn-danger{

    background:#dc3545;

    color:#fff;

}

.btn-danger:hover{

    background:#bb2d3b;

    color:#fff;

}

.btn-secondary{

    background:#6c757d;

    color:#fff;

}

.btn-secondary:hover{

    background:#565e64;

    color:#fff;

}

.btn:disabled,
button:disabled{

    opacity:.6;

    cursor:not-allowed;

}


/* ==========================================================
   ALERTAS
   ========================================================== */

.alert{

    padding:15px;

    border-radius:6px;

    margin-bottom:20px;

}

.alert-sucesso{

    background:#d4edda;

    color:#155724;

}

.alert-erro{

    background:#f8d7da;

    color:#721c24;

}

.alert-aviso{

    background:#fff3cd;

    color:#856404;

}


/* ==========================================================
   TABELAS
   ========================================================== */

table{

    width:100%;

    border-collapse:collapse;

    background:#fff;

}

th{

    background:#1f2937;

    color:#fff;

    padding:12px;

}

td{

    padding:12px;

    border-bottom:1px solid #eee;

}


/* ==========================================================
   DASHBOARD
   ========================================================== */

.subtitulo{

    margin-bottom:25px;

    color:#666;

    font-size:17px;

}

.dashboard-cards{

    display:grid;

    grid-template-columns:
        repeat(auto-fit,minmax(220px,1fr));

    gap:20px;

    margin-bottom:30px;

}

.dashboard-card{

    text-align:center;

    transition:.2s;

}

.dashboard-card:hover{

    transform:translateY(-4px);

}

.dashboard-card .numero{

    display:block;

    font-size:42px;

    font-weight:bold;

    color:#1565c0;

}

.dashboard-card .titulo{

    display:block;

    margin-top:10px;

    color:#666;

    font-size:15px;

}


/* ==========================================================
   PERFIL
   ========================================================== */

.foto-perfil{

    width:120px;

    height:120px;

    object-fit:cover;

    border-radius:50%;

    margin-bottom:15px;

}

.avatar{

    width:120px;

    height:120px;

    border-radius:50%;

    object-fit:cover;

    border:4px solid #fff;

    box-shadow:0 2px 8px rgba(0,0,0,.15);

    margin-bottom:15px;

}

.perfil-header{

    text-align:center;

}

.perfil-dados{

    margin-top:20px;

}

.perfil-dados p{

    margin:10px 0;

}

.perfil-acoes{

    margin-top:20px;

    display:flex;

    gap:10px;

    flex-wrap:wrap;

}


/* ==========================================================
   FICHA DA MINIATURA
   ========================================================== */

.ficha-miniatura{

    width:100%;

}

.foto-principal-botao{

    display:block;

    width:100%;

    max-width:500px;

    padding:0;

    margin:0 0 20px 0;

    background:none;

    border:0;

    cursor:zoom-in;

}

.foto-miniatura{

    display:block;

    width:100%;

    max-width:500px;

    max-height:420px;

    object-fit:cover;

    border-radius:10px;

}

.ficha-miniatura h2{

    margin-top:10px;

}

.ficha-miniatura h3{

    margin-top:20px;

}

.ficha-miniatura p{

    margin-bottom:8px;

    line-height:1.6;

}


/* ==========================================================
   COLEÇÃO / ACERVO
   ========================================================== */

.colecao-grid{

    display:grid;

    grid-template-columns:
        repeat(auto-fill,minmax(220px,1fr));

    gap:20px;

}

.miniatura-card{

    display:flex;

    flex-direction:column;

    background:#fff;

    padding:20px;

    border-radius:10px;

    box-shadow:0 2px 8px rgba(0,0,0,.1);

    min-height:250px;

}

.miniatura-card h3{

    margin-top:15px;

}

.miniatura-card p{

    margin-top:8px;

    line-height:1.4;

}

.miniatura-card .btn{

    margin-top:auto;

}

.miniatura-thumb{

    display:block;

    width:100%;

    height:160px;

    object-fit:cover;

    border-radius:8px;

}

.miniatura-sem-foto{

    display:flex;

    align-items:center;

    justify-content:center;

    width:100%;

    height:160px;

    background:#eef1f5;

    color:#777;

    border:1px dashed #c5cbd3;

    border-radius:8px;

    text-align:center;

}

.espaco-numero{

    margin-bottom:15px;

    padding-bottom:10px;

    border-bottom:1px solid #eee;

    color:#666;

    font-size:14px;

    font-weight:600;

}

.espaco-vazio{

    display:flex;

    flex:1;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    min-height:190px;

    text-align:center;

    color:#777;

}

.espaco-vazio p{

    margin-bottom:20px;

}


/* ==========================================================
   GALERIA DA MINIATURA
   ========================================================== */

.galeria-miniatura{

    display:grid;

    grid-template-columns:
        repeat(auto-fill,minmax(220px,280px));

    gap:20px;

    margin-top:20px;

    margin-bottom:30px;

}

.foto-card{

    background:#fff;

    padding:15px;

    border-radius:10px;

    box-shadow:0 2px 8px rgba(0,0,0,.08);

}

.galeria-foto-botao{

    display:block;

    width:100%;

    padding:0;

    margin:0;

    border:0;

    background:none;

    cursor:zoom-in;

}

.galeria-foto-botao:hover{

    background:none;

}

.foto-card .miniatura-thumb{

    width:100%;

    height:160px;

    object-fit:cover;

    margin-bottom:10px;

}

.foto-principal-label{

    margin-bottom:15px;

}

.foto-card form{

    margin-top:12px;

}

.foto-card form + form{

    margin-top:10px;

}

.foto-card .btn{

    width:100%;

    text-align:center;

}


/* ==========================================================
   VISUALIZADOR DE FOTOGRAFIA
   ========================================================== */

.visualizador-foto{

    width:auto;

    max-width:80vw;

    max-height:80vh;

    padding:20px;

    border:0;

    border-radius:10px;

    overflow:hidden;

    background:#fff;

    box-shadow:0 8px 30px rgba(0,0,0,.35);

}

.visualizador-foto::backdrop{

    background:rgba(0,0,0,.75);

}

.visualizador-foto img{

    display:block;

    width:auto;

    height:auto;

    max-width:calc(80vw - 40px);

    max-height:calc(80vh - 80px);

    object-fit:contain;

    margin:auto;

}

.visualizador-fechar{

    position:absolute;

    top:8px;

    right:8px;

    width:38px;

    height:38px;

    padding:0;

    border-radius:50%;

    background:rgba(0,0,0,.65);

    color:#fff;

    font-size:24px;

    line-height:38px;

    z-index:2;

}

.visualizador-fechar:hover{

    background:#000;

}

.visualizador-legenda{

    margin-top:12px;

    text-align:center;

    color:#444;

}


/* ==========================================================
   FOOTER
   ========================================================== */

footer{

    background:#1f2937;

    color:#fff;

    text-align:center;

    padding:20px;

}


/* ==========================================================
   RESPONSIVO
   ========================================================== */

@media(max-width:900px){

    .container{

        flex-direction:column;

    }

    .menu{

        width:100%;

        padding:10px 0;

    }

    .menu ul{

        display:flex;

        flex-wrap:wrap;

    }

    .menu li{

        margin:0;

    }

    .menu a{

        padding:12px 18px;

    }

    main{

        padding:20px;

    }

}


@media(max-width:600px){

    .topo{

        height:auto;

        min-height:65px;

        padding:15px 20px;

        gap:15px;

        flex-wrap:wrap;

    }

    .logo{

        font-size:21px;

    }

    h1{

        font-size:26px;

    }

    .dashboard-cards{

        grid-template-columns:1fr;

    }

    .colecao-grid{

        grid-template-columns:1fr;

    }

    .galeria-miniatura{

        grid-template-columns:1fr;

    }

    .form-acoes{

        flex-direction:column;

        align-items:stretch;

    }

    .form-acoes .btn{

        width:100%;

        text-align:center;

    }


    .visualizador-foto{

        max-width:92vw;

        max-height:82vh;

        padding:15px;

    }

    .visualizador-foto img{

        max-width:calc(92vw - 30px);

        max-height:calc(82vh - 70px);

    }

}


/* ==========================================================
   ÁLBUM PÚBLICO DA MINIATURA
   ========================================================== */

.miniatura-publica-voltar{
    margin:0 0 12px;
}

.miniatura-publica-voltar .btn{
    min-height:34px;
    padding:7px 11px;
    font-size:13px;
}

.miniatura-publica-card{
    overflow:hidden;
    padding:0;
    border:1px solid #dce2e8;
    border-radius:12px;
    box-shadow:0 4px 14px rgba(15, 23, 42, .07);
}

.miniatura-publica-card > .card-conteudo{
    padding:0;
}

.miniatura-publica-card .ficha-miniatura{
    display:grid;
    grid-template-columns:minmax(0, 1.2fr) minmax(320px, .8fr);
    align-items:start;
    gap:0;
}

.miniatura-publica-card .foto-principal-botao{
    width:100%;
    max-width:none;
    height:100%;
    min-height:430px;
    margin:0;
    overflow:hidden;
    background:#e9eef3;
}

.miniatura-publica-card .foto-miniatura{
    width:100%;
    max-width:none;
    height:100%;
    max-height:none;
    min-height:430px;
    border-radius:0;
    object-fit:cover;
    transition:transform .25s ease;
}

.miniatura-publica-card .foto-principal-botao:hover .foto-miniatura{
    transform:scale(1.025);
}

.miniatura-publica-card .miniatura-sem-foto{
    height:100%;
    min-height:430px;
    border:0;
    border-radius:0;
}

.ficha-miniatura-informacoes{
    padding:24px;
}

.ficha-miniatura-informacoes h1{
    margin:0 0 5px;
    color:#202c3b;
    font-size:30px;
    line-height:1.15;
}

.ficha-miniatura-colecionador{
    margin:0 0 18px !important;
    color:#6c7682;
    font-size:14px;
}

.ficha-miniatura-colecionador a{
    font-weight:700;
    text-decoration:none;
}

.ficha-miniatura-atributos{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px;
}

.ficha-miniatura-atributos p{
    margin:0 !important;
    padding:8px 10px;
    border-radius:7px;
    background:#eef3f8;
    color:#46576a;
    font-size:13px;
    line-height:1.35;
}

.ficha-miniatura-atributos p:last-child{
    grid-column:1 / -1;
}

.ficha-miniatura-subtitulo{
    margin:18px 0 8px;
    color:#344255;
    font-size:15px;
}

.ficha-miniatura-medidas{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:7px;
}

.ficha-miniatura-medidas p{
    margin:0 !important;
    padding:7px;
    border:1px solid #e1e7ed;
    border-radius:7px;
    color:#596878;
    font-size:12px;
    text-align:center;
}

.ficha-miniatura-resenha{
    margin-top:16px;
    padding-top:1px;
    border-top:1px solid #e5eaf0;
}

.ficha-miniatura-resenha p{
    margin:0 !important;
    color:#4d5967;
    font-size:14px;
    line-height:1.55;
}

.miniatura-publica-card .denuncia-bloco{
    margin:0;
    border-top:1px solid #e5eaf0;
    border-right:0;
    border-bottom:0;
    border-left:0;
    border-radius:0;
}

@media(max-width:950px){
    .miniatura-publica-card .ficha-miniatura{
        grid-template-columns:1fr;
    }

    .miniatura-publica-card .foto-principal-botao,
    .miniatura-publica-card .foto-miniatura,
    .miniatura-publica-card .miniatura-sem-foto{
        min-height:0;
        aspect-ratio:16 / 10;
    }
}

@media(max-width:600px){
    .ficha-miniatura-informacoes{
        padding:18px;
    }

    .ficha-miniatura-informacoes h1{
        font-size:25px;
    }

    .ficha-miniatura-atributos{
        grid-template-columns:1fr;
    }

    .ficha-miniatura-atributos p:last-child{
        grid-column:auto;
    }
}


/* ==========================================================
   GALERIA DO ÁLBUM PÚBLICO
   ========================================================== */

.album-galeria{
    margin:22px 0;
}

.album-galeria-cabecalho{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
}

.album-galeria-cabecalho h2{
    margin:0;
    font-size:22px;
}

.album-galeria-total{
    padding:6px 10px;
    border-radius:999px;
    background:#e8eef6;
    color:#1558a5;
    font-size:12px;
    font-weight:700;
}

.album-galeria .galeria-miniatura{
    display:grid;
    grid-template-columns:repeat(
        auto-fill,
        minmax(230px, 1fr)
    );
    gap:12px;
    margin:0;
}

.album-galeria .foto-card{
    position:relative;
    overflow:hidden;
    padding:0;
    border:1px solid #dce2e8;
    border-radius:10px;
    box-shadow:0 3px 10px rgba(15, 23, 42, .06);
}

.album-galeria .galeria-foto-botao{
    overflow:hidden;
}

.album-galeria .foto-card .miniatura-thumb{
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:16 / 10;
    margin:0;
    border-radius:0;
    object-fit:cover;
    transition:transform .25s ease;
}

.album-galeria .galeria-foto-botao:hover .miniatura-thumb{
    transform:scale(1.04);
}

.album-galeria .foto-principal-label{
    position:absolute;
    top:9px;
    left:9px;
    margin:0;
    padding:5px 8px;
    border-radius:999px;
    background:rgba(21, 101, 192, .92);
    color:#fff;
    font-size:11px;
    line-height:1;
}

.album-galeria .foto-card > p:not(.foto-principal-label){
    min-height:38px;
    margin:0;
    padding:9px 11px;
    color:#566273;
    font-size:12px;
    line-height:1.4;
}

.album-galeria-vazia{
    padding:24px;
    border:1px dashed #cbd4de;
    border-radius:10px;
    background:#f8fafc;
    color:#6b7683;
    text-align:center;
}

@media(max-width:600px){
    .album-galeria .galeria-miniatura{
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:8px;
    }

    .album-galeria .foto-card > p:not(.foto-principal-label){
        min-height:0;
        padding:7px 8px;
        font-size:11px;
    }
}

/* ==========================================================
   IMP-07 — FUNDAÇÃO VISUAL UX-MAKETBUS 03
   ========================================================== */
:root{
    --brand-50:#EFF6FF;--brand-100:#DBEAFE;--brand-200:#BFDBFE;--brand-300:#93C5FD;--brand-400:#60A5FA;
    --brand-500:#2563EB;--brand-600:#1D4ED8;--brand-700:#1E40AF;--brand-800:#1E3A8A;--brand-900:#172554;
    --bg:#F8FAFC;--surface:#FFFFFF;--surface-2:#F1F5F9;--border:#E2E8F0;--border-strong:#CBD5E1;
    --text-muted:#64748B;--text-secondary:#475569;--text:#0F172A;
    --success:#15803D;--success-bg:#F0FDF4;--warning:#B45309;--warning-bg:#FFFBEB;--danger:#B91C1C;--danger-bg:#FEF2F2;
    --r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--e1:0 1px 2px rgba(15,23,42,.08);--e2:0 4px 12px rgba(15,23,42,.10);--e3:0 12px 28px rgba(15,23,42,.16);
}
html{color-scheme:light;scroll-behavior:smooth}
body{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:20px}
a{color:var(--brand-600)}
.topo{height:56px;min-height:56px;background:var(--surface);color:var(--text);padding:0 32px;border-bottom:1px solid var(--border);box-shadow:var(--e1)}
.logo{color:var(--brand-800);font-size:20px;font-weight:700;letter-spacing:.02em}.topo a{color:var(--brand-700)}
.container{min-height:calc(100vh - 56px)}.menu{width:240px;background:var(--surface);color:var(--text);border-right:1px solid var(--border);padding:16px 8px}
.menu a{color:var(--text-secondary);min-height:44px;padding:12px 16px;border-radius:var(--r-md);font-weight:500;transition:background 180ms ease-out,color 180ms ease-out}
.menu a:hover{background:var(--brand-50);color:var(--brand-700)}
main{padding:32px;max-width:1200px;width:100%;margin:0 auto}h1{font-size:28px;line-height:36px;font-weight:700;margin-bottom:16px}h2{font-size:24px;line-height:32px;font-weight:700}h3{font-size:20px;line-height:28px;font-weight:600}
.card,.form-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--e1)}.form-container{padding:24px;max-width:720px}
.form-group{margin-bottom:20px}.form-group label{margin-bottom:8px;color:var(--text);font-size:14px;line-height:20px;font-weight:500}
input,select,textarea{min-height:48px;padding:12px;border:1px solid var(--border-strong);border-radius:var(--r-md);margin-bottom:16px;color:var(--text);font:400 16px/24px inherit;background:var(--surface)}
input::placeholder,textarea::placeholder{color:var(--text-muted)}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand-500);outline-offset:1px;border-color:var(--brand-500)}
.form-help{margin-top:4px;margin-bottom:16px;color:var(--text-muted);font-size:12px;line-height:16px}.form-acoes{gap:12px;margin-top:24px}
button,.btn{min-height:48px;padding:12px 20px;border-radius:var(--r-md);font-size:14px;line-height:20px;font-weight:600;transition:background 180ms ease-out,border-color 180ms ease-out,color 180ms ease-out,box-shadow 180ms ease-out}
button:focus-visible,.btn:focus-visible,a:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}.btn-primary{background:var(--brand-600);color:#fff}.btn-primary:hover{background:var(--brand-700)}.btn-primary:active{background:var(--brand-800)}
.btn-secondary{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border-strong)}.btn-secondary:hover{background:var(--surface-2);color:var(--text)}
.btn-danger{background:var(--danger);color:#fff}.btn:disabled,button:disabled{background:var(--border);color:var(--text-muted);opacity:1;cursor:not-allowed}
.alert{border-radius:var(--r-md);border:1px solid currentColor}.alert-sucesso{background:var(--success-bg);color:#166534}.alert-erro{background:var(--danger-bg);color:#991B1B}
.pagina-cabecalho{max-width:720px;margin:0 0 24px}.pagina-cabecalho h1{margin:0 0 4px}.pagina-cabecalho>p:last-child{color:var(--text-secondary);font-size:16px;line-height:24px}.pagina-kicker,.cadastro-kicker{margin:0 0 4px;color:var(--brand-700);font-size:12px;line-height:16px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}

/* Cadastro photo-first */
.cadastro-miniatura{width:min(100%,720px);max-width:720px}.cadastro-etapas{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:24px}.cadastro-etapa{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px;color:var(--text-muted);border-bottom:2px solid var(--border);font-weight:500}.cadastro-etapa strong{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:999px;background:var(--surface-2);color:var(--text-secondary)}.cadastro-etapa.is-active{color:var(--brand-700);border-color:var(--brand-500)}.cadastro-etapa.is-active strong,.cadastro-etapa.is-complete strong{background:var(--brand-600);color:#fff}.cadastro-etapa.is-complete{color:var(--text-secondary);border-color:var(--brand-200)}
.cadastro-passo{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:24px;box-shadow:var(--e1)}.cadastro-passo[hidden]{display:none}.cadastro-passo-cabecalho{margin-bottom:24px}.cadastro-passo-cabecalho h2{margin:0 0 8px}.cadastro-passo-cabecalho>p:last-child{color:var(--text-secondary)}
.cadastro-upload-area{min-height:160px;padding:20px;border:1px dashed var(--brand-300);border-radius:var(--r-lg);background:var(--brand-50)}.cadastro-upload-area .form-group:last-of-type{margin-bottom:0}.cadastro-capacidade{margin:8px 0 0;color:var(--text-secondary)}
.cadastro-preview{display:grid;grid-template-columns:1fr;gap:12px;margin-top:16px}.cadastro-foto{width:100%;max-width:100%;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface)}.cadastro-foto img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.cadastro-foto-acoes{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px}.cadastro-foto-acoes>span{font-weight:600}.cadastro-foto-acoes>div{display:flex;gap:4px}.btn-foto{min-height:44px;padding:8px 12px;border:0;background:transparent;color:var(--brand-700);font-weight:600}.btn-foto-remover{color:var(--danger)}.cadastro-foto.is-principal{border-color:var(--brand-300);box-shadow:0 0 0 1px var(--brand-100)}
.cadastro-acoes{display:flex;justify-content:space-between;gap:12px;margin-top:24px}.cadastro-acoes-direita{justify-content:flex-end}.cadastro-cabecalho-com-foto{display:grid;grid-template-columns:56px 1fr;gap:12px;align-items:start}.cadastro-referencia-foto{width:56px;height:56px;border-radius:var(--r-md);overflow:hidden;background:var(--surface-2)}.cadastro-referencia-foto img{width:100%;height:100%;object-fit:cover}
.revisao-secao+ .revisao-secao{margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.revisao-secao h3{margin-bottom:12px}.revisao-fotos{display:grid;grid-template-columns:repeat(4,56px);gap:8px}.revisao-fotos img{width:56px;height:56px;object-fit:cover;border-radius:var(--r-md);border:1px solid var(--border)}.revisao-fotos .revisao-foto-principal{grid-column:1/-1;width:100%;height:auto;aspect-ratio:4/3;border-radius:var(--r-lg)}.revisao-dados{display:grid;grid-template-columns:minmax(100px,auto) 1fr;gap:8px 16px}.revisao-dados dt{color:var(--text-muted);font-weight:500}.revisao-dados dd{margin:0;color:var(--text);font-weight:500}.cadastro-confirmar{min-width:220px}
.cadastro-processando{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;padding:24px;background:rgba(248,250,252,.94);color:var(--text);text-align:center}.cadastro-processando[hidden]{display:none}.cadastro-spinner{width:32px;height:32px;border:3px solid var(--brand-100);border-top-color:var(--brand-600);border-radius:999px;animation:maketbus-spin .8s linear infinite}@keyframes maketbus-spin{to{transform:rotate(360deg)}}
footer{color:var(--text-muted);background:var(--bg);border-top:1px solid var(--border)}
@media(max-width:767px){main{padding:16px 16px 88px}.topo{padding:0 16px}.form-container,.cadastro-passo{padding:16px}.cadastro-etapas{gap:4px}.cadastro-etapa{display:block;text-align:center;font-size:12px;line-height:16px}.cadastro-etapa strong{display:grid;margin:0 auto 4px}.cadastro-preview{grid-template-columns:1fr}.cadastro-foto:not(.is-principal){display:grid;grid-template-columns:72px 1fr}.cadastro-foto:not(.is-principal) img{width:72px;height:72px;aspect-ratio:1}.cadastro-foto-acoes{padding:8px}.cadastro-foto-acoes>div{flex-wrap:wrap;justify-content:flex-end}.btn-foto{padding:6px 8px}.cadastro-acoes{flex-direction:column-reverse}.cadastro-acoes .btn{width:100%}.cadastro-confirmar{width:100%}.revisao-fotos{grid-template-columns:repeat(4,56px)}.pagina-cabecalho{margin-bottom:20px}}
@media(min-width:768px) and (max-width:1023px){main{padding:24px}}
@media(min-width:1024px){.cadastro-preview{grid-template-columns:1fr;align-items:start}.cadastro-foto.is-principal{width:480px;max-width:100%}.cadastro-foto.is-principal img{width:100%;height:auto;aspect-ratio:4/3}.cadastro-foto:not(.is-principal){display:grid;grid-template-columns:96px minmax(0,1fr);width:480px;max-width:100%}.cadastro-foto:not(.is-principal) img{width:96px;height:96px;aspect-ratio:1/1}.cadastro-foto:not(.is-principal) .cadastro-foto-acoes{min-width:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}


/* ==========================================================
   UX03-T03 — MINIATURA / FOTOS DA MINIATURA — GESTÃO
   Foto + dados principais no topo; detalhes em largura completa.
   ========================================================== */
.miniatura-gestao{max-width:960px;margin:0 auto}
.miniatura-gestao > h2{font-size:24px;line-height:32px;margin:32px 0 8px}
.miniatura-gestao > hr{border:0;border-top:1px solid var(--border);margin:32px 0}
.miniatura-gestao .card{border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--e1);background:var(--surface)}

.miniatura-gestao .ficha-miniatura{display:block;width:100%}
.miniatura-gestao .ficha-miniatura-topo{display:grid;grid-template-columns:minmax(280px,420px) minmax(0,1fr);gap:24px;align-items:start}
.miniatura-gestao .ficha-miniatura-foto{min-width:0}
.miniatura-gestao .foto-principal-botao{width:100%;max-width:none;margin:0;aspect-ratio:4/3;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--border);background:var(--surface-2)}
.miniatura-gestao .foto-miniatura{display:block;width:100%;height:100%;max-width:none;max-height:none;aspect-ratio:4/3;object-fit:cover;border-radius:0}

.miniatura-gestao .ficha-miniatura-informacoes{min-width:0;padding:0}
.miniatura-gestao .ficha-miniatura-informacoes h2{margin:0 0 16px;color:var(--text);font-size:22px;line-height:1.3}
.miniatura-gestao .ficha-miniatura-atributos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.miniatura-gestao .ficha-miniatura-atributos p{margin:0!important;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);color:var(--text-secondary);font-size:14px;line-height:1.45}
.miniatura-gestao .ficha-miniatura-atributos p:last-child{grid-column:1/-1}
.miniatura-gestao .ficha-miniatura-atributos strong{color:var(--text)}

.miniatura-gestao .ficha-miniatura-detalhes{width:100%;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}
.miniatura-gestao .ficha-miniatura-medidas-bloco h3,
.miniatura-gestao .ficha-miniatura-resenha h3{margin:0 0 10px;color:var(--text)}
.miniatura-gestao .ficha-miniatura-medidas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.miniatura-gestao .ficha-miniatura-medidas p{margin:0!important;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);color:var(--text-secondary);font-size:14px;line-height:1.45;text-align:left}
.miniatura-gestao .ficha-miniatura-medidas strong{display:block;margin-bottom:2px;color:var(--text)}
.miniatura-gestao .ficha-miniatura-resenha{margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}
.miniatura-gestao .ficha-miniatura-resenha p{margin:0!important;color:var(--text-secondary);font-size:14px;line-height:1.6}

.miniatura-gestao .form-acoes{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0 32px}
.miniatura-gestao .limite-fotos-resumo{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 16px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);margin:12px 0 20px}
.miniatura-gestao .limite-fotos-resumo p{margin:0}
.miniatura-gestao .galeria-miniatura{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0 32px}
.miniatura-gestao .foto-card{padding:12px;border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--e1);background:var(--surface)}
.miniatura-gestao .galeria-foto-botao{aspect-ratio:4/3;border-radius:var(--r-md);overflow:hidden}
.miniatura-gestao .foto-card .miniatura-thumb{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;margin:0;border-radius:0}
.miniatura-gestao .foto-principal-label{display:inline-flex;align-items:center;min-height:36px;margin:12px 0 0;padding:0 12px;border-radius:999px;background:var(--brand-50);color:var(--brand-700);font-size:14px;line-height:20px}
.miniatura-gestao .foto-card form{margin-top:12px}
.miniatura-gestao .foto-card .btn{min-height:44px}
.miniatura-gestao .limite-fotos-bloqueado{padding:16px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2)}

@media (max-width:767px){
    .miniatura-gestao{max-width:none}
    .miniatura-gestao .ficha-miniatura-topo{grid-template-columns:1fr;gap:16px}
    .miniatura-gestao .ficha-miniatura-foto{margin-bottom:0}
    .miniatura-gestao .ficha-miniatura-atributos{grid-template-columns:1fr}
    .miniatura-gestao .ficha-miniatura-atributos p:last-child{grid-column:auto}
    .miniatura-gestao .ficha-miniatura-medidas{grid-template-columns:1fr}
    .miniatura-gestao .galeria-miniatura{grid-template-columns:1fr;gap:12px}
    .miniatura-gestao .form-acoes{display:grid;grid-template-columns:1fr}
    .miniatura-gestao .form-acoes .btn{width:100%}
}

/* ==========================================================
   UX03-T03 — MINIATURA PÚBLICA — FICHA CONSOLIDADA
   Estrutura: galeria + informações no topo; detalhes abaixo.
   ========================================================== */
.miniatura-publica{width:100%;max-width:1200px;margin:0 auto}
.miniatura-publica-titulo{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 0 12px}
.miniatura-publica-titulo h1{margin:0}
.miniatura-publica-titulo .pagina-kicker{margin-bottom:2px}

.miniatura-colecionador-topo{
    display:grid;grid-template-columns:auto auto;column-gap:10px;align-items:center;
    min-width:260px;padding:8px 12px;border:1px solid var(--border);
    border-radius:var(--r-md);background:var(--surface);color:var(--text-secondary);
    text-decoration:none;box-shadow:var(--e1)
}
.miniatura-colecionador-topo:hover{border-color:var(--brand-300);background:var(--brand-50)}
.miniatura-colecionador-topo strong{color:var(--text);font-size:14px}
.miniatura-colecionador-topo>span:last-child{grid-column:2;font-size:12px;color:var(--brand-700)}
.miniatura-colecionador-rotulo{
    grid-row:1/3;align-self:center;padding-right:10px;border-right:1px solid var(--border);
    font-size:12px;color:var(--text-muted)
}
.miniatura-colecionador-topo-estatico{display:flex;min-width:0}

.miniatura-acoes-rapidas{
    position:static;display:flex;align-items:center;gap:8px;flex-wrap:wrap;
    margin:0 0 12px;padding:8px 10px;border:1px solid var(--border);
    border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--e1);
    backdrop-filter:blur(8px)
}
.miniatura-acoes-rapidas strong{margin-right:4px;color:var(--text-secondary)}
.miniatura-acoes-rapidas .btn{min-height:40px;padding:8px 14px;margin:0}

.miniatura-publica>.form-acoes{display:none}
.miniatura-publica>.card{margin:0 0 16px}
.miniatura-publica>.card>h2{padding:20px 20px 0;margin:0}
.miniatura-publica>.card>.card-conteudo{padding:16px 20px 20px}
.miniatura-publica>.card:first-of-type>h2{display:none}
.miniatura-publica>.card:first-of-type>.card-conteudo{padding:14px 16px}

/* Ficha principal */
.miniatura-publica .ficha-miniatura{display:block}

.miniatura-publica .ficha-miniatura-topo{
    display:grid;
    grid-template-columns:minmax(420px,1.45fr) minmax(260px,.8fr);
    gap:24px;
    align-items:start
}
.miniatura-publica .ficha-miniatura-foto,
.miniatura-publica .ficha-miniatura-informacoes{min-width:0}

.miniatura-publica .ficha-miniatura-informacoes h2{
    margin:0 0 14px;font-size:22px;line-height:28px
}
.miniatura-publica .ficha-miniatura-atributos{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px
}
.miniatura-publica .ficha-miniatura-atributos p{
    margin:0;padding:9px 10px;border:1px solid var(--border);
    border-radius:var(--r-md);background:var(--surface-2);line-height:18px
}
.miniatura-publica .ficha-miniatura-atributos p:last-child:nth-child(odd){grid-column:1/-1}
.miniatura-publica .ficha-miniatura-atributos strong{
    font-size:12px;color:var(--text-secondary)
}

/* Galeria integrada */
.miniatura-publica .miniatura-galeria-stage{min-width:0}
.miniatura-publica .miniatura-galeria-principal{
    position:relative;width:100%;min-height:0;padding:0 56px;overflow:hidden;
    border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface-2)
}
.miniatura-publica .miniatura-galeria-ampliar{
    display:block;width:100%;min-height:0;padding:0;border:0;border-radius:0;
    background:transparent;cursor:zoom-in
}
.miniatura-publica .miniatura-galeria-ampliar .foto-miniatura{
    display:block;width:100%;aspect-ratio:4/3;object-fit:cover;margin:0 auto
}
.miniatura-publica .miniatura-galeria-seta{
    position:absolute;top:50%;transform:translateY(-50%);z-index:2;
    width:44px;height:52px;min-height:44px;padding:0;border:0;border-radius:var(--r-md);
    background:rgba(15,23,42,.58);color:#fff;font-size:34px;line-height:44px;
    box-shadow:var(--e1);opacity:.82
}
.miniatura-publica .miniatura-galeria-seta:hover,
.miniatura-publica .miniatura-galeria-seta:focus-visible{background:rgba(15,23,42,.82);opacity:1}
.miniatura-publica .miniatura-galeria-anterior{left:6px}
.miniatura-publica .miniatura-galeria-proxima{right:6px}
.miniatura-publica .miniatura-galeria-thumbs{
    display:flex;gap:8px;overflow-x:auto;padding:8px 1px 2px;
    scroll-snap-type:x proximity;scrollbar-width:thin
}
.miniatura-publica .miniatura-galeria-thumb{
    flex:0 0 92px;width:92px;height:68px;min-height:44px;padding:2px;
    border:2px solid transparent;border-radius:var(--r-md);overflow:hidden;
    background:var(--surface);scroll-snap-align:start;opacity:.76
}
.miniatura-publica .miniatura-galeria-thumb img{
    display:block;width:100%;height:100%;object-fit:cover;
    border-radius:calc(var(--r-md) - 3px)
}
.miniatura-publica .miniatura-galeria-thumb:hover{opacity:1;border-color:var(--brand-200)}
.miniatura-publica .miniatura-galeria-thumb.is-active{
    opacity:1;border-color:var(--brand-500);box-shadow:0 0 0 1px var(--brand-100)
}

/* Detalhes abaixo do topo: ocupam toda a largura */
.miniatura-publica .ficha-miniatura-detalhes{
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:24px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)
}
.miniatura-publica .ficha-miniatura-medidas-bloco,
.miniatura-publica .ficha-miniatura-resenha{min-width:0}
.miniatura-publica .ficha-miniatura-detalhes h3{
    margin:0 0 10px;font-size:18px;line-height:24px
}
.miniatura-publica .ficha-miniatura-medidas{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px
}
.miniatura-publica .ficha-miniatura-medidas p{
    margin:0;padding:10px;border:1px solid var(--border);
    border-radius:var(--r-md);background:var(--surface-2)
}
.miniatura-publica .ficha-miniatura-medidas strong{
    display:block;margin-bottom:2px;font-size:12px;color:var(--text-secondary)
}
.miniatura-publica .ficha-miniatura-publicacao{
    margin:10px 0 0;color:var(--text-secondary)
}
.miniatura-publica .ficha-miniatura-resenha p{
    margin:0;color:var(--text-secondary);line-height:1.6
}

/* Demais áreas da página pública */
.miniatura-publica>hr{border:0;border-top:1px solid var(--border);margin:14px 0}
.miniatura-publica>h2{margin:0 0 4px;font-size:20px;line-height:26px}
.miniatura-publica>.subtitulo{margin:0 0 8px;color:var(--text-muted);font-size:12px}
.miniatura-publica #interesse,
.miniatura-publica #avaliacoes,
.miniatura-publica #comentarios{margin-top:12px;scroll-margin-top:16px}

.miniatura-publica .perfil-publico-identidade{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.miniatura-publica .perfil-publico-identidade h3,
.miniatura-publica .perfil-publico-identidade p,
.miniatura-publica .perfil-publico-identidade .form-acoes{margin:0}
.miniatura-publica .perfil-publico-identidade .btn{min-height:40px;padding:8px 12px}

.miniatura-publica .galeria-miniatura{
    display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;
    padding:2px 2px 10px;scroll-snap-type:x proximity;scrollbar-width:thin
}
.miniatura-publica .foto-card{
    flex:0 0 170px;min-width:170px;padding:6px;border:1px solid var(--border);
    border-radius:var(--r-lg);box-shadow:var(--e1);background:var(--surface);
    scroll-snap-align:start
}
.miniatura-publica .galeria-foto-botao{
    width:100%;aspect-ratio:4/3;overflow:hidden;border-radius:var(--r-md);
    border:0;padding:0;min-height:0;background:var(--surface-2)
}
.miniatura-publica .miniatura-thumb{width:100%;height:100%;object-fit:cover;margin:0}
.miniatura-publica .foto-principal-label{
    margin:5px 2px 1px;font-size:11px;line-height:14px;color:var(--brand-700)
}
.miniatura-publica .foto-card>p:not(.foto-principal-label){
    margin:5px 2px 1px;font-size:11px;line-height:14px
}

.miniatura-publica .interesse-resumo{
    padding:12px 16px;border-radius:var(--r-md);background:var(--surface-2)
}
.miniatura-publica .interesse-resumo .form-help{margin:2px 0 0}

.acao-progressiva{
    margin-top:12px;border:1px solid var(--border);
    border-radius:var(--r-md);background:var(--surface);
    scroll-margin-top:128px
}
.acao-progressiva>summary{
    display:flex;align-items:center;min-height:48px;padding:12px 16px;
    cursor:pointer;color:var(--brand-700);font-weight:600;list-style:none
}
.acao-progressiva>summary::-webkit-details-marker{display:none}
.acao-progressiva>summary::after{
    content:'+';margin-left:auto;font-size:20px;line-height:20px;color:var(--text-muted)
}
.acao-progressiva[open]>summary{border-bottom:1px solid var(--border)}
.acao-progressiva[open]>summary::after{content:'−'}
.acao-progressiva-conteudo{padding:16px}
.acao-progressiva-conteudo>h3:first-child{margin-top:0}

.miniatura-publica .interesse-formulario .interesse-caracteristica{padding:10px 12px;margin-bottom:8px}
.miniatura-publica .interesse-formulario textarea{min-height:96px}
.miniatura-publica .avaliacao-resumo{
    display:grid;grid-template-columns:180px minmax(0,1fr);gap:20px;align-items:start
}
.miniatura-publica .avaliacao-media-geral{padding:12px}
.miniatura-publica .avaliacao-medias-lista{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px
}
.miniatura-publica .avaliacao-media-item{
    padding:10px 12px;margin:0;border:1px solid var(--border);
    border-radius:var(--r-md);background:var(--surface-2)
}
.miniatura-publica .avaliacao-campo{padding:12px;margin-bottom:12px}
.miniatura-publica .avaliacao-estrelas-input{display:flex;gap:8px;flex-wrap:wrap}
.miniatura-publica .avaliacao-opcao-nota{min-width:52px;min-height:52px}
.miniatura-publica .avaliacao-formulario textarea{min-height:96px}
.miniatura-publica .avaliacoes-publicas-lista{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px
}
.miniatura-publica .avaliacao-publica-item{margin:0}
.miniatura-publica .comentarios-resumo{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.miniatura-publica .comentarios-resumo p{margin:0}
.miniatura-publica .comentario-formulario textarea{min-height:96px}
.miniatura-publica .comentarios-vazio{
    padding:16px;text-align:center;background:var(--surface-2);
    border:1px dashed var(--border-strong);border-radius:var(--r-md)
}
.miniatura-publica .comentarios-vazio p{margin:0}
.miniatura-publica .comentarios-vazio p+p{margin-top:4px}

@media (max-width:1023px){
    .miniatura-publica .ficha-miniatura-topo{
        grid-template-columns:minmax(340px,1.2fr) minmax(250px,.8fr);
        gap:20px
    }
    .miniatura-publica .ficha-miniatura-detalhes{gap:20px}
    .miniatura-publica .avaliacao-medias-lista{grid-template-columns:repeat(2,minmax(0,1fr))}
    .miniatura-colecionador-topo{min-width:230px}
}

@media (max-width:767px){
    .miniatura-publica-titulo{
        align-items:stretch;gap:8px;flex-direction:column;margin-bottom:12px
    }
    .miniatura-colecionador-topo{min-width:0;width:100%}
    .miniatura-acoes-rapidas{
        position:sticky;top:8px;z-index:20;
        display:grid;grid-template-columns:repeat(3,1fr);padding:8px;gap:6px
    }
    .miniatura-acoes-rapidas strong{grid-column:1/-1;font-size:12px}
    .miniatura-acoes-rapidas .btn{
        width:100%;min-height:44px;padding:8px 6px;font-size:12px
    }
    .miniatura-publica>.card>h2{padding:16px 16px 0;font-size:20px;line-height:28px}
    .miniatura-publica>.card>.card-conteudo{padding:12px 16px 16px}

    .miniatura-publica .ficha-miniatura-topo{grid-template-columns:1fr;gap:16px}
    .miniatura-publica .ficha-miniatura-informacoes h2{font-size:20px;line-height:28px}
    .miniatura-publica .ficha-miniatura-atributos{grid-template-columns:1fr}
    .miniatura-publica .ficha-miniatura-atributos p:last-child:nth-child(odd){grid-column:auto}

    .miniatura-publica .miniatura-galeria-principal{padding:0 48px}
    .miniatura-publica .miniatura-galeria-seta{width:44px;height:48px;font-size:30px}
    .miniatura-publica .miniatura-galeria-thumb{flex-basis:76px;width:76px;height:58px}

    .miniatura-publica .ficha-miniatura-detalhes{
        grid-template-columns:1fr;gap:20px;margin-top:20px;padding-top:16px
    }
    .miniatura-publica .ficha-miniatura-medidas{grid-template-columns:1fr}

    .miniatura-publica .perfil-publico-identidade{display:block}
    .miniatura-publica .perfil-publico-identidade p{margin:4px 0 12px}
    .miniatura-publica .foto-card{flex-basis:142px;min-width:142px}
    .miniatura-publica .avaliacao-resumo{grid-template-columns:1fr;gap:12px}
    .miniatura-publica .avaliacao-medias-lista{grid-template-columns:1fr 1fr}
    .miniatura-publica .avaliacoes-publicas-lista{grid-template-columns:1fr}
    .acao-progressiva-conteudo{padding:12px}
}

@media (prefers-reduced-motion:reduce){
    .miniatura-publica .miniatura-galeria-thumbs{scroll-behavior:auto}
}

/* ==========================================================
   IMP-07 — MEU PAINEL / ÁREA PESSOAL
   ========================================================== */
.painel-pessoal{max-width:1080px;margin:0 auto}
.painel-identidade{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px;margin-bottom:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--e1)}
.painel-identidade-usuario{display:flex;align-items:center;gap:16px;min-width:0}
.painel-avatar{flex:0 0 auto;width:80px;height:80px}
.painel-avatar .avatar{display:block;width:80px;height:80px;margin:0;border:2px solid var(--surface);box-shadow:var(--e1)}
.painel-contexto{margin:0 0 4px;color:var(--text-muted);font-size:12px;line-height:16px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.painel-identidade h1{margin:0;font-size:28px;line-height:36px}
.painel-apelido{margin:2px 0 0;color:var(--text-secondary);font-size:14px;line-height:20px}
.painel-acoes-conta{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.painel-acoes-conta .btn{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;border-radius:var(--r-md);font-size:14px;font-weight:600}
.painel-suporte-link{position:relative}
.painel-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--danger);color:#fff;font-size:12px;line-height:1;font-weight:700}
.painel-novidades{padding:20px;margin-bottom:20px}
.painel-novidades-cabecalho{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.painel-novidades h2{margin:0;font-size:20px;line-height:28px}
.painel-novidade{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--brand-200);border-radius:var(--r-md);background:var(--brand-50);color:var(--text);text-decoration:none}
.painel-novidade:hover{border-color:var(--brand-300);background:var(--brand-100);text-decoration:none}
.painel-novidade-icone{color:var(--brand-600);font-size:18px;line-height:1}
.painel-novidade strong,.painel-novidade small{display:block}
.painel-novidade small{margin-top:2px;color:var(--text-secondary);font-size:12px;line-height:16px}
.painel-vazio{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2)}
.painel-vazio strong{font-size:14px;line-height:20px}
.painel-vazio span{color:var(--text-secondary);font-size:14px;line-height:20px}
@media(max-width:767px){.painel-identidade{align-items:stretch;flex-direction:column;padding:16px}.painel-avatar,.painel-avatar .avatar{width:64px;height:64px}.painel-acoes-conta{display:grid;grid-template-columns:1fr}.painel-acoes-conta .btn{width:100%}.painel-novidades{padding:16px}}

/* IMP-07 — Lista de Desejos: propósito e descoberta */
.desejos-introducao{
    max-width:760px;
    margin:24px 0;
    padding:32px;
    border:1px solid var(--border);
    border-radius:var(--r-lg);
    background:var(--surface);
    box-shadow:var(--e1);
}
.desejos-introducao-conteudo{max-width:640px}
.desejos-introducao-etiqueta{
    display:block;
    margin-bottom:8px;
    color:var(--brand-600);
    font-size:12px;
    line-height:16px;
    font-weight:700;
    letter-spacing:.04em;
}
.desejos-introducao h2{margin:0 0 12px;font-size:24px;line-height:32px}
.desejos-introducao p{margin:0 0 12px;color:var(--text-secondary);font-size:16px;line-height:24px}
.desejos-introducao-nota{font-size:14px!important;line-height:20px!important}
.desejos-introducao-acoes{margin-top:20px}
.desejos-status{
    display:flex;
    align-items:baseline;
    gap:12px;
    margin:20px 0 16px;
    color:var(--text-secondary);
}
.desejos-status strong{color:var(--text-primary)}
@media (max-width:767px){
    .desejos-introducao{margin:16px 0;padding:20px}
    .desejos-introducao h2{font-size:20px;line-height:28px}
    .desejos-status{align-items:flex-start;flex-direction:column;gap:4px}
}

/* IMP-07 — Comunidade: slot editorial/promocional compacto */
.comunidade-banner{
    width:100%;
    margin:0 0 12px;
    overflow:hidden;
    border:1px solid var(--border);
    border-radius:var(--r-lg);
    background:var(--surface);
    box-shadow:var(--e1);
}
.comunidade-banner-midia{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    aspect-ratio:6 / 1;
    overflow:hidden;
    background:var(--surface);
}
.comunidade-banner-midia img{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
}
@media (max-width:767px){
    .comunidade-banner{margin-bottom:8px}
    
}


/* IMP-07 — Comunidade: busca, ordenação e filtros progressivos */
.comunidade-busca-formulario-v2{display:block}
.comunidade-descoberta-barra{
    display:grid;
    grid-template-columns:minmax(0,1fr) 190px auto;
    gap:12px;
    align-items:center;
}
.comunidade-descoberta-barra .comunidade-busca-campo,
.comunidade-descoberta-barra .comunidade-ordenacao{min-width:0}
.comunidade-descoberta-barra input[type="search"],
.comunidade-descoberta-barra select{
    width:100%;
    min-height:48px;
    margin:0;
}
.comunidade-filtros-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:48px;
    padding:0 16px;
    border:1px solid var(--border-strong);
    border-radius:var(--r-md);
    background:var(--surface);
    color:var(--text-primary);
    font:inherit;
    font-weight:600;
    cursor:pointer;
}
.comunidade-filtros-toggle:hover{background:var(--surface-2)}
.comunidade-filtros-toggle:focus-visible{
    outline:2px solid var(--brand-500);
    outline-offset:2px;
}
.comunidade-filtros-painel{
    margin-top:12px;
    padding:16px;
    border:1px solid var(--border);
    border-radius:var(--r-lg);
    background:var(--surface-2);
}
.comunidade-filtros-painel[hidden]{display:none}
.comunidade-filtros-painel .comunidade-filtros{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
}
.comunidade-filtros-acoes{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:8px;
    margin-top:16px;
}
.sr-only{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    padding:0!important;
    margin:-1px!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;
    border:0!important;
}
@media (max-width:767px){
    .comunidade-descoberta-barra{
        grid-template-columns:minmax(0,1fr) auto;
        gap:8px;
    }
    .comunidade-descoberta-barra .comunidade-busca-campo{grid-column:1/-1}
    .comunidade-descoberta-barra .comunidade-ordenacao{grid-column:1}
    .comunidade-filtros-toggle{grid-column:2;padding:0 12px}
    .comunidade-filtros-painel{padding:12px}
    .comunidade-filtros-painel .comunidade-filtros{grid-template-columns:1fr}
    .comunidade-filtros-acoes{align-items:stretch;flex-direction:column-reverse}
    .comunidade-filtros-acoes .btn{width:100%}
}


/* IMP-08 / TEC-07 — compartilhamento público */
.share-feedback{font-size:12px;line-height:16px;color:var(--text-secondary);min-height:16px}
.compartilhar-miniatura{min-height:44px}
.compartilhar-miniatura:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}
@media(max-width:767px){.miniatura-acoes-rapidas .compartilhar-miniatura{min-height:44px}}


/* IMP-09 / TEC-09A — Central de Notificações */
.notificacoes-cabecalho{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}
.notificacoes-cabecalho h1{margin-bottom:6px}.notificacoes-cabecalho p{margin:0;color:var(--text-secondary)}
.notificacoes-resumo,.notificacoes-badge{display:inline-flex;align-items:center;justify-content:center;font-weight:700}
.notificacoes-resumo{min-height:36px;padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2)}
.notificacoes-badge{min-width:24px;height:24px;padding:0 7px;margin-left:auto;border-radius:999px;background:var(--brand-700,#1d4ed8);color:#fff;font-size:12px}
.notificacoes-lista{display:grid;gap:10px;padding:0;list-style:none}
.notificacao-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface)}
.notificacao-nao-lida{border-left:4px solid var(--brand-600,#2563eb);font-weight:600}.notificacao-lida{opacity:.82}
.notificacao-conteudo{display:grid;gap:5px;min-width:0}.notificacao-estado{font-size:12px;text-transform:uppercase;letter-spacing:.04em}.notificacao-conteudo time,.notificacao-indisponivel{font-size:13px;color:var(--text-secondary)}
.notificacao-acoes form{margin:0}.notificacoes-vazio{padding:28px;border:1px dashed var(--border-strong);border-radius:var(--r-lg);text-align:center}.notificacoes-vazio h2{margin-top:0}
.notificacoes-paginacao{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:20px}
.menu-link-contador{gap:10px}.notificacao-item :focus-visible,.notificacoes-paginacao :focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}
@media(max-width:767px){.notificacoes-cabecalho,.notificacao-item{align-items:stretch;flex-direction:column}.notificacoes-resumo{align-self:flex-start}.notificacao-acoes .btn,.notificacao-acoes form{width:100%}.notificacoes-paginacao{flex-wrap:wrap}}

/* IMP-09 / TEC-09A — integração da Central ao Meu Painel */
.painel-novidades .painel-novidade + .painel-novidade{margin-top:8px}
.painel-novidade-nao-lida{border-width:2px}
.painel-novidades-rodape{display:flex;justify-content:flex-end;margin-top:12px}
@media(max-width:767px){.painel-novidades-rodape .btn{width:100%}}

/* Web Push — controle único ON/OFF */
.push-controle{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0}
.push-controle-label{font-size:14px;line-height:20px;font-weight:600;color:var(--text)}
.push-switch{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 52px;width:52px;height:44px;cursor:pointer}
.push-switch input{position:absolute;opacity:0;width:1px;height:1px;min-height:0}
.push-switch-trilho{position:relative;display:block;width:48px;height:28px;border-radius:999px;background:var(--border);transition:background .2s ease}
.push-switch-trilho::after{content:"";position:absolute;top:4px;left:4px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:var(--e1);transition:transform .2s ease}
.push-switch input:checked + .push-switch-trilho{background:var(--brand-600)}
.push-switch input:checked + .push-switch-trilho::after{transform:translateX(20px)}
.push-switch input:focus-visible + .push-switch-trilho{outline:3px solid var(--brand-200);outline-offset:2px}
.push-switch input:disabled + .push-switch-trilho{opacity:.55;cursor:not-allowed}
.push-switch:has(input:disabled){cursor:not-allowed}


/* ==========================================================
   UX03-T01 — Navegação global por drawer
   Desktop e mobile compartilham o mesmo mecanismo.
   ========================================================== */

.menu-mobile-botao{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    flex:0 0 44px;
    width:44px;
    height:44px;
    padding:0;
    gap:5px;
    border:1px solid var(--border, #e2e8f0);
    border-radius:var(--r-md, 9px);
    background:var(--surface-2, #f1f5f9);
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
}

.menu-mobile-botao span{
    display:block;
    width:21px;
    height:2px;
    border-radius:999px;
    background:var(--brand-800, #1e3a8a);
    transition:transform .2s ease, opacity .2s ease;
}

.menu-mobile-aberto .menu-mobile-botao span:nth-child(1){
    transform:translateY(7px) rotate(45deg);
}

.menu-mobile-aberto .menu-mobile-botao span:nth-child(2){
    opacity:0;
}

.menu-mobile-aberto .menu-mobile-botao span:nth-child(3){
    transform:translateY(-7px) rotate(-45deg);
}

.menu-mobile-botao:focus-visible,
.menu a:focus-visible{
    outline:3px solid var(--brand-400, #60a5fa);
    outline-offset:2px;
}

.container{
    display:block;
}

.menu{
    position:fixed;
    top:56px;
    bottom:0;
    left:0;
    z-index:1150;
    display:block;
    width:min(84vw, 320px);
    height:calc(100dvh - 56px);
    padding:10px 0 24px;
    overflow-y:auto;
    overscroll-behavior:contain;
    background:var(--surface, #fff);
    border-right:1px solid var(--border, #e2e8f0);
    box-shadow:8px 0 24px rgba(0, 0, 0, .24);
    transform:translateX(-105%);
    visibility:hidden;
    transition:transform .22s ease, visibility .22s ease;
}

.menu-mobile-aberto .menu{
    transform:translateX(0);
    visibility:visible;
}

.menu ul,
.menu li{
    display:block;
}

.menu li{
    width:100%;
    margin:0;
}

.menu a{
    display:flex;
    align-items:center;
    width:100%;
    min-height:50px;
    padding:13px 20px;
}

.menu-mobile-fundo{
    position:fixed;
    inset:56px 0 0;
    z-index:1100;
    display:block;
    width:100%;
    height:calc(100dvh - 56px);
    padding:0;
    border:0;
    background:rgba(15, 23, 42, .58);
    opacity:0;
    visibility:hidden;
    cursor:pointer;
    transition:opacity .22s ease, visibility .22s ease;
}

.menu-mobile-aberto .menu-mobile-fundo{
    opacity:1;
    visibility:visible;
}

body.menu-mobile-aberto{
    overflow:hidden;
}


/* ==========================================================
   UX03-T01 — Tema claro / escuro
   ========================================================== */

html[data-theme="dark"]{
    color-scheme:dark;

    --bg:#0F172A;
    --surface:#172033;
    --surface-2:#1E293B;
    --border:#334155;
    --border-strong:#475569;

    --text:#F8FAFC;
    --text-secondary:#CBD5E1;
    --text-muted:#94A3B8;

    --brand-50:#172554;
    --brand-100:#1E3A8A;
    --brand-200:#1E40AF;
    --brand-300:#2563EB;
    --brand-400:#60A5FA;
    --brand-500:#60A5FA;
    --brand-600:#93C5FD;
    --brand-700:#BFDBFE;
    --brand-800:#DBEAFE;
    --brand-900:#EFF6FF;

    --success:#4ADE80;
    --success-bg:#14532D;
    --warning:#FBBF24;
    --warning-bg:#451A03;
    --danger:#FCA5A5;
    --danger-bg:#450A0A;

    --e1:0 1px 2px rgba(0,0,0,.35);
    --e2:0 4px 12px rgba(0,0,0,.35);
    --e3:0 12px 28px rgba(0,0,0,.45);
}

.topo-acoes{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    min-width:0;
}

.tema-botao{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 44px;
    width:44px;
    height:44px;
    min-height:44px;
    padding:0;
    border:1px solid var(--border);
    border-radius:var(--r-md);
    background:var(--surface-2);
    color:var(--text);
    cursor:pointer;
}

.tema-botao:hover{
    background:var(--brand-50);
    color:var(--brand-700);
}

.tema-botao:focus-visible{
    outline:3px solid var(--brand-400);
    outline-offset:2px;
}

.tema-botao-icone{
    font-size:20px;
    line-height:1;
}

html[data-theme="dark"] .cadastro-processando{
    background:rgba(15,23,42,.94);
}

html[data-theme="dark"] .alert-sucesso{
    color:#BBF7D0;
}

html[data-theme="dark"] .alert-erro{
    color:#FECACA;
}


/* UX03-T01 — Contraste dos botoes primarios no tema escuro */
html[data-theme="dark"] .btn-primary{
    color:#0F172A;
}

/* UX03-T01 — Tema escuro: ações rápidas da miniatura pública */
html[data-theme="dark"] .miniatura-acoes-rapidas{
    background:rgba(23,32,51,.96);
    border-color:var(--border);
}

/* ==========================================================
   UX03-T01 — Tema escuro: Coleção / Acervo
   ========================================================== */

html[data-theme="dark"] .miniatura-card{
    background:var(--surface);
    border:1px solid var(--border);
    box-shadow:var(--e1);
}

html[data-theme="dark"] .miniatura-card p{
    color:var(--text-secondary);
}

html[data-theme="dark"] .miniatura-sem-foto{
    background:var(--surface-2);
    color:var(--text-muted);
    border-color:var(--border-strong);
}

html[data-theme="dark"] .espaco-numero{
    color:var(--text-secondary);
    border-color:var(--border);
}

html[data-theme="dark"] .espaco-vazio{
    color:var(--text-muted);
}

/* ==========================================================
   UX03-T01 — Tema escuro: componentes-base
   ========================================================== */

html[data-theme="dark"] .card,
html[data-theme="dark"] .form-container{
    background:var(--surface);
    border-color:var(--border);
    box-shadow:var(--e1);
}

html[data-theme="dark"] .dashboard-card .numero{
    color:var(--brand-400);
}

html[data-theme="dark"] .dashboard-card .titulo{
    color:var(--text-secondary);
}
