/* Layout sem barra lateral: faixa fina no topo das telas de cadastro/relatório */
body{display:block}
.app-top{position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:16px;padding:10px 20px;background:var(--green);color:#fff;box-shadow:0 2px 10px rgba(0,0,0,.12)}
.app-clock{font-weight:700;font-variant-numeric:tabular-nums;color:#dcebe3}
.app-menu-btn{border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);color:#fff;border-radius:8px;padding:8px 14px;font:inherit;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:8px}
.app-menu-btn:hover{background:rgba(255,255,255,.2)}
.app-menu-btn kbd{border-color:rgba(255,255,255,.4)}
body[data-view=home] .app-top,body[data-view=pos] .app-top{display:none}
body[data-view=home] main,body[data-view=pos] main{padding:0}

/* Frente de caixa estilo PDV de verdurão */
#pos.active{display:flex;flex-direction:column;height:100vh;min-height:600px;background:#e4ebe6}
.pdv-top{display:flex;align-items:center;gap:18px;padding:10px 18px;background:var(--green);color:#fff}
.pdv-status{padding:8px 18px;border-radius:8px;font-weight:900;font-size:1.05rem;letter-spacing:.08em;text-transform:uppercase}
.pdv-status.free{background:#2cad67;color:#fff}
.pdv-status.busy{background:#ffd84d;color:#3d2e00}
.pdv-body{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:10px;padding:10px;min-height:0}
.pdv-main{display:flex;flex-direction:column;gap:10px;min-height:0;min-width:0}
.pdv-code{position:relative;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 14px 12px}
.pdv-code label{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}
.pdv .scan-box{margin:6px 0 0;border-width:3px;border-radius:10px;padding:0 14px;height:62px;gap:10px}
.pdv .scan-box svg{width:32px;height:32px;flex:none;fill:none;stroke:var(--green2);stroke-width:1.8;stroke-linecap:round}
.pdv .scan-box input{font-size:1.55rem;font-weight:700;height:100%;padding:0}
.pdv .search-results{top:calc(100% - 6px);left:14px;right:14px;width:auto;max-height:340px}
.pdv .search-results button{font-size:1.05rem;padding:13px 14px}
.pdv-quick{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.pdv-quick>span{flex:none;font-size:.72rem;line-height:1.2;text-transform:uppercase;letter-spacing:.06em;color:var(--green2);font-weight:900}
#pdv-quick-list{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
#pdv-quick-list button{flex:none;border:1px solid #cfe3d6;background:#f1f8f3;border-radius:8px;padding:6px 12px;font:inherit;cursor:pointer;text-align:left;line-height:1.2}
#pdv-quick-list button:hover{background:var(--lime);border-color:var(--green2)}
#pdv-quick-list b{display:block;font-size:.9rem;color:var(--ink)}
#pdv-quick-list small{color:var(--green2);font-weight:700;font-size:.78rem}
.pdv-cupom{flex:1;display:flex;flex-direction:column;min-height:0;background:#fffef8;border:1px solid #d8dccf;border-radius:10px;overflow:hidden}
.pdv .cart-head,.pdv .cart-row{grid-template-columns:54px 84px minmax(150px,1fr) 118px 112px 122px 36px;gap:8px}
.pdv .cart-head{background:#1f3b2e;color:#dcebe3;padding:10px 12px;font-weight:800;letter-spacing:.06em}
.pdv .cart{flex:1;overflow:auto;font-variant-numeric:tabular-nums}
.pdv .cart-row{padding:9px 12px;border-top:1px dashed #dcdccc;font-size:1.02rem}
.pdv .cart-row:nth-child(even){background:#f7f7ee}
.pdv .cart-row.last{background:#e3f4e8;box-shadow:inset 4px 0 0 var(--green2)}
.pdv .cart-row .n{color:var(--muted);font-weight:700}
.pdv .cart-row .code{color:var(--muted);font-size:.88rem}
.pdv .cart-row .desc b{text-transform:uppercase;font-size:.98rem}
.pdv .cart-row input{text-align:right;font-weight:700;padding:6px 8px}
.pdv .cart-row .unit-price{text-align:right;color:var(--muted)}
.pdv .cart-row .line-total{text-align:right;font-size:1.08rem}
.pdv .cart .empty{min-height:100%;padding:30px}
.pdv .cart .empty svg{width:64px;height:64px;fill:none;stroke:#b7c9bd;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;margin:0 auto 10px}
.pdv-side{display:flex;flex-direction:column;gap:8px;min-height:0}
.pdv-last{display:grid;gap:2px;background:#fff;border:1px solid var(--line);border-left:6px solid var(--green2);border-radius:10px;padding:10px 14px;transition:background .18s}
.pdv-last small{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:800}
.pdv-last strong{font-size:1.35rem;text-transform:uppercase;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pdv-last span{color:var(--muted);font-variant-numeric:tabular-nums}
.pdv-last b{font-size:1.7rem;line-height:1.1;color:var(--green);text-align:right;font-variant-numeric:tabular-nums}
.pdv-last.ok{background:var(--lime)}
.pdv-last.error{background:#fae5e8;border-left-color:var(--red)}
.pdv-last.error b{color:var(--red)}
.pdv-scale{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#10281d;color:#b8d5c6;border-radius:10px;padding:10px 16px}
.pdv-scale small{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800}
.pdv-scale span{font-size:.82rem}
.pdv-scale #scale-indicator.connected{color:#7ee2a3;background:none;border:0}
.pdv-scale b{font:700 1.9rem/1 Consolas,"Courier New",monospace;color:#7ee2a3}
.pdv-sub{display:flex;align-items:end;gap:12px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 14px}
.pdv-sub>div small{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:800}
.pdv-sub>div strong{font-size:1.6rem}
.pdv-sub label{flex:1;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:800}
.pdv-sub input{text-align:right;font-weight:700}
.pdv-total{flex:1;display:flex;flex-direction:column;justify-content:center;background:#0b1a12;border-radius:10px;padding:12px 18px;min-height:92px}
.pdv-total small{color:#9fbfae;font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;font-weight:800}
.pdv-total strong{font:700 clamp(2.3rem,3.6vw,3.3rem)/1.1 Consolas,"Courier New",monospace;color:#ffe36e;text-align:right;margin-top:6px}
.pdv-finish{border:0;border-radius:10px;background:#2cad67;color:#fff;font:inherit;font-size:1.25rem;font-weight:900;padding:14px;cursor:pointer;display:flex;justify-content:center;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.05em}
.pdv-finish:hover{background:#249456}
.pdv-finish kbd{border-color:rgba(255,255,255,.5)}
.pdv-side .ghost{padding:8px;flex:none}
.pdv-keys{display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:center;padding:8px 14px;background:var(--green);color:#dcebe3;font-size:.85rem}
.pdv-keys span{display:flex;align-items:center;gap:5px}
.pdv-keys kbd{background:#fff;color:var(--green);border-color:#fff;font-weight:900;min-width:26px;text-align:center}
@media(max-width:1100px){.pdv-body{grid-template-columns:minmax(0,1fr) 320px}.pdv .cart-head,.pdv .cart-row{grid-template-columns:40px minmax(130px,1fr) 100px 96px 108px 32px}.pdv .cart-head span:nth-child(2),.pdv .cart-row .code{display:none}}
@media(max-width:860px){#pos.active{height:auto;min-height:100vh}.pdv-body{grid-template-columns:1fr}.pdv-cupom{min-height:320px}.pdv-top .home-clock{display:none}}
@media(max-width:650px){.app-top .app-clock{display:none}.pdv .cart-head{display:none}.pdv .cart-row{grid-template-columns:1fr 80px 32px}.pdv .cart-row .n,.pdv .cart-row .code,.pdv .cart-row .unit-price{display:none}.pdv-top{flex-wrap:wrap}.pdv-status{order:3;width:100%;text-align:center}}

/* Fechamento da venda */
.co-dialog{width:min(1020px,calc(100% - 24px));max-height:calc(100vh - 24px);border-radius:14px;overflow:auto}
.co-dialog form{padding:0;display:block;gap:0}
.co-head{display:flex;justify-content:space-between;align-items:center;margin:0;padding:14px 20px;background:var(--green);color:#fff}
.co-head small{color:#b8d5c6;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:800}
.checkout-dialog .co-head h2{margin:2px 0 0;color:#fff;font-size:1.35rem}
.co-head button{color:#fff}
.co-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;padding:16px 20px;background:#eef3ef}
.co-left{display:grid;gap:8px;align-content:start}
.co-methods{display:grid;gap:8px;border-radius:12px;outline:none;padding:3px}
.co-methods:focus-visible{box-shadow:0 0 0 3px rgba(31,104,72,.25)}
.co-methods button{display:flex;align-items:center;gap:12px;border:2px solid #d4e0d8;background:#fff;border-radius:12px;padding:12px 14px;font:inherit;text-align:left;cursor:pointer;color:var(--ink);transition:border-color .12s,background .12s}
.co-methods button:hover{border-color:#9cc9ad}
.co-methods button kbd{color:var(--muted);border-color:#cbd7d0;min-width:24px;text-align:center}
.co-methods svg{width:30px;height:30px;flex:none;fill:none;stroke:var(--green2);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.co-methods span b,.co-methods span small{display:block}
.co-methods span b{font-size:1.1rem}
.co-methods span small{color:var(--muted);font-size:.8rem}
.co-methods button.active{border-color:var(--green2);background:var(--green2);color:#fff}
.co-methods button.active svg{stroke:#fff}
.co-methods button.active small{color:#cfe8da}
.co-methods button.active kbd{color:#fff;border-color:rgba(255,255,255,.5)}
.co-methods:focus-within button.active{box-shadow:0 0 0 3px #ffd84d}
.co-right{display:grid;gap:12px;align-content:start;min-width:0}
.co-summary{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:stretch}
.co-lines{display:grid;gap:4px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;align-content:center}
.co-lines span{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:.92rem}
.co-lines b{color:var(--ink);font-variant-numeric:tabular-nums}
.co-total{background:#0b1a12;border-radius:12px;padding:12px 18px;min-width:280px;display:flex;flex-direction:column;justify-content:center}
.co-total small{color:#9fbfae;text-transform:uppercase;letter-spacing:.14em;font-size:.74rem;font-weight:800}
.checkout-dialog .co-total strong{font:700 2.6rem/1.1 Consolas,"Courier New",monospace;color:#ffe36e;text-align:right}
.co-panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:grid;gap:12px}
.co-received{border-width:2px;border-color:var(--green2)}
.co-received span{font-size:1.2rem;font-weight:700;padding-left:14px}
.co-received input{font-size:2rem;font-weight:800;text-align:right;padding:8px 14px;font-variant-numeric:tabular-nums}
.co-bills{display:flex;flex-wrap:wrap;gap:8px}
.co-bills button{flex:1;min-width:84px;border:1px solid #cfe3d6;background:#f1f8f3;border-radius:9px;padding:10px 8px;font:inherit;font-weight:800;color:var(--green);cursor:pointer}
.co-bills button:hover{background:var(--lime);border-color:var(--green2)}
.co-bills button[data-bill=exato]{background:var(--green2);border-color:var(--green2);color:#fff}
.co-change{margin:0;align-items:center;background:#fff7d6;border:1px solid #f1dc8a;padding:10px 16px}
.co-change span{font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;color:#6b5500}
.co-change strong{font:700 2.1rem/1.1 Consolas,"Courier New",monospace;color:#3d2e00}
.co-instant{grid-template-columns:auto 1fr;align-items:center;min-height:150px}
.co-instant svg{width:52px;height:52px;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;background:var(--green2);border-radius:50%;padding:12px}
.co-instant b{display:block;font-size:1.3rem;margin-bottom:4px}
.co-instant span{color:var(--muted)}
.co-customer{display:flex;flex-wrap:wrap;gap:6px 18px;padding:10px 12px;background:#eef6f1;border:1px solid #cce2d5;border-radius:9px;font-size:.9rem;color:var(--muted)}
.co-customer b{color:var(--ink)}
.co-customer em{flex-basis:100%;font-style:normal;font-weight:800;color:#9f1c2c}
.co-customer.over{background:#fdf0f2;border-color:#e7aeb6}
#checkout-due{color:var(--green2);font-weight:700}
.co-foot{display:flex;align-items:center;gap:10px;margin:0;padding:12px 20px;border-top:1px solid var(--line);background:#fff}
.co-foot .keyboard-tip{margin-right:auto;text-align:left}
.co-foot .pdv-finish{padding:14px 26px}
.co-foot .pdv-finish:disabled{opacity:.6;cursor:wait}
@media(max-width:820px){.co-grid{grid-template-columns:1fr}.co-methods{grid-template-columns:1fr 1fr}.co-summary{grid-template-columns:1fr}.co-total{min-width:0}.co-foot{flex-wrap:wrap}.co-foot .keyboard-tip{flex-basis:100%}}
/* Edição de cadastros e lançamentos */
form:not(.editing) .edit-only{display:none!important}
form.editing .new-only{display:none!important}
.edit-note{padding:10px 13px;margin-bottom:14px;border-radius:9px;background:#fff7d6;border:1px solid #f1dc8a;color:#5c4a00}
.edit-hint{margin:0;color:var(--muted);font-size:.85rem;font-weight:400}
.check-line{display:flex!important;align-items:center;gap:9px;font-weight:650}
.check-line input{width:auto;accent-color:var(--green2);transform:scale(1.2)}
.ghost.small,.primary.small{padding:7px 12px;font-size:.85rem}
#lot-edit-info{margin-bottom:14px}
#lot-edit-hint{margin-top:12px}
/* Listas: abas, seleção pelo teclado e exclusão */
.tabs{display:flex;gap:6px;margin-left:auto}
.tabs button{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:9px;padding:10px 14px;font:inherit;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:7px}
.tabs button:hover{border-color:var(--green2);color:var(--green)}
.tabs button.active{background:var(--green2);border-color:var(--green2);color:#fff}
.tabs button b{background:rgba(0,0,0,.12);border-radius:99px;padding:1px 8px;font-size:.85rem}
.tabs button.active b{background:rgba(255,255,255,.25)}
.tabs kbd{color:inherit;border-color:currentColor;opacity:.7}
.list-tip{margin:-6px 0 12px;color:var(--muted);font-size:.82rem;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.list-tip kbd{color:var(--green);border-color:#b9c9c0;background:#fff}
.table tbody tr.selected{background:var(--lime);box-shadow:inset 4px 0 0 var(--green2)}
.table td:last-child{white-space:nowrap}
.ghost.danger{background:#fae5e8;color:#9f1c2c}
.ghost.danger:hover{background:#f6d2d8}
.confirm-dialog{border-top-color:var(--green2)}
.confirm-dialog .error-symbol{background:var(--lime);color:var(--green)}
.confirm-actions{grid-column:2;display:flex;justify-content:flex-end;gap:10px}
.confirm-actions button{min-width:110px;display:flex;align-items:center;justify-content:center;gap:8px}
dialog footer .keyboard-tip{margin-right:auto}
/* Morango da marca */
svg.berry{width:38px;height:38px;flex:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25))}
.home-brand svg.berry,.app-top svg.berry{width:34px;height:34px}
.table tbody tr{cursor:default}
/* Telas maiores: fonte e espaçamentos acompanham o tamanho do monitor */
body{font-size:clamp(16px,1.05vw,21px)}
h1{font-size:clamp(2rem,2.4vw,2.6rem)}
h2{font-size:clamp(1.1rem,1.3vw,1.45rem)}
.table th{font-size:clamp(.76rem,.8vw,.95rem)}
.table th,.table td{padding:clamp(12px,1vw,18px) clamp(14px,1.1vw,20px)}
.view>header{margin-bottom:clamp(22px,2vw,30px)}
main{padding:clamp(24px,2vw,40px) clamp(24px,2.4vw,52px)}
input,select,textarea{padding:clamp(11px,.8vw,15px) clamp(12px,.9vw,16px)}
.primary,.ghost{padding:clamp(12px,.9vw,16px) clamp(16px,1.2vw,24px)}
.app-top{padding:clamp(10px,.9vw,16px) clamp(20px,2vw,40px)}
.app-top strong{font-size:clamp(1.15rem,1.2vw,1.45rem)}
svg.berry{width:clamp(38px,2.6vw,52px);height:clamp(38px,2.6vw,52px)}
.home-brand svg.berry,.app-top svg.berry{width:clamp(36px,2.5vw,50px);height:clamp(36px,2.5vw,50px)}
.summary-cards strong{font-size:clamp(1.7rem,2vw,2.3rem)}
.list-tip{font-size:clamp(.82rem,.85vw,1rem)}
.tabs button{padding:clamp(10px,.8vw,15px) clamp(14px,1.1vw,20px)}
dialog{width:min(760px,calc(100% - 30px))}
.co-dialog{width:min(1100px,calc(100% - 24px))}svg.berry{background:none!important;box-shadow:none!important;border-radius:0!important}
/* Cancelamento de venda */
.canceled{text-decoration:line-through;color:var(--muted)}
.cancel-reason{color:var(--muted);font-style:italic}
.cancel-items{display:grid;gap:4px;margin:14px 0;padding:12px 14px;background:#f8faf9;border:1px solid var(--line);border-radius:9px;max-height:200px;overflow:auto;font-size:.92rem}
.cancel-items span{display:flex;justify-content:space-between;gap:12px}
.danger-btn{background:#c62b3d}
.danger-btn:hover{background:#a52131}
#sale-cancel-dialog .entry-guidance{margin-top:14px}
/* Recebimentos do crediário */
.receipts-list{display:grid;gap:8px;margin:14px 0;max-height:260px;overflow:auto}
.receipt-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:9px;background:#fff}
.receipt-row div{display:grid;margin-right:auto}
.receipt-row b{font-size:1.15rem}
.receipt-row small{color:var(--muted)}
.receipt-row.off{background:#f7f7f7;opacity:.85}
.receipt-row.off b{text-decoration:line-through;color:var(--muted)}
#receipts-dialog footer{margin-top:6px}
/* Cópia de segurança */
.bar-8{background:#2b6cb0}
.backup-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:16px 0 6px}
#backup-status{line-height:1.6}
#backup-status .aviso{color:#9f1c2c}
#backup-dialog .receipts-list{max-height:200px}
/* Teclas de atalho maiores e barra de atalhos no topo */
kbd{font:800 clamp(.95rem,1vw,1.2rem)/1 "Segoe UI",Arial,sans-serif;border-radius:6px;padding:7px 11px;min-width:32px;display:inline-block;text-align:center;letter-spacing:.02em}
.list-tip{font-size:clamp(.95rem,1vw,1.15rem);gap:9px;margin:-2px 0 14px}
.keyboard-tip{font-size:clamp(.9rem,.95vw,1.1rem)}
.pdv-keys{font-size:clamp(.9rem,.95vw,1.1rem);padding:10px 14px;gap:8px 20px}
.pdv-keys kbd{min-width:34px;padding:7px 11px}
.home-tip{font-size:clamp(.95rem,1vw,1.15rem);padding-bottom:12px}
.top-nav{display:flex;flex-wrap:wrap;gap:6px;margin-left:8px}
.top-nav button{display:flex;align-items:center;gap:9px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#cfe3d8;border-radius:10px;padding:9px 14px;font:inherit;font-size:clamp(.95rem,.95vw,1.12rem);font-weight:650;cursor:pointer;white-space:nowrap}
.top-nav button:hover{background:rgba(255,255,255,.16);color:#fff}
.top-nav button.active{background:#2cad67;border-color:#2cad67;color:#fff;font-weight:800}
.top-nav kbd{border-color:rgba(255,255,255,.45);background:rgba(0,0,0,.18);color:inherit}
.top-nav button.active kbd{border-color:rgba(255,255,255,.6);background:rgba(0,0,0,.2)}
body[data-view=home] .top-nav,body[data-view=pos] .top-nav{display:none}
@media(max-width:1250px){.top-nav button span{display:none}.top-nav button{padding:8px 10px}}
@media(max-width:900px){.top-nav{display:none!important}}
/* Tela de entrada e contas de acesso */
.login-screen{display:none;position:fixed;inset:0;z-index:60;background:radial-gradient(circle at 30% 20%,#1d5137,#0b1a12 70%);place-items:center;padding:20px}
body.sem-acesso .login-screen,body.carregando .login-screen{display:grid}
body.sem-acesso>*:not(.login-screen),body.carregando>*:not(.login-screen){display:none!important}
#login-form{width:min(430px,100%);background:#fff;border-radius:16px;padding:clamp(24px,3vw,38px);display:grid;gap:14px;box-shadow:0 24px 80px rgba(0,0,0,.45)}
.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:4px}
.login-brand strong{display:block;font-size:1.15rem}
.login-brand small{color:var(--muted)}
#login-form h1{font-size:1.5rem;margin:0}
#login-form .primary{padding:15px;font-size:1.1rem;display:flex;justify-content:center;align-items:center;gap:10px}
#login-form .keyboard-tip{text-align:left}
.user-chip{display:flex;flex-direction:column;line-height:1.15;text-align:right}
.user-chip b{font-weight:700}
.app-top .user-chip{color:#fff}
.app-top .user-chip small{color:#b8d5c6;font-size:.78rem}
.home-user{display:flex;align-items:center;gap:10px;color:#fff}
.home-user .user-chip{text-align:right;margin-right:4px}
.home-user .user-chip small{color:#b8d5c6;font-size:.78rem}
.home-user .ghost{background:rgba(255,255,255,.12);color:#fff}
.home-user .ghost:hover{background:rgba(255,255,255,.22)}
.bar-9{background:#7a4ea8}
#users-list{max-height:220px}
#users-dialog .form-grid{margin-top:4px}