/* ============================================================
   STUDIO PDF — Sistema de Design
   Conceito: "papel & carimbo" — folhas empilhadas, cantos dobrados
   e uma tinta de carimbo (teal) como contraponto do rosa de marca.
   ============================================================ */

:root{
    --primary:#CE0058;
    --primary-dark:#9E0042;
    --primary-light:#FFE3EF;
    --stamp:#146B67;         /* tinta de carimbo — contraponto do rosa */
    --stamp-light:#DFF0EE;
    --ink:#17181F;
    --gray-700:#4B4E5A;
    --gray-500:#8B8E9B;
    --gray-200:#E7E4DC;
    --bg:#F6F4EF;            /* branco quente, tom de papel */
    --paper:#FFFEFB;
    --surface:#FFFFFF;
    --success:#0E9F6E;
    --danger:#E11D48;
    --radius-lg:20px;
    --radius-md:14px;
    --radius-sm:10px;
    --shadow-card:0 1px 2px rgba(23,24,31,.05), 0 8px 24px rgba(23,24,31,.06);
    --shadow-lift:0 12px 32px rgba(23,24,31,.10);
}

html[data-theme="dark"]{
    --primary:#FF4D93;
    --primary-dark:#FF7CB0;
    --primary-light:#3A1226;
    --stamp:#3FC7BF;
    --stamp-light:#123330;
    --ink:#F2F1EC;
    --gray-700:#C7C6C4;
    --gray-500:#93928F;
    --gray-200:#2B2B30;
    --bg:#131317;
    --paper:#1B1B20;
    --surface:#1B1B20;
    --success:#22C58B;
    --danger:#FB4A67;
    --shadow-card:0 1px 2px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.5);
    --shadow-lift:0 12px 32px rgba(0,0,0,.55);
}
html{ background:var(--bg); transition:background .25s ease; }
*{ margin:0; padding:0; box-sizing:border-box; }

body{
    font-family:'Inter',sans-serif;
    background:var(--bg);
    color:var(--ink);
    -webkit-font-smoothing:antialiased;
    transition:background .25s ease, color .25s ease;
}

a{ color:inherit; }

/* ---------- THEME TOGGLE ---------- */
.theme-toggle{
    position:fixed; top:20px; right:20px; z-index:60;
    width:44px; height:44px; border-radius:50%;
    background:var(--surface); border:1px solid var(--gray-200);
    box-shadow:var(--shadow-card);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; color:var(--ink);
    transition:border-color .2s ease, transform .15s ease, background .25s ease;
}
.theme-toggle:hover{ border-color:var(--primary); }
.theme-toggle:active{ transform:scale(.92); }
.theme-toggle svg{ width:20px; height:20px; }
.theme-toggle .icon-moon{ display:none; }
html[data-theme="dark"] .theme-toggle .icon-sun{ display:none; }
html[data-theme="dark"] .theme-toggle .icon-moon{ display:block; }
@media(max-width:600px){
    .theme-toggle{ top:14px; right:14px; width:38px; height:38px; }
}

/* ---------- TOPBAR (conta / admin) ---------- */
.topbar{
    position:fixed; top:0; left:0; right:0; z-index:55;
    display:flex; align-items:center; justify-content:flex-end;
    gap:10px; padding:16px 76px 0 24px;
    pointer-events:none;
}
.topbar > *{ pointer-events:auto; }
.topbar .pill-link{
    display:inline-flex; align-items:center; gap:6px;
    font-size:.8rem; font-weight:700; color:var(--gray-700);
    background:var(--surface); border:1px solid var(--gray-200);
    padding:9px 16px; border-radius:100px; text-decoration:none;
    box-shadow:var(--shadow-card); transition:.15s;
}
.topbar .pill-link:hover{ border-color:var(--primary); color:var(--primary-dark); }
@media(max-width:600px){
    .topbar{ padding:12px 62px 0 14px; }
    .topbar .pill-link span.label-full{ display:none; }
}

