:root{--pp-bg:#0d0d0d;--pp-panel:#171717;--pp-panel2:#202020;--pp-text:#f7f3ec;--pp-muted:#b9b3aa;--pp-gold:#d99a3d;--pp-orange:#f26b21;--pp-line:#34312d;--pp-ok:#48b879;--pp-danger:#db6464}*{box-sizing:border-box}body.pp-body{margin:0;background:linear-gradient(145deg,#0b0b0b,#17120e);color:var(--pp-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;min-height:100vh}.pp-shell{max-width:1180px;margin:auto;padding:36px 20px}.pp-auth{max-width:980px}.pp-layout{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.pp-nav{position:sticky;top:0;height:100vh;padding:28px 18px;background:#101010;border-right:1px solid var(--pp-line);display:flex;flex-direction:column;gap:7px}.pp-nav:before{content:'CHURRAS EXPRESS SÃO JOÃO';color:var(--pp-gold);font-weight:900;letter-spacing:.08em;font-size:.78rem;margin:0 10px 18px}.pp-nav a,.pp-nav button{display:block;width:100%;text-align:left;color:#ddd;text-decoration:none;background:transparent;border:0;border-radius:10px;padding:11px 12px;font:inherit;cursor:pointer}.pp-nav a:hover,.pp-nav button:hover{background:#231b15;color:#fff}.pp-main{padding:36px;max-width:1250px;width:100%}.pp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.pp-head h1{font-size:clamp(1.8rem,3vw,2.8rem);margin:.25rem 0}.pp-head p,.pp-lead{color:var(--pp-muted);line-height:1.65}.pp-eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--pp-gold);font-size:.76rem;font-weight:800}.pp-card{background:rgba(25,25,25,.96);border:1px solid var(--pp-line);border-radius:18px;padding:24px;box-shadow:0 18px 50px #0005}.pp-card--wide{padding:34px}.pp-card h2{margin-top:0}.pp-grid{display:grid;gap:18px}.pp-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.pp-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.pp-form h2{margin-top:28px;border-top:1px solid var(--pp-line);padding-top:24px}.pp-form h2:first-child{border-top:0;margin-top:0;padding-top:0}.pp-form label{display:flex;flex-direction:column;gap:8px;color:#ddd;font-weight:650;font-size:.93rem}.pp-form input,.pp-form select,.pp-form textarea,.pp-head select,.pp-copy{width:100%;border:1px solid #3a3632;background:#111;color:#fff;border-radius:10px;padding:12px 13px;font:inherit}.pp-form textarea{resize:vertical}.pp-button{border:0;background:linear-gradient(135deg,var(--pp-orange),#ca4214);color:#fff;font-weight:850;border-radius:11px;padding:13px 18px;cursor:pointer;margin-top:18px}.pp-notice,.pp-success,.pp-error{padding:15px 17px;border-radius:12px;margin:18px 0;line-height:1.5}.pp-notice{background:#211a12;border:1px solid #594222;color:#f4dfbf}.pp-success{background:#10261a;border:1px solid #245a3a}.pp-error{background:#2b1515;border:1px solid #713535}.pp-details{border:1px solid var(--pp-line);border-radius:12px;padding:14px;margin-top:18px}.pp-details summary{cursor:pointer;font-weight:750}.pp-details .pp-grid{margin-top:15px}.pp-check{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:10px!important;margin-top:18px}.pp-check input,.pp-checks input{width:auto}.pp-checks{display:grid;gap:10px;margin:18px 0}.pp-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.pp-stats article{background:linear-gradient(145deg,#1b1b1b,#121212);border:1px solid var(--pp-line);padding:18px;border-radius:15px}.pp-stats span,.pp-stats small{display:block;color:var(--pp-muted)}.pp-stats strong{display:block;font-size:2rem;color:#fff;margin:7px 0}.pp-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.pp-actions a{background:#251c15;border:1px solid #4b3523;color:#f6d29f;text-decoration:none;padding:13px;border-radius:10px}.pp-steps{padding-left:20px;line-height:1.9;color:#ddd}.pp-status,.pp-pill{font-size:.75rem;padding:6px 9px;border-radius:999px;background:#2a241c;color:#f2c98f}.pp-list-item{display:flex;justify-content:space-between;gap:20px;padding:17px 0;border-bottom:1px solid var(--pp-line)}.pp-list-item small{display:block;color:var(--pp-muted);margin-top:4px}.pp-link-danger{background:none;border:0;color:#ef8c8c;cursor:pointer}.pp-inline-form{display:grid;grid-template-columns:160px 1fr 1fr auto;gap:12px;align-items:end;margin-bottom:20px}.pp-inline-form .pp-button{margin:0}.pp-table-wrap{overflow:auto}.pp-table{width:100%;border-collapse:collapse}.pp-table th,.pp-table td{padding:13px 10px;border-bottom:1px solid var(--pp-line);text-align:left;white-space:nowrap}.pp-table th{font-size:.78rem;color:var(--pp-gold);text-transform:uppercase;letter-spacing:.07em}.pp-copy{min-width:320px;padding:8px}.pp-chart-bars{display:grid;gap:8px}.pp-bar-row{display:grid;grid-template-columns:60px 1fr 45px;gap:10px;align-items:center}.pp-bar{height:12px;background:linear-gradient(90deg,var(--pp-orange) calc(var(--v)*1%),#2a2a2a 0);border-radius:999px}.pp-dl{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.pp-dl div{background:#111;padding:14px;border-radius:10px}.pp-dl dt{color:var(--pp-muted);font-size:.8rem}.pp-dl dd{margin:4px 0 0;font-weight:800}.pp-coupon{text-align:center}.pp-code{font-size:clamp(1.5rem,5vw,3rem);font-weight:950;letter-spacing:.08em;background:#0c0c0c;border:1px dashed var(--pp-gold);padding:22px;border-radius:14px;margin:25px 0;color:#ffd79c}@media(max-width:900px){.pp-layout{grid-template-columns:1fr}.pp-nav{height:auto;position:relative;display:flex;flex-direction:row;overflow:auto;border-right:0;border-bottom:1px solid var(--pp-line)}.pp-nav:before{display:none}.pp-nav a,.pp-nav button{white-space:nowrap}.pp-main{padding:24px 16px}.pp-stats{grid-template-columns:repeat(2,1fr)}.pp-grid--2,.pp-grid--3,.pp-inline-form{grid-template-columns:1fr}.pp-actions{grid-template-columns:1fr}}@media(max-width:520px){.pp-stats{grid-template-columns:1fr}.pp-head{display:block}.pp-card--wide,.pp-card{padding:19px}}

/* =========================================================
   PATCH-019 - CADASTRO PUBLICO: CPF/CNPJ, MASCARAS E ERROS
   ========================================================= */

.pp-field-help{
    color:#8f8a84;
    font-size:.78rem;
    line-height:1.45;
    font-weight:500;
}

.pp-field-message,
.pp-client-message{
    display:block;
    margin-top:1px;
    color:#ff9696;
    font-size:.78rem;
    line-height:1.4;
    font-weight:700;
}

.pp-field-message--standalone{
    margin:8px 0 0;
}

.pp-form label.pp-field-error input,
.pp-form label.pp-field-error select,
.pp-form label.pp-field-error textarea,
.pp-form label.pp-client-invalid input,
.pp-form label.pp-client-invalid select,
.pp-form label.pp-client-invalid textarea{
    border-color:#db6464 !important;
    box-shadow:0 0 0 3px rgba(219,100,100,.13);
}

.pp-form label.pp-field-error,
.pp-form label.pp-client-invalid{
    color:#ffd0d0;
}

.pp-error{
    display:flex;
    flex-direction:column;
    gap:4px;
}

.pp-password-wrap{
    position:relative;
    width:100%;
}

.pp-password-wrap input{
    padding-left:46px !important;
}

.pp-password-eye{
    position:absolute;
    left:8px;
    top:50%;
    transform:translateY(-50%);
    z-index:2;
    width:32px;
    height:32px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    border:0;
    border-radius:8px;
    background:#24211e;
    color:#f0a65c;
    font-size:18px;
    line-height:1;
    cursor:pointer;
}

.pp-password-eye:hover,
.pp-password-eye:focus-visible{
    background:#33261c;
    outline:1px solid #f26b21;
}

#document-number{
    letter-spacing:.02em;
}


