*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:#f5f7fb;color:#172033}a{color:#3157d5;text-decoration:none}button,input,select,textarea{font:inherit}.topbar{height:68px;background:#101524;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:10px}.brand small,.topbar small{display:block;color:#9ca7bd}.brand-mark{width:36px;height:36px;border-radius:10px;background:#5c7cff;display:grid;place-items:center;font-weight:800}.brand-mark.big{width:56px;height:56px;font-size:24px;margin:auto}.top-actions{display:flex;gap:12px;align-items:center}.layout{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 68px)}.sidebar{background:#171d2d;padding:18px 12px}.sidebar nav{display:grid;gap:6px}.sidebar a{color:#c9d1e2;padding:12px 14px;border-radius:10px}.sidebar a:hover,.sidebar .primary-nav{background:#252f49;color:#fff}.content{padding:26px;min-width:0}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.page-head h1{margin:0 0 5px;font-size:28px}.page-head p{margin:0;color:#6f7890}.btn{display:inline-flex;border:1px solid #d7ddea;background:#fff;color:#27304a;border-radius:9px;padding:10px 14px;cursor:pointer;align-items:center;justify-content:center}.btn.primary{background:#3157d5;border-color:#3157d5;color:#fff}.btn.ghost{background:transparent;color:#fff;border-color:#3a435b}.btn.wide{width:100%}.big-btn{padding:14px}.danger-btn{background:#bb3545;color:#fff;border-color:#bb3545}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.stat,.panel{background:#fff;border:1px solid #e5e9f2;border-radius:14px;box-shadow:0 3px 14px rgba(22,35,68,.04)}.stat{padding:20px}.stat small{color:#758099}.stat strong{display:block;font-size:27px;margin:8px 0}.stat span{color:#8c95a9;font-size:13px}.panel{padding:20px;margin-bottom:18px}.panel h2{margin-top:0}.panel-head{display:flex;justify-content:space-between}.grid.two{display:grid;grid-template-columns:1fr 1.4fr;gap:18px}.narrow{max-width:650px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.span2{grid-column:span 2}.stack{display:grid;gap:14px}label{display:grid;gap:6px;font-size:13px;color:#5f6980}input,select,textarea{border:1px solid #d6dce9;border-radius:9px;padding:11px;background:#fff;color:#1b253b;width:100%}textarea{min-height:85px;resize:vertical}.actions,.filters,.search{display:flex;gap:10px;align-items:end}.search{margin-bottom:14px}.search input{flex:1}.filters{flex-wrap:wrap}.filters label{min-width:160px}.filters strong{margin-left:auto;padding:11px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #edf0f6;font-size:14px}th{color:#6b7488;font-size:12px;text-transform:uppercase}td small{display:block;color:#8a94a8;margin-top:3px}.row-actions{display:flex;gap:10px}.row-actions form{display:inline}.link-btn{border:0;background:none;color:#3157d5;padding:0;cursor:pointer}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700}.badge.ok{background:#def6e8;color:#177344}.badge.danger{background:#ffe3e6;color:#a32234}.alert{padding:12px 14px;border-radius:10px;margin-bottom:16px}.alert.success{background:#e2f7ea;color:#16693f}.alert.error{background:#ffe5e7;color:#8e2431}.login-shell{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#101524,#202b49)}.login-card{width:min(430px,92vw);background:#fff;border-radius:18px;padding:32px;box-shadow:0 24px 80px rgba(0,0,0,.25)}.login-brand{text-align:center;margin-bottom:22px}.login-brand h1{margin:12px 0 6px}.login-brand p{color:#778097}.login-card>small{display:block;text-align:center;color:#8b94a6;margin-top:14px}.pos-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(360px,.9fr);gap:18px}.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-height:68vh;overflow:auto}.product-card{border:1px solid #e1e6f0;background:#fff;border-radius:12px;padding:14px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;cursor:pointer;text-align:left}.product-card:hover{border-color:#8097ec;box-shadow:0 5px 16px rgba(49,87,213,.10)}.product-card small,.product-card em{color:#8590a5;font-style:normal}.product-card span{font-weight:800;color:#2448c1}.cart-panel{position:sticky;top:86px;height:fit-content}.empty{text-align:center;padding:30px;color:#98a0b1}.cart-row{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #edf0f6}.qty{display:flex;align-items:center;gap:8px}.qty button,.remove{width:28px;height:28px;border:1px solid #dce2ec;border-radius:7px;background:#fff;cursor:pointer}.remove{color:#b52a3b}.total-line{display:flex;justify-content:space-between;align-items:center;font-size:18px;margin:18px 0}.total-line strong{font-size:28px}.movement{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #edf0f6}.receipt{max-width:760px;margin:auto}.receipt-brand{text-align:center;border-bottom:1px dashed #bbb;padding-bottom:14px;margin-bottom:16px}.receipt-totals{margin-left:auto;max-width:300px}.receipt-totals p{display:flex;justify-content:space-between}.receipt-totals .final{font-size:20px;border-top:1px solid #ddd;padding-top:10px}.receipt-footer{text-align:center;margin-top:28px;color:#778097}@media(max-width:1000px){.layout{grid-template-columns:1fr}.sidebar{display:none}.cards{grid-template-columns:repeat(2,1fr)}.grid.two,.pos-layout{grid-template-columns:1fr}.product-grid{grid-template-columns:repeat(2,1fr)}.cart-panel{position:static}}@media(max-width:600px){.content{padding:16px}.cards,.form-grid,.product-grid{grid-template-columns:1fr}.span2{grid-column:span 1}.page-head{align-items:flex-start;gap:12px;flex-direction:column}.topbar{padding:0 14px}.top-actions span{display:none}}@media print{.topbar,.sidebar,.page-head .btn{display:none!important}.layout{display:block}.content{padding:0}.panel{border:0;box-shadow:none}.receipt{max-width:80mm;font-size:12px}}
.no-print{display:block}.status-open{color:#a36b00}.kpi-positive{color:#177344}.kpi-negative{color:#a32234}@media print{.no-print{display:none!important}.receipt{width:80mm;max-width:80mm;margin:0;padding:3mm}.receipt table{font-size:10px}.receipt th,.receipt td{padding:5px 2px}.content{background:#fff}}
.scanner-strip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#eef4ff;border:1px solid #d9e5ff;border-radius:12px;padding:11px 14px;margin-bottom:16px}.scanner-strip span:nth-child(2){color:#66738d;flex:1}.payment-box{border:1px solid #e2e7f1;border-radius:12px;padding:12px;margin:14px 0}.payment-box h3{margin:0}.payment-row{display:grid;grid-template-columns:1fr 1fr 38px;gap:8px;margin-top:8px}.remove-pay{border:1px solid #e1e5ed;background:#fff;border-radius:8px;color:#b52a3b;cursor:pointer}.payment-summary{display:flex;justify-content:space-between;gap:10px;margin-top:10px;padding-top:10px;border-top:1px dashed #dfe4ed}.modal{position:fixed;inset:0;background:rgba(10,15,28,.72);z-index:100;display:grid;place-items:center;padding:20px}.modal[hidden]{display:none}.modal-card{width:min(720px,96vw);background:#fff;border-radius:16px;padding:18px;box-shadow:0 25px 90px rgba(0,0,0,.35)}.modal-card video{width:100%;max-height:60vh;background:#0c1018;border-radius:12px;margin-top:12px}.scanner-message{padding:10px 0;color:#65718a}.inline-adjust{display:grid;grid-template-columns:80px minmax(140px,1fr) auto;gap:7px;min-width:350px}@media(max-width:600px){.payment-row{grid-template-columns:1fr 1fr 34px}.payment-summary{flex-direction:column}.inline-adjust{min-width:300px;grid-template-columns:70px 1fr}.inline-adjust .btn{grid-column:span 2}}
.input-action{display:grid;grid-template-columns:1fr auto;gap:7px}
.receipt-payments{border-top:1px dashed #bbb;border-bottom:1px dashed #bbb;padding:10px 0;margin-top:12px}.receipt-payments p{display:flex;justify-content:space-between;margin:6px 0}
.camera-btn{background:#3157d5!important;border-color:#3157d5!important;color:#fff!important;font-weight:700}.field-help{color:#7d879a;font-size:11px;margin-top:2px}.product-tools{background:#eef4ff;border:1px solid #d8e4ff;border-radius:10px;padding:10px 12px;display:flex;gap:8px;flex-direction:column;color:#52617c}.product-tools span{font-size:12px}.quick-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}.scanner-focus{outline:3px solid rgba(49,87,213,.18);border-color:#3157d5!important}.camera-guide{position:relative}.camera-guide:after{content:'';position:absolute;left:10%;right:10%;top:48%;height:2px;background:#ff334f;box-shadow:0 0 8px #ff334f}.shortcut-hint{font-size:11px;color:#8791a5}.installments{display:none}.payment-row.credit-selected .installments{display:block}.payment-row.credit-selected{grid-template-columns:1fr .8fr .8fr 38px}@media(max-width:700px){.payment-row.credit-selected{grid-template-columns:1fr 1fr}.payment-row.credit-selected .remove-pay{grid-column:span 2}.page-head .actions{flex-wrap:wrap}}

/* ========================================================
   DREAMLAST PDV - MOBILE DRAWER FINAL
   ======================================================== */

.mobile-menu-btn {
    display: none;
}

.mobile-sidebar-close {
    display: none;
}

.mobile-overlay {
    display: none;
}

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

@media screen and (max-width: 1000px) {

    body.menu-open {
        overflow: hidden !important;
    }

    .layout {
        display: block !important;
        grid-template-columns: none !important;
        min-height: calc(100vh - 68px);
    }

    /* ---------- TOPBAR ---------- */

    .topbar {
        position: sticky !important;
        top: 0 !important;
        z-index: 1000 !important;
    }

    .top-actions {
        display: flex !important;
        align-items: center !important;
        gap: 10px !important;
    }

    .top-actions > span {
        display: none !important;
    }

    .mobile-menu-btn {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;

        width: 44px !important;
        height: 44px !important;

        padding: 0 !important;

        border: 1px solid #3a435b !important;
        border-radius: 10px !important;

        background: #171d2d !important;
        color: #fff !important;

        font-size: 0 !important;
        cursor: pointer !important;
    }

    /* hamburguer feito em CSS */
    .mobile-menu-btn::before {
        content: "☰";
        font-size: 24px;
        line-height: 1;
    }

    /* ---------- SIDEBAR ---------- */

    .layout > aside.sidebar {
        display: block !important;

        position: fixed !important;

        top: 0 !important;
        bottom: 0 !important;
        left: 0 !important;

        width: min(84vw, 310px) !important;
        height: 100vh !important;
        height: 100dvh !important;

        margin: 0 !important;

        padding:
            calc(78px + env(safe-area-inset-top))
            14px
            calc(25px + env(safe-area-inset-bottom))
            14px !important;

        background: #171d2d !important;

        z-index: 9999 !important;

        overflow-y: auto !important;
        overflow-x: hidden !important;

        visibility: hidden !important;

        transform: translate3d(-110%, 0, 0) !important;

        transition:
            transform .25s ease,
            visibility .25s ease !important;

        box-shadow: 15px 0 40px rgba(0,0,0,.35) !important;
    }

    .layout > aside.sidebar.mobile-open {
        visibility: visible !important;
        transform: translate3d(0, 0, 0) !important;
    }

    /* ---------- BOTÃO FECHAR ---------- */

    .mobile-sidebar-close {
        display: flex !important;

        position: absolute !important;

        top: calc(18px + env(safe-area-inset-top)) !important;
        right: 16px !important;

        width: 44px !important;
        height: 44px !important;

        padding: 0 !important;

        align-items: center !important;
        justify-content: center !important;

        border: 1px solid #3a435b !important;
        border-radius: 10px !important;

        background: #252f49 !important;
        color: #fff !important;

        font-size: 22px !important;

        cursor: pointer !important;

        z-index: 2 !important;
    }

    /* ---------- LINKS ---------- */

    .sidebar nav {
        display: grid !important;
        gap: 5px !important;
    }

    .sidebar nav a {
        display: block !important;

        width: 100% !important;

        padding: 12px 14px !important;

        border-radius: 10px !important;

        color: #c9d1e2 !important;
        text-decoration: none !important;

        font-size: 15px !important;
    }

    .sidebar nav a:hover,
    .sidebar nav a:active,
    .sidebar nav .primary-nav {
        background: #252f49 !important;
        color: #fff !important;
    }

    /* ---------- OVERLAY ---------- */

    .mobile-overlay {
        display: block !important;

        position: fixed !important;

        top: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;

        background: rgba(5,9,18,.65) !important;

        z-index: 9000 !important;

        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;

        transition:
            opacity .25s ease,
            visibility .25s ease !important;
    }

    .mobile-overlay.mobile-open {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    /* ---------- CONTEÚDO ---------- */

    .content {
        width: 100% !important;
        min-width: 0 !important;
    }
}

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

@media screen and (max-width: 600px) {

    .topbar {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    .brand {
        min-width: 0;
    }

    .brand strong {
        font-size: 17px;
    }

    .brand small {
        font-size: 12px;
    }

    .content {
        padding: 16px !important;
    }
}

/* ===========================
   DESKTOP
   =========================== */

@media screen and (min-width: 1001px) {

    .mobile-menu-btn,
    .mobile-sidebar-close,
    .mobile-overlay {
        display: none !important;
    }

}