/* ---------- HERO — motivo "folhas empilhadas" ---------- */
.hero{
    position:relative;
    padding:104px 24px 64px;
    text-align:center;
    overflow:hidden;
    background:var(--surface);
    border-bottom:1px solid var(--gray-200);
    transition:background .25s ease, border-color .25s ease;
}
.paper-stack{
    position:relative;
    width:120px; height:88px;
    margin:0 auto 28px;
}
.paper-stack .sheet{
    position:absolute; inset:0;
    border-radius:8px;
    border:1.5px solid var(--gray-200);
    background:var(--paper);
    box-shadow:var(--shadow-card);
}
.paper-stack .sheet:nth-child(1){ transform:rotate(-9deg) translate(-10px,4px); }
.paper-stack .sheet:nth-child(2){ transform:rotate(6deg) translate(8px,2px); }
.paper-stack .sheet:nth-child(3){
    transform:rotate(-1deg);
    background:var(--surface);
    display:flex; align-items:center; justify-content:center;
    color:var(--primary);
}
.paper-stack .sheet:nth-child(3) svg{ width:34px; height:34px; }
.paper-stack .sheet:nth-child(3)::after{
    content:"";
    position:absolute; top:0; right:0;
    width:0; height:0;
    border-style:solid;
    border-width:0 16px 16px 0;
    border-color:transparent var(--bg) transparent transparent;
    filter:drop-shadow(-1px 1px 1px rgba(0,0,0,.06));
}

.eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-size:.76rem; font-weight:700; letter-spacing:.08em;
    text-transform:uppercase; color:var(--stamp);
    background:var(--stamp-light); padding:7px 15px;
    border-radius:100px; margin-bottom:20px;
    border:1px solid transparent;
}
.hero h1{
    position:relative; font-family:'Sora',sans-serif;
    font-size:3.1rem; font-weight:800; letter-spacing:-.02em; line-height:1.08;
}
.hero h1 span{ color:var(--primary); }
.hero p{
    position:relative; margin:16px auto 0; max-width:480px;
    color:var(--gray-700); font-size:1.03rem; line-height:1.55;
}

/* ---------- LAYOUT PRINCIPAL (conteúdo + rail lateral) ---------- */
.page-layout{
    max-width:1240px; margin:auto; padding:48px 24px 80px;
    display:grid; grid-template-columns:1fr 280px; gap:32px; align-items:start;
}
@media(max-width:980px){
    .page-layout{ grid-template-columns:1fr; }
}
.main-column{ min-width:0; }

.container{ max-width:1080px; margin:auto; padding:0; }
.grid{ display:grid; grid-template-columns:1.4fr 1fr; gap:28px; align-items:start; }
@media(max-width:860px){ .grid{ grid-template-columns:1fr; } }

/* ---------- SIDEBAR — espaço de parceiros/anúncios ---------- */
.ad-rail{ position:sticky; top:24px; display:flex; flex-direction:column; gap:16px; }
/* ---------- SIDEBAR — carrossel dinâmico de parceiros/anúncios ---------- */
.ad-carousel-wrap{ display:flex; flex-direction:column; gap:12px; }
.ad-carousel{ position:relative; display:grid; }
.ad-slide{
    grid-area:1/1;
    opacity:0; transform:translateY(6px);
    transition:opacity .55s ease, transform .55s ease;
    pointer-events:none;
}
.ad-slide.active{ opacity:1; transform:translateY(0); pointer-events:auto; }
.ad-dots{ display:flex; justify-content:center; align-items:center; gap:7px; }
.ad-dot{
    width:6px; height:6px; border-radius:50%; padding:0; border:none;
    background:var(--gray-200); cursor:pointer; transition:width .25s ease, background .25s ease;
}
.ad-dot.active{ width:20px; border-radius:5px; background:var(--primary); }
.ad-dot:hover{ background:var(--primary-dark); }
@media(prefers-reduced-motion:reduce){
    .ad-slide{ transition:opacity .15s ease; transform:none !important; }
}