/* =========================================================
   PATCH-020 - LOGIN + MINHA EMPRESA / PORTAL DO PARCEIRO
   ========================================================= */

.pp-nav a.active{
    background:linear-gradient(90deg,rgba(242,107,33,.20),rgba(217,154,61,.08));
    border:1px solid rgba(242,107,33,.40);
    color:#fff;
    box-shadow:inset 3px 0 0 var(--pp-orange);
}

.pp-login-card{
    max-width:560px;
    margin:7vh auto 0;
}

.pp-login-card h1{
    margin:.35rem 0 .4rem;
    font-size:clamp(2rem,5vw,3rem);
}

.pp-login-form{
    display:grid;
    gap:18px;
    margin-top:24px;
}

.pp-button--full{
    width:100%;
}

.pp-auth-link{
    margin:20px 0 0;
    color:var(--pp-muted);
    text-align:center;
}

.pp-auth-link a{
    color:#f0b46d;
    font-weight:800;
}

.pp-password-eye svg{
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
}

.pp-password-eye.is-visible{
    color:#fff;
    background:#3a2b20;
}

.pp-profile-section{
    margin-bottom:18px;
}

.pp-profile-section h2{
    margin:0 0 20px;
    padding-bottom:13px;
    border-bottom:1px solid var(--pp-line);
    color:#fff;
    font-size:1.2rem;
}

