/* PATCH SCANNER QR PULITO */
.qrscan-inline{
    display:flex;
    gap:8px;
    align-items:center;
    flex-wrap:wrap;
}

.qrscan-inline input{
    flex:1 1 220px;
    min-width:0;
}

.qrscan-button{
    white-space:nowrap;
    flex:0 0 auto;
}

.qrscan-hint{
    margin-top:6px;
    color:#666;
    font-size:12px;
    font-weight:700;
    line-height:1.35;
}

.qrscan-overlay{
    position:fixed;
    inset:0;
    z-index:10000;
    background:rgba(0,0,0,.72);
    display:flex;
    align-items:flex-start;
    justify-content:center;
    padding:12px;
    overflow:auto;
}

.qrscan-box{
    width:min(460px,calc(100vw - 24px));
    max-width:calc(100vw - 24px);
    max-height:calc(100vh - 24px);
    overflow:auto;
    background:#fff;
    border-radius:12px;
    border:1px solid #ddd;
    box-shadow:0 24px 80px rgba(0,0,0,.35);
    padding:12px;
    box-sizing:border-box;
    position:relative;
}

.qrscan-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    margin-bottom:10px;
}

.qrscan-head strong{
    font-size:18px;
    line-height:1.2;
}

.qrscan-close{
    border:1px solid #999;
    background:#eee;
    color:#333;
    border-radius:6px;
    padding:7px 10px;
    font-weight:900;
    cursor:pointer;
    flex:0 0 auto;
}

.qrscan-camera{
    position:relative;
    background:#111;
    border-radius:10px;
    overflow:hidden;
    width:100%;
    aspect-ratio:1 / 1;
    max-height:56vh;
}

.qrscan-video{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    background:#111;
}

.qrscan-frame{
    position:absolute;
    left:50%;
    top:50%;
    width:min(230px,60vw);
    height:min(230px,60vw);
    transform:translate(-50%,-50%);
    border:4px solid #155e63;
    border-radius:18px;
    pointer-events:none;
    box-shadow:0 0 0 9999px rgba(0,0,0,.10);
}

.qrscan-manual{
    margin-top:12px;
    padding:10px;
    border:1px solid #ddd;
    border-radius:10px;
    background:#f7f7f7;
}

.qrscan-manual label{
    display:block;
    font-weight:900;
    margin-bottom:6px;
}

.qrscan-manual-row{
    display:flex;
    gap:8px;
}

.qrscan-manual-input{
    flex:1;
    min-width:0;
}

.qrscan-manual-ok{
    flex:0 0 auto;
}

.qrscan-help{
    margin:10px 0 0;
    color:#333;
    font-weight:800;
    text-align:center;
    line-height:1.35;
}

.qrscan-error{
    margin:10px 0 0;
    padding:10px;
    background:#fff2e5;
    border:1px solid #9ec9cb;
    color:#0f4f53;
    border-radius:8px;
    font-weight:800;
    line-height:1.35;
    overflow-wrap:anywhere;
}

/* Mantiene il menu mobile */
.mobile-topbar{
    display:none;
    position:sticky;
    top:0;
    z-index:9000;
    height:56px;
    align-items:center;
    gap:12px;
    padding:8px 12px;
    background:linear-gradient(#4b4b4b,#333);
    color:#fff;
    border-bottom:3px solid #155e63;
}
.mobile-topbar strong{font-size:20px;color:#cce7e8;text-shadow:0 1px 1px #000}
.mobile-sale{margin-left:auto;color:#fff!important;text-decoration:none!important;font-weight:900;padding:8px 12px;border-radius:9px;background:linear-gradient(#2f7a7e,#155e63);position:relative;z-index:9002}
.menu-toggle{width:44px;height:40px;border:1px solid rgba(0,0,0,.3);border-radius:9px;background:linear-gradient(#666,#3f3f3f);display:grid;place-items:center;gap:3px;padding:8px;cursor:pointer;position:relative;z-index:9002}
.menu-toggle span{display:block;width:22px;height:3px;background:#fff;border-radius:99px}
.side-backdrop{display:none}

@media(max-width:980px){
    .mobile-topbar{display:flex!important}
    .side{position:fixed!important;top:0!important;left:0!important;bottom:0!important;width:min(86vw,320px)!important;height:100vh!important;max-height:100vh!important;padding-top:14px!important;overflow-y:auto!important;overflow-x:hidden!important;transform:translateX(-105%)!important;transition:transform .22s ease!important;z-index:9200!important;visibility:visible!important;display:block!important}
    body.menu-open .side{transform:translateX(0)!important}
    .side-backdrop{position:fixed!important;inset:0!important;background:rgba(0,0,0,.38)!important;z-index:9100!important;display:none!important;pointer-events:auto!important}
    body.menu-open .side-backdrop{display:block!important}
    .main{margin-left:0!important;width:auto!important;padding-bottom:70px!important}
    body.menu-open{overflow:hidden!important}
}

@media(max-width:700px){
    .qrscan-inline{
        display:block;
    }

    .qrscan-inline .qrscan-button{
        margin-top:8px;
        width:100%;
    }

    .qrscan-box{
        width:calc(100vw - 18px);
        max-width:calc(100vw - 18px);
        padding:10px;
    }

    .qrscan-camera{
        max-height:46vh;
    }

    .qrscan-manual-row{
        display:block;
    }

    .qrscan-manual-ok{
        width:100%;
        margin-top:8px;
    }
}