.ad-card{
    background:var(--paper); border:1px solid var(--gray-200);
    border-radius:var(--radius-lg); overflow:hidden;
    box-shadow:var(--shadow-card);
}
.ad-card .ad-tag{
    display:flex; align-items:center; gap:6px;
    font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
    color:var(--gray-500); padding:12px 16px 0;
}
.ad-card .ad-img{ width:100%; display:block; aspect-ratio:16/10; object-fit:cover; }
.ad-card .ad-body{ padding:14px 16px 18px; }
.ad-card .ad-body h4{ font-size:.95rem; font-weight:700; margin-bottom:6px; }
.ad-card .ad-body p{ font-size:.83rem; color:var(--gray-700); line-height:1.5; margin-bottom:12px; }
.ad-card .ad-cta{
    display:inline-flex; align-items:center; gap:6px;
    font-size:.82rem; font-weight:700; color:var(--primary);
    text-decoration:none;
}
.ad-card .ad-cta:hover{ color:var(--primary-dark); }

/* estado vazio — convite discreto para futuras parcerias */
.ad-card.ad-empty{
    border:1.5px dashed var(--gray-200); background:transparent;
    box-shadow:none; padding:26px 18px; text-align:center;
}
.ad-card.ad-empty .ad-empty-icon{
    width:38px; height:38px; margin:0 auto 12px;
    border-radius:50%; background:var(--stamp-light); color:var(--stamp);
    display:flex; align-items:center; justify-content:center;
}
.ad-card.ad-empty h4{ font-size:.88rem; font-weight:700; margin-bottom:4px; }
.ad-card.ad-empty p{ font-size:.78rem; color:var(--gray-500); line-height:1.5; }

.tips-card{
    background:var(--surface); border:1px solid var(--gray-200);
    border-radius:var(--radius-lg); padding:18px 18px 20px; box-shadow:var(--shadow-card);
}
.tips-card h4{ font-size:.82rem; font-weight:700; margin-bottom:10px; display:flex; align-items:center; gap:6px; }
.tips-card ul{ list-style:none; display:flex; flex-direction:column; gap:9px; }
.tips-card li{ font-size:.8rem; color:var(--gray-700); line-height:1.5; padding-left:16px; position:relative; }
.tips-card li::before{
    content:""; position:absolute; left:0; top:.55em;
    width:6px; height:6px; border-radius:50%; background:var(--stamp);
}

@media(max-width:980px){
    .ad-rail{ position:static; flex-direction:row; flex-wrap:wrap; }
    .ad-rail > *{ flex:1; min-width:240px; }
}

/* ---------- CARROSSEL DE PARCEIROS (rotação quando há mais de 1) ---------- */
.ad-carousel{ position:relative; }
.ad-carousel .ad-card{
    opacity:1; transform:translateY(0);
    transition:opacity .45s ease, transform .45s ease;
}
.ad-carousel .ad-card.is-leaving{ opacity:0; transform:translateY(-6px); }
.ad-carousel-dots{
    display:flex; justify-content:center; gap:6px; margin-top:12px;
}
.ad-carousel-dots button{
    width:6px; height:6px; padding:0; border-radius:50%;
    border:none; background:var(--gray-200); cursor:pointer;
    transition:.2s; flex-shrink:0;
}
.ad-carousel-dots button.is-active{ width:18px; border-radius:100px; background:var(--stamp); }
.ad-carousel-dots button:hover{ background:var(--primary); }
@media(prefers-reduced-motion:reduce){
    .ad-carousel .ad-card{ transition:opacity .15s ease; transform:none !important; }
}

/* ---------- DROPZONE ---------- */
.dropzone{
    border:2px dashed var(--gray-200); background:var(--surface);
    border-radius:var(--radius-lg); padding:56px 28px;
    text-align:center; cursor:pointer;
    transition:border-color .2s ease, background .2s ease;
}
.dropzone:hover{ border-color:var(--primary); }
.dropzone.active{ border-color:var(--primary); background:var(--primary-light); }
.dropzone-icon{
    width:56px; height:56px; margin:0 auto 18px;
    display:flex; align-items:center; justify-content:center;
    border-radius:50%; background:var(--primary-light); color:var(--primary);
}
.dropzone h2{ font-size:1.15rem; font-weight:700; margin-bottom:6px; }
.dropzone p{ color:var(--gray-500); font-size:.9rem; }
input[type=file]{ display:none; }