.pp-profile-section .pp-form label + label,
.pp-profile-section > label + label{
    margin-top:18px;
}

.pp-profile-logo-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) 220px;
    gap:20px;
    align-items:start;
    margin-top:20px;
}

.pp-profile-logo-preview{
    display:flex;
    width:220px;
    height:150px;
    align-items:center;
    justify-content:center;
    padding:16px;
    overflow:hidden;
    border:1px solid var(--pp-line);
    border-radius:14px;
    background:#111;
    color:var(--pp-muted);
    text-align:center;
}

.pp-profile-logo-preview img{
    display:block;
    width:auto;
    height:auto;
    max-width:188px;
    max-height:116px;
    object-fit:contain;
}

.pp-profile-help{
    margin:-8px 0 18px;
    color:var(--pp-muted);
    font-size:.84rem;
    line-height:1.5;
}

.pp-profile-savebar{
    position:sticky;
    bottom:12px;
    z-index:5;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-top:20px;
    padding:16px 18px;
    border:1px solid #4a3928;
    border-radius:14px;
    background:rgba(18,15,12,.96);
    box-shadow:0 14px 36px rgba(0,0,0,.34);
    backdrop-filter:blur(8px);
}

.pp-profile-savebar strong,
.pp-profile-savebar span{
    display:block;
}

.pp-profile-savebar span{
    margin-top:3px;
    color:var(--pp-muted);
    font-size:.78rem;
}

.pp-profile-savebar .pp-button{
    flex:0 0 auto;
    margin:0;
}

@media(max-width:760px){
    .pp-profile-logo-grid{
        grid-template-columns:1fr;
    }

    .pp-profile-logo-preview{
        width:100%;
    }

    .pp-profile-savebar{
        position:static;
        align-items:stretch;
        flex-direction:column;
    }

    .pp-profile-savebar .pp-button{
        width:100%;
    }
}
