*{box-sizing:border-box}
:root{--blue:#1769e0;--blue-dark:#0c4eaf;--green:#14894b;--bg:#f5f7fb;--text:#172033;--muted:#6b7280;--line:#e5e7eb;--danger:#b42318}
html{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}
body{margin:0} a{color:inherit}
.topbar{min-height:70px;padding:12px 28px;color:#fff;background:linear-gradient(90deg,var(--blue-dark),var(--blue));display:flex;justify-content:space-between;align-items:center;gap:20px}
.topbar strong,.topbar span,.topbar small{display:block}.topbar strong{font-size:20px}.topbar span,.topbar small{opacity:.9}.topbar-user{text-align:right}
.app-shell{min-height:calc(100vh - 112px);display:grid;grid-template-columns:230px 1fr}
.sidebar{padding:22px 14px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:4px}
.sidebar a,.sidebar .menu-title{padding:11px 12px;border-radius:8px;text-decoration:none}
.sidebar a:hover,.sidebar a.active{background:#eaf2ff;color:var(--blue-dark)}
.sidebar .menu-title{margin-top:12px;padding-bottom:4px;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase}
.sidebar a.disabled{color:#9aa3b2;pointer-events:none}.sidebar a.logout{margin-top:auto;color:var(--danger)}
.content,.simple-page,.employee-page{padding:30px}
.page-heading,.employee-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}
.page-heading h1,.employee-heading h1{margin:0 0 4px}.page-heading p,.employee-heading p{margin:0;color:var(--muted)}
.badge{padding:8px 12px;border-radius:999px;font-size:12px;font-weight:800}.badge.admin{color:#0b4ca8;background:#e6f0ff}.badge.employee{color:#116b3d;background:#e7f7ee}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.stat-card,.welcome-panel,.table-card,.placeholder-card,.employee-action{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.stat-card{padding:20px}.stat-card small,.stat-card span{display:block;color:var(--muted)}.stat-card strong{display:block;margin:8px 0;font-size:24px}.welcome-panel{margin-top:18px;padding:26px}
.employee-page{max-width:1050px;margin:0 auto;min-height:calc(100vh - 112px)}.employee-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.employee-action{min-height:190px;padding:28px;text-decoration:none;transition:.18s ease}.employee-action:hover{transform:translateY(-3px);border-color:#bdd4f7}
.employee-action>span{display:block;margin-bottom:18px;font-size:34px}.employee-action strong,.employee-action small{display:block}.employee-action strong{font-size:22px}.employee-action small{margin-top:6px;color:var(--muted)}.employee-logout{display:inline-block;margin-top:26px;color:var(--danger)}
.table-card{overflow:hidden}table{width:100%;border-collapse:collapse}th,td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left}th{background:#f8fafc}
.back-link{display:inline-block;margin-bottom:14px;color:var(--blue-dark)}.placeholder-card{max-width:760px;padding:34px}.placeholder-icon{font-size:38px}
.security-note{margin-top:24px;padding:16px;border-radius:10px;background:#f4f8ff}
.error-page{min-height:70vh;padding:40px 20px;display:grid;place-content:center;text-align:center}.error-page>strong{font-size:72px;color:var(--blue)}
.footer{padding:14px 24px;text-align:center;color:var(--muted);background:#fff;border-top:1px solid var(--line)}
/* =========================================================
   SGEWEB 2.0 - LOGIN
   ========================================================= */

   .login-page{
    min-height:100vh;
    margin:0;
    display:grid;
    place-items:center;
    padding:28px;
    background:
        radial-gradient(circle at 15% 20%,rgba(23,105,224,.18),transparent 34%),
        radial-gradient(circle at 85% 80%,rgba(12,78,175,.14),transparent 32%),
        linear-gradient(135deg,#eef5ff 0%,#f7faff 50%,#e8f2ff 100%);
}

.login-container{
    width:min(1000px,100%);
    min-height:560px;
    display:grid;
    grid-template-columns:1fr 1fr;
    overflow:hidden;
    background:#fff;
    border:1px solid rgba(203,213,225,.8);
    border-radius:24px;
    box-shadow:
        0 30px 80px rgba(15,23,42,.16),
        0 8px 25px rgba(15,23,42,.06);
}


/* =========================
   LADO DA LOGO
   ========================= */

.login-brand{
    position:relative;
    min-height:560px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:50px;
    overflow:hidden;
    background:
        radial-gradient(circle at center,rgba(255,255,255,.95),rgba(239,247,255,.96)),
        linear-gradient(145deg,#ffffff,#eaf4ff);
}

.login-brand::before{
    content:"";
    position:absolute;
    width:360px;
    height:360px;
    border-radius:50%;
    background:rgba(23,105,224,.06);
    filter:blur(2px);
}

.login-logo{
    position:relative;
    z-index:1;
    display:block;
    width:min(420px,100%);
    height:auto;
    object-fit:contain;
}


/* =========================
   FORMULÁRIO
   ========================= */

.login-form-area{
    min-height:560px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:55px 65px 30px;
    background:#fff;
}

.login-form-content{
    width:100%;
    max-width:390px;
    margin:auto;
}

.login-heading{
    margin-bottom:30px;
    text-align:center;
}

.login-heading h1{
    margin:0 0 8px;
    color:#0f2854;
    font-size:30px;
    font-weight:800;
    letter-spacing:-.5px;
}

.login-heading p{
    margin:0;
    color:#718096;
    font-size:14px;
}


/* =========================
   CAMPOS
   ========================= */

.login-field{
    display:block;
    margin-top:18px;
}

.login-field > span{
    display:block;
    margin-bottom:7px;
    color:#334155;
    font-size:13px;
    font-weight:800;
}

.login-field input{
    width:100%;
    height:50px;
    padding:0 15px;
    border:1px solid #cbd5e1;
    border-radius:10px;
    outline:none;
    background:#fff;
    color:#172033;
    font:inherit;
    transition:
        border-color .18s ease,
        box-shadow .18s ease;
}

.login-field input::placeholder{
    color:#94a3b8;
}

.login-field input:focus{
    border-color:var(--blue);
    box-shadow:0 0 0 3px rgba(23,105,224,.12);
}


/* =========================
   SENHA / OLHINHO
   ========================= */

.password-wrapper{
    position:relative;
}

.password-wrapper input{
    padding-right:52px;
}

.password-toggle{
    position:absolute;
    top:50%;
    right:9px;
    width:38px;
    height:38px;
    padding:8px;
    transform:translateY(-50%);
    display:grid;
    place-items:center;
    border:0;
    border-radius:8px;
    background:transparent;
    color:#64748b;
    cursor:pointer;
}

.password-toggle:hover{
    color:var(--blue);
    background:#eef5ff;
}

.password-toggle:focus{
    outline:2px solid rgba(23,105,224,.25);
}

.password-toggle svg{
    width:21px;
    height:21px;
    fill:currentColor;
}


/* =========================
   BOTÃO
   ========================= */

.login-submit{
    width:100%;
    min-height:50px;
    margin-top:26px;
    border:0;
    border-radius:10px;
    color:#fff;
    background:linear-gradient(
        135deg,
        var(--blue),
        var(--blue-dark)
    );
    font-size:15px;
    font-weight:900;
    cursor:pointer;
    box-shadow:0 8px 18px rgba(23,105,224,.22);
    transition:
        transform .15s ease,
        box-shadow .15s ease;
}

.login-submit:hover{
    transform:translateY(-1px);
    box-shadow:0 11px 24px rgba(23,105,224,.28);
}

.login-submit:active{
    transform:translateY(0);
}


/* =========================
   ERRO
   ========================= */

.login-form-content .alert{
    margin:0 0 18px;
    padding:12px 14px;
    border:1px solid #fed7aa;
    border-radius:9px;
    color:#9a3412;
    background:#fff7ed;
    font-size:13px;
}


/* =========================
   RODAPÉ
   ========================= */

.login-footer{
    margin-top:35px;
    color:#94a3b8;
    text-align:center;
    font-size:11px;
}


/* =========================
   TABLET
   ========================= */

@media(max-width:820px){

    .login-page{
        padding:18px;
    }

    .login-container{
        width:min(560px,100%);
        grid-template-columns:1fr;
    }

    .login-brand{
        min-height:auto;
        padding:35px 45px 25px;
    }

    .login-logo{
        width:min(330px,85%);
    }

    .login-form-area{
        min-height:auto;
        padding:35px 45px 25px;
    }

}


/* =========================
   CELULAR
   ========================= */

@media(max-width:520px){

    .login-page{
        display:block;
        padding:0;
        background:#fff;
    }

    .login-container{
        width:100%;
        min-height:100vh;
        border:0;
        border-radius:0;
        box-shadow:none;
    }

    .login-brand{
        padding:28px 28px 12px;
    }

    .login-brand::before{
        width:220px;
        height:220px;
    }

    .login-logo{
        width:min(300px,90%);
    }

    .login-form-area{
        padding:22px 24px 25px;
    }

    .login-form-content{
        max-width:none;
    }

    .login-heading{
        margin-bottom:22px;
    }

    .login-heading h1{
        font-size:26px;
    }

    .login-field input{
        height:50px;
        font-size:16px;
    }

    .login-submit{
        min-height:52px;
        font-size:16px;
    }

    .login-footer{
        margin-top:28px;
    }

}
@media(max-width:900px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell{grid-template-columns:190px 1fr}}
@media(max-width:680px){.topbar{padding:12px 16px}.topbar>div:first-child span{display:none}.app-shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.content,.simple-page,.employee-page{padding:18px}.cards,.employee-grid{grid-template-columns:1fr}.page-heading,.employee-heading{align-items:flex-start}.table-card{overflow-x:auto}}
.stat-warning{color:#d97706}
.dashboard-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:18px;margin-top:18px}
.dashboard-panel{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px rgba(15,23,42,.05);overflow:hidden}
.panel-heading{padding:20px 20px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}
.panel-heading h2{margin:0 0 5px;font-size:17px}.panel-heading p{margin:0;color:var(--muted);font-size:13px}
.count-badge{min-width:34px;height:34px;padding:0 9px;display:grid;place-items:center;border-radius:999px;background:#eaf2ff;color:var(--blue-dark);font-weight:800}
.count-badge.warning{background:#fff1e6;color:#d97706}
.responsive-table{overflow:auto;max-height:360px}
.danger-text{color:var(--danger);font-weight:800}
.status{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}
.status.critical{color:#b42318;background:#fee4e2}
@media(max-width:1050px){.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:680px){.dashboard-panel{border-radius:12px}.panel-heading{padding:16px}}
/* ETAPA 3 - PRODUTOS */
.primary-action,.secondary-action,.table-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    border-radius:9px;
    font-weight:800;
}
.primary-action{
    padding:12px 16px;
    border:0;
    background:var(--blue);
    color:#fff;
    cursor:pointer;
}
.secondary-action{
    padding:12px 16px;
    color:var(--blue-dark);
    background:#eef4ff;
}
.table-action{
    padding:7px 10px;
    color:var(--blue-dark);
    background:#eef4ff;
    font-size:12px;
}
.success-message{
    margin-bottom:16px;
    padding:13px 15px;
    border-radius:9px;
    color:#116b3d;
    background:#e7f7ee;
    border:1px solid #bce8ce;
}
.form-card{
    max-width:920px;
    padding:28px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 8px 24px rgba(15,23,42,.05);
}
.form-heading h1{margin:0 0 7px}
.form-heading p{margin:0;color:var(--muted);line-height:1.5}
.form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    margin-top:24px;
}
.field{display:block}
.field-wide{grid-column:span 2}
.field span{
    display:block;
    margin-bottom:7px;
    font-size:13px;
    font-weight:800;
}
.field input{
    width:100%;
    padding:12px 13px;
    border:1px solid #ccd3dd;
    border-radius:9px;
    outline:none;
    font:inherit;
}
.field input:focus{
    border-color:var(--blue);
    box-shadow:0 0 0 3px rgba(23,105,224,.12);
}
.field small{
    display:block;
    margin-top:6px;
    color:var(--muted);
    line-height:1.35;
}
.switch-field{
    display:flex;
    align-items:center;
    gap:9px;
    margin-top:20px;
    font-weight:700;
}
.switch-field input{
    width:18px;
    height:18px;
}
.form-actions{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    margin-top:26px;
}
.status.active{color:#116b3d;background:#e7f7ee}
.status.inactive{color:#7f1d1d;background:#fee2e2}
@media(max-width:680px){
    .form-card{padding:20px}
    .form-grid{grid-template-columns:1fr}
    .field-wide{grid-column:span 1}
    .form-actions{flex-direction:column-reverse}
    .form-actions .primary-action,.form-actions .secondary-action{width:100%}
    .page-heading{flex-direction:column}
    .page-heading>.primary-action{width:100%}
}
/* ETAPA 4 - ESTOQUE */
.stock-panel{margin-top:0}
.stock-history{margin-top:18px}
.stock-help{
    margin-top:20px;
    padding:14px 16px;
    border-radius:10px;
    color:#475569;
    background:#f8fafc;
    border:1px solid var(--line);
    line-height:1.7;
}
.field select{
    width:100%;
    padding:12px 13px;
    border:1px solid #ccd3dd;
    border-radius:9px;
    outline:none;
    background:#fff;
    font:inherit;
}
.field select:focus{
    border-color:var(--blue);
    box-shadow:0 0 0 3px rgba(23,105,224,.12);
}
.movement-type{
    display:inline-flex;
    align-items:center;
    padding:5px 9px;
    border-radius:999px;
    font-size:11px;
    font-weight:800;
    white-space:nowrap;
}
.movement-type.entrada{
    color:#116b3d;
    background:#e7f7ee;
}
.movement-type.saida_manual{
    color:#9a3412;
    background:#fff1e8;
}
.movement-type.venda{
    color:#0b4ca8;
    background:#e6f0ff;
}
.movement-type.cancelamento_venda{
    color:#6d28d9;
    background:#f3e8ff;
}
.movement-type.ajuste{
    color:#854d0e;
    background:#fef9c3;
}
.flash-message{
    transition:opacity .3s ease, transform .3s ease;
}
.flash-message.flash-hide{
    opacity:0;
    transform:translateY(-6px);
}
@media(max-width:680px){
    .stock-form-page .form-card{padding:20px}
}
/* ETAPA 5A - PDV */
.pdv-page{
    min-height:calc(100vh - 112px);
    padding:22px;
}
.pdv-top{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:16px;
}
.pdv-top h1{
    margin:3px 0 4px;
    font-size:30px;
}
.pdv-top p{
    margin:0;
    color:var(--muted);
}
.pdv-total-top{
    text-align:right;
}
.pdv-total-top span{
    display:block;
    color:var(--muted);
    font-size:12px;
}
.pdv-total-top strong{
    display:block;
    margin-top:4px;
    font-size:30px;
    color:var(--green);
}
.pdv-code-card{
    padding:18px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 8px 24px rgba(15,23,42,.05);
}
.pdv-code-card label{
    display:block;
    margin-bottom:7px;
    font-size:13px;
    font-weight:800;
}
.pdv-code-row{
    display:grid;
    grid-template-columns:1fr auto;
    gap:10px;
}
.pdv-code-row input{
    width:100%;
    min-height:52px;
    padding:12px 15px;
    border:2px solid var(--blue);
    border-radius:10px;
    outline:none;
    font-size:20px;
    font-weight:700;
}
.pdv-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 300px;
    gap:18px;
    margin-top:18px;
}
.pdv-cart,
.pdv-checkout{
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 8px 24px rgba(15,23,42,.05);
}
.pdv-cart{
    overflow:hidden;
}
.pdv-empty{
    padding:38px !important;
    text-align:center;
    color:var(--muted);
}
.qty-form{
    display:flex;
    align-items:center;
    gap:6px;
}
.qty-form input{
    width:70px;
    padding:8px;
    border:1px solid #ccd3dd;
    border-radius:8px;
    text-align:center;
}
.qty-form button{
    width:34px;
    height:34px;
    border:0;
    border-radius:8px;
    background:#eaf2ff;
    color:var(--blue-dark);
    font-weight:900;
    cursor:pointer;
}
.remove-button{
    padding:7px 9px;
    border:0;
    border-radius:8px;
    color:#b42318;
    background:#fee4e2;
    font-weight:800;
    cursor:pointer;
}
.pdv-checkout{
    padding:20px;
}
.pdv-checkout-total{
    padding:18px;
    margin-bottom:18px;
    border-radius:12px;
    color:#fff;
    background:var(--green);
    text-align:center;
}
.pdv-checkout-total span{
    display:block;
    opacity:.9;
}
.pdv-checkout-total strong{
    display:block;
    margin-top:4px;
    font-size:32px;
}
.pdv-finish-button,
.pdv-clear-button{
    width:100%;
    min-height:48px;
    border:0;
    border-radius:10px;
    font-weight:900;
    cursor:pointer;
}
.pdv-finish-button{
    margin-top:14px;
    color:#fff;
    background:var(--green);
}
.pdv-clear-button{
    margin-top:10px;
    color:#7f1d1d;
    background:#fee2e2;
}
.pdv-finish-button:disabled,
.pdv-clear-button:disabled{
    opacity:.45;
    cursor:not-allowed;
}
.pdv-shortcuts{
    margin-top:16px;
    padding:13px;
    border-radius:10px;
    background:#f8fafc;
    color:var(--muted);
    font-size:12px;
}
.pdv-shortcuts strong,
.pdv-shortcuts span{
    display:block;
}
.pdv-shortcuts span{
    margin-top:4px;
}
@media(max-width:900px){
    .pdv-layout{
        grid-template-columns:1fr;
    }
    .pdv-checkout{
        order:-1;
    }
}
@media(max-width:680px){
    .pdv-page{
        padding:14px;
    }
    .pdv-top{
        align-items:flex-start;
    }
    .pdv-total-top strong{
        font-size:24px;
    }
    .pdv-code-row{
        grid-template-columns:1fr;
    }
    .pdv-code-row .primary-action{
        width:100%;
    }
    .pdv-cart .responsive-table{
        max-height:none;
    }
}
/* =========================================================
   SGEWEB 2.0 - ETAPA 5B - PAGAMENTO MISTO / TROCO
   Acrescentar ao FINAL de public/css/app.css
   ========================================================= */

   .pdv-payment-title {
    font-weight: 700;
    margin-bottom: 10px;
}

.pdv-payment-title small {
    display: block;
    font-weight: 400;
    color: #667085;
    margin-top: 3px;
}

.pdv-payment-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.pdv-payment-grid .field,
#pdv-received-wrap {
    margin-bottom: 0;
}

.pdv-payment-grid input,
#pdv-valor-recebido {
    width: 100%;
}

#pdv-received-wrap {
    display: block;
    margin-top: 12px;
}

#pdv-received-wrap[hidden] {
    display: none !important;
}

.pdv-payment-summary {
    margin: 14px 0;
    padding: 12px;
    border: 1px solid #e4e7ec;
    border-radius: 10px;
    background: #f8fafc;
}

.pdv-payment-summary > div {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    padding: 4px 0;
}

.pdv-payment-summary span {
    color: #667085;
}

.pdv-payment-summary strong {
    white-space: nowrap;
}

#pdv-change-row strong {
    color: #15803d;
    font-size: 1.08rem;
}

@media (max-width: 700px) {
    .pdv-payment-grid {
        grid-template-columns: 1fr;
    }
}
/* =========================================================
   SGEWEB 2.0 - ETAPA 5C - DESCONTO POR SENHA
   Acrescentar ao FINAL de public/css/app.css
   ========================================================= */

   .discount-open-button{
    border:1px solid #f59e0b;
    background:#fff7ed;
    color:#9a3412;
    font-weight:800;
    padding:8px 12px;
    border-radius:9px;
    cursor:pointer;
}

.discount-approved{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
    padding:11px 16px;
    background:#fff7ed;
    border-bottom:1px solid #fed7aa;
    color:#9a3412;
}

.discount-approved strong,
.discount-approved span{
    display:block;
}

.discount-approved span{
    margin-top:2px;
    font-size:12px;
}

.discount-approved button{
    border:0;
    background:#ffedd5;
    color:#9a3412;
    font-weight:800;
    padding:7px 10px;
    border-radius:8px;
    cursor:pointer;
}

.pdv-checkout-total small{
    display:block;
    margin-top:4px;
    opacity:.9;
}

.discount-modal[hidden]{
    display:none !important;
}

.discount-modal{
    position:fixed;
    inset:0;
    z-index:9999;
    display:grid;
    place-items:center;
    padding:18px;
}

.discount-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(15,23,42,.58);
}

.discount-modal-card{
    position:relative;
    z-index:1;
    width:min(430px,100%);
    padding:22px;
    background:#fff;
    border-radius:16px;
    box-shadow:0 24px 70px rgba(15,23,42,.25);
}

.discount-modal-heading{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:16px;
    margin-bottom:18px;
}

.discount-modal-heading h2{
    margin:0 0 5px;
}

.discount-modal-heading p{
    margin:0;
    color:var(--muted);
    line-height:1.45;
}

.discount-modal-heading>button{
    border:0;
    background:transparent;
    font-size:28px;
    line-height:1;
    cursor:pointer;
    color:#64748b;
}

.discount-modal-card .field{
    margin-bottom:13px;
}

.discount-confirm{
    width:100%;
    margin-top:4px;
}

.discount-config-card{
    max-width:760px;
}

.discount-config-status{
    margin:20px 0;
    padding:12px 14px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#f8fafc;
}

.discount-config-status strong{
    margin-left:5px;
}

.discount-config-status .configured{
    color:#116b3d;
}

.discount-config-status .not-configured{
    color:#9a3412;
}

@media(max-width:680px){
    .discount-approved{
        align-items:flex-start;
        flex-direction:column;
    }

    .discount-approved form,
    .discount-approved button{
        width:100%;
    }
}
/* ETAPA 5D */
.sale-detail-card{max-width:1050px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px rgba(15,23,42,.05)}.sale-detail-heading{display:flex;justify-content:space-between;gap:20px;margin-bottom:20px}.sale-detail-heading h1{margin:0 0 5px}.sale-detail-heading p{margin:0;color:var(--muted)}.sale-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}.sale-summary-grid>div{padding:14px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.sale-summary-grid span,.sale-summary-grid strong{display:block}.sale-summary-grid span{color:var(--muted);font-size:12px}.sale-summary-grid strong{margin-top:5px;font-size:18px}.payment-detail,.cancel-sale-box,.cancelled-note{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:10px}.payment-detail h2,.cancel-sale-box h2{margin:0 0 10px}.payment-detail>div{display:flex;justify-content:space-between;padding:6px 0}.cancel-sale-box{border-color:#fecaca;background:#fff7f7}.cancel-sale-box h2,.cancelled-note{color:#991b1b}.cancel-sale-button{margin-top:12px;width:100%;min-height:46px;border:0;border-radius:9px;color:#fff;background:#b42318;font-weight:900;cursor:pointer}.discount-pin-input{-webkit-text-security:disc}@media(max-width:760px){.sale-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.sale-summary-grid{grid-template-columns:1fr}.sale-detail-card{padding:18px}}
/* =========================================================
   SGEWEB 2.0 - ETAPA 6 - MEU FECHAMENTO
   Acrescentar ao FINAL de public/css/app.css
   ========================================================= */

   .closing-page{
    max-width:1250px;
    margin:0 auto;
}

.closing-note{
    display:flex;
    justify-content:space-between;
    gap:16px;
    margin-bottom:16px;
    padding:13px 15px;
    border:1px solid #bfdbfe;
    border-radius:10px;
    background:#eff6ff;
    color:#1e40af;
}

.closing-note strong,
.closing-note span{
    display:block;
}

.closing-summary{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}

.closing-card{
    padding:18px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:13px;
    box-shadow:0 8px 24px rgba(15,23,42,.05);
}

.closing-card small,
.closing-card span{
    display:block;
    color:var(--muted);
}

.closing-card strong{
    display:block;
    margin:7px 0 3px;
    font-size:24px;
}

.closing-card-main{
    border-color:#bbf7d0;
    background:#f0fdf4;
}

.closing-card-main strong{
    color:var(--green);
    font-size:28px;
}

.closing-sales{
    margin-top:18px;
}

.closing-sales .panel-heading{
    border-bottom:1px solid var(--line);
}

.closing-payment-cell{
    min-width:220px;
}

@media(max-width:900px){
    .closing-summary{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:620px){
    .closing-summary{
        grid-template-columns:1fr;
    }

    .closing-note{
        flex-direction:column;
    }

    .closing-card strong{
        font-size:22px;
    }

    .closing-card-main strong{
        font-size:26px;
    }
}

/* =========================================================
   SGEWEB 2.0 - ETAPA 7 - FECHAMENTO ADMIN POR USUÁRIO
   Acrescentar ao FINAL de public/css/app.css
   ========================================================= */

   .closing-admin-filter{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:18px;
    margin-bottom:16px;
    padding:16px;
    border:1px solid #bfdbfe;
    border-radius:12px;
    background:#f8fbff;
}

.closing-admin-filter form{
    width:min(430px,100%);
}

.closing-admin-filter .field{
    margin:0;
}

.closing-admin-filter select{
    width:100%;
    padding:11px 12px;
    border:1px solid #cbd5e1;
    border-radius:9px;
    background:#fff;
    font:inherit;
}

.closing-admin-filter p{
    margin:0;
    color:var(--muted);
    font-size:12px;
}

@media(max-width:680px){
    .closing-admin-filter{
        align-items:stretch;
        flex-direction:column;
    }

    .closing-admin-filter form{
        width:100%;
    }
}
/* =========================================================
   CORREÇÃO ETAPA 7 - SELETOR DE DATA
   Acrescentar ao FINAL de public/css/app.css
   ========================================================= */

   .closing-filter-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    align-items:end;
}

.closing-filter-grid input[type="date"]{
    width:100%;
    padding:11px 12px;
    border:1px solid #cbd5e1;
    border-radius:9px;
    background:#fff;
    font:inherit;
}

@media(max-width:680px){
    .closing-filter-grid{
        grid-template-columns:1fr;
    }
}
/* ETAPA 8A - COMANDAS */
.command-page,.command-new-page,.command-detail-page{max-width:1250px;margin:0 auto}.command-actions-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.command-action-card{display:flex;flex-direction:column;min-height:165px;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 8px 24px rgba(15,23,42,.05)}.command-action-card.primary{border-color:#bfdbfe;background:#eff6ff}.command-action-card.disabled{opacity:.62;cursor:not-allowed}.command-action-icon{display:grid;place-items:center;width:42px;height:42px;margin-bottom:14px;border-radius:10px;background:#eaf2ff;color:#1d4ed8;font-size:20px;font-weight:900}.command-action-card strong{font-size:16px}.command-action-card small{display:block;margin-top:7px;color:var(--muted);line-height:1.45}.command-open-list{scroll-margin-top:20px}.command-new-card{max-width:720px}.command-detail-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px}.command-detail-heading h1{margin:4px 0 5px}.command-detail-heading p{margin:0;color:var(--muted)}.command-current-total{text-align:right}.command-current-total span{display:block;color:var(--muted);font-size:12px}.command-current-total strong{display:block;margin-top:4px;color:var(--green);font-size:30px}.command-product-card{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.05)}.command-code-row{display:grid;grid-template-columns:1fr auto;gap:10px}.command-code-row input{min-height:50px;border:2px solid var(--blue);font-size:20px;font-weight:700}.command-product-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(130px,1fr) minmax(120px,.8fr) minmax(130px,.8fr);gap:12px;align-items:end;margin-top:14px}.command-stock-preview{min-height:72px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#f8fafc}.command-stock-preview span,.command-stock-preview strong{display:block}.command-stock-preview span{color:var(--muted);font-size:12px}.command-stock-preview strong{margin-top:6px;font-size:20px}.command-insert-button{width:100%;min-height:48px;margin-top:14px;border:0;border-radius:10px;background:var(--green);color:#fff;font-weight:900;cursor:pointer}.command-insert-button:disabled{opacity:.45;cursor:not-allowed}.command-product-message{margin-top:12px;padding:10px 12px;border-radius:9px;background:#ecfdf3;color:#166534}.command-product-message.error{background:#fef2f2;color:#b42318}.command-items-card{margin-top:18px}.command-item-edit{display:grid;grid-template-columns:105px 80px minmax(95px,auto) 80px;gap:7px;align-items:center}.command-item-edit input{width:100%;padding:7px 8px;border:1px solid #cbd5e1;border-radius:7px}.command-item-edit button{padding:8px 10px;border:0;border-radius:7px;background:#eaf2ff;color:#1d4ed8;font-weight:800;cursor:pointer}@media(max-width:1000px){.command-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.command-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.command-actions-grid{grid-template-columns:1fr}.command-detail-heading{align-items:flex-start;flex-direction:column}.command-current-total{text-align:left}.command-code-row{grid-template-columns:1fr}.command-product-grid{grid-template-columns:1fr}.command-item-edit{grid-template-columns:1fr 1fr;min-width:290px}}
/* ETAPA 8B - PESQUISAR COMANDA ABERTA */
.command-search-page,.command-account-page{max-width:1250px;margin:0 auto}
.command-search-card{margin-bottom:18px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.command-search-row{display:grid;grid-template-columns:1fr auto auto;gap:10px}
.command-account-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px}
.command-account-heading h1{margin:5px 0}.command-account-heading p{margin:0;color:var(--muted)}
.command-account-total{text-align:right}.command-account-total span{display:block;color:var(--muted);font-size:12px;font-weight:800}.command-account-total strong{display:block;margin-top:4px;color:var(--green);font-size:34px}
.command-account-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.command-account-summary article{padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff}.command-account-summary small,.command-account-summary strong{display:block}.command-account-summary small{color:var(--muted)}.command-account-summary strong{margin-top:7px;font-size:18px}
.command-account-summary .total{border-color:#bbf7d0;background:#f0fdf4}.command-account-summary .total strong{color:var(--green);font-size:22px}
.command-account-actions{display:flex;align-items:center;gap:14px;margin-top:16px}.command-pdf-next{color:var(--muted);font-size:12px}
@media(max-width:800px){.command-account-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.command-search-row{grid-template-columns:1fr}.command-account-heading{align-items:flex-start;flex-direction:column}.command-account-total{text-align:left}.command-account-summary{grid-template-columns:1fr}.command-account-actions{align-items:stretch;flex-direction:column}}
/* =========================================================
   SGEWEB 2.0 - ETAPA 8C - FECHAR COMANDA
   Acrescentar ao FINAL de public/css/app.css
   ========================================================= */

   .command-close-card{
    border-color:#bbf7d0;
    background:#f0fdf4;
}

.command-close-page,
.command-finish-page{
    max-width:1250px;
    margin:0 auto;
}

.command-close-select-card{
    margin-bottom:16px;
    padding:16px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
}

.command-close-select-card select{
    width:100%;
    min-height:44px;
    padding:9px 11px;
    border:1px solid #cbd5e1;
    border-radius:9px;
    background:#fff;
    font:inherit;
}

.command-close-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 320px;
    gap:16px;
    align-items:start;
}

.command-close-payment-card{
    position:sticky;
    top:16px;
    padding:16px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
    box-shadow:0 8px 24px rgba(15,23,42,.05);
}

.command-close-total{
    padding:16px;
    border-radius:12px;
    background:#159447;
    color:#fff;
    text-align:center;
}

.command-close-total span,
.command-close-total strong{
    display:block;
}

.command-close-total span{
    font-size:12px;
}

.command-close-total strong{
    margin-top:5px;
    font-size:30px;
}

.command-payment-heading{
    margin:16px 0 10px;
}

.command-payment-heading strong,
.command-payment-heading small{
    display:block;
}

.command-payment-heading small{
    margin-top:3px;
    color:var(--muted);
}

.command-payment-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.command-payment-grid label span,
.command-received-field span{
    display:block;
    margin-bottom:5px;
    font-size:12px;
    font-weight:800;
}

.command-payment-grid input,
.command-received-field input{
    width:100%;
    padding:10px;
    border:1px solid #cbd5e1;
    border-radius:8px;
    font:inherit;
}

.command-received-field{
    display:block;
    margin-top:10px;
}

.command-payment-summary{
    margin-top:14px;
    padding:10px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#f8fafc;
}

.command-payment-summary div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:4px 0;
}

.command-payment-summary span{
    color:var(--muted);
}

.command-change{
    color:#15803d;
}

.command-close-submit{
    width:100%;
    min-height:46px;
    margin-top:14px;
    border:0;
    border-radius:9px;
    background:#159447;
    color:#fff;
    font-weight:900;
    cursor:pointer;
}

.command-close-submit:disabled{
    opacity:.45;
    cursor:not-allowed;
}

.command-close-rule,
.command-finish-note{
    margin-top:12px;
    padding:10px;
    border-radius:8px;
    background:#f8fafc;
    color:var(--muted);
    font-size:11px;
    line-height:1.45;
}

.command-close-empty{
    padding:30px;
    border:1px dashed #cbd5e1;
    border-radius:14px;
    text-align:center;
    color:var(--muted);
}

.command-finish-card{
    max-width:760px;
    margin-top:14px;
    padding:24px;
    border:1px solid var(--line);
    border-radius:16px;
    background:#fff;
    box-shadow:0 8px 24px rgba(15,23,42,.05);
}

.command-finish-card h1{
    margin:12px 0 4px;
}

.command-finish-card > p{
    margin:0;
    color:var(--muted);
}

.command-finish-badge{
    display:inline-block;
    padding:6px 9px;
    border-radius:999px;
    background:#dcfce7;
    color:#166534;
    font-size:11px;
    font-weight:900;
}

.command-finish-total{
    margin-top:18px;
    padding:18px;
    border-radius:12px;
    background:#f0fdf4;
    border:1px solid #bbf7d0;
}

.command-finish-total small,
.command-finish-total strong{
    display:block;
}

.command-finish-total strong{
    margin-top:5px;
    color:#15803d;
    font-size:32px;
}

.command-finish-payments{
    margin-top:16px;
    padding:14px;
    border:1px solid var(--line);
    border-radius:10px;
}

.command-finish-payments h2{
    margin:0 0 8px;
    font-size:16px;
}

.command-finish-payments div{
    display:flex;
    justify-content:space-between;
    gap:14px;
    padding:5px 0;
}

.command-finish-payments .change{
    margin-top:6px;
    padding-top:9px;
    border-top:1px solid var(--line);
    color:#15803d;
}

.command-finish-actions{
    display:flex;
    gap:10px;
    margin-top:18px;
}

@media(max-width:850px){
    .command-close-layout{
        grid-template-columns:1fr;
    }

    .command-close-payment-card{
        position:static;
    }
}

@media(max-width:520px){
    .command-payment-grid{
        grid-template-columns:1fr;
    }

    .command-finish-actions{
        flex-direction:column;
    }
}
/* =========================================================
   SGEWEB 2.0 - ETAPA 8D - COMANDAS FECHADAS / REABRIR
   Acrescentar ao FINAL de public/css/app.css
   ========================================================= */

   .command-closed-page,
   .command-closed-detail{
       max-width:1250px;
       margin:0 auto;
   }
   
   .command-closed-filter-card{
       margin-bottom:18px;
       padding:16px;
       border:1px solid var(--line);
       border-radius:14px;
       background:#fff;
   }
   
   .command-closed-filter{
       display:grid;
       grid-template-columns:210px minmax(260px,1fr) auto auto;
       gap:10px;
       align-items:end;
   }
   
   .command-closed-filter input{
       width:100%;
       min-height:44px;
       padding:9px 11px;
       border:1px solid #cbd5e1;
       border-radius:9px;
       background:#fff;
       font:inherit;
   }
   
   .command-closed-summary{
       display:grid;
       grid-template-columns:repeat(4,minmax(0,1fr));
       gap:12px;
       margin-bottom:18px;
   }
   
   .command-closed-summary article{
       padding:16px;
       border:1px solid var(--line);
       border-radius:12px;
       background:#fff;
   }
   
   .command-closed-summary small,
   .command-closed-summary strong{
       display:block;
   }
   
   .command-closed-summary small{
       color:var(--muted);
   }
   
   .command-closed-summary strong{
       margin-top:7px;
       font-size:18px;
   }
   
   .command-closed-summary .total{
       border-color:#bbf7d0;
       background:#f0fdf4;
   }
   
   .command-closed-summary .total strong{
       color:#15803d;
       font-size:22px;
   }
   
   .command-closed-payments{
       margin-top:16px;
       padding:16px;
       border:1px solid var(--line);
       border-radius:12px;
       background:#fff;
   }
   
   .command-closed-payments h2{
       margin:0 0 10px;
       font-size:17px;
   }
   
   .command-closed-payments div{
       display:flex;
       align-items:center;
       justify-content:space-between;
       gap:14px;
       padding:5px 0;
   }
   
   .command-closed-actions{
       display:flex;
       align-items:center;
       gap:10px;
       margin-top:16px;
   }
   
   .command-closed-actions form{
       margin:0;
   }
   
   .command-reopen-button{
       min-height:42px;
       padding:9px 14px;
       border:1px solid #fecaca;
       border-radius:9px;
       background:#fff1f2;
       color:#b42318;
       font-weight:900;
       cursor:pointer;
   }
   
   .command-reopen-button:hover{
       background:#ffe4e6;
   }
   
   .command-reopen-rule{
       margin-top:14px;
       padding:12px;
       border:1px solid #fde68a;
       border-radius:10px;
       background:#fffbeb;
       color:#854d0e;
       line-height:1.5;
       font-size:12px;
   }
   
   @media(max-width:850px){
       .command-closed-filter{
           grid-template-columns:1fr 1fr;
       }
   
       .command-closed-summary{
           grid-template-columns:repeat(2,minmax(0,1fr));
       }
   }
   
   @media(max-width:600px){
       .command-closed-filter,
       .command-closed-summary{
           grid-template-columns:1fr;
       }
   
       .command-closed-actions{
           align-items:stretch;
           flex-direction:column;
       }
   
       .command-closed-actions form,
       .command-reopen-button{
           width:100%;
       }
   }
   /* ETAPA 9A - RELATORIO DE VENDAS */
.report-page{max-width:1250px;margin:0 auto}.report-filter-card{margin-bottom:18px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}.report-filter{display:grid;grid-template-columns:220px 220px auto;gap:10px;align-items:end}.report-filter input{width:100%;min-height:44px;padding:9px 11px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;font:inherit}.report-cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:18px}.report-card{padding:15px;border:1px solid var(--line);border-radius:12px;background:#fff}.report-card small,.report-card strong,.report-card span{display:block}.report-card small,.report-card span{color:var(--muted)}.report-card strong{margin-top:6px;font-size:20px}.report-card span{margin-top:4px;font-size:12px}.report-card.total{border-color:#bbf7d0;background:#f0fdf4}.report-card.total strong{color:#15803d}@media(max-width:1050px){.report-cards{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.report-filter{grid-template-columns:1fr 1fr}.report-filter .primary-action{grid-column:1/-1}.report-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:460px){.report-filter,.report-cards{grid-template-columns:1fr}.report-filter .primary-action{grid-column:auto}}
/* =========================================================
   SGEWEB 2.0 - ETAPA 9B - FORMAS DE PAGAMENTO
   Acrescentar ao FINAL de public/css/app.css
   ========================================================= */

   .report-tabs{
    display:flex;
    gap:8px;
    margin:0 0 16px;
}

.report-tabs a{
    display:inline-flex;
    align-items:center;
    min-height:38px;
    padding:8px 13px;
    border:1px solid #dbe3ef;
    border-radius:9px;
    background:#fff;
    color:#37506e;
    text-decoration:none;
    font-weight:800;
}

.report-tabs a.active{
    border-color:#b9d2ff;
    background:#eaf2ff;
    color:#0b57d0;
}

.report-filter-payments{
    grid-template-columns:190px 190px 220px minmax(150px,1fr);
}

.report-filter select{
    width:100%;
    min-height:44px;
    padding:9px 11px;
    border:1px solid #cbd5e1;
    border-radius:9px;
    background:#fff;
    font:inherit;
}

.report-payment-cards{
    grid-template-columns:repeat(5,minmax(0,1fr));
}

.report-filter-total{
    font-size:20px;
    color:#15803d;
}

@media(max-width:900px){
    .report-filter-payments{
        grid-template-columns:1fr 1fr;
    }

    .report-payment-cards{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:600px){
    .report-tabs{
        flex-direction:column;
    }

    .report-tabs a{
        justify-content:center;
    }

    .report-filter-payments,
    .report-payment-cards{
        grid-template-columns:1fr;
    }
}
/* =========================================================
   SGEWEB 2.0 - ETAPA 9C - RELATORIO POR FUNCIONARIO
   Acrescentar ao FINAL de public/css/app.css
   ========================================================= */

   .report-filter-employees{
    grid-template-columns:190px 190px minmax(250px,1fr) auto;
}

.report-filter-employees select{
    width:100%;
    min-height:44px;
    padding:9px 11px;
    border:1px solid #cbd5e1;
    border-radius:9px;
    background:#fff;
    font:inherit;
}

.report-employee-cards{
    grid-template-columns:repeat(6,minmax(0,1fr));
}

@media(max-width:1000px){
    .report-filter-employees{
        grid-template-columns:1fr 1fr;
    }

    .report-employee-cards{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:600px){
    .report-filter-employees,
    .report-employee-cards{
        grid-template-columns:1fr;
    }
}

/* =========================================================
   SGEWEB 2.0 - ACABAMENTO DESKTOP / NOTEBOOK
   PDV + DASHBOARD - DENSIDADE CONFORTAVEL SEM ZOOM
   Mantem o comportamento mobile existente.
   ========================================================= */

@media (min-width: 901px) {

    /* Estrutura geral: ganha altura útil sem reduzir a leitura */
    .topbar{
        min-height:56px;
        padding:8px 20px;
    }

    .topbar strong{
        font-size:18px;
    }

    .footer{
        padding:8px 20px;
        font-size:12px;
    }

    .app-shell{
        min-height:calc(100vh - 89px);
    }

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

    .content{
        padding:18px 22px;
    }

    .content .page-heading{
        margin-bottom:14px;
    }

    .content .cards{
        gap:12px;
    }

    .content .stat-card{
        padding:14px 16px;
    }

    .content .stat-card strong{
        margin:5px 0;
        font-size:21px;
    }

    .dashboard-grid{
        gap:12px;
        margin-top:12px;
    }

    .dashboard-panel .panel-heading{
        padding:13px 15px 10px;
    }

    .dashboard-panel th,
    .dashboard-panel td{
        padding:9px 12px;
    }

    .dashboard-panel .responsive-table{
        max-height:calc(100vh - 365px);
    }

    .welcome-panel{
        margin-top:12px;
        padding:14px 18px;
    }

    /* =========================
       PDV
       ========================= */

    .pdv-page{
        min-height:calc(100vh - 89px);
        padding:10px 18px 12px;
    }

    .pdv-top{
        align-items:center;
        margin-bottom:8px;
    }

    .pdv-top .back-link{
        margin-bottom:4px;
        font-size:12px;
    }

    .pdv-top h1{
        margin:0 0 2px;
        font-size:25px;
    }

    .pdv-top p{
        font-size:12px;
    }

    .pdv-total-top strong{
        margin-top:1px;
        font-size:26px;
    }

    .pdv-code-card{
        padding:10px 12px;
        border-radius:11px;
    }

    .pdv-code-card label{
        margin-bottom:4px;
        font-size:12px;
    }

    .pdv-code-row input{
        min-height:44px;
        padding:8px 12px;
        font-size:18px;
    }

    .pdv-code-row .primary-action{
        padding:9px 14px;
    }

    .pdv-layout{
        grid-template-columns:minmax(0,1fr) 292px;
        gap:12px;
        margin-top:10px;
        align-items:start;
    }

    .pdv-cart,
    .pdv-checkout{
        border-radius:11px;
    }

    .pdv-cart .panel-heading{
        padding:11px 13px 8px;
    }

    .pdv-cart .panel-heading h2{
        font-size:15px;
    }

    .pdv-cart .panel-heading p{
        font-size:11px;
    }

    .pdv-cart .responsive-table{
        /* A pagina principal fica parada; somente a lista cresce e rola. */
        max-height:calc(100vh - 305px);
        overflow:auto;
    }

    .pdv-cart th,
    .pdv-cart td{
        padding:9px 11px;
    }

    .pdv-empty{
        padding:24px !important;
    }

    .qty-form input{
        width:62px;
        padding:6px;
    }

    .qty-form button{
        width:30px;
        height:30px;
    }

    .remove-button{
        padding:6px 8px;
    }

    .pdv-checkout{
        padding:11px 12px;
    }

    .pdv-checkout-total{
        padding:9px 10px;
        margin-bottom:9px;
        border-radius:9px;
    }

    .pdv-checkout-total span,
    .pdv-checkout-total small{
        font-size:11px;
    }

    .pdv-checkout-total strong{
        margin-top:1px;
        font-size:25px;
    }

    .pdv-payment-title{
        margin-bottom:6px;
        font-size:13px;
    }

    .pdv-payment-title small{
        margin-top:1px;
        font-size:10px;
    }

    .pdv-payment-grid{
        gap:6px 8px;
    }

    .pdv-payment-grid .field span,
    #pdv-received-wrap .field span,
    #pdv-received-wrap > span{
        margin-bottom:3px;
        font-size:11px;
    }

    .pdv-payment-grid input,
    #pdv-valor-recebido{
        padding:7px 8px;
        min-height:36px;
    }

    #pdv-received-wrap{
        margin-top:7px;
    }

    .pdv-payment-summary{
        margin:8px 0;
        padding:7px 9px;
        font-size:12px;
    }

    .pdv-payment-summary > div{
        padding:2px 0;
    }

    .pdv-finish-button{
        min-height:40px;
        margin-top:7px;
    }

    .pdv-clear-button{
        min-height:36px;
        margin-top:6px;
    }

    .pdv-shortcuts{
        margin-top:7px;
        padding:7px 9px;
        font-size:10px;
    }

    .discount-approved{
        padding:7px 12px;
    }
}

/*
 * Em notebooks com pouca altura, eliminamos somente informacao auxiliar.
 * Nenhum controle operacional e escondido.
 */
@media (min-width: 901px) and (max-height: 800px) {

    .pdv-shortcuts{
        display:none;
    }

    .welcome-panel{
        display:none;
    }

    .dashboard-panel .responsive-table{
        max-height:calc(100vh - 330px);
    }

    .pdv-cart .responsive-table{
        max-height:calc(100vh - 285px);
    }
}

/* Telas desktop mais largas aproveitam melhor o espaço horizontal. */
@media (min-width: 1280px) {

    .pdv-layout{
        grid-template-columns:minmax(0,1fr) 310px;
    }
}
/* =========================================================
   SGEWEB 2.0 - CADASTRO DE USUARIOS DA EMPRESA
   Acrescentar ao FINAL de public/css/app.css
   ========================================================= */

   .user-admin-page{
    max-width:1100px;
    margin:0 auto;
}

.user-form-card{
    max-width:760px;
}

.status.user-admin{
    color:#0b4ca8;
    background:#e6f0ff;
}

.status.user-employee{
    color:#116b3d;
    background:#e7f7ee;
}

.user-admin-note,
.user-self-note{
    margin-top:16px;
    padding:12px 14px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#f8fafc;
    color:var(--muted);
    line-height:1.45;
    font-size:12px;
}

.user-self-note{
    border-color:#bfdbfe;
    background:#eff6ff;
    color:#1e40af;
}
/* =========================================================
   SGEWEB 2.0 - OLHINHO DO CAMPO SENHA / USUARIOS
   Acrescentar ao FINAL de public/css/app.css
   ========================================================= */

   .password-field-wrap{
    position:relative;
}

.password-field-wrap input{
    width:100%;
    padding-right:46px;
}

.password-toggle{
    position:absolute;
    top:50%;
    right:7px;
    transform:translateY(-50%);
    width:34px;
    height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:0;
    border-radius:8px;
    background:transparent;
    cursor:pointer;
    font-size:17px;
    line-height:1;
}

.password-toggle:hover,
.password-toggle:focus-visible{
    background:#eef2f7;
    outline:none;
}

/* =========================================================
   SGEWEB 2.0 - ACABAMENTO-COMANDAS-DESKTOP-V1-20260902
   COMANDAS - ACABAMENTO DESKTOP / NOTEBOOK EM 100%
   Objetivo: ganhar altura util em monitores menores sem
   alterar o comportamento mobile ja aprovado.
   ========================================================= */

@media (min-width: 1001px) {
    .command-page{padding-top:16px;padding-bottom:14px;}
    .command-page .page-heading{margin-bottom:14px;}
    .command-page .back-link{margin-bottom:8px;font-size:13px;}
    .command-page .page-heading h1{margin-bottom:2px;}
    .command-page .page-heading p{font-size:14px;}
    .command-actions-grid{gap:12px;margin-bottom:12px;}
    .command-action-card{min-height:132px;padding:14px 16px;border-radius:12px;}
    .command-action-icon{width:36px;height:36px;margin-bottom:9px;border-radius:9px;font-size:18px;}
    .command-action-card strong{font-size:15px;}
    .command-action-card small{margin-top:5px;line-height:1.35;font-size:12px;}
    .command-open-list .panel-heading{padding:12px 15px 9px;}
    .command-open-list .panel-heading h2{margin-bottom:3px;font-size:16px;}
    .command-open-list .panel-heading p{font-size:12px;}
    .command-open-list .count-badge{min-width:32px;height:32px;}
    .command-open-list th,.command-open-list td{padding:9px 14px;}
    .command-open-list .responsive-table{max-height:calc(100vh - 345px);overflow:auto;}
}

/* Em notebooks/monitores com pouca altura, ganhamos mais linhas sem esconder controles. */
@media (min-width: 1001px) and (max-height: 800px) {
    .command-page{padding-top:12px;}
    .command-page .page-heading{margin-bottom:10px;}
    .command-actions-grid{margin-bottom:10px;}
    .command-action-card{min-height:120px;padding:12px 14px;}
    .command-action-icon{width:32px;height:32px;margin-bottom:7px;font-size:17px;}
    .command-action-card small{font-size:11px;line-height:1.3;}
    .command-open-list th,.command-open-list td{padding:8px 12px;}
    .command-open-list .responsive-table{max-height:calc(100vh - 315px);}
}

/* =========================================================
   SGEWEB 2.0 - ACABAMENTO-FINAL-DESKTOP-V1-20260902
   FUNILARIA FINAL - DESKTOP / NOTEBOOK EM 100%
   Telas: Meu fechamento + Estoque + Relatório de Vendas
   Mobile preservado.
   ========================================================= */

@media (min-width: 1001px) {

    /* -----------------------------------------------------
       1) MEU FECHAMENTO
       ----------------------------------------------------- */
    .closing-page{
        padding-top:18px;
        padding-bottom:14px;
    }

    .closing-page .page-heading{
        margin-bottom:14px;
    }

    .closing-page .back-link{
        margin-bottom:8px;
        font-size:13px;
    }

    .closing-page .page-heading h1{
        margin-bottom:2px;
    }

    .closing-page .page-heading p{
        font-size:14px;
    }

    .closing-admin-filter{
        gap:12px;
        margin-bottom:10px;
        padding:11px 13px;
        align-items:end;
    }

    .closing-admin-filter form{
        width:auto;
        flex:1 1 auto;
    }

    .closing-filter-grid{
        grid-template-columns:minmax(210px,1.35fr) 190px 190px minmax(150px,.8fr);
        gap:10px;
        align-items:end;
    }

    .closing-admin-filter select,
    .closing-filter-grid input[type="date"]{
        min-height:42px;
        padding:8px 10px;
    }

    .closing-filter-grid .primary-action{
        min-height:42px;
        padding:9px 14px;
    }

    .closing-admin-filter p{
        max-width:390px;
        line-height:1.35;
    }

    .closing-note{
        margin-bottom:10px;
        padding:9px 12px;
        gap:12px;
        font-size:13px;
    }

    .closing-summary{
        gap:10px;
    }

    .closing-card{
        padding:12px 14px;
        border-radius:11px;
    }

    .closing-card strong{
        margin:4px 0 2px;
        font-size:21px;
    }

    .closing-card-main strong{
        font-size:24px;
    }

    .closing-card small,
    .closing-card span{
        font-size:12px;
    }

    .closing-sales{
        margin-top:10px;
    }

    .closing-sales .panel-heading{
        padding:12px 15px 9px;
    }

    .closing-sales th,
    .closing-sales td{
        padding:9px 12px;
    }

    .closing-sales .responsive-table{
        max-height:calc(100vh - 440px);
        overflow:auto;
    }


    /* -----------------------------------------------------
       2) ESTOQUE
       A :has() limita o ajuste somente à página de estoque.
       ----------------------------------------------------- */
    .simple-page:has(.stock-panel){
        padding-top:18px;
        padding-bottom:14px;
    }

    .simple-page:has(.stock-panel) .page-heading{
        margin-bottom:14px;
    }

    .simple-page:has(.stock-panel) .back-link{
        margin-bottom:8px;
        font-size:13px;
    }

    .simple-page:has(.stock-panel) .page-heading h1{
        margin-bottom:2px;
    }

    .simple-page:has(.stock-panel) .page-heading p{
        font-size:14px;
    }

    .simple-page:has(.stock-panel) .stock-history{
        margin-top:10px;
    }

    .simple-page:has(.stock-panel) .stock-panel .panel-heading,
    .simple-page:has(.stock-panel) .stock-history .panel-heading{
        padding:11px 15px 8px;
    }

    .simple-page:has(.stock-panel) .stock-panel .panel-heading h2,
    .simple-page:has(.stock-panel) .stock-history .panel-heading h2{
        margin-bottom:2px;
        font-size:16px;
    }

    .simple-page:has(.stock-panel) .stock-panel .panel-heading p,
    .simple-page:has(.stock-panel) .stock-history .panel-heading p{
        font-size:12px;
    }

    .simple-page:has(.stock-panel) .stock-panel th,
    .simple-page:has(.stock-panel) .stock-panel td,
    .simple-page:has(.stock-panel) .stock-history th,
    .simple-page:has(.stock-panel) .stock-history td{
        padding:8px 12px;
    }

    .simple-page:has(.stock-panel) .stock-panel .responsive-table{
        max-height:360px;
    }

    .simple-page:has(.stock-panel) .stock-history .responsive-table{
        max-height:calc(100vh - 360px);
        overflow:auto;
    }


    /* -----------------------------------------------------
       3) RELATÓRIO DE VENDAS
       Ajuste somente na aba Vendas; outras abas ficam intactas.
       ----------------------------------------------------- */
    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]){
        padding-top:18px;
        padding-bottom:14px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .page-heading{
        margin-bottom:12px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .back-link{
        margin-bottom:8px;
        font-size:13px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .page-heading h1{
        margin-bottom:2px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .page-heading p{
        font-size:14px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .report-tabs{
        margin-bottom:10px;
        gap:7px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .report-tabs a{
        min-height:34px;
        padding:6px 11px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .report-filter-card{
        margin-bottom:10px;
        padding:11px 13px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .report-filter input{
        min-height:40px;
        padding:7px 10px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .report-filter .primary-action{
        min-height:40px;
        padding:8px 14px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .report-cards{
        gap:8px;
        margin-bottom:10px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .report-card{
        padding:11px 12px;
        border-radius:10px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .report-card strong{
        margin-top:4px;
        font-size:18px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .report-card span{
        margin-top:2px;
        font-size:11px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .table-card .panel-heading{
        padding:12px 15px 9px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .table-card th,
    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .table-card td{
        padding:9px 12px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .table-card .responsive-table{
        max-height:calc(100vh - 395px);
        overflow:auto;
    }
}


/* Monitores/notebooks com menor altura útil */
@media (min-width: 1001px) and (max-height: 800px) {

    .closing-page .page-heading,
    .simple-page:has(.stock-panel) .page-heading,
    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .page-heading{
        margin-bottom:9px;
    }

    .closing-admin-filter{
        padding:9px 11px;
        margin-bottom:8px;
    }

    .closing-note{
        padding:7px 10px;
        margin-bottom:8px;
    }

    .closing-card{
        padding:10px 12px;
    }

    .closing-sales{
        margin-top:8px;
    }

    .closing-sales th,
    .closing-sales td{
        padding:8px 10px;
    }

    .simple-page:has(.stock-panel) .stock-panel th,
    .simple-page:has(.stock-panel) .stock-panel td,
    .simple-page:has(.stock-panel) .stock-history th,
    .simple-page:has(.stock-panel) .stock-history td{
        padding:7px 10px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .report-card{
        padding:9px 11px;
    }

    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .table-card th,
    .report-page:has(.report-tabs a.active[href="/relatorios/vendas"]) .table-card td{
        padding:8px 10px;
    }


}
/* ACABAMENTO - BOTÃO SAIR DO PAINEL DO FUNCIONÁRIO */
.employee-logout{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-top:26px;
    padding:10px 16px;
    border:1px solid #fecaca;
    border-radius:9px;
    background:#fff;
    color:var(--danger);
    text-decoration:none;
    font-weight:800;
    transition:.18s ease;
}

.employee-logout:hover{
    background:#fff1f2;
    border-color:#fca5a5;
}

@media(max-width:680px){
    .employee-logout{
        width:100%;
    }
}