/* ---------- PANEL ---------- */
.panel{
    background:var(--surface); border:1px solid var(--gray-200);
    border-radius:var(--radius-lg); padding:28px; box-shadow:var(--shadow-card);
    transition:background .25s ease, border-color .25s ease;
}
.panel h3{ font-size:.95rem; font-weight:700; margin-bottom:20px; }
.field{ margin-bottom:22px; }
.field-label{
    display:flex; justify-content:space-between; align-items:center;
    font-size:.85rem; font-weight:600; color:var(--gray-700); margin-bottom:10px;
}
.range-value{ color:var(--primary); font-weight:700; font-variant-numeric:tabular-nums; }
input[type=range]{
    -webkit-appearance:none; width:100%; height:4px;
    border-radius:4px; background:var(--gray-200); outline:none;
}
input[type=range]::-webkit-slider-thumb{
    -webkit-appearance:none; width:18px; height:18px; border-radius:50%;
    background:var(--primary); cursor:pointer;
    border:3px solid var(--surface); box-shadow:0 0 0 1px var(--primary);
}
.select-row{ display:flex; gap:8px; }
.chip{
    flex:1; text-align:center; padding:10px 8px;
    border-radius:var(--radius-sm); border:1px solid var(--gray-200);
    font-size:.82rem; font-weight:600; color:var(--gray-700);
    cursor:pointer; transition:.15s; background:var(--surface);
}
.chip.selected{
    border-color:var(--primary); background:var(--primary-light); color:var(--primary-dark);
}
.summary{
    display:flex; justify-content:space-between;
    font-size:.85rem; color:var(--gray-700);
    padding:10px 0; border-top:1px solid var(--gray-200);
}
.summary strong{ color:var(--ink); }
.btn{
    width:100%; background:var(--primary); color:white;
    border:none; padding:15px 24px; border-radius:var(--radius-md);
    font-size:.95rem; font-weight:700; cursor:pointer; margin-top:8px;
    transition:background .2s ease, transform .1s ease;
    display:flex; align-items:center; justify-content:center; gap:8px;
}
.btn:hover:not(:disabled){ background:var(--primary-dark); }
.btn:active:not(:disabled){ transform:scale(.98); }
.btn:disabled{ background:var(--gray-200); color:var(--gray-500); cursor:not-allowed; }
.btn-secondary{
    width:100%; background:var(--surface); color:var(--ink);
    border:1px solid var(--gray-200); padding:13px 24px;
    border-radius:var(--radius-md); font-size:.9rem; font-weight:600;
    cursor:pointer; margin-top:8px;
    transition:background .15s ease, border-color .15s ease;
    display:flex; align-items:center; justify-content:center; gap:8px;
}
.btn-secondary:hover:not(:disabled){ border-color:var(--ink); background:var(--bg); }
.btn-secondary:disabled{ opacity:.4; cursor:not-allowed; }
.btn-ghost{
    background:none; border:1px solid var(--gray-200); color:var(--gray-700);
    padding:10px 18px; border-radius:var(--radius-sm); font-size:.85rem; font-weight:600;
    cursor:pointer; transition:.15s; text-decoration:none; display:inline-flex; align-items:center; gap:6px;
}
.btn-ghost:hover{ border-color:var(--danger); color:var(--danger); }

.text-input, textarea.text-input{
    width:100%; padding:12px 14px; border-radius:var(--radius-sm);
    border:1px solid var(--gray-200); outline:none; color:var(--ink);
    background:var(--surface); font-family:'Inter',sans-serif; font-size:.88rem;
    transition:border-color .15s ease, background .25s ease;
}
.text-input:focus{ border-color:var(--primary); }
label.form-label{ display:block; font-size:.83rem; font-weight:600; color:var(--gray-700); margin-bottom:8px; }
.form-row{ margin-bottom:18px; }
.form-hint{ font-size:.76rem; color:var(--gray-500); margin-top:6px; }
.switch-row{ display:flex; align-items:center; gap:10px; }
.switch{ position:relative; width:44px; height:24px; flex-shrink:0; }
.switch input{ opacity:0; width:0; height:0; }
.switch .track{
    position:absolute; inset:0; background:var(--gray-200); border-radius:100px;
    cursor:pointer; transition:.2s;
}
.switch .track::before{
    content:""; position:absolute; width:18px; height:18px; left:3px; top:3px;
    background:var(--surface); border-radius:50%; transition:.2s; box-shadow:0 1px 3px rgba(0,0,0,.2);
}
.switch input:checked + .track{ background:var(--stamp); }
.switch input:checked + .track::before{ transform:translateX(20px); }

.progress-track{
    margin-top:16px; height:6px; border-radius:6px;
    background:var(--gray-200); overflow:hidden; display:none;
}
.progress-track.show{ display:block; }
.progress-fill{ height:100%; width:0%; background:var(--primary); transition:width .2s ease; }
.status{
    margin-top:12px; font-size:.85rem; font-weight:600;
    text-align:center; min-height:18px;
}
.status.success{ color:var(--success); }
.status.error{ color:var(--danger); }
.status.info{ color:var(--gray-700); }

/* ---------- MERGE PREVIEW ---------- */
.preview-header{
    display:flex; justify-content:space-between; align-items:center;
    margin:36px 0 16px;
}
.preview-header h3{ font-size:1rem; font-weight:700; }
.clear-link{
    font-size:.82rem; font-weight:600; color:var(--gray-500);
    cursor:pointer; background:none; border:none;
}
.clear-link:hover{ color:var(--danger); }
.preview{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:16px; }
.card{
    position:relative; background:var(--surface);
    border:1px solid var(--gray-200); border-radius:var(--radius-md);
    overflow:hidden; box-shadow:var(--shadow-card);
}
.card .order-badge{
    position:absolute; top:8px; left:8px;
    width:22px; height:22px; border-radius:50%;
    background:rgba(23,24,31,.7); color:#fff;
    font-size:.72rem; font-weight:700;
    display:flex; align-items:center; justify-content:center;
}
.card .remove-btn{
    position:absolute; top:8px; right:8px;
    width:22px; height:22px; border-radius:50%;
    background:rgba(23,24,31,.7); color:#fff;
    border:none; cursor:pointer; font-size:.85rem; line-height:1;
    display:flex; align-items:center; justify-content:center;
}
.card .remove-btn:hover{ background:var(--danger); }
.card img{ width:100%; height:140px; object-fit:cover; display:block; }
.card p{
    padding:10px 12px; font-size:.78rem; color:var(--gray-700);
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* ---------- PDF→IMAGE PREVIEW ---------- */
.img-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
    gap:20px;
    margin-top:32px;
}
.img-card{
    background:var(--surface);
    border:1px solid var(--gray-200);
    border-radius:var(--radius-md);
    overflow:hidden;
    box-shadow:var(--shadow-card);
    position:relative;
}
.img-card canvas{ width:100%; display:block; }
.img-card-footer{
    display:flex; align-items:center; justify-content:space-between;
    padding:10px 14px;
}
.img-card-footer span{ font-size:.78rem; color:var(--gray-700); font-weight:600; }
.dl-btn{
    font-size:.75rem; font-weight:700; color:var(--primary);
    background:none; border:none; cursor:pointer; padding:4px 8px;
    border-radius:6px; transition:.15s;
}
.dl-btn:hover{ background:var(--primary-light); }
.img-card-skeleton{
    background:linear-gradient(90deg, var(--gray-200) 25%, var(--bg) 50%, var(--gray-200) 75%);
    background-size:200% 100%; animation:shimmer 1.4s infinite;
    height:200px; border-radius:var(--radius-md);
}
@keyframes shimmer{ to{ background-position:-200% 0; } }

/* ---------- TABS ---------- */
.tabs{ display:flex; justify-content:center; gap:8px; margin-top:32px; flex-wrap:wrap; }
.tab-btn{
    padding:10px 22px; border-radius:100px;
    border:1px solid var(--gray-200); background:var(--surface);
    font-size:.85rem; font-weight:600; color:var(--gray-700); cursor:pointer; transition:.15s;
}
.tab-btn.active{ background:var(--ink); border-color:var(--ink); color:var(--bg); }
.tab-panel{ display:none; }
.tab-panel.active{ display:block; }

/* ---------- SPLIT / COMMON ---------- */
.file-pill{
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    background:var(--surface); border:1px solid var(--gray-200);
    border-radius:var(--radius-md); padding:14px 18px; margin-top:12px;
    transition:background .25s ease, border-color .25s ease;
}
.file-pill .meta{ font-size:.85rem; color:var(--gray-700); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.file-pill .meta strong{ color:var(--ink); }
.file-pill button{
    flex-shrink:0; background:none; border:none; color:var(--gray-500);
    font-weight:600; font-size:.8rem; cursor:pointer;
}
.file-pill button:hover{ color:var(--danger); }
.field-hint{ font-size:.78rem; color:var(--gray-500); margin-top:8px; line-height:1.4; }

/* ---------- JUNTAR PDFs — lista reordenável ---------- */
.join-list{ display:flex; flex-direction:column; gap:10px; margin-top:20px; }
.join-item{
    display:flex; align-items:center; gap:12px;
    background:var(--surface); border:1px solid var(--gray-200);
    border-radius:var(--radius-md); padding:12px 14px;
    transition:background .25s ease, border-color .25s ease;
}
.join-item .order-num{
    width:26px; height:26px; border-radius:50%; flex-shrink:0;
    background:var(--primary-light); color:var(--primary-dark);
    font-size:.75rem; font-weight:700;
    display:flex; align-items:center; justify-content:center;
}
.join-item .meta{ flex:1; min-width:0; }
.join-item .meta strong{ display:block; font-size:.85rem; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.join-item .meta span{ font-size:.76rem; color:var(--gray-500); }
.join-item .actions{ display:flex; gap:4px; flex-shrink:0; }

textarea#ranges{
    width:100%; resize:vertical; min-height:64px;
    font-family:'Inter',sans-serif; font-size:.88rem;
    padding:12px 14px; border-radius:var(--radius-sm);
    border:1px solid var(--gray-200); outline:none; color:var(--ink);
    background:var(--surface);
}
textarea#ranges:focus{ border-color:var(--primary); }
.mode-row{ display:flex; gap:8px; margin-bottom:14px; }

/* ---------- TOAST ---------- */
.toast-layer{
    position:fixed; inset:0;
    display:flex; align-items:center; justify-content:center;
    pointer-events:none; z-index:999;
}
.toast{
    display:flex; flex-direction:column; align-items:center; gap:14px;
    background:var(--surface); border:1px solid var(--gray-200);
    box-shadow:0 12px 40px rgba(23,24,31,.16);
    border-radius:var(--radius-lg); padding:32px 40px;
    opacity:0; transform:scale(.85);
    transition:opacity .25s ease, transform .25s ease, background .25s ease;
}
.toast.show{ opacity:1; transform:scale(1); }
.toast-check{ width:56px; height:56px; }
.toast-check circle{
    fill:none; stroke:var(--success); stroke-width:3;
    stroke-dasharray:166; stroke-dashoffset:166;
}
.toast-check path{
    fill:none; stroke:var(--success); stroke-width:4;
    stroke-linecap:round; stroke-linejoin:round;
    stroke-dasharray:48; stroke-dashoffset:48;
}
.toast.show .toast-check circle{ animation:draw-circle .5s ease forwards; }
.toast.show .toast-check path{ animation:draw-check .3s .45s ease forwards; }
@keyframes draw-circle{ to{ stroke-dashoffset:0; } }
@keyframes draw-check{ to{ stroke-dashoffset:0; } }
.toast-text{ font-size:.92rem; font-weight:700; color:var(--ink); text-align:center; }
.toast-subtext{ font-size:.8rem; color:var(--gray-500); text-align:center; margin-top:-8px; }
@media(prefers-reduced-motion:reduce){
    .toast-check circle,.toast-check path{ animation:none !important; stroke-dashoffset:0 !important; }
    .toast{ transition:opacity .15s ease; transform:none !important; }
}

.footer{
    text-align:center; color:var(--gray-500); font-size:.82rem;
    padding:36px 20px; border-top:1px solid var(--gray-200);
}

/* ---------- AUTENTICAÇÃO (login/admin) ---------- */
.auth-shell{
    min-height:100vh; display:flex; align-items:center; justify-content:center;
    padding:24px; background:var(--bg);
}
.auth-card{
    width:100%; max-width:380px; background:var(--surface);
    border:1px solid var(--gray-200); border-radius:var(--radius-lg);
    padding:36px 32px; box-shadow:var(--shadow-lift);
}
.auth-card .paper-stack{ width:76px; height:56px; margin-bottom:20px; }
.auth-card .paper-stack .sheet:nth-child(3) svg{ width:22px; height:22px; }
.auth-card h1{ font-family:'Sora',sans-serif; font-size:1.4rem; font-weight:800; margin-bottom:6px; }
.auth-card p.sub{ color:var(--gray-500); font-size:.85rem; margin-bottom:26px; }
.auth-error{
    background:var(--primary-light); color:var(--primary-dark);
    border-radius:var(--radius-sm); padding:11px 14px; font-size:.83rem; font-weight:600;
    margin-bottom:18px;
}
.auth-back{ display:block; text-align:center; margin-top:20px; font-size:.82rem; color:var(--gray-500); text-decoration:none; }
.auth-back:hover{ color:var(--primary); }

/* ---------- ADMIN ---------- */
.admin-wrap{ max-width:760px; margin:0 auto; padding:48px 24px 80px; }
.admin-header{
    display:flex; align-items:center; justify-content:space-between;
    margin-bottom:28px; gap:16px; flex-wrap:wrap;
}
.admin-header h1{ font-family:'Sora',sans-serif; font-size:1.6rem; font-weight:800; }
.admin-header p{ color:var(--gray-500); font-size:.88rem; margin-top:4px; }
.admin-card{
    background:var(--surface); border:1px solid var(--gray-200);
    border-radius:var(--radius-lg); padding:28px; box-shadow:var(--shadow-card);
    margin-bottom:24px;
}
.admin-card h3{ font-size:1rem; font-weight:700; margin-bottom:4px; }
.admin-card .card-sub{ color:var(--gray-500); font-size:.82rem; margin-bottom:22px; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media(max-width:600px){ .form-grid{ grid-template-columns:1fr; } }
.alert-success{
    background:var(--stamp-light); color:var(--stamp);
    border-radius:var(--radius-sm); padding:11px 14px; font-size:.83rem; font-weight:600;
    margin-bottom:20px;
}

/* ---------- ADMIN — gráfico de acessos ---------- */
.visits-chart{
    display:flex; align-items:flex-end; gap:10px;
    height:120px; margin-top:22px; padding:0 4px;
}
.visits-chart .bar-col{
    flex:1; height:100%; display:flex; flex-direction:column;
    align-items:center; justify-content:flex-end; gap:8px;
}
.visits-chart .bar-value{ font-size:.72rem; font-weight:700; color:var(--ink); }
.visits-chart .bar{
    width:100%; max-width:32px; min-height:4px;
    background:var(--stamp-light); border-radius:6px 6px 3px 3px;
    transition:height .4s ease, background .2s ease;
}
.visits-chart .bar-col.is-today .bar{ background:var(--stamp); }
.visits-chart .bar-col.is-today .bar-value{ color:var(--stamp); }
.visits-chart .bar-label{ font-size:.7rem; color:var(--gray-500); text-transform:capitalize; }
.visits-chart .bar-col.is-today .bar-label{ color:var(--ink); font-weight:700; }
.visits-empty-note{
    text-align:center; font-size:.78rem; color:var(--gray-500);
    margin-top:14px; line-height:1.5;
}

/* ---------- ADMIN — lista de anúncios (CRUD) ---------- */

/* barra de estatísticas rápidas */
.ad-stats-row{ display:flex; gap:10px; margin-bottom:22px; flex-wrap:wrap; }
.ad-stat{
    flex:1; min-width:110px;
    background:var(--bg); border:1px solid var(--gray-200); border-radius:var(--radius-md);
    padding:14px 16px;
}
.ad-stat .num{ font-family:'Sora',sans-serif; font-size:1.5rem; font-weight:800; line-height:1; }
.ad-stat .lbl{ font-size:.72rem; font-weight:600; color:var(--gray-500); text-transform:uppercase; letter-spacing:.05em; margin-top:5px; display:block; }
.ad-stat.stat-active .num{ color:var(--stamp); }
.ad-stat.stat-inactive .num{ color:var(--gray-500); }

.ad-admin-list{ display:flex; flex-direction:column; margin-bottom:26px; border:1px solid var(--gray-200); border-radius:var(--radius-md); overflow:hidden; }
.ad-admin-empty{
    text-align:center; padding:40px 20px; color:var(--gray-500); font-size:.85rem;
}
.ad-admin-empty svg{ color:var(--gray-200); margin-bottom:10px; }

.ad-list-head{
    display:grid; grid-template-columns:auto 1fr auto auto;
    align-items:center; gap:16px; padding:10px 16px;
    background:var(--bg); border-bottom:1px solid var(--gray-200);
    font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--gray-500);
}
@media(max-width:640px){ .ad-list-head{ display:none; } }

.ad-admin-item{
    display:grid; grid-template-columns:auto 1fr auto auto;
    align-items:center; gap:16px;
    padding:13px 16px; background:var(--surface);
    border-bottom:1px solid var(--gray-200);
    position:relative; transition:background .15s ease;
}
.ad-admin-item:last-child{ border-bottom:none; }
.ad-admin-item:hover{ background:var(--bg); }
.ad-admin-item.is-editing{
    background:var(--primary-light);
    box-shadow:inset 3px 0 0 var(--primary);
}
.ad-admin-item.is-inactive .ad-admin-info strong{ color:var(--gray-500); }
.ad-admin-item.is-inactive .ad-admin-thumb,
.ad-admin-item.is-inactive .ad-admin-thumb-fallback{ opacity:.55; }

.ad-admin-thumb{
    width:42px; height:42px; border-radius:9px; object-fit:cover; flex-shrink:0;
    background:var(--bg); border:1px solid var(--gray-200);
}
.ad-admin-thumb-fallback{
    width:42px; height:42px; border-radius:9px; flex-shrink:0;
    background:var(--stamp-light); color:var(--stamp);
    display:flex; align-items:center; justify-content:center;
}
.ad-admin-info{ min-width:0; }
.ad-admin-info strong{ display:block; font-size:.88rem; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ad-admin-info .ad-admin-desc{ font-size:.78rem; color:var(--gray-500); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin-top:1px; }

.ad-status-badge{
    display:inline-flex; align-items:center; gap:5px;
    font-size:.7rem; font-weight:700; padding:4px 10px; border-radius:100px;
    white-space:nowrap;
}
.ad-status-badge::before{ content:""; width:6px; height:6px; border-radius:50%; }
.ad-status-badge.on{ background:var(--stamp-light); color:var(--stamp); }
.ad-status-badge.on::before{ background:var(--stamp); }
.ad-status-badge.off{ background:var(--gray-200); color:var(--gray-500); }
.ad-status-badge.off::before{ background:var(--gray-500); }

.ad-admin-actions{ display:flex; align-items:center; gap:4px; flex-shrink:0; }
.ad-admin-actions .divider{ width:1px; height:18px; background:var(--gray-200); margin:0 4px; }
.icon-btn{
    width:30px; height:30px; border-radius:8px; border:1px solid transparent;
    background:transparent; color:var(--gray-500); cursor:pointer;
    display:flex; align-items:center; justify-content:center; transition:.15s;
    padding:0;
}
.icon-btn:hover{ border-color:var(--gray-200); background:var(--surface); color:var(--primary-dark); }
.icon-btn.danger:hover{ border-color:var(--danger); color:var(--danger); background:var(--surface); }
.icon-btn:disabled{ opacity:.3; cursor:not-allowed; }
.icon-btn:disabled:hover{ border-color:transparent; background:transparent; color:var(--gray-500); }
form.inline-form{ display:inline-flex; margin:0; }

.section-heading{ display:flex; align-items:center; gap:8px; }
.section-heading svg{ color:var(--stamp); flex-shrink:0; }

@media(max-width:640px){
    .ad-admin-item{ grid-template-columns:auto 1fr; row-gap:8px; }
    .ad-admin-item .ad-status-badge{ grid-column:2; justify-self:start; }
    .ad-admin-item .ad-admin-actions{ grid-column:1 / -1; justify-content:flex-end; }
}

@media(max-width:600px){
    .hero{ padding:64px 20px 48px; }
    .hero h1{ font-size:2.1rem; }
    .select-row{ flex-direction:column; }
    .tab-btn{ padding:8px 14px; font-size:.78rem; }
    .admin-wrap{ padding:88px 18px 60px; }
}
