:root{--background:#f5f0e6;--foreground:#1c211d;--card:#fffdf8;--card-foreground:#1c211d;--primary:#1b2620;--primary-foreground:#fff;--secondary:#e8ddc9;--secondary-foreground:#1c211d;--muted:#eee9df;--muted-foreground:#5c625e;--accent:#d9b86c;--accent-foreground:#1c211d;--destructive:#b13329;--border:#d9d0bf;--input:#d9d0bf;--ring:#b8863b;--radius:1rem}*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--foreground);font-family:Arial,Helvetica,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.shell{max-width:1100px;margin:auto;min-height:100vh}.top{background:#19231e;color:#f9f1df;padding:18px 22px;display:flex;justify-content:space-between;align-items:center;gap:12px}.brand{font-family:Georgia,serif;font-size:1.25rem;font-weight:700;letter-spacing:.07em}.table{font-size:.9rem;color:#e8cf92}.content{padding:22px 22px 110px;max-width:680px;margin:auto}.welcome{display:flex;gap:16px;align-items:center;background:#e8ddc9;border-radius:24px;padding:16px;margin-bottom:24px}.waiter{width:118px;height:142px;object-fit:cover;object-position:top;border-radius:18px;flex:none}.bubble{font-family:Georgia,serif;font-size:1.5rem;line-height:1.16;margin:0}.eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.16em;font-weight:700;color:#94723a;margin:0 0 9px}.sectiontitle{font-family:Georgia,serif;font-size:1.65rem;margin:18px 0}.categories{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.cat{border:1px solid #d2c4a9;background:#fffdf8;padding:22px 14px;border-radius:18px;min-height:96px;text-align:left;font-weight:700;font-size:1.05rem;box-shadow:0 3px #e4d8c4}.cat span{display:block;font-size:1.5rem;margin-bottom:8px}.back{background:none;border:0;padding:8px 0;color:#694f28;font-weight:700}.item{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #ddd1bd}.itemicon{font-size:2.3rem;width:66px;height:66px;border-radius:14px;background:#e8ddc9;display:grid;place-items:center;flex:none}.itemmain{flex:1}.itemname{font-weight:700}.price{color:#6f603f;margin-top:5px}.qty{display:flex;align-items:center;gap:8px}.qty button{border:1px solid #c8b995;background:#fffdf8;border-radius:10px;width:35px;height:35px;font-size:1.2rem}.sticky{position:fixed;bottom:0;left:0;right:0;background:#f5f0e6;padding:12px 18px 20px;box-shadow:0 -8px 25px #1b1b1b15}.stickyinner{max-width:680px;margin:auto}.primary{background:#1b3026;color:#fff;border:0;border-radius:15px;padding:17px 20px;font-weight:700;font-size:1rem;width:100%;display:flex;justify-content:space-between;align-items:center}.secondary{background:#fffdf8;color:#1b3026;border:1px solid #b8a880;border-radius:12px;padding:12px 18px}.line{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #ded3c0}.note{width:100%;border:1px solid #cabb9e;border-radius:12px;background:#fffdf8;padding:14px;margin:20px 0;min-height:75px}.total{display:flex;justify-content:space-between;font-size:1.35rem;font-weight:700;margin:20px 0}.error{color:#a53125;background:#fff0eb;padding:12px;border-radius:10px;margin:14px 0}.success{background:#e5eee7;border-radius:24px;padding:30px;text-align:center}.admin{max-width:980px;padding:22px;margin:auto}.adminnav{display:flex;gap:10px;margin:20px 0}.adminnav button{border:1px solid #bfae8c;background:#fff;padding:11px 18px;border-radius:12px}.adminnav .active{background:#1b3026;color:#fff}.ordergrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.ordercard{background:#fffdf8;border:1px solid #d8ccb7;border-radius:18px;padding:18px}.ordercard.new{border:2px solid #c18829}.orderhead{display:flex;justify-content:space-between;gap:10px}.small{font-size:.88rem;color:#5b615e}.login{max-width:380px;margin:80px auto;padding:25px;background:#fffdf8;border-radius:20px}.login input{width:100%;padding:15px;border:1px solid #aaa;border-radius:10px;margin:14px 0}.availability{display:flex;justify-content:space-between;align-items:center;padding:15px;border-bottom:1px solid #ddd}.availability button{border:0;border-radius:10px;padding:10px 12px;background:#dceadd}.availability button.off{background:#f5d8d2}@media(min-width:760px){.content{padding-top:32px}.welcome{padding:24px}.waiter{width:160px;height:165px}.categories{grid-template-columns:repeat(3,1fr)}}.codeinput{display:block;width:100%;padding:15px;font-size:1.15rem;letter-spacing:.14em;text-transform:uppercase;border:1px solid #b9a982;border-radius:12px;background:#fffdf8;margin:8px 0 20px}.sessioncode{font-size:2rem;letter-spacing:.15em;font-weight:700;color:#1b3026;margin:10px 0 20px}.category-back{display:block;width:100%;margin:24px 0 10px;padding:17px 20px;border:2px solid #1b3026;border-radius:15px;background:#e8ddc9;color:#1b3026;font-weight:700;font-size:1rem;text-align:center;box-shadow:0 4px #c6b591}.category-back:hover,.category-back:focus-visible{background:#dbc995;outline:2px solid #1b3026;outline-offset:2px}.product-form{background:#fffdf8;border:1px solid #d8ccb7;border-radius:18px;padding:20px;margin:12px 0 24px}.product-form h2{font-family:Georgia,serif;margin:0 0 16px}.product-form label{display:block;font-weight:700;margin:12px 0}.product-form input{display:block;width:100%;padding:12px;margin-top:7px;border:1px solid #b9aa8c;border-radius:10px;background:#fff}.form-row{display:grid;grid-template-columns:2fr 1fr;gap:14px}.form-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.form-actions .primary{width:auto}.product-actions{display:flex;gap:8px;align-items:center}.product-actions button{border:1px solid #b9aa8c;border-radius:10px;padding:10px;background:#fffdf8}.availability small{color:#6f603f;font-size:.86rem}@media(max-width:500px){.availability{gap:10px}.product-actions{flex-direction:column;align-items:stretch}}.itemicon{overflow:hidden}.itemicon img{width:100%;height:100%;object-fit:cover}.admin-product{display:flex;align-items:center;gap:12px}.admin-product-photo{width:52px;height:52px;flex:none;background:#e8ddc9;border-radius:10px;display:grid;place-items:center;font-size:1.6rem;overflow:hidden}.admin-product-photo img{width:100%;height:100%;object-fit:cover}.photo-current{display:flex;gap:12px;align-items:center;margin:12px 0}.photo-current img{width:90px;height:90px;object-fit:cover;border-radius:12px}.product-form input[type=file]{font-size:.9rem}.new-order-alert{background:#f8e3b2;border:2px solid #b7812a;color:#322616;border-radius:12px;padding:14px 16px;font-weight:700;margin:16px 0}.category-back-top{margin:0 0 14px}.plan-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:26px}.plan-head h2,.admin h2{font-family:Georgia,serif}.floorplans{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin:16px 0 22px}.floorzone{background:#fffdf8;border:1px solid #d8ccb7;border-radius:18px;padding:16px}.floorzone h3{margin:0 0 14px;font-family:Georgia,serif}.floorgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.floorslot{min-height:64px;border:1px dashed #cbbda7;border-radius:13px;background:#f6f2e9;color:#514b40;padding:6px;font-size:.78rem;overflow-wrap:anywhere}.floorslot.occupied{border:2px solid #8b7555;background:#eadfc8;color:#1b3026}.floorslot.attention{border-color:#b7812a;background:#f8e3b2}.floorslot.moving,.floorslot.selected{outline:3px solid #1b3026;outline-offset:1px}.floorslot small{display:block;color:#765018;font-size:.7rem}.table-orders{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px;background:#e8ddc9;border-radius:14px;margin-bottom:24px}.ticket-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.ticket-actions button{flex:1;min-width:130px}.adminnav{overflow-x:auto}@media(max-width:450px){.floorslot{min-height:56px;font-size:.7rem}.plan-head h2{font-size:1.25rem}}.delete-table{display:block;margin-top:12px;border-color:#b74b3e;color:#9a3329}.send-top{position:sticky;top:0;z-index:5;background:#f5f0e6;padding:8px 0 12px;margin:0 0 10px;box-shadow:0 8px 12px -12px #1b3026}.send-top .primary{min-height:58px}.staff-order{max-width:720px}.staff-order h2{margin-top:0}.staff-table-label{display:block;font-weight:700;margin:18px 0}.staff-table-label select{display:block;width:100%;margin-top:8px;padding:13px;border:1px solid #b9aa8c;border-radius:12px;background:#fff;font:inherit}.order-categories{display:flex;overflow-x:auto;gap:8px;padding:6px 0 16px}.order-categories button{white-space:nowrap;border:1px solid #b9aa8c;background:#fffdf8;border-radius:12px;padding:10px 14px}.order-categories .selected{background:#1b3026;color:#fff}.staff-items{background:#fffdf8;border:1px solid #d8ccb7;border-radius:18px;padding:4px 16px}.staff-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #ded3c0}.staff-item:last-child{border-bottom:0}.staff-item small{display:block;color:#6f603f;margin-top:4px}.staff-item .qty{flex:none}.staff-order .note{margin:8px 0}:root{--background:#191919;--foreground:#f7f0e2;--card:#f7f0e2;--card-foreground:#242424;--primary:#d9b86c;--primary-foreground:#201e19;--secondary:#f7f0e2;--secondary-foreground:#242424;--muted:#2b2b2b;--muted-foreground:#ded4c2;--accent:#d9b86c;--accent-foreground:#242424;--border:#665b4b;--input:#a5967c;--ring:#d9b86c}body{background:#191919;color:#f7f0e2}.top{background:#111;color:#f7f0e2;border-bottom:1px solid #5c503d}.table{color:#e5c881}.welcome{background:#2d2b28;border:1px solid #75674e;color:#f7f0e2}.waiter{background:#e8dfcc}.eyebrow{color:#dfbe77}.cat{background:#f7f0e2;color:#242424;border-color:#a88f65;box-shadow:0 3px #a9874d}.cat:hover,.cat:focus-visible{background:#fff9ed;outline:2px solid #d9b86c;outline-offset:2px}.back{color:#e7c57c}.item{border-bottom-color:#5a5041}.itemicon,.admin-product-photo{background:#e7dcc5;color:#242424}.price{color:#e3c98d}.qty button{background:#f7f0e2;color:#242424;border-color:#a88f65}.sticky,.send-top{background:#191919;box-shadow:0 -8px 25px #0006}.primary{background:#d9b86c;color:#201e19}.primary:hover,.primary:focus-visible{background:#e8ca87}.secondary,.note,.codeinput{background:#f7f0e2;color:#242424;border-color:#a88f65}.line{border-bottom-color:#5a5041}.small{color:#d5ccbc}.success,.login,.ordercard,.product-form,.floorzone,.staff-items{background:#f7f0e2;color:#242424;border-color:#a88f65}.success .small,.login .small,.ordercard .small,.product-form .small,.floorzone .small,.staff-items .small{color:#625a4f}.login input,.product-form input,.staff-table-label select{background:#fffdf8;color:#242424}.adminnav button{background:#292826;color:#f7f0e2;border-color:#8e8069}.adminnav .active,.order-categories .selected{background:#d9b86c;color:#242424}.availability{border-bottom-color:#5a5041}.availability small,.staff-item small{color:#d8bf89}.product-actions button,.order-categories button{background:#f7f0e2;color:#242424}.product-actions button.off{background:#f5d8d2}.sessioncode{color:#242424}.category-back{background:#f7f0e2;color:#242424;border-color:#d9b86c;box-shadow:0 4px #8f7749}.category-back:hover,.category-back:focus-visible{background:#fff8e7;outline-color:#d9b86c}.floorzone h3{color:#242424}.floorslot{background:#e9dfce;color:#4a4236}.floorslot.occupied{background:#312f2c;color:#f7f0e2;border-color:#d9b86c}.floorslot.attention{background:#f8e3b2;color:#242424}.floorslot.moving,.floorslot.selected{outline-color:#b88331}.table-orders{background:#34312c;color:#f7f0e2;border:1px solid #78684d}.new-order-alert{background:#f8e3b2;color:#302419}.staff-item{border-bottom-color:#c9bca5}.staff-order .staff-table-label{color:#f7f0e2}.staff-order .staff-items{color:#242424}.staff-order .staff-item small{color:#6b604e}.staff-order .qty strong{color:#242424}.order-categories button{border-color:#a88f65}.delete-table{color:#9a3329;border-color:#b74b3e}.customer-app{background:#101110;min-height:100vh}.customer-app .top{background:#101110;border:0;max-width:680px;margin:auto;padding:22px 18px 12px}.customer-app .brand{font-size:1.55rem;color:#f5db9d;text-align:center;flex:1;line-height:1}.customer-app .brand small{display:block;font:600 .67rem Arial,sans-serif;letter-spacing:.13em;color:#f5db9d;margin-top:7px}.customer-app .table{border:1px solid #9f8b61;color:#fff;border-radius:20px;padding:8px 11px;font-weight:700;font-size:.75rem;white-space:nowrap}.customer-app .content{padding:12px 16px 115px}.hero-mock{height:206px;display:flex;align-items:center;gap:12px;overflow:hidden;margin:0 0 14px}.hero-waiter{width:48%;height:100%;object-fit:cover;object-position:38% 10%;border-radius:20px 20px 0 0}.speech{position:relative;background:#fff8e8;color:#111;padding:18px 20px;border-radius:19px;font-size:1.2rem;line-height:1.22;font-weight:700;box-shadow:0 5px 20px #0002}.hero-mock .speech{flex:1}.qr-hint{color:#dfd1b3;font-size:.9rem;text-align:center;margin:13px 0 20px}.mock-categories{gap:9px}.mock-categories .cat{height:132px;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:8px;background:linear-gradient(140deg,#ffedc4,#e6c891);border:1px solid #f8dc9f;border-radius:16px;box-shadow:none;text-align:center;color:#111}.mock-categories .cat img{height:85px;width:100%;object-fit:cover;border-radius:10px}.mock-categories .cat .cat-emoji{font-size:3.4rem;line-height:1}.mock-categories .cat strong{font-size:.94rem;line-height:1.1}.category-head{display:flex;align-items:center;gap:12px;margin:4px 0 16px}.category-head .back{color:#fff;font-size:1.7rem;line-height:1;padding:4px}.category-head h1{font-size:1.35rem;margin:0;font-weight:750}.category-intro,.cart-intro{display:flex;align-items:center;gap:8px;min-height:120px;margin-bottom:12px}.category-intro .speech,.cart-intro .speech{font-size:1.05rem;max-width:68%;flex:1}.category-intro img,.cart-intro img{width:32%;height:125px;object-fit:cover;object-position:50% 13%;border-radius:18px}.customer-app .category-back{border:1px solid #e9c986;background:#ffebbc;color:#171612;box-shadow:none;margin:16px 0;padding:12px}.customer-app .category-back-top{margin:0 0 12px}.mock-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.mock-item{min-width:0;overflow:hidden;border:1px solid #7c6b4c;border-radius:17px;background:#22211f;color:#fff;display:flex;flex-direction:column}.mock-item-image{height:130px;background:#302b22;display:grid;place-items:center;font-size:3.3rem}.mock-item-image img{width:100%;height:100%;object-fit:cover}.mock-item-details{display:flex;flex-direction:column;gap:4px;padding:10px 12px 5px;flex:1;font-size:.94rem}.mock-item-details strong{line-height:1.18}.mock-item-details span{color:#f1dfb6}.mock-item .qty{justify-content:space-around;padding:7px 6px 12px}.mock-item .qty button{background:#ffe6a6;border:0;border-radius:50%;width:34px;height:34px;color:#141414;font-weight:700}.mock-list{background:#fff7e5;border-radius:18px;padding:6px 12px}.mock-list .mock-item{border:0;border-bottom:1px solid #d9c7aa;border-radius:0;background:transparent;color:#171612;display:flex;flex-direction:row;align-items:center;padding:10px 0;gap:10px}.mock-list .mock-item:last-child{border-bottom:0}.mock-list .mock-item-image{width:54px;height:62px;flex:none;background:transparent;font-size:2.1rem}.mock-list .mock-item-image img{object-fit:cover;border-radius:10px}.mock-list .mock-item-details{padding:0;min-width:0;font-size:.9rem}.mock-list .mock-item-details span{color:#514638}.mock-list .qty{padding:0;gap:4px}.mock-list .qty button{width:29px;height:29px;background:#fff0c7;border:1px solid #d2b681}.mock-sticky{background:#101110;padding:8px 14px 18px;border:0}.mock-sticky .primary{background:#ffe7ad;color:#171612;border-radius:16px;min-height:60px;font-size:1rem}.checkout-panel{background:#fff7e5;color:#161513;border-radius:18px;padding:17px;margin-top:8px}.checkout-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.checkout-head h2{font-size:1.5rem;margin:0 0 10px}.checkout-head strong{font-size:.8rem}.checkout-line{display:flex;align-items:center;gap:9px;border-bottom:1px solid #d8cbb4;padding:11px 0}.checkout-line span:nth-child(2){flex:1}.checkout-thumb{width:44px;height:44px;display:grid;place-items:center;font-size:1.6rem;flex:none}.checkout-thumb img{width:100%;height:100%;object-fit:cover;border-radius:8px}.checkout-panel label{display:block;margin-top:14px;font-size:.9rem;font-weight:700}.checkout-panel .note{margin:7px 0 2px;min-height:55px}.checkout-panel .total{border-top:1px solid #b8a98e;padding-top:14px;margin:14px 0}.checkout-send{background:#068a42;border:0;border-radius:16px;color:#fff;display:flex;align-items:center;justify-content:center;gap:12px;font-weight:700;font-size:1.1rem;min-height:60px;width:100%}.checkout-send span{font-size:1.35rem}.checkout-send:disabled{opacity:.5}.checkout-continue{display:block;width:100%;border:1px solid #cdbb9d;border-radius:13px;background:#fff1d5;color:#191919;padding:13px;font-weight:700;margin-top:9px}.sent-mock{display:flex;flex-direction:column;align-items:center;text-align:center}.sent-mock img{width:min(75%,270px);height:260px;object-fit:cover;object-position:50% 10%;border-radius:24px}.sent-check{width:86px;height:86px;background:#13934b;color:#fff;border:4px solid #e7ffe9;border-radius:50%;display:grid;place-items:center;font-size:3rem;margin:-38px 0 12px;z-index:1}.sent-mock h1{font-size:1.65rem}.sent-mock .speech{font-size:1rem;font-weight:500;margin-bottom:18px;max-width:360px}.sent-mock .category-back{max-width:360px;margin-top:auto}@media(min-width:760px){.hero-mock{height:245px}.mock-categories .cat{height:165px}.mock-products{grid-template-columns:repeat(3,minmax(0,1fr))}.mock-item-image{height:160px}}@media(max-width:370px){.mock-list .qty button{width:26px;height:26px}.mock-list .mock-item-image{width:43px}.mock-item-details{font-size:.82rem}.hero-mock{height:190px}.speech{font-size:1rem}}.admin{max-width:1000px}.admin .sectiontitle{color:#f5db9d;text-align:center;letter-spacing:.05em}.adminnav{border-bottom:1px solid #504c43;padding-bottom:14px}.adminnav button{font-weight:700;white-space:nowrap}.status-tabs,.product-tabs{display:flex;gap:7px;overflow-x:auto;padding:3px 0 16px}.status-tabs button,.product-tabs button{border:1px solid #414b51;border-radius:9px;padding:11px 14px;background:#303a41;color:#fff;white-space:nowrap;font-size:.88rem;font-weight:700}.status-tabs button.selected,.product-tabs button.selected{background:#ffe2a1;color:#161616;border-color:#ffe2a1}.status-orders{grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}.status-card{border:2px solid #aebbc0;background:#e8f3fa;color:#111}.status-card.new{background:#fff1ee;border-color:#ed6857}.status-card.preparando{background:#e8f3fa;border-color:#5da8e8}.status-card.entregado{background:#e7f5e9;border-color:#55aa71}.status-card .eyebrow{color:#a82f22}.status-card.preparando .eyebrow{color:#1767aa}.status-card.entregado .eyebrow{color:#197544}.status-card .small{color:#45494b}.status-card .line{border-color:#c7d3d7}.status-card .total{font-size:1.1rem;margin:12px 0}.status-card .primary{background:#209d52;color:#fff;min-height:48px;padding:12px}.status-card.preparando .primary{background:#2385d5}.status-card .secondary{background:#fffdf8}.product-tabs{margin-top:4px}.availability{background:#fff6e7;color:#161616;margin:0;border-bottom:1px solid #d9c7a8;padding:11px 14px}.availability:first-of-type{border-radius:15px 15px 0 0}.availability:last-child{border-radius:0 0 15px 15px}.availability small{color:#554d43}.availability button{border:1px solid #a9b6a8}.staff-order .staff-item{color:#171612}.staff-order .staff-item .qty button{background:#ffe5a9}.order-product{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid #c7d3d7}.order-product-photo{width:56px;height:56px;flex:none;border-radius:10px;background:#f5e5c5;display:grid;place-items:center;font-size:1.7rem;overflow:hidden}.order-product-photo img{width:100%;height:100%;object-fit:cover}.order-product>span:last-child{min-width:0}.order-product strong{display:block;line-height:1.25}.order-product small{display:block;margin-top:4px;color:#555;font-size:.85rem}.staff-take-details{display:flex;align-items:center;gap:10px;min-width:0}.staff-take-details>span:last-child{min-width:0}.staff-take-details strong{line-height:1.2}.staff-take-photo{width:58px;height:58px;flex:none;border-radius:10px;background:#f4e3bd;display:grid;place-items:center;font-size:1.8rem;overflow:hidden}.staff-take-photo img{width:100%;height:100%;object-fit:cover}@media(max-width:420px){.staff-take-photo{width:48px;height:48px}.staff-item .qty{gap:3px}.staff-item .qty button{width:30px;height:30px}}.order-warning{background:#fff0e8;color:#912f20;border:2px solid #c15843;border-radius:11px;padding:12px 14px;font-weight:700;margin:12px 0}.staff-table-label select[aria-invalid=true]{border:2px solid #c15843}.kitchen-screen{background:#101316;color:#fff;min-height:100vh}.kitchen-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;background:#080b0d;border-bottom:1px solid #464b4d}.kitchen-header span{font:700 1.7rem Georgia,serif;color:#f7d894;letter-spacing:.05em}.kitchen-header small{display:block;font-size:.76rem;letter-spacing:.1em;margin-top:5px;color:#d4dce0}.kitchen-header-actions{display:flex;gap:8px;flex-wrap:wrap}.kitchen-header-actions button{border:1px solid #8a9295;border-radius:11px;background:#243037;color:#fff;padding:10px 13px}.kitchen-main{max-width:1500px;margin:auto;padding:20px}.kitchen-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.kitchen-column{min-width:0}.kitchen-column h1{font-size:1.4rem;margin:0 0 16px;display:flex;align-items:center;gap:10px}.kitchen-column h1 span{background:#f6d890;color:#151515;border-radius:99px;padding:2px 12px;font-size:1rem}.kitchen-empty{background:#202b31;border-radius:14px;padding:22px;color:#d2d9dc}.kitchen-card{color:#171717;background:#f8f5eb;border-radius:18px;padding:19px;margin:0 0 15px;border:3px solid #9aa7aa;box-shadow:0 8px 20px #0005}.kitchen-card.fresh{border-color:#ed6d58;background:#fff1ed}.kitchen-card.preparing{border-color:#5aadea;background:#ecf6fc}.kitchen-card-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;border-bottom:1px solid #c8cbd0;padding-bottom:12px}.kitchen-card-head strong{font-size:1.55rem}.kitchen-card-head time{font-weight:700;font-size:1.05rem}.kitchen-items{padding:10px 0;font-size:1.18rem}.kitchen-items>div{padding:7px 0;line-height:1.28}.kitchen-note{font-size:1.04rem;background:#fff4c8;padding:12px;border-radius:10px;margin:4px 0 13px}.kitchen-card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.kitchen-card-foot strong{font-size:1.2rem}.kitchen-card-foot button{min-height:50px;border:0;border-radius:11px;padding:10px 18px;background:#1d9d52;color:#fff;font-weight:700;font-size:1rem}.kitchen-card.preparing .kitchen-card-foot button{background:#177ac7}.kitchen-card-foot button:disabled{opacity:.55}.kitchen-login{max-width:440px;margin:12vh auto;background:#f8f1e3;color:#171717;border-radius:20px;padding:28px}.kitchen-login h1{margin-top:0}.kitchen-login input{width:100%;padding:14px;border-radius:10px;border:1px solid #b8a883;margin:12px 0}.kitchen-login .primary{justify-content:center}@media(max-width:760px){.kitchen-columns{grid-template-columns:1fr}.kitchen-header{align-items:flex-start;padding:16px}.kitchen-header span{font-size:1.4rem}.kitchen-header-actions{justify-content:flex-end}.kitchen-header-actions button{font-size:.8rem;padding:8px}.kitchen-main{padding:14px}}@media(min-width:1000px){.kitchen-columns{gap:24px}.kitchen-card{padding:22px}.kitchen-items{font-size:1.28rem}}.staff-header-actions{display:flex;align-items:center;gap:8px}.staff-header-actions a{text-decoration:none;white-space:nowrap}.staff-header-actions .secondary{padding:9px 12px}@media(max-width:550px){.staff-header-actions a{font-size:.76rem}.staff-header-actions .secondary{padding:8px}.top .brand{font-size:1rem}}.ticket-overlay{position:fixed;inset:0;z-index:40;background:#000b;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:18px}.ticket-dialog{width:min(100%,430px);background:#282724;border-radius:18px;padding:15px;box-shadow:0 18px 45px #0008}.ticket-dialog-actions{display:flex;gap:10px;margin:0 0 14px}.ticket-dialog-actions .primary{width:auto;flex:1;justify-content:center;padding:12px}.ticket-dialog-actions .secondary{padding:12px}.ticket-paper{background:#fffefa;color:#171717;width:100%;padding:23px 22px;font:14px/1.4 Arial,Helvetica,sans-serif;box-shadow:0 4px 18px #0003}.ticket-paper header{text-align:center;border-bottom:2px solid #171717;padding:0 0 15px}.ticket-paper header h2{font:700 1.55rem Georgia,serif;letter-spacing:.07em;margin:0}.ticket-paper header p{font-size:.68rem;letter-spacing:.15em;margin:4px 0 18px}.ticket-paper header strong{display:block;border:1px solid #171717;border-radius:5px;padding:6px;font-size:.82rem;letter-spacing:.08em}.ticket-paper dl{margin:13px 0}.ticket-paper dl>div{display:flex;justify-content:space-between;gap:12px;padding:3px 0}.ticket-paper dt{color:#555}.ticket-paper dd{margin:0;text-align:right;font-weight:700}.ticket-lines{border-top:1px dashed #555;border-bottom:1px dashed #555;padding:8px 0}.ticket-labels,.ticket-line{display:flex;justify-content:space-between;gap:12px}.ticket-labels{font-size:.7rem;text-transform:uppercase;font-weight:700;color:#555;padding-bottom:7px}.ticket-line{align-items:baseline;padding:8px 0;border-top:1px solid #ddd}.ticket-line>div{min-width:0}.ticket-line small{display:block;color:#555;margin-top:3px}.ticket-line>strong{white-space:nowrap}.ticket-note{border-bottom:1px dashed #555;padding:10px 0}.ticket-note p{margin:4px 0 0}.ticket-total{display:flex;justify-content:space-between;gap:12px;align-items:baseline;font-size:1.3rem;font-weight:700;padding:15px 0;border-bottom:2px solid #171717}.ticket-paper footer{text-align:center;padding:17px 0 0}.ticket-paper footer p{font-size:.75rem;color:#555;margin:9px 0 0}@media print{body *{visibility:hidden!important}.ticket-paper,.ticket-paper *{visibility:visible!important}.ticket-overlay{position:static;padding:0;background:#fff;display:block;overflow:visible}.ticket-dialog{width:auto;padding:0;background:#fff;box-shadow:none}.ticket-dialog-actions{display:none}.ticket-paper{position:absolute;left:0;top:0;width:76mm;max-width:76mm;padding:3mm;box-shadow:none;font-size:11px;color:#000}.ticket-paper header h2{font-size:20px}.ticket-paper header p{font-size:9px}.ticket-paper footer p{font-size:10px}@page{margin:3mm}}.ticket-dialog{width:min(100%,470px)}.ticket-paper{font-size:16px;line-height:1.38}.ticket-paper dl{font-size:14px}.ticket-labels{font-size:.78rem}.ticket-line{font-size:16px;gap:10px;padding:10px 0}.ticket-line small{font-size:13px}.ticket-note{font-size:15px}.ticket-paper footer p{font-size:12px}@media print{.ticket-paper{width:80mm;max-width:80mm;padding:3mm;font-size:15px;line-height:1.35}.ticket-paper dl{font-size:13px}.ticket-labels{font-size:11px}.ticket-line{font-size:15px;gap:7px;padding:8px 0}.ticket-line small{font-size:12px}.ticket-note{font-size:14px}.ticket-paper footer p{font-size:11px}@page{margin:0}}@media print{.ticket-paper{padding-left:6mm;padding-right:1mm}}.financial-row{grid-template-columns:1fr 1fr}.financial-row input{min-width:0}@media(max-width:480px){.financial-row{grid-template-columns:1fr}}.customer-name-input{display:block;width:100%;margin-top:8px;padding:13px;border:1px solid #b9aa8c;border-radius:12px;background:#fffdf8;color:#242424}.records-panel h2{font-family:Georgia,serif;color:#f5db9d}.records-filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:16px 0}.records-filters label{font-weight:700;min-width:150px;flex:1}.records-filters input{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid #a88f65;border-radius:10px;background:#fffdf8;color:#242424}.records-filters .primary{width:auto;min-height:46px}.record-tabs{display:flex;gap:7px;overflow-x:auto;margin:20px 0}.record-tabs button{padding:10px 12px;border:1px solid #a88f65;border-radius:10px;background:#303a41;color:#fff;white-space:nowrap}.record-tabs button.selected{background:#ffe2a1;color:#161616}.records-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0}.records-summary .secondary{padding:9px 12px}.record-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;background:#f7f0e2;color:#242424;border:1px solid #a88f65;border-radius:12px;margin:8px 0}.record-row>div:last-child{text-align:right}.record-row strong{display:block}.record-row small{display:block;color:#625a4f;margin-top:4px}.record-row .secondary{padding:7px 9px;margin-top:6px;white-space:nowrap}.records-panel .small{line-height:1.45}@media(max-width:420px){.records-filters label{min-width:125px}.records-filters .primary{width:100%}.record-row{font-size:.88rem}.record-row .secondary{font-size:.8rem}.records-summary{font-size:.84rem}}.customer-contact{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ticket-paper dd{overflow-wrap:anywhere}.ticket-taxes{padding:9px 0;border-bottom:1px dashed #555;font-size:13px}.ticket-taxes>div{display:flex;justify-content:space-between;gap:10px;padding:3px 0}.record-balance{border:1px solid #a88f65;border-radius:12px;background:#f7f0e2;color:#242424;padding:16px;margin:20px 0}.record-balance>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #c9bca5}.record-balance-total{font-size:1rem}.record-balance small{display:block;margin-top:9px;color:#625a4f}@media(max-width:560px){.customer-contact{grid-template-columns:1fr}.record-balance>div{display:block}.record-balance>div span{display:block;margin-top:4px}}@media print{.ticket-taxes{font-size:12px}}.records-family{display:block;font-weight:700;margin:14px 0;color:#f7f0e2}.records-family select{display:block;margin-top:7px;padding:12px;min-width:220px;max-width:100%;border:1px solid #a88f65;border-radius:10px;background:#fffdf8;color:#242424;font:inherit}.payment-control{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #c7d3d7;padding-top:12px;margin-top:12px;font-weight:700}.payment-control .secondary{padding:10px 12px;white-space:nowrap}@media(max-width:420px){.payment-control{align-items:stretch;flex-direction:column}.payment-control .secondary{width:100%}}.invoice-issuer{font-size:13px;text-align:center;line-height:1.4;margin:12px 0;border-bottom:1px dashed #555;padding-bottom:10px}.invoice-paper .ticket-line{font-size:14px}.invoice-paper .ticket-line small{font-size:12px}.payment-control small{font-weight:400}@media print{.invoice-issuer{font-size:12px}.invoice-paper .ticket-line{font-size:13px}}.ticket-dialog:has(.invoice-paper) .ticket-dialog-actions{flex-wrap:wrap}.ticket-dialog:has(.invoice-paper) .ticket-dialog-actions button{flex:1;min-width:100px}.ticket-paper header .ticket-phone{font:12px/1.3 Arial,sans-serif;letter-spacing:0;margin:9px 0 0}.daily-close h3{font-family:Georgia,serif;color:#f5db9d;font-size:1.3rem;margin:18px 0 0}.daily-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.daily-totals>div{background:#f7f0e2;color:#242424;border:1px solid #a88f65;border-radius:12px;padding:14px}.daily-totals span,.daily-totals strong{display:block}.daily-totals strong{font-size:1.25rem;margin-top:6px}@media(max-width:580px){.daily-totals{grid-template-columns:1fr}.daily-totals>div{display:flex;align-items:center;justify-content:space-between}.daily-totals strong{margin:0}}.daily-warning{border:2px solid #e8ad53;background:#fff0cd;color:#261b0e;border-radius:12px;padding:15px;margin:14px 0}.daily-warning p{margin:7px 0 12px}.daily-warning>div{margin-top:12px}.daily-warning>div>div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #d5bd86;padding:8px 0}.daily-warning .secondary{padding:9px 12px}.vat-review{background:#fff7de;border:1px solid #c39340;border-radius:12px;padding:13px;margin:14px 0;color:#282019}.vat-review p{font-size:.88rem;margin:6px 0 10px}.vat-review label{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 0;border-top:1px solid #decda7}.vat-review select{background:#fff;border:1px solid #a88f65;border-radius:8px;padding:8px;min-width:125px;color:#222}.vat-review button{margin-top:10px}.delete-order{margin-top:13px;border-color:#aa4135;color:#8c2820}.delete-order:hover{background:#ffebe6}@media(max-width:420px){.vat-review label{align-items:stretch;flex-direction:column}}.daily-list h3{font-family:Georgia,serif;color:#f5db9d;font-size:1.3rem;margin:18px 0 0}.daily-list-day{background:#f7f0e2;color:#242424;border:1px solid #a88f65;border-radius:12px;padding:14px;margin:10px 0}.daily-list-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:1.1rem}.daily-list-tax{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #cbb994;margin-top:8px;padding-top:8px;font-size:.94rem}.daily-list-tax span:last-child{text-align:right}@media(max-width:580px){.daily-list-tax,.daily-list-tax span{display:block}.daily-list-tax span:last-child{text-align:left;margin-top:3px}}.revenue-split h3{font-family:Georgia,serif;color:#f5db9d;font-size:1.3rem;margin:18px 0 0}.split-percent{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:#f7f0e2;font-weight:700;margin:12px 0}.split-percent input{width:90px;padding:10px;border:1px solid #a88f65;border-radius:9px;background:#fffdf8;color:#242424;font:inherit}.split-percent span{font-weight:400}.split-day{background:#f7f0e2;color:#242424;border:1px solid #a88f65;border-radius:12px;padding:14px;margin:9px 0}.split-day>div{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:8px}.split-day span b{display:block;font-size:1.06rem}.settlement-confirm,.settlement-status{border:2px solid #d7b770;background:#fff0cd;color:#261b0e;border-radius:12px;padding:16px;margin:16px 0}.settlement-status{border-color:#1b9654;background:#e2f6e9}.settlement-status strong,.settlement-status span,.settlement-status small{display:block;margin-bottom:7px}.settlement-confirm p{margin:8px 0 14px}.settlement-confirm>div{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}.settlement-confirm label{flex:1;min-width:170px;font-weight:700}.settlement-confirm input{display:block;width:100%;padding:11px;margin-top:6px;border:1px solid #a88f65;border-radius:9px;font:inherit}.settlement-confirm button{width:auto;min-height:45px}.table-detail{background:#f7f0e2;color:#242424;border:2px solid #d9b86c;border-radius:15px;padding:16px;margin:0 0 24px;scroll-margin:18px}.table-detail-head,.table-detail-order-head,.table-detail-order-foot,.table-detail-item{display:flex;align-items:center;justify-content:space-between;gap:12px}.table-detail-head h3{margin:0;font-family:Georgia,serif}.table-detail-head .secondary{padding:9px 12px}.table-empty{margin:14px 0 0;font-weight:700}.table-detail-order{border-top:1px solid #c4af8b;margin-top:14px;padding-top:14px}.table-detail-order-head{flex-wrap:wrap;margin-bottom:8px}.table-detail-order-head span,.table-detail-order-foot span{color:#5c5140}.table-detail-item{padding:5px 0;border-bottom:1px solid #dfd3be}.table-detail-item strong{white-space:nowrap}.table-detail-order-foot{margin-top:10px;flex-wrap:wrap}.table-detail .ticket-actions button{min-width:120px}.floorzone .floorslot.occupied.busy{background:#a52532;border:2px solid #741622;color:#fff}.floorzone .floorslot.occupied.free{background:#187447;border:2px solid #0f5735;color:#fff}.floorzone .floorslot.occupied.busy small,.floorzone .floorslot.occupied.free small{color:#fff}.floorzone .floorslot.occupied.busy.attention{border-color:#ffdf80;box-shadow:inset 0 0 0 1px #ffdf80}.floorzone .floorslot.occupied:focus-visible{outline:3px solid #1a1a1a;outline-offset:2px}.delete-dialog{width:min(100%,430px);margin:auto;background:#fffefa;color:#171717;border-radius:16px;padding:24px;box-shadow:0 18px 45px #0008}.delete-dialog h2{margin:0 0 10px}.delete-dialog p{line-height:1.5}.delete-dialog label{display:grid;gap:7px;margin:18px 0;font-weight:700}.delete-dialog input{width:100%;border:1px solid #8a8172;border-radius:8px;padding:12px;font-size:1rem}.delete-dialog-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.delete-dialog-actions button{padding:12px 16px;border-radius:9px}.delete-dialog-actions .delete-order{margin:0;background:#a5342b;color:#fff;border:0}.delete-dialog-actions .delete-order:disabled{opacity:.6}.staff-table-label select.choose-table-pulse{border:3px solid #e0ae47;background:#fff1bc;color:#242015;font-weight:800;animation:choose-table-pulse 1.3s ease-in-out infinite;box-shadow:0 0 0 3px #ffde8970}@keyframes choose-table-pulse{0%,to{box-shadow:0 0 0 3px #ffde8970;background:#fff1bc}50%{box-shadow:0 0 0 9px #ffde8920;background:#ffe296}}.staff-items.locked{opacity:.56}.staff-items.locked .qty button:disabled{cursor:not-allowed}@media(prefers-reduced-motion:reduce){.staff-table-label select.choose-table-pulse{animation:none}}.company-panel{max-width:780px;margin:20px auto}.company-panel>p{line-height:1.6}.company-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.company-form{max-width:none}.company-fields label{font-size:1rem;min-width:0}.company-fields input{width:100%;font-size:1rem;box-sizing:border-box}.company-success{background:#e5f4e8;color:#174923;padding:14px;border-radius:8px}.company-form .form-actions{flex-wrap:wrap}.invoice-issuer,.ticket-paper header p,.ticket-paper header h2{overflow-wrap:anywhere}@media(max-width:600px){.company-fields{grid-template-columns:1fr}}.order-edit-line{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #ddd}.order-edit-line label{flex:1;min-width:160px}.order-edit-line input{max-width:100px}

.mock-item-image{position:relative;overflow:hidden}.mock-item-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* Artículo varios (solo Pau) */
.custom-item{margin:14px 0}.custom-item>.secondary{width:100%}.custom-form{border:1px solid #d9c7aa;border-radius:12px;padding:12px;margin-top:10px}.custom-lines{list-style:none;padding:0;margin:10px 0}.custom-lines li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid #ddd}
/* Aviso al camarero */
.call-waiter{background:#f5db9d;color:#141414;border:0;border-radius:20px;padding:8px 12px;font-weight:bold;font-size:.78rem;white-space:nowrap;cursor:pointer}
.call-waiter:disabled{opacity:.7;cursor:default}
.call-overlay{position:fixed;inset:0;z-index:50;background:#000b;display:flex;align-items:center;justify-content:center;padding:18px}
.call-dialog{background:#fff7e5;color:#171612;border-radius:18px;padding:24px;max-width:360px;width:100%;text-align:center}
.call-dialog h2{margin:0 0 8px}.call-dialog p{margin:0 0 18px}
.call-dialog .actions{display:flex;flex-direction:column;gap:10px}.call-dialog button{width:100%}
.call-banner{background:#8a1f11;color:#fff;border-radius:12px;padding:10px 12px;margin:0 0 14px}
.call-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0}.call-row .primary{width:auto;padding:8px 14px}
/* Música de la carta (móviles de clientes) */
.music-toggle{background:transparent;color:#f5db9d;border:1px solid #9f8b61;border-radius:20px;padding:8px 12px;font-weight:bold;font-size:.78rem;white-space:nowrap;cursor:pointer}
.music-toggle.on{background:#f5db9d;color:#141414;border-color:#f5db9d}
/* Códigos de barras y lector */
.scan-ok{color:#9be3b0;margin:6px 0;font-weight:bold}.scan-error{color:#ffb3a7;margin:6px 0;font-weight:bold}
.barcode-fields{border:1px solid #d9c7aa;border-radius:12px;padding:10px 12px;margin:12px 0}.barcode-fields legend{padding:0 6px;font-weight:bold}
.barcode-fields .form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.barcode-fields .form-row label{width:auto;min-width:0}.barcode-fields input{width:100%;box-sizing:border-box}

.scanned-lines{margin:12px 0}.scanned-lines h3{margin:0 0 6px}
/* Tienda: importación y búsqueda */
.shop-panel{margin-top:6px}.import-box{border:1px solid #d9c7aa;border-radius:12px;padding:12px;margin:10px 0}
.import-map{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}.import-map label{display:flex;flex-direction:column;gap:4px;font-size:.85rem}
.import-map select{width:100%;box-sizing:border-box}.import-result{margin:10px 0}
.secondary.danger{margin-top:12px;color:#8a1f11;border-color:#8a1f11}
/* Cobro: efectivo, tarjeta o ambos */
.pay-overlay{position:fixed;inset:0;z-index:60;background:#000b;display:flex;align-items:center;justify-content:center;padding:14px;overflow:auto}
.pay-dialog{background:#fff7e5;color:#171612;border-radius:18px;padding:20px;max-width:420px;width:100%}
.pay-dialog h2{margin:0 0 6px}.pay-dialog p{margin:8px 0}.pay-total{font-size:1.4rem}
.pay-dialog label{display:block;font-weight:bold;margin:10px 0 4px}.pay-dialog input{width:100%;box-sizing:border-box;font-size:1.2rem}
.pay-modes{display:flex;gap:6px;margin:10px 0}.pay-modes button{flex:1;padding:10px 6px;border-radius:12px;border:1px solid #9f8b61;background:#fff;color:#171612;font-weight:bold;cursor:pointer}.pay-modes button.selected{background:#d9b96b}
.pay-quick{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.pay-quick button{padding:8px 12px;border-radius:10px;border:1px solid #9f8b61;background:#fff;color:#171612;font-weight:bold;cursor:pointer}
.pay-change{font-size:1.25rem;color:#1f6b36}.pay-change.big{font-size:2rem;text-align:center;margin:14px 0}
.pay-dialog .scan-error{color:#a3271a}.pay-actions{display:flex;flex-direction:column;gap:8px;margin-top:14px}.pay-actions button{width:100%}
/* TPV Tienda */
.tpv-badge{display:inline-block;background:#d9b96b;color:#171612;font-weight:bold;border-radius:12px;padding:4px 12px;margin:6px 0}
.tpv-pending{background:#8a5a11;color:#fff;border-radius:12px;padding:10px 12px;margin:8px 0;display:flex;flex-direction:column;gap:8px}
.scanned-lines{background:#fdf6e6;border:1px solid #d9c7aa;border-radius:14px;padding:10px 14px;margin:10px 0}.scanned-lines h3{color:#171612;margin:0 0 6px}.scanned-lines .staff-item{color:#171612}.scanned-lines .staff-item strong{color:#171612}.scanned-lines .staff-item small{color:#6b5d44;display:block}.scanned-lines .staff-item .qty strong{min-width:24px;text-align:center}
/* TPV: varias ventas en espera */
.tpv-wait-row{display:flex;flex-direction:column;gap:6px;padding:6px 0;border-top:1px solid #ffffff44}.tpv-wait-actions{display:flex;gap:8px;flex-wrap:wrap}.tpv-wait-actions button{width:auto;padding:8px 12px}
.send-top{display:flex;flex-direction:column;gap:8px}
/* Buscador de artículos en Tomar pedido */
.search-results{background:#fdf6e6;border:1px solid #d9c7aa;border-radius:14px;padding:4px 8px;margin:8px 0}
.search-hit{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid #e6d8b8;padding:10px 4px;color:#171612;cursor:pointer}.search-hit:last-child{border-bottom:0}
.search-hit strong{display:block;color:#171612}.search-hit small{display:block;color:#6b5d44}.search-hit:disabled{opacity:.5;cursor:default}
.search-add{background:#d9b96b;color:#171612;border-radius:10px;padding:6px 10px;font-weight:bold;font-size:.8rem;white-space:nowrap}
/* Escáner con cámara */
.cam-overlay{position:fixed;inset:0;z-index:70;background:#000e;display:flex;align-items:center;justify-content:center;padding:12px;overflow:auto}
.cam-box{background:#101110;color:#f7f0e2;border-radius:16px;padding:16px;max-width:460px;width:100%}
.cam-box h2{margin:0 0 10px}.cam-box p{margin:8px 0}.cam-box .primary{width:100%;margin-top:10px}
.cam-view{position:relative;border-radius:12px;overflow:hidden;background:#000;aspect-ratio:4/3}.cam-view video{width:100%;height:100%;object-fit:cover}
.cam-frame{position:absolute;left:8%;right:8%;top:28%;bottom:28%;border:3px solid #d9b96b;border-radius:10px;box-shadow:0 0 0 999px #0005;pointer-events:none}
/* Copia de seguridad */
.backup-panel{margin-top:22px;border:1px solid #d9c7aa;border-radius:14px;padding:14px;background:#fdf6e6;color:#171612}
.backup-panel h3{margin:0 0 6px}.backup-panel label{display:block;font-weight:bold;margin:10px 0 4px}.backup-panel input{width:100%;box-sizing:border-box}
.backup-panel .primary{margin-top:10px}.backup-panel .scan-ok{color:#1f6b36}.backup-panel .scan-error{color:#a3271a}
/* Cocina: pedido ya cobrado */
.kitchen-paid{background:#1f6b36;color:#fff;border-radius:8px;padding:2px 8px;font-size:.75rem;font-weight:bold;margin-left:8px;white-space:nowrap}
/* Teléfono y dirección en la tarjeta del pedido */
.order-contact{margin:10px 0 0;padding:8px 12px;background:#fff7e5;border:1px solid #d9c7aa;border-radius:10px;color:#171612}
.order-contact p{margin:3px 0;word-break:break-word}.order-contact a{color:#0b5cad;font-weight:bold;text-decoration:none}
/* Comanda abierta de la mesa en Tomar pedido */
.open-order{background:#eaf3fb;border:1px solid #9bbbd9;border-radius:14px;padding:10px 14px;margin:10px 0;color:#171612}
.open-order h3{margin:0 0 6px;color:#171612}.open-order-status{font-size:.72rem;font-weight:bold;text-transform:uppercase;background:#1f5f99;color:#fff;border-radius:8px;padding:2px 8px;margin-left:6px}
.open-order-line{display:flex;justify-content:space-between;gap:10px;padding:4px 0;border-bottom:1px solid #cfe0ee}.open-order-line strong{white-space:nowrap}
.open-order-foot{display:flex;justify-content:space-between;margin-top:8px;font-size:.95rem}.open-order .ticket-actions{margin-top:8px}.open-order .small{margin:6px 0}
/* Artículos de tienda por peso */
.weight-entry{display:flex;align-items:center;gap:8px}
.weight-entry input{width:104px;text-align:right;font-size:1.15rem;font-weight:bold;padding:9px 10px;border-radius:10px;border:2px solid #d9b96b;background:#fffdf7;color:#171612}
.weight-entry span{font-weight:bold;color:#171612}.weight-entry button{border:0;background:#f1d6d0;color:#8a1f12;border-radius:10px;padding:9px 12px;font-weight:bold;cursor:pointer}
.check-line{display:flex;align-items:flex-start;gap:8px;margin:10px 0;font-weight:bold}.check-line input{width:auto;margin-top:3px}
/* Aviso de versión del servidor */
.version-warning{display:flex;flex-direction:column;gap:4px;background:#fde7c8;border:2px solid #c46a00;border-radius:12px;padding:10px 14px;margin:10px 0;color:#4a2400}
.version-warning strong{color:#8a3b00}
/* Verifactu: QR de la factura (30-40 mm, zona de silencio incluida en el SVG) y panel de administración */
.vf-qr{display:flex;flex-direction:column;align-items:center;gap:4px;margin:12px 0 4px;text-align:center}
.vf-qr-label{margin:0;font-size:.85rem;font-weight:bold}.vf-qr-legend{margin:0;font-size:1rem;font-weight:bold;letter-spacing:.04em}
.vf-qr-svg{display:block;width:210px;height:210px;background:#fff}
@media print{.vf-qr-svg{width:40mm;height:40mm}.vf-qr-label{font-size:11px}.vf-qr-legend{font-size:13px}}
.vf-panel .vf-state{margin:6px 0}.vf-data{display:grid;gap:6px;margin:8px 0}.vf-data div{display:flex;gap:10px;flex-wrap:wrap}.vf-data dt{font-weight:bold;min-width:150px}.vf-data dd{margin:0}
.vf-alert{background:#fde7c8;border:2px solid #c46a00;border-radius:10px;padding:8px 12px;color:#4a2400}
.vf-actions{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}.vf-msg{font-weight:bold}.vf-checks{list-style:none;padding:0;margin:8px 0}.vf-checks li{padding:3px 0}.vf-checks .bad{color:#8a1f12;font-weight:bold}.vf-checks .ok{color:#17612e}
.vf-activate{margin-top:14px;padding-top:12px;border-top:1px dashed #b9a98a}
/* Verifactu: envío a Hacienda, agente y productor */
.vf-send,.vf-agentkey,.vf-productor{margin-top:16px;padding-top:12px;border-top:1px dashed #b9a98a}
.vf-send h3,.vf-agentkey h3,.vf-productor h3{margin:0 0 8px}
.vf-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;list-style:none;padding:0;margin:8px 0}
.vf-counts li{background:#f1ead9;border-radius:10px;padding:8px 4px;text-align:center}.vf-counts li strong{display:block;font-size:1.4rem}.vf-counts li span{font-size:.78rem}
.vf-counts li.warn{background:#fde7c8}.vf-counts li.bad{background:#f3c9c2}
.vf-agent.ok{color:#17612e;font-weight:bold}.vf-agent.bad{color:#8a1f12;font-weight:bold}
.vf-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:.92rem}.vf-table th,.vf-table td{text-align:left;padding:6px 8px;border-bottom:1px solid #e1d7bf;vertical-align:top}
.vf-table .e-aceptado{color:#17612e}.vf-table .e-aceptado_errores{color:#8a5a00}.vf-table .e-rechazado{color:#8a1f12}
.vf-token{display:flex;flex-direction:column;gap:6px;margin-top:10px;background:#fffdf7;border:2px solid #d9b96b;border-radius:10px;padding:10px}.vf-token code{word-break:break-all;font-size:1rem}
/* Etiquetas de góndola */
.labels-box{margin:10px 0;padding:12px;border:1px solid #d9cdb0;border-radius:12px;background:#fffdf7}
.labels-box h3{margin:14px 0 6px}.labels-results .availability{display:flex;justify-content:space-between;align-items:center;gap:8px}
.labels-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid #eadfc6}.labels-row>span{flex:1}.labels-copies{display:flex;flex-direction:column;font-size:.8rem}.labels-copies input{width:64px}
.labels-custom{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:8px 0}.labels-opts{display:flex;flex-direction:column;gap:2px;margin:8px 0}
.labels-preview{border:1px solid #bbb;background:#fff;overflow:hidden;margin:8px 0;box-shadow:0 1px 6px rgba(0,0,0,.2)}
.glabel{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:1.2mm 1.5mm;overflow:hidden;color:#000;background:#fff;text-align:center;font-family:Arial,Helvetica,sans-serif;line-height:1.05}
.gl-name{font-weight:bold;max-width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.gl-price{font-weight:900;letter-spacing:-.02em}.gl-small{font-size:6pt}.gl-foot{display:flex;justify-content:space-between;width:100%}
.gl-code{display:flex;flex-direction:column;align-items:center}.gl-bars{display:block}.gl-digits{letter-spacing:.06em;font-family:'Courier New',monospace;margin-top:.5mm}
.label-page{page:labels;box-sizing:border-box;overflow:hidden;background:#fff;break-after:page;page-break-after:always}
.label-page:last-child{break-after:auto;page-break-after:auto}
.label-print-root{display:none}
@media print{
 body.printing-labels #root{display:none!important}
 body.printing-labels .label-print-root{display:block!important;position:static}
 body.printing-labels .label-print-root,body.printing-labels .label-print-root *{visibility:visible!important}
 body.printing-labels{background:#fff!important}
}

.labels-btns{display:flex;gap:6px;flex-wrap:wrap}.labels-box label small{display:block;font-weight:normal;margin-top:2px}

/* Rectificación de facturas */
.invoice-rect{text-align:center;font-size:.85rem;margin:6px 0;padding:6px;border:1px dashed #555}
@media print{.screen-only{display:none!important}}
.rect-dialog{position:fixed;inset:0;margin:auto;max-width:520px;max-height:92vh;overflow:auto;background:#fffdf7;color:#171612;border-radius:14px;padding:16px;z-index:60;box-shadow:0 8px 40px rgba(0,0,0,.5);display:flex;flex-direction:column;gap:8px;height:fit-content}
.rect-line{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid #eadfc6}.rect-line label{display:flex;flex-direction:column;font-size:.8rem}.rect-line input{width:84px;text-align:right}
.rect-method{display:flex;gap:16px;border:0;padding:0;margin:4px 0}.rect-total{font-size:1.1rem}

/* Cuadro de rectificación: colores y disposición legibles sobre fondo claro */
.rect-dialog h2{margin:0 0 4px}.rect-dialog .small{color:#5b5240}
.rect-dialog>label{display:flex;flex-direction:column;gap:4px;font-weight:bold}.rect-dialog>label input,.rect-dialog>label select{width:100%;box-sizing:border-box}
.rect-dialog .rect-line label{font-weight:normal;color:#3a3427}
.rect-dialog .rect-method label{flex-direction:row;font-weight:normal;display:flex;gap:6px;align-items:center}.rect-dialog .rect-method legend{font-weight:bold;margin-bottom:4px}
.rect-dialog .scan-error{color:#8a1f12;font-weight:bold;background:#fbe4e0;border-radius:8px;padding:8px 10px;margin:4px 0}
.rect-dialog .form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}

/* Declaración responsable */
.dr-link{text-align:center;margin:26px 0 8px}.dr-link .linklike{background:none;border:0;color:#d9b96b;text-decoration:underline;cursor:pointer;font-size:.85rem}
.vf-dr{margin-top:16px;padding-top:12px;border-top:1px dashed #b9a98a}.vf-dr h3{margin:0 0 8px}
.dr-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:70;overflow:auto;padding:10px}
.dr-dialog{max-width:820px;margin:0 auto;background:#fff;color:#171612;border-radius:12px;padding:12px}
.dr-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.dr-form{background:#fffdf7;border:1px solid #d9cdb0;border-radius:10px;padding:10px;margin:8px 0;display:flex;flex-direction:column;gap:8px}
.dr-form label{display:flex;flex-direction:column;gap:3px;font-weight:bold;font-size:.9rem}.dr-form input,.dr-form select,.dr-form textarea{width:100%;box-sizing:border-box;font:inherit;font-weight:normal}
.dr-row{display:flex;gap:8px;flex-wrap:wrap}.dr-row label{flex:1;min-width:130px}
.dr-paper{font-family:Georgia,'Times New Roman',serif;font-size:11pt;line-height:1.35;color:#000;background:#fff;padding:6mm 4mm}
.dr-paper h1{font-size:14pt;text-align:center;margin:0 0 8px}.dr-paper h2{font-size:12pt;text-align:center;margin:18px 0 6px;border-top:1px solid #999;padding-top:10px}
.dr-paper dt{font-weight:bold;margin-top:9px}.dr-paper dd{margin:2px 0 0 14px}.dr-paper dd.pre{white-space:pre-line}.dr-paper small{font-size:8pt;word-break:break-all}
.dr-estado{text-align:center;font-weight:bold;padding:5px;border:1px solid #999}.dr-estado.ok{color:#17612e;border-color:#17612e}.dr-estado.pend{color:#8a3b00;border-color:#c46a00;background:#fdf0dc}
.dr-hist{margin-top:14px;border-top:1px dashed #aaa;padding-top:8px}.dr-hist ul{padding-left:18px}
.dr-print-root{display:none}
@media print{
 body.printing-dr #root{display:none!important}
 body.printing-dr .dr-print-root{display:block!important}
 body.printing-dr .dr-print-root,body.printing-dr .dr-print-root *{visibility:visible!important}
 body.printing-dr .dr-paper{padding:12mm 14mm}
}

/* Paso a producción */
.vf-prod{margin-top:16px;padding:12px;border:2px solid #b9892b;border-radius:12px;background:#fffaf0;display:flex;flex-direction:column;gap:8px}.vf-prod h3{margin:0}
.vf-checks li small{display:block;margin-left:1.4em;opacity:.85}

/* Identificación de la instalación */
.identity-colors{border:0;padding:0;margin:6px 0}.identity-colors legend{font-weight:bold;margin-bottom:6px}
.identity-colors [role=radiogroup]{display:flex;gap:10px;flex-wrap:wrap}
.swatch{width:42px;height:42px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px #999;cursor:pointer;color:#fff;font-weight:bold}
.swatch.on{box-shadow:0 0 0 3px #171612}.swatch.none{background:#e8ddc9;color:#171612}
.identity-preview{color:#fff;font:700 12px/24px system-ui,sans-serif;letter-spacing:.12em;text-align:center;text-transform:uppercase;border-radius:6px;padding:0 8px;margin:8px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Declaración: qué se está viendo */
.dr-vista{margin:6px 0;padding:6px 8px;background:#eef3ea;border:1px solid #b7c9ae;border-radius:8px;font-size:.88rem}
.dr-form small{display:block;font-weight:normal;color:#8a3b00}

/* Declaración: copiar datos entre instalaciones */
.dr-copy{border:1px dashed #b9a98a;border-radius:8px;padding:6px 8px}.dr-copy summary{cursor:pointer;font-weight:bold}

/* Catálogo: exportar e importar entre instalaciones */
.catalog-panel{margin:0 0 16px;padding:10px 12px;border:1px solid #d9cdb0;border-radius:12px;background:#fffdf7;color:#171612}
.catalog-panel summary{cursor:pointer;font-weight:bold}.catalog-panel h3{margin:14px 0 6px;font-size:1rem}.catalog-panel h4{margin:12px 0 4px}
.catalog-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;list-style:none;padding:0;margin:8px 0}.catalog-counts li{background:#f1ead9;border-radius:10px;padding:8px 4px;text-align:center}.catalog-counts li strong{display:block;font-size:1.3rem}.catalog-counts li span{font-size:.78rem}.catalog-counts li.warn{background:#fde7c8}
.catalog-list{list-style:none;padding:0;margin:4px 0}.catalog-list li{padding:6px 0;border-bottom:1px solid #eadfc6}.catalog-list.bad li small{color:#8a1f12}
.catalog-plan label{display:flex;flex-direction:column;gap:4px;font-weight:bold;margin:10px 0}.catalog-plan input{width:100%;box-sizing:border-box}
.catalog-done{margin-top:10px;padding:8px 10px;background:#eaf3e6;border:1px solid #9fc58f;border-radius:8px}

/* Facturas completas: clientes y canje */
/* Pantallas de cliente según el mockup de Maitancat. */
.customer-app{background:#101110;min-height:100vh}
.customer-app .table{border:1px solid #9f8b61;color:#fff;border-radius:20px;padding:8px 11px;font-weight:bold;font-size:.75rem;white-space:nowrap}
/* Facturas completas: cliente, sustitución, listados */
.customer-form{border:1px solid #d9cdb0;border-radius:10px;padding:10px;margin:8px 0;display:flex;flex-direction:column;gap:8px;background:#fffdf7;color:#171612}
.customer-form legend{font-weight:bold;padding:0 6px}
.customer-form label{display:flex;flex-direction:column;gap:4px;font-weight:bold}
.customer-form input,.customer-form select{width:100%;box-sizing:border-box}
.customer-form small{font-weight:normal;opacity:.8}
.customer-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.customer-save{flex-direction:row!important;align-items:center;gap:8px!important}
.customer-save input{width:auto}
.customer-ok{color:#2e6b2e;margin:0}
.customer-bad{color:#9b2a1a;margin:0}
.customer-found{list-style:none;margin:0;padding:0;border:1px solid #d9cdb0;border-radius:8px;max-height:200px;overflow:auto}
.customer-found button{width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid #eadfc6;padding:8px;display:flex;flex-direction:column;cursor:pointer}
.substitute-dialog{max-height:92vh;overflow:auto;max-width:560px;width:96%}
.invoice-customer{margin:8px 0;padding:8px;border:1px solid #ccc;border-radius:6px}
.full-panel,.customers-panel{margin:0 0 14px;padding:10px 12px;border:1px solid #d9cdb0;border-radius:12px;background:#fffdf7;color:#171612}
.full-panel summary,.customers-panel summary{cursor:pointer;font-weight:bold}
.full-list{list-style:none;padding:0;margin:6px 0}
.full-list li{border-bottom:1px solid #eadfc6}
.full-list>li>button{width:100%;display:flex;justify-content:space-between;gap:8px;align-items:center;text-align:left;background:transparent;border:0;padding:8px 0;cursor:pointer;color:inherit}
.customer-line{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:6px 0}
.customer-actions{display:flex;gap:6px}
@media print{.customer-form,.full-panel,.customers-panel{display:none!important}}
.pay-invoice-toggle{display:flex;align-items:center;gap:8px;margin:8px 0;font-size:1rem}
.pay-invoice-toggle input{width:22px;height:22px}
/* v53: pedidos a proveedores y orden de categorías */
.sup-panel{max-width:860px}.sup-panel h2,.sup-panel h3{font-family:Georgia,serif;margin:0 0 10px}
.sup-bar select,.sup-search input{width:100%;padding:12px;font-size:1rem;border:1px solid #b9a982;border-radius:12px;background:#fffdf8;color:#242424}
.sup-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0 0}.sup-actions .primary{width:auto;min-height:52px}
.sup-since{display:flex;align-items:center;gap:8px;font-size:.95rem}.sup-since input{padding:8px;border:1px solid #b9a982;border-radius:10px;background:#fffdf8;color:#242424}
.sup-search{display:flex;gap:10px;align-items:center}.sup-ok{background:#e1efdc;border:1px solid #6e9a62;color:#1d3a17;border-radius:12px;padding:10px 14px;margin:10px 0}
.sup-line{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid #ddd}.sup-done{opacity:.55}
.sup-qty{display:flex;align-items:center;gap:10px;white-space:nowrap}.sup-qty strong{min-width:34px;text-align:center;font-size:1.25rem}.sup-qty .secondary{padding:8px 14px;font-size:1.2rem}
.sup-check{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid #ddd;font-size:1.05rem}.sup-check input{width:26px;height:26px}.sup-check span:nth-child(2){flex:1}.sup-qtytext{white-space:nowrap}
.sup-skipped{margin-top:14px;padding:10px;border:1px dashed #a88f65;border-radius:12px}
.sup-pass{text-align:center;max-width:520px}.sup-code{font-size:2.6rem;font-weight:800;letter-spacing:.06em;margin:6px 0;user-select:all;word-break:break-all}.sup-bigqty{font-size:1.7rem;margin:6px 0}.sup-bigqty strong{font-size:2.4rem}
.sup-pass .sup-actions{justify-content:center}
.category-order .availability strong{font-size:1.05rem}
/* v54: actualizar costes y precios desde la factura */
.price-row{display:flex;flex-direction:column;gap:6px;padding:12px 4px;border-bottom:1px solid #ddd}.price-warn{background:#fff4e0}
.price-grid{display:flex;flex-direction:column;gap:6px}.price-check{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.98rem}.price-check input[type=checkbox]{width:22px;height:22px}
.price-input{width:84px;padding:8px;border:1px solid #b9a982;border-radius:10px;background:#fffdf8;color:#242424;font-size:1rem}.price-note{color:#8a4b00;font-size:.9rem;margin-top:2px}
/* v55: PVPR del proveedor */
.price-pvpr{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:4px;font-size:.95rem}.price-promo{color:#8a4b00}.price-pvpr .secondary{padding:6px 12px}
/* v57: cuadre de caja */
.cash-close{max-width:720px}.cash-rows{display:flex;flex-direction:column;gap:2px}.cash-rows>div{display:flex;justify-content:space-between;gap:12px;padding:8px 4px;border-bottom:1px solid #e3d9c2;font-size:1.02rem}
.cash-total{font-weight:700;font-size:1.12rem!important;background:#f4ecd8;border-radius:8px}.cash-diff{font-size:1.2rem;font-weight:700;margin:8px 0}.cash-ok{color:#1d5c2b}.cash-bad{color:#a11d1d}.cash-warn{color:#8a4b00}
.cash-withdraw{font-size:1.1rem;margin:8px 0}.cash-den summary{cursor:pointer;margin:6px 0}.cash-den-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.cash-den-grid label{display:flex;flex-direction:column;font-size:.9rem}.cash-den-grid input{width:100%;padding:8px;border:1px solid #b9a982;border-radius:10px;background:#fffdf8}
.cash-hist{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
/* v59: ticket compacto (menos papel) */
.ticket-meta{display:flex;justify-content:space-between;gap:8px;margin:6px 0;font-size:14px}.ticket-meta strong{white-space:nowrap}.ticket-paper dl:empty{display:none}
@media print{
 .ticket-paper{padding:1.5mm 3mm 1.5mm 5mm;font-size:12.5px;line-height:1.18}
 .ticket-paper header{padding:0 0 2px;border-bottom:1px solid #000}
 .ticket-paper header h2{font-size:17px;line-height:1.1}
 .ticket-paper header strong{border:0;padding:0;margin-top:1px;font-size:12px;letter-spacing:.04em}
 .ticket-paper header p{margin:2px 0 3px;font-size:10px;letter-spacing:.03em;line-height:1.2}
 .ticket-paper .invoice-issuer{font-size:11px;line-height:1.2;margin:3px 0;padding-bottom:3px}
 .ticket-paper .ticket-meta{margin:3px 0;font-size:12px}
 .ticket-paper dl{margin:2px 0;font-size:11.5px}.ticket-paper dl>div{padding:0}
 .ticket-paper .ticket-lines{padding:1px 0}
 .ticket-paper .ticket-labels{font-size:9.5px;padding-bottom:1px}
 .ticket-paper .ticket-line{padding:1.5px 0;border-top:0;font-size:13px;gap:6px;line-height:1.15}
 .ticket-paper .ticket-line small{font-size:10.5px;margin-top:0;line-height:1.1}
 .ticket-paper .ticket-note{padding:3px 0;font-size:11px}
 .ticket-paper .ticket-taxes{padding:2px 0;font-size:11px}.ticket-paper .ticket-taxes>div{padding:1px 0}
 .ticket-paper .ticket-total{padding:3px 0;font-size:17px;border-bottom:1px solid #000}
 .ticket-paper .vf-qr{margin:3px 0 0;gap:1px}.ticket-paper .vf-qr-label{font-size:10px}.ticket-paper .vf-qr-legend{font-size:11px}
 .ticket-paper .vf-qr-svg{width:32mm;height:32mm}
 .ticket-paper footer{padding:2px 0 0}.ticket-paper footer strong{font-size:11px}.ticket-paper footer p{font-size:9.5px;margin:2px 0 0}
 .ticket-paper .invoice-rect{margin:2px 0;padding:2px;font-size:10.5px}
 .ticket-paper .invoice-customer{margin:3px 0;padding:3px;font-size:11px;line-height:1.2}
}
.ticket-rate{margin-left:5px;font-size:11px;color:#555;white-space:nowrap}
@media print{.ticket-paper .ticket-rate{font-size:10px}}
/* v59: ventas tienda */
.shop-sale{display:flex;flex-direction:column;gap:10px;max-width:860px;margin:0 auto}
.ss-total{position:sticky;top:0;z-index:6;display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fffdf8;color:#1c211d;border:2px solid #1c211d;border-radius:16px;padding:10px 18px;box-shadow:0 4px 14px #0003}
.ss-total span{font-size:1rem;font-weight:700;letter-spacing:.12em}.ss-total strong{font-size:3.4rem;line-height:1;font-variant-numeric:tabular-nums}.ss-total small{font-size:.95rem;color:#555;flex-basis:100%;text-align:right;margin-top:-6px}
.ss-code{display:flex;gap:8px}.ss-code input{flex:1;min-width:0;padding:16px;font-size:1.25rem;border:2px solid #b9a982;border-radius:14px;background:#fffdf8;color:#1c211d}.ss-code .secondary{font-size:1.5rem;padding:8px 16px}
.ss-lines{display:flex;flex-direction:column;overflow-y:auto;min-height:34vh;max-height:46vh;background:#fffdf8;color:#1c211d;border-radius:14px;padding:6px 10px;border:1px solid #d9cdb0}
.ss-lines>:first-child{margin-top:auto}.ss-empty{margin:auto;text-align:center;color:#777;padding:18px}
.ss-line{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid #e3d9c2}
.ss-last{animation:ssflash .9s ease-out;background:#f1f7e8}@keyframes ssflash{from{background:#cfe8b8}to{background:#f1f7e8}}
.ss-name{display:flex;flex-direction:column;min-width:0}.ss-name strong{font-size:1.15rem;overflow-wrap:anywhere}.ss-name small{color:#666}
.ss-qty{display:flex;align-items:center;gap:8px}.ss-qty strong{min-width:30px;text-align:center;font-size:1.3rem}.ss-qty button{width:44px;height:44px;font-size:1.4rem;border-radius:12px;border:1px solid #b9a982;background:#f4ecd8;color:#1c211d}
.ss-qty input{width:84px;padding:10px;font-size:1.2rem;border:1px solid #b9a982;border-radius:10px;background:#fff}
.ss-amount{font-size:1.3rem;min-width:84px;text-align:right;font-variant-numeric:tabular-nums}.ss-del{border:0;background:none;font-size:1.3rem;color:#a11d1d;padding:8px;cursor:pointer}
.ss-actions{display:flex;flex-direction:column;gap:8px}.ss-charge{width:100%;min-height:68px;font-size:1.6rem;font-weight:800}.ss-secondary{display:flex;gap:8px}.ss-secondary .secondary{flex:1;padding:14px 8px}
.ss-waiting h3{margin:6px 0}
@media(max-width:480px){.ss-total strong{font-size:2.8rem}.ss-line{grid-template-columns:1fr auto auto;grid-template-areas:"n n d" "q a a"}.ss-name{grid-area:n}.ss-del{grid-area:d}.ss-qty{grid-area:q}.ss-amount{grid-area:a}}
.adminnav.nav-compact{flex-wrap:nowrap!important;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:4px}.adminnav.nav-compact button{flex:0 0 auto}
/* v60: alarma de artículo no añadido */
.ss-alert{display:flex;flex-direction:column;gap:6px;background:#b3261e!important;color:#fff!important;border:3px solid #7a120d;border-radius:14px;padding:14px 16px;font-size:1.25rem;animation:ssshake .5s,sspulse 1s ease-in-out 2}
.ss-alert strong{font-size:1.6rem;letter-spacing:.04em}.ss-alert button{align-self:flex-start;margin-top:4px;padding:10px 18px;border-radius:10px;border:2px solid #fff;background:#fff;color:#7a120d;font-weight:800;font-size:1rem;cursor:pointer}
@keyframes ssshake{0%,100%{transform:translateX(0)}20%{transform:translateX(-10px)}40%{transform:translateX(10px)}60%{transform:translateX(-8px)}80%{transform:translateX(8px)}}
@keyframes sspulse{0%,100%{box-shadow:0 0 0 0 #b3261e}50%{box-shadow:0 0 0 14px #b3261e55}}
.ss-missed{flex-basis:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;background:#b3261e;color:#fff;border-radius:10px;padding:8px 12px;margin-top:6px}.ss-missed strong{font-size:1rem}.ss-missed button{border:2px solid #fff;background:#fff;color:#7a120d;border-radius:8px;padding:6px 12px;font-weight:800;cursor:pointer}
.ss-test{background:none;border:0;color:#666;font-size:.85rem;text-decoration:underline;cursor:pointer;padding:6px}
/* v62: valoración de stock */
.stock-val summary{cursor:pointer;font-weight:700;font-size:1.1rem}.stock-val h4{margin:14px 0 4px}
.sv-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:10px 0}
.sv-card{display:flex;flex-direction:column;gap:2px;background:#fffdf8;border:2px solid #1c211d;border-radius:12px;padding:10px 12px}.sv-card span{font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:#555}.sv-card strong{font-size:1.7rem;font-variant-numeric:tabular-nums}.sv-card small{color:#666}
.sv-issues{display:flex;flex-direction:column;gap:6px;background:#fff4e0;border:1px solid #c98a2b;border-radius:12px;padding:10px;margin:8px 0}.sv-issues .secondary{text-align:left}
.sv-nums{text-align:right}.sv-search{flex:1;min-width:200px;padding:10px;border:1px solid #b9a982;border-radius:10px;background:#fffdf8}
.sv-lines{display:flex;flex-direction:column}.sv-line{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:center;padding:8px 4px;border-bottom:1px solid #e3d9c2}.sv-flag{background:#fff4e0}
.sv-name{display:flex;flex-direction:column;gap:2px;min-width:0}.sv-name small{color:#666}.sv-qty{font-variant-numeric:tabular-nums;white-space:nowrap}.sv-val{display:flex;flex-direction:column;text-align:right;font-variant-numeric:tabular-nums}.sv-val span{font-size:.8rem;color:#666}
.sv-badge{display:inline-block;margin-right:4px;font-style:normal;font-size:.75rem;font-weight:700;color:#8a4b00;background:#ffe3b3;border-radius:6px;padding:1px 6px}
@media(max-width:560px){.sv-line{grid-template-columns:1fr auto;grid-template-areas:"n q" "c p"}.sv-name{grid-area:n}.sv-qty{grid-area:q}}
/* v63: retomar una venta en espera */
.ss-resume{display:flex;flex-direction:column;gap:4px;background:#e8f1ff;color:#102a52;border:2px solid #2b5fb4;border-radius:12px;padding:10px 14px}.ss-resume strong{font-size:1.1rem}.ss-resume button{align-self:flex-start;margin-top:4px;padding:8px 14px;border-radius:10px;border:2px solid #2b5fb4;background:#fff;color:#102a52;font-weight:800;cursor:pointer}
.ss-wbtns{display:flex;gap:6px}.ss-editing{color:#2b5fb4;font-style:normal;font-weight:700}
/* v69: cafetería en Ventas tienda */
.ss-cafe{display:flex;flex-direction:column;gap:6px}.ss-cafe-toggle{align-self:flex-start}.ss-cafe-cats{padding:0 0 4px}
.ss-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;max-height:34vh;overflow-y:auto;padding:2px}
.ss-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:92px;padding:8px 6px;border:1px solid #a88f65;border-radius:14px;background:#fffdf8;color:#1c211d;text-align:center;cursor:pointer;font:inherit}
.ss-tile strong{font-size:.9rem;line-height:1.15;overflow-wrap:anywhere}.ss-tile small{color:#6b604e}
.ss-tile-pic{font-size:1.7rem;line-height:1}.ss-tile-pic img{width:38px;height:38px;object-fit:cover;border-radius:8px}
.ss-tile:active{background:#ffe5a9}.ss-tile:disabled{opacity:.5;cursor:not-allowed}
/* v70: pedidos desde el móvil del cliente */
.customer-app .table-picker{display:flex;flex-direction:column;gap:14px;margin:6px 0 10px}
.customer-app .table-zone{margin:0 0 8px;font-size:1rem;letter-spacing:.08em;text-transform:uppercase;color:#d9b86c}
.customer-app .table-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.customer-app .table-pick{border:1px solid #a88f65;background:#f7f0e2;color:#242424;border-radius:16px;min-height:64px;padding:10px 6px;font-weight:bold;font-size:1.05rem;box-shadow:0 3px 0 #a9874d;cursor:pointer;font-family:inherit}
.customer-app .table-pick:active{background:#ffe5a9}
.customer-app .link-btn{background:none;border:0;padding:0;color:#d9b86c;text-decoration:underline;font:inherit;cursor:pointer}
.customer-app .account{background:#f7f0e2;color:#242424;border:1px solid #a88f65;border-radius:16px;padding:12px 14px;margin:10px 0 14px}
.customer-app .account h2{margin:0 0 2px;font-size:1.05rem}
.customer-app .account-state{margin:0 0 8px;color:#6b604e;font-size:.9rem}
.customer-app .account-line,.customer-app .account-total{display:flex;justify-content:space-between;gap:10px;padding:3px 0}
.customer-app .account-total{border-top:1px solid #a88f65;margin-top:6px;padding-top:6px;font-size:1.05rem}
.customer-app .account .qr-hint{color:#6b604e;margin:8px 0 0}
.customer-app .account-summary{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.customer-app .chip{display:inline-block;border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:bold;white-space:nowrap}
.customer-app .chip[data-state="cocina"]{background:#ffe29a;color:#5a3d00}
.customer-app .chip[data-state="preparando"]{background:#cfe3ff;color:#0b3a73}
.customer-app .chip[data-state="servido"]{background:#cdeed2;color:#1b5e2a}
.customer-app .account-line{align-items:flex-start}
.customer-app .account-item{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
/* v72: carta para internet (/carta) */
.wm-body{background:#fbf6ea!important;color:#2a2a2a!important}
.web-menu{max-width:760px;margin:0 auto;padding:0 18px 48px;font-family:Arial,sans-serif;line-height:1.35;color:#2a2a2a}
.wm-head{text-align:center;padding:28px 0 10px}
.wm-head h1{margin:0;font:700 2rem Georgia,serif;letter-spacing:.04em;color:#3b2a14}
.wm-addr,.wm-phone{margin:6px 0 0;color:#5b5140}
.wm-phone a{color:#7a4b00;font-weight:bold;text-decoration:none}
.wm-msg{text-align:center;color:#5b5140;padding:24px 0}
.wm-nav{position:sticky;top:0;z-index:5;background:#fbf6ea;border-bottom:1px solid #d8c9a6;display:flex;gap:8px;overflow-x:auto;padding:10px 0;margin:10px 0 6px}
.wm-nav a{flex:0 0 auto;padding:6px 14px;border:1px solid #b9a273;border-radius:999px;background:#fff;color:#4a3715;text-decoration:none;font-weight:bold;font-size:.9rem}
.wm-sec{padding-top:18px;scroll-margin-top:60px}
.wm-sec h2{margin:0 0 6px;font:700 1.25rem Georgia,serif;color:#3b2a14;border-bottom:2px solid #c9a24d;padding-bottom:4px;letter-spacing:.05em;text-transform:uppercase}
.wm-sec ul{list-style:none;margin:0;padding:0}
.wm-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px dotted #cdbd98}
.wm-item img{width:56px;height:56px;object-fit:cover;border-radius:10px;flex:0 0 auto}
.wm-emoji{width:56px;height:56px;display:flex;align-items:center;justify-content:center;font-size:1.8rem;flex:0 0 auto;background:#f1e7cf;border-radius:10px}
.wm-name{flex:1;font-size:1.02rem}
.wm-price{font-weight:bold;white-space:nowrap;color:#3b2a14}
.wm-foot{margin-top:28px;text-align:center;color:#6b604e;font-size:.85rem}
.wm-cats{border:1px solid #c9b88f;border-radius:12px;padding:10px 14px;margin:10px 0}.wm-check{display:block;padding:4px 0}
@media print{.wm-nav{display:none}.wm-item img{display:none}.wm-body{background:#fff!important}}
/* v73: cobro por separado de la cuenta */
.split-lines{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.split-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid #d6c8a4;border-radius:12px;background:#fff}
.split-line.off{opacity:.55}
.split-name{display:flex;flex-direction:column;min-width:0}.split-name small{color:#6b604e}
.split-qty{display:flex;align-items:center;gap:10px;font-weight:bold}
.split-qty button{width:40px;height:40px;border-radius:10px;border:1px solid #9f8b61;background:#fff;color:#171612;font-size:1.3rem;font-weight:bold;cursor:pointer}
.split-qty button:disabled{opacity:.35;cursor:not-allowed}
.pay-dialog .split-check{display:flex;align-items:center;gap:6px;margin:0}.pay-dialog .split-check input{width:22px;height:22px}
.pay-dialog .small{font-size:.9rem;color:#5b5140}
.pay-dialog .link-btn{background:none;border:0;padding:0;color:#7a4b00;text-decoration:underline;font:inherit;cursor:pointer}
/* v74: QR por mesa */
.qr-modes{display:flex;gap:8px;margin:10px 0}
.qr-modes button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;border-radius:12px;border:1px solid #9f8b61;background:#fff;color:#171612;font-weight:bold;cursor:pointer}
.qr-modes button small{font-weight:normal;color:#5b5140}
.qr-modes button.selected{background:#d9b96b;border-color:#7a4b00}
.qr-tables{list-style:none;margin:10px 0;padding:0;display:flex;flex-direction:column;gap:6px}
.qr-tables li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid #d6c8a4;border-radius:12px;background:#fff;color:#171612;flex-wrap:wrap}
.qr-tables li small{display:block;color:#6b604e}
.qr-table-actions{display:flex;gap:6px;flex-wrap:wrap}
/* v75: tienda online (/tienda) y bandeja del personal */
.shop .shop-head{text-align:center;padding:24px 0 8px}.shop .shop-head h1{margin:0}.shop-sub{margin:2px 0;color:#7a4b00;font-weight:bold;letter-spacing:.08em;text-transform:uppercase;font-size:.85rem}.shop-note{color:#5b5140;font-size:.9rem}
.shop-search{display:flex;gap:10px;align-items:center;margin:8px 0}.shop-search input{flex:1;padding:11px 12px;border-radius:12px;border:1px solid #b9a273;background:#fff;color:#2a2a2a;font-size:1rem}.shop-follow{white-space:nowrap;color:#7a4b00;font-weight:bold}
.shop-grid{list-style:none;margin:0;padding:0 0 84px}.shop-grid li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px dotted #cdbd98}.shop-grid li.off{opacity:.5}
.shop-grid img{width:72px;height:72px;object-fit:cover;border-radius:12px;flex:0 0 auto}.shop-name{flex:1;display:flex;flex-direction:column;font-weight:600}.shop-name small{font-weight:normal;color:#3b2a14}.shop-sold{font-weight:bold;color:#8a1f1f}
.shop-qty{display:inline-flex;align-items:center;gap:8px}.shop-qty button{width:38px;height:38px;border-radius:10px;border:1px solid #9f8b61;background:#fff;color:#171612;font-size:1.25rem;font-weight:bold;cursor:pointer}.shop-qty button:disabled{opacity:.35;cursor:not-allowed}.shop-qty b{min-width:22px;text-align:center}
.shop-bar{position:fixed;left:0;right:0;bottom:0;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));background:#fbf6ea;border-top:1px solid #d8c9a6;display:flex;justify-content:center}
.shop-btn{display:inline-block;padding:13px 20px;border-radius:14px;border:0;background:#d9b96b;color:#171612;font-weight:bold;font-size:1rem;cursor:pointer;min-width:200px}.shop-btn.secondary{background:#fff;border:1px solid #9f8b61}.shop-btn:disabled{opacity:.5;cursor:not-allowed}
.shop-card{background:#fff;border:1px solid #d8c9a6;border-radius:16px;padding:16px;margin:10px 0 40px;display:flex;flex-direction:column;gap:10px}.shop-card h2{margin:0;font:700 1.25rem Georgia,serif;color:#3b2a14}
.shop-card label{display:flex;flex-direction:column;gap:4px;font-weight:600;color:#3b2a14}.shop-card input:not([type=checkbox]):not([type=radio]){padding:10px 12px;border-radius:10px;border:1px solid #b9a273;background:#fff;color:#2a2a2a;font-size:1rem;font-weight:normal}
.shop-lines{list-style:none;margin:0;padding:0}.shop-lines li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dotted #cdbd98}.shop-lines li>span:first-child{flex:1}
.shop-fu{border:1px solid #d8c9a6;border-radius:12px;padding:8px 12px}.shop-fu legend{font-weight:bold;color:#3b2a14}.shop-fu label{flex-direction:row;align-items:flex-start;gap:8px;font-weight:normal}.shop-fu small{display:block;color:#6b604e}
.shop-row{display:grid;grid-template-columns:1fr 1.4fr;gap:10px}.shop-card label.shop-check{flex-direction:row;align-items:flex-start;gap:8px;font-weight:normal}.shop-trap{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.shop-total{font-size:1.1rem;color:#3b2a14;margin:4px 0}.shop-pay{margin:0;color:#3b2a14}.shop-actions{display:flex;gap:10px;flex-wrap:wrap}.shop-legal{white-space:pre-wrap;font-size:.9rem;color:#3b3b3b}
.shop-steps{list-style:none;display:flex;gap:6px;padding:0;margin:6px 0}.shop-steps li{flex:1;text-align:center;padding:8px 4px;border-radius:10px;background:#f1e7cf;color:#6b604e;font-size:.85rem}.shop-steps li.done{background:#cfe3c1;color:#25461a}.shop-steps li.now{background:#d9b96b;color:#171612;font-weight:bold}.shop-cancel{color:#8a1f1f;font-weight:bold}
.online-card{border:1px solid #d6c8a4;border-radius:14px;background:#fff;color:#171612;padding:12px;margin:10px 0;display:flex;flex-direction:column;gap:6px}.online-card header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.online-card .small{color:#5b5140}
.online-card .chip{padding:2px 10px;border-radius:999px;background:#f1e7cf;font-weight:bold;font-size:.8rem}.online-card .chip[data-kind=envio]{background:#d6e4f5}.online-slot,.online-cust,.online-addr,.online-total{margin:0}.online-lines{list-style:none;margin:2px 0;padding:0}.online-lines li{display:flex;justify-content:space-between;gap:10px;padding:3px 0;border-bottom:1px dotted #d6c8a4}
.online-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.online-alert button{margin-left:6px}.secondary.danger{border-color:#8a1f1f;color:#8a1f1f}
.online-pub-tools{display:flex;gap:8px;margin:8px 0}.online-pub-tools input{flex:1;padding:10px;border-radius:10px;border:1px solid #b9a273}.online-pub-tools select{padding:10px;border-radius:10px;border:1px solid #b9a273}
.online-pub-list{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:4px}.online-pub-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border:1px solid #d6c8a4;border-radius:10px;background:#fff;color:#171612;flex-wrap:wrap}.online-pub-list li.on{background:#eef5e6;border-color:#9bb784}
.online-pub-check{display:flex;align-items:center;gap:8px}.online-pub-check input{width:22px;height:22px}.online-pub-check small{display:block;color:#6b604e}.online-block{color:#8a1f1f;font-size:.8rem}
.online-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}.online-shop-panel textarea{width:100%;border-radius:10px;border:1px solid #b9a273;padding:8px;font:inherit}

.shop .shop-head a,.shop-card a,.shop-follow{color:#7a4b00;font-weight:bold}.shop-fu label>span,.shop-check>span{display:flex;flex-direction:column;gap:2px}.shop-check>span{display:block}
.shop-lang{display:flex;gap:6px;margin:0}.shop-lang button{padding:6px 14px;border-radius:999px;border:1px solid #9f8b61;background:#fff;color:#171612;font-weight:bold;cursor:pointer}.shop-lang button.on{background:#d9b96b}
.shop-head .shop-lang{justify-content:center;margin:0 0 8px}.online-lang{font-size:.8rem}
/* v78: carta online en catalán */
.wm-ca{border:1px solid #c9b88f;border-radius:12px;padding:8px 14px;margin:10px 0}.wm-ca summary{cursor:pointer;font-weight:bold}.wm-ca h4{margin:12px 0 4px}
.wm-ca-list{list-style:none;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:6px}.wm-ca-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.wm-ca-list li>span{flex:1 1 40%;display:flex;flex-direction:column}.wm-ca-list small{color:#6b604e}
.wm-ca-list input{flex:1 1 50%;padding:8px 10px;border-radius:10px;border:1px solid #b9a273;background:#fff;color:#171612;font:inherit}.file-btn{display:inline-flex;align-items:center;cursor:pointer;position:relative;overflow:hidden}.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}

.wm-head .shop-lang{justify-content:center;margin:0 0 8px}
/* v79: carta del QR y tablets en catalán */
.cust-lang{justify-content:center;margin:0 0 10px}
/* v80: descripción y alérgenos */
.wm-item{flex-wrap:wrap}.wm-extra{flex:1 0 100%;display:flex;flex-direction:column;gap:2px;margin:-2px 0 4px 0;font-size:.86rem;color:#5d5340}.wm-desc{font-style:italic}.wm-allergens{font-weight:bold;color:#7a4b12}.wm-allergy{margin-top:6px;font-weight:bold}
.mock-item-details .item-desc{display:block;margin-top:3px;font-size:.82rem;line-height:1.25;opacity:.85}.mock-item-details .item-allergens{display:block;margin-top:3px;font-size:.78rem;font-weight:bold;color:#b86a00}.allergy-note{margin:8px 0}
.menu-info,.allergen-picker{border:1px solid #c9b88f;border-radius:12px;padding:8px 12px;margin:10px 0}.allergen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:2px 12px;margin-top:6px}
.menu-details{border:1px solid #c9b88f;border-radius:12px;padding:8px 14px;margin:10px 0}.menu-details summary{cursor:pointer;font-weight:bold}.md-list{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:12px}.md-list li{display:flex;flex-direction:column;gap:6px;border-top:1px solid #d8c9a3;padding-top:8px}.md-list small{display:block;color:#6b604e;font-weight:normal}.md-list textarea{width:100%;padding:8px 10px;border-radius:10px;border:1px solid #b9a273;background:#fff;color:#171612;font:inherit}.md-al summary{font-weight:normal}
/* v81: descripción de los artículos de tienda */
.shop-name .shop-desc{display:block;margin-top:2px;font-style:italic;font-size:.84rem;color:#5d5340}
/* v83: subcategorías de la tienda */
.shop-cats{border:1px solid #c9b88f;border-radius:12px;padding:8px 14px;margin:10px 0}.shop-cats summary{cursor:pointer;font-weight:bold}.shop-cats h4{margin:14px 0 4px}
.sc-list{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:6px}.sc-list li{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.sc-list li input{flex:1 1 150px;min-width:0;padding:8px 10px;border-radius:10px;border:1px solid #b9a273;background:#fff;color:#171612;font:inherit}.sc-move{display:flex;gap:2px}.sc-move button{padding:4px 8px}
.sc-add{display:flex;gap:6px;margin:8px 0}.sc-add input{flex:1;padding:8px 10px;border-radius:10px;border:1px solid #b9a273;background:#fff;color:#171612;font:inherit}.sc-preview,.sc-report{margin:8px 0;padding:8px 12px;border-radius:10px;background:rgba(217,185,107,.18)}.shop-cat-filter{width:100%;margin:6px 0;padding:9px 10px;border-radius:10px;border:1px solid #b9a273;background:#fff;color:#171612;font:inherit}
.shop-cat-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.shop-cat-tiles button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 12px;border-radius:14px;border:1px solid #c9b88f;background:#fff;color:#171612;font:inherit;font-weight:bold;text-align:left;cursor:pointer;min-height:70px}.shop-cat-tiles button small{font-weight:normal;color:#6b604e}
.shop-sec-head{display:flex;align-items:center;gap:10px;margin:10px 0}.shop-sec-head h2{margin:0;font-size:1.15rem}.shop-sec-head button{padding:7px 12px;border-radius:999px;border:1px solid #9f8b61;background:#fff;color:#171612;font:inherit;font-weight:bold;cursor:pointer}

.shop-pick{margin:10px 0 0;font-weight:bold;color:#5d5340}
/* v84: cámara en los buscadores de Carta y precios */
.search-cam{display:flex;gap:8px;align-items:stretch}.search-cam input{flex:1;min-width:0}.search-cam button{padding:0 14px;font-size:1.25rem;line-height:1}
/* v85: listados imprimibles */
.price-lists{border:1px solid #c9b88f;border-radius:12px;padding:8px 14px;margin:10px 0}.price-lists summary{cursor:pointer;font-weight:bold}.price-lists label{display:block;margin:6px 0}.price-lists select{margin-left:8px;padding:7px 10px;border-radius:10px;border:1px solid #b9a273;background:#fff;color:#171612;font:inherit}.pl-kind{border:1px solid #c9b88f;border-radius:10px;padding:6px 12px;margin:8px 0}
/* v86: albarán en CSV */
.price-csv{border:1px solid #c9b88f;border-radius:12px;padding:8px 14px;margin:10px 0}.price-csv summary{cursor:pointer;font-weight:bold}.price-csv label{display:block;margin:6px 0}.price-csv input:not([type=file]){display:block;margin-top:4px;width:100%;max-width:420px;padding:8px 10px;border-radius:10px;border:1px solid #b9a273;background:#fff;color:#171612;font:inherit}.price-csv code{background:#f3ecd9;padding:1px 5px;border-radius:6px;overflow-wrap:anywhere}.price-start{background:#fff6dc;border:1px solid #e0c36a;border-radius:10px;padding:8px 10px;margin:8px 0}
/* v87: eliminar artículos */
.delete-articles{background:#fffaf0;color:#171612;border:1px solid #d9a3a3;border-radius:12px;padding:10px 14px;margin:10px 0}.delete-articles summary{cursor:pointer;font-weight:bold}.delete-articles label{display:block;margin:6px 0}.delete-articles textarea{display:block;width:100%;max-width:420px;margin-top:4px;padding:8px 10px;border-radius:10px;border:1px solid #b9a273;background:#fff;color:#171612;font:inherit}.delete-articles input[type=password]{display:block;margin-top:4px;padding:8px 10px;border-radius:10px;border:1px solid #b9a273;background:#fff;color:#171612;font:inherit}.del-item{padding:6px 8px;border-bottom:1px solid #eadfc4;color:#171612}.del-item.price-warn{background:#fff1cf}.del-confirm{margin-top:10px;padding:10px;border:1px solid #d9a3a3;border-radius:10px;background:#fff0f0;color:#171612}.del-one{background:#fffaf0;color:#171612;border:1px solid #d9a3a3}.del-one .del-item{background:transparent}.primary.danger{background:#a32323;border-color:#a32323;color:#fff}.primary.danger:disabled{opacity:.55}.del-hist{margin-top:8px}.delete-articles .availability{color:#171612}
.delete-articles .small,.del-one .small,.del-confirm .small,.del-prev .small{color:#4a4538}.delete-articles small,.del-one small{color:#5a5445}.del-confirm strong,.del-prev strong{color:#171612}
/* v89: nombre y versión de la aplicación */
.app-version{margin:18px 0 6px;text-align:center;font-size:.78rem;color:#cfc6b0;opacity:.85}.app-version-warn{color:#ffb4a8;font-weight:bold}.login .app-version{margin-top:22px}.app-ver-top{display:block;font-size:.62rem;font-weight:normal;letter-spacing:0;text-transform:none;opacity:.7}.login .app-version{color:#5f5848;opacity:1}
/* v90: margen real y calculadora de PVP */
.margin-badge{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;font-size:.72rem;font-weight:bold;white-space:nowrap}.lv-neg{background:#7a1f1f;color:#fff}.lv-low{background:#f4c7c3;color:#7a1f1f}.lv-mid{background:#fde9b8;color:#6b4b00}.lv-ok{background:#cfe8d0;color:#1d5a2a}
.margin-box{border:1px solid #d8ccb7;border-radius:12px;padding:10px 14px;margin:10px 0;background:#fffdf8;color:#171612}.margin-box legend{font-weight:bold}.margin-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0}.margin-grid>div{padding:8px 10px;border-radius:10px;background:#f3ebd9;display:flex;flex-direction:column;gap:2px}.margin-grid small{color:#4a4538;font-size:.7rem}.margin-grid strong{font-size:1.15rem}.margin-grid>.lv-neg{background:#7a1f1f;color:#fff}.margin-grid>.lv-neg small{color:#fff}.margin-grid>.lv-low{background:#f4c7c3;color:#7a1f1f}.margin-grid>.lv-low small{color:#7a1f1f}.margin-grid>.lv-mid{background:#fde9b8;color:#6b4b00}.margin-grid>.lv-mid small{color:#6b4b00}.margin-grid>.lv-ok{background:#cfe8d0;color:#1d5a2a}.margin-grid>.lv-ok small{color:#1d5a2a}.margin-box .small{color:#4a4538}.margin-box label{display:block;margin:6px 0}.margin-box input,.margin-box select{display:block;margin-top:4px;padding:8px 10px;border-radius:10px;border:1px solid #b9a273;background:#fff;color:#171612;font:inherit;max-width:260px}
/* v90: cambiar códigos */
.change-codes{background:#fffaf0;color:#171612;border:1px solid #b9a273;border-radius:12px;padding:10px 14px;margin:10px 0}.change-codes summary{cursor:pointer;font-weight:bold}.change-codes label{display:block;margin:6px 0}.change-codes textarea{display:block;width:100%;max-width:420px;margin-top:4px;padding:8px 10px;border-radius:10px;border:1px solid #b9a273;background:#fff;color:#171612;font:inherit}.change-codes input[type=password]{display:block;margin-top:4px;padding:8px 10px;border-radius:10px;border:1px solid #b9a273;background:#fff;color:#171612;font:inherit}.change-codes .small,.change-codes small{color:#4a4538}.change-codes .del-confirm{background:#f3ebd9;border-color:#b9a273}.change-codes .del-prev .small{color:#4a4538}.change-codes .availability{color:#171612}
/* v91: ajustes del recargo de equivalencia */
.margin-settings .small{color:#4a4538}.margin-settings input:disabled{opacity:.55}.margin-grid small+strong+small{font-size:.66rem;color:#6b6552}
/* v92: facturas recibidas y modelo 130 */
.received-panel{color:inherit}.rcv-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.rcv-tabs button{padding:8px 12px;border-radius:999px;border:1px solid #b9a273;background:#f7f0e2;color:#171612;font:inherit;cursor:pointer}.rcv-tabs button.active{background:#d9b96b;font-weight:bold}
.rcv-total{font-weight:bold;white-space:nowrap;margin:0 10px}.rcv-scroll{overflow-x:auto;margin:6px 0}.rcv-table{width:100%;border-collapse:collapse;font-size:.82rem;color:#171612}.rcv-table th,.rcv-table td{padding:4px 6px;border-bottom:1px solid #eadfc4;text-align:right;white-space:nowrap;color:#171612}.rcv-table th:first-child,.rcv-table td:first-child{text-align:left}.rcv-table input{width:92px;padding:5px 6px;border-radius:8px;border:1px solid #b9a273;background:#fff;color:#171612;font:inherit;text-align:right}.rcv-sum td{background:#f3ebd9}.rcv-result td{background:#d9b96b}
.rcv-130,.rcv-report{background:#fffaf0;color:#171612;border:1px solid #d8ccb7;border-radius:12px;padding:10px 12px;margin:8px 0}.rcv-130 label,.rcv-report label{color:#171612}.rcv-130 .small,.rcv-report .small,.rcv-130 small,.rcv-report small{color:#4a4538}.rcv-130 h3,.rcv-report h3{margin:14px 0 4px;color:#171612}.rcv-others{margin-top:10px}.rcv-others .availability{color:#171612}
.rcv-130-table td:first-child{white-space:normal;min-width:104px}.rcv-130-table th,.rcv-130-table td{padding:4px 5px}.rcv-130-table input{width:78px}
.rcv-form .rcv-table{table-layout:auto}.rcv-form .rcv-table th,.rcv-form .rcv-table td{padding:3px 3px}.rcv-form .rcv-table input{width:78px;max-width:78px;padding:6px 5px}.rcv-form fieldset,.rcv-import{color:#171612}.rcv-form .small,.rcv-import .small{color:#4a4538}.rcv-pick{display:inline-block;cursor:pointer}.rcv-pick input{display:none}.rcv-file-actions{display:flex;gap:6px}.rcv-prev{margin-top:8px}.received-panel>h2{margin:6px 0}
.rcv-130-table td:first-child,.rcv-130-table th:first-child{position:sticky;left:0;background:#fffaf0;z-index:1}.rcv-130-table .rcv-sum td:first-child{background:#f3ebd9}.rcv-130-table .rcv-result td:first-child{background:#d9b96b}
/* v93: datos fiscales de proveedores */
.sup-fiscal{border:1px solid #d8ccb7;border-radius:12px;padding:8px 12px;margin:10px 0;color:#171612}.sup-fiscal legend{font-weight:bold}.sup-cands{display:flex;flex-direction:column;gap:6px;margin:6px 0}.sup-cands button{text-align:left}
/* v94: leer los datos de una factura */
.rcv-read{margin:6px 0 10px;padding:8px 12px;border:1px dashed #b9a273;border-radius:12px;color:#171612}.rcv-read .small{color:#4a4538}
/* v95: facturas repetidas y NIF dudosos */
.rcv-exists{margin:8px 0;padding:10px 12px;border:2px solid #c0392b;border-radius:12px;background:#fdecea;color:#7a1f1f}.rcv-exists strong{color:#7a1f1f}.rcv-check{color:#171612}.rcv-check h3{margin:12px 0 4px;color:#171612}.rcv-check .small,.rcv-check small{color:#4a4538}.rcv-dup,.rcv-nif{border:1px solid #d8ccb7;border-radius:12px;padding:8px 10px;margin:8px 0;background:#fffaf0;color:#171612}.rcv-dup .availability{color:#171612}
/* v96: completar fichas de proveedores */
.sup-fill summary{cursor:pointer;font-weight:bold}.sup-fill h3{margin:12px 0 4px;color:#171612}.sup-fill .small,.sup-fill small{color:#4a4538}.sup-fill-list{margin:6px 0;display:flex;flex-direction:column;gap:4px}.sup-fill .check-line{display:flex;gap:6px;align-items:flex-start;color:#171612}.sup-fill .price-note{color:#171612}
.sup-fill-warn{margin:6px 0;padding:6px 10px;border:1px solid #d8a657;border-radius:10px;background:#fff6e0;color:#5a3d00}.sup-fill-warn .small,.sup-fill-warn .price-note{color:#5a3d00}
/* v101: modelo 130, rendimiento del trimestre y explicaciones */
.rcv-130-table td.rcv-neg strong{color:#b42318}.rcv-130-notes{margin:8px 0;padding:8px 12px;border:1px solid #d8ccb7;border-radius:10px;background:#fffaf0;color:#171612}.rcv-130-notes .small{color:#4a4538;margin:4px 0}
/* v102: packs de venta */
.pack-links summary{cursor:pointer;font-weight:bold}.pack-links h3{margin:12px 0 4px;color:#171612}.pack-links .small,.pack-links small{color:#4a4538}.pack-links .price-note{color:#171612}.pack-prev{margin:8px 0;padding:8px 10px;border:1px solid #d8ccb7;border-radius:10px;background:#fffaf0}
/* v104: proveedor desconocido al guardar una factura */
.rcv-newsup{margin:8px 0;padding:10px 12px;border:2px solid #d8a657;border-radius:12px;background:#fff6e0;color:#5a3d00}.rcv-newsup strong,.rcv-newsup .small,.rcv-newsup label{color:#5a3d00}
/* v109: códigos de proveedor */
.supplier-codes summary{cursor:pointer;font-weight:bold}.supplier-codes h3{margin:12px 0 4px;color:#171612}.supplier-codes .small,.supplier-codes small{color:#4a4538}.supplier-codes .price-note{color:#171612}.sup-codes-box{margin:8px 0;padding:8px 12px;border:1px solid #d8ccb7;border-radius:10px;background:#fffaf0;color:#171612}.sup-codes-box .small{color:#4a4538}.pair-line{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.pair-line input{flex:1 1 220px}
/* v114: menú en dos niveles */
.adminnav-groups button{font-weight:bold}.adminnav-sub{margin-top:-4px;padding-top:0}.adminnav-sub button{font-size:.92em}.adminnav-groups.nav-compact,.adminnav-sub.nav-compact{margin-bottom:4px}
/* v116: etiqueta «sin català» en la lista de artículos */
.tr-missing{color:#b45309;font-weight:600}

/* v122: pantalla de cobro en DOS COLUMNAS, como en Aronium: el ticket (total, código, líneas y cobrar) a la izquierda y los artículos de cafetería a la derecha.
   En pantallas estrechas todo sigue en una columna (con el ticket antes que la cafetería) y el total sigue pegado arriba.
   La columna del ticket mide lo que cabe en pantalla (--ss-top la pone el componente), así que COBRAR queda siempre a la vista. */
.ss-left{display:contents}
@media (min-width:900px){
 .shell:has(.shop-sale){max-width:none}
 .admin:has(.shop-sale){max-width:1700px}
 .shop-sale{display:grid;grid-template-columns:minmax(420px,38%) minmax(0,1fr);gap:16px;max-width:none;margin:0;align-items:start}
 .ss-left{display:flex;flex-direction:column;gap:8px;min-width:0;position:sticky;top:8px;height:calc(100vh - var(--ss-top,200px) - 10px);min-height:430px;overflow-y:auto}
 .ss-left .ss-total{padding:8px 16px}
 .ss-left .ss-total strong{font-size:2.6rem}
 .ss-left .ss-total small{margin-top:-4px}
 .ss-left .ss-code input{padding:11px 14px;font-size:1.1rem}
 .ss-left .ss-lines{flex:1 1 0;min-height:130px;max-height:none}
 .ss-left .ss-line{grid-template-columns:minmax(0,1fr) auto auto auto;gap:8px;padding:8px 2px}
 .ss-left .ss-name strong{font-size:1.02rem;line-height:1.15}
 .ss-left .ss-qty{gap:6px}
 .ss-left .ss-qty button{width:36px;height:36px;font-size:1.2rem}
 .ss-left .ss-qty strong{min-width:22px;font-size:1.1rem}
 .ss-left .ss-amount{font-size:1.1rem;min-width:68px}
 .ss-left .ss-del{padding:4px;font-size:1.1rem}
 .ss-left .ss-actions{gap:6px;flex:0 0 auto}
 .ss-left .ss-charge{min-height:58px;font-size:1.5rem}
 .ss-left .ss-secondary .secondary{padding:10px 6px}
 .ss-left .ss-test{padding:0}
 .ss-cafe{min-width:0}
 .ss-cafe-cats{flex-wrap:wrap;overflow:visible}
 .ss-tiles{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px;max-height:calc(100vh - var(--ss-top,200px) - 100px);min-height:300px}
 .ss-tile{min-height:112px}
 .ss-tile strong{font-size:1rem}
 .ss-tile-pic{font-size:2rem}
}

/* v123: la zona de venta gana altura. Los botones EN ESPERA, VACIAR y + Varios pasan a la derecha del botón ☕ CAFETERÍA, y la franja de arriba se reduce a lo justo de sus dos botones (el título solo se oculta a la vista: queda para lectores de pantalla y en la pestaña del navegador). En la pantalla de venta se quita también el hueco entre la franja y los menús, y las líneas del ticket se leen desde arriba. */
.ss-cafe-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ss-cafe-head .ss-secondary{display:flex;gap:8px;flex-wrap:wrap}
.ss-cafe-head .ss-secondary .secondary,.ss-cafe-head .ss-cafe-toggle{flex:0 0 auto;padding:10px 16px;min-height:46px;font-weight:700;align-self:center}
.top-slim{padding:6px 14px;justify-content:flex-end;gap:8px}
.top-slim .brand{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.top-slim .staff-header-actions .secondary{padding:6px 12px;font-size:.92rem}
.top-slim .staff-header-actions a{font-size:.92rem}
@media (min-width:900px){
 .admin:has(.shop-sale){padding-top:6px}
 .admin:has(.shop-sale)>.adminnav:first-child{margin-top:4px}
 .ss-left .ss-lines>:first-child{margin-top:0}
}

/* v124: lista de resultados de la búsqueda en ventas: no empuja el ticket ni el botón COBRAR fuera de la pantalla (altura limitada, se encoge si falta sitio y se desplaza por dentro). */
.search-results{max-height:min(46vh,360px);overflow-y:auto}
.ss-left .search-results{flex:0 1 auto;min-height:90px;margin:0}
.ss-nohits{color:#b9a982;margin:2px 4px}

/* v125: «🖨 Imprimir ticket» en la primera pantalla del cobro, en una fila propia justo debajo de Efectivo / Tarjeta, a todo el ancho. Verde cuando está activado. */
.pay-modes{flex-wrap:wrap}
.pay-modes button.pay-print{flex:1 1 100%;background:#fff;border-style:dashed;padding:12px 6px}
.pay-modes button.pay-print.on{background:#2e6b3f;border-color:#2e6b3f;border-style:solid;color:#fff}

/* v126: contador y botón «VER MÁS» de la lista de resultados (el contador queda fijo arriba al desplazarte). */
.ss-count{position:sticky;top:0;z-index:1;margin:0;padding:6px 6px 4px;background:#fdf6e6;color:#6b5d44;border-bottom:1px solid #e6d8b8}
.ss-more{width:100%;margin:6px 0 4px;padding:12px}

/* v127: Ajustes › Seguridad (revisión de solo lectura). Cada fila lleva su nivel escrito, no solo en color. */
.sec-panel{display:flex;flex-direction:column;gap:12px;max-width:920px;color:#f3ead6}
.sec-panel h2,.sec-panel h3{margin:6px 0 0}
.sec-panel>p.small,.sec-group>summary .small{color:#d9ceb4}
.sec-verdict{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;border-radius:14px;background:#fffdf8;color:#1c211d;border:3px solid #cfc3a8}
.sec-verdict.ok{border-color:#2e6b3f}.sec-verdict.warn{border-color:#b7791f}.sec-verdict.bad{border-color:#b3261e}
.sec-verdict>strong{font-size:1.25rem}
.sec-counts{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.sec-counts span{padding:4px 10px;border-radius:999px;font-weight:700;font-size:.82rem;background:#eee9df;color:#1c211d}
.sec-list{display:flex;flex-direction:column;gap:6px}
.sec-row{display:flex;gap:12px;padding:10px 12px;border-left:6px solid #cfc3a8;background:#fffdf8;color:#1c211d;border-radius:8px}
.sec-row.ok{border-left-color:#2e6b3f}.sec-row.warn{border-left-color:#b7791f}.sec-row.bad{border-left-color:#b3261e}.sec-row.info{border-left-color:#8a9a9f}
.sec-badge{flex:0 0 auto;align-self:flex-start;min-width:84px;text-align:center;padding:2px 8px;border-radius:6px;font-size:.7rem;font-weight:800;letter-spacing:.05em;color:#fff;background:#566368}
.sec-row.ok .sec-badge{background:#2e6b3f}.sec-row.warn .sec-badge{background:#8f5a00}.sec-row.bad .sec-badge{background:#b3261e}
.sec-row p{margin:2px 0 0}
.sec-row p.small{color:#4a4638}
.sec-row p.sec-fix{color:#5c3b00}
.sec-group{border-top:1px solid #4a4a42;padding-top:4px}
.sec-group>summary{cursor:pointer;padding:8px 2px;list-style:revert}
.sec-group[open]>summary{margin-bottom:6px}

/* v128: ofertas por cantidad en la línea del ticket (precio normal tachado, precio de oferta en verde y aviso del siguiente tramo en ámbar). */
.ss-name small s{opacity:.75}
.ss-name .ss-offer{color:#2e6b3f;font-weight:800}
.ss-name .ss-next{color:#8a5a00;font-weight:700}

/* v128: panel Artículos › Ofertas por cantidad. */
.qo-panel{display:flex;flex-direction:column;gap:12px;max-width:960px;color:#f3ead6}
.qo-panel h2,.qo-panel h3{margin:6px 0 0}
.qo-panel>p.small{color:#d9ceb4}
.qo-card{display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:#fffdf8;color:#1c211d;border-radius:14px;border:2px solid #cfc3a8}
.qo-card h3{margin:0}.qo-card .small{color:#4a4638}
.qo-editor{border-color:#b7791f}
.qo-search{width:100%}
.qo-hits{display:flex;flex-direction:column;gap:4px}
.qo-hit{display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;padding:8px 12px;background:#f6efdc;color:#1c211d;border:1px solid #cfc3a8;border-radius:10px;cursor:pointer}
.qo-hit small{display:block;color:#4a4638}
.qo-pick{flex:0 0 auto;padding:2px 10px;border-radius:999px;background:#d9b567;font-weight:800;font-size:.75rem}
.qo-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;border-top:1px solid #e6d8b8}
.qo-row label{display:flex;align-items:center;gap:6px;font-weight:700}
.qo-row input{width:88px}
.qo-prev{min-width:200px;font-weight:700;color:#2e6b3f}.qo-prev.bad{color:#9b1c14}
.qo-list{display:flex;flex-direction:column;gap:6px}
.qo-item{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;border:1px solid #e6d8b8;border-radius:10px}
.qo-name{flex:1 1 220px}.qo-name small{display:block;color:#4a4638}
.qo-chips{display:flex;flex-wrap:wrap;gap:6px;flex:2 1 240px}
.qo-chip{padding:2px 10px;border-radius:999px;background:#e5f0e4;color:#1f4d2b;font-weight:700;font-size:.85rem}
.qo-btns{display:flex;gap:6px}
.qo-file{cursor:pointer;display:inline-flex;align-items:center;padding:10px 14px;border-radius:10px}
.qo-file input{display:none}
.qo-imp{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:#f6efdc;border-radius:10px}
.qo-imp p{margin:0}

/* v129: tecla de cantidad antes del código (botón CANT. y aviso de la cantidad pendiente). */
.ss-code .ss-qtykey{flex:0 0 auto;font-weight:800;padding:0 14px;min-width:64px}
.ss-pendqty{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;background:#fff3cf;color:#4a3400;border:2px solid #b7791f;border-radius:10px}
.ss-pendqty strong{font-size:1.15rem}
.ss-pendqty button{margin-left:auto;min-width:40px;min-height:34px;background:#fff;color:#4a3400;border:1px solid #b7791f;border-radius:8px;cursor:pointer;font-weight:800}

/* v129: Facturas recibidas › Modelo 347 (proveedores con más de 3.005,06 € en el año). */
.m347-panel{display:flex;flex-direction:column;gap:12px;color:#f3ead6}
.m347-panel h3,.m347-panel h4{margin:6px 0 0}
.m347-panel>p.small{color:#d9ceb4}
.m347-controls{align-items:flex-end}
.m347-cats{display:flex;flex-direction:column;gap:6px;padding:10px 14px;border:1px solid #6b6652;border-radius:10px;background:#242420}
.m347-cats legend{padding:0 6px;font-weight:700;color:#f3ead6}
.m347-cat{display:flex;align-items:center;gap:8px;color:#f3ead6}.m347-cat small{color:#d9ceb4}
.m347-cats>.small{color:#d9ceb4}
.m347-sum{margin:0;padding:10px 14px;background:#fffdf8;color:#1c211d;border-radius:10px;border-left:6px solid #2e6b3f}
.m347-wrap{overflow-x:auto}
.m347{width:100%;border-collapse:collapse;background:#fffdf8;color:#1c211d;border-radius:10px;overflow:hidden}
.m347 th{padding:8px 10px;text-align:left;font-size:.8rem;letter-spacing:.03em;background:#e9dfc5;color:#1c211d;white-space:nowrap}
.m347 td{padding:8px 10px;border-top:1px solid #e6d8b8;vertical-align:top}
.m347 td.num{text-align:right;white-space:nowrap}
.m347 td small{display:block;color:#4a4638}
.m347 td small.m347-warn{color:#8a1c14;font-weight:700}
.m347-det td{border-top:0;padding-top:0}
.m347-det summary{cursor:pointer;color:#4a4638;font-size:.9rem}
.m347-det ul{margin:6px 0 2px;padding-left:20px}.m347-det li{color:#1c211d}
.m347-card{display:flex;flex-direction:column;gap:6px;padding:12px 14px;background:#fffdf8;color:#1c211d;border-radius:12px;border:2px solid #cfc3a8}
.m347-card h4{margin:0}.m347-card .small{color:#4a4638}
.m347-card p{margin:0}
.m347-review{border-color:#b7791f}
.m347-issue{color:#5c3b00}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* v130: aviso bajo la cabecera al entrar con un código de recuperación. */
.login-notice{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0;padding:10px 14px;background:#fff3cf;color:#4a3400;border:2px solid #b7791f;border-radius:10px;font-weight:600}
.login-notice button{margin-left:auto;min-height:34px;padding:0 12px;background:#fff;color:#4a3400;border:1px solid #b7791f;border-radius:8px;cursor:pointer;font-weight:800}

/* v130: Ajustes › Verificación en dos pasos. */
.tfa-panel{display:flex;flex-direction:column;gap:12px;max-width:820px;color:#f3ead6}
.tfa-panel h2,.tfa-panel h3{margin:6px 0 0}
.tfa-panel>p.small{color:#d9ceb4}
.tfa-card{display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:#fffdf8;color:#1c211d;border-radius:14px;border:2px solid #cfc3a8}
.tfa-card h3{margin:0}.tfa-card p{margin:0}.tfa-card .small{color:#4a4638}
.tfa-on{border-color:#2e6b3f}.tfa-alert{border-color:#b3261e;background:#fff1ee}
.tfa-setup{border-color:#b7791f}.tfa-ask{border-color:#b7791f}
.tfa-steps{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:10px}
.tfa-qrbox{display:flex;justify-content:flex-start;margin:8px 0}
.tfa-qr{width:220px;height:220px;border:1px solid #cfc3a8;border-radius:8px;background:#fff}
.tfa-secret{display:inline-block;padding:4px 8px;background:#f1e8d0;color:#1c211d;border-radius:6px;font-size:1.05rem;letter-spacing:.06em;word-break:break-all}
.tfa-confirm{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:6px}
.tfa-confirm input{min-width:220px}
.tfa-codes-card{border-color:#b7791f}
.tfa-codes{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.tfa-codes li{padding:8px 10px;background:#f1e8d0;border-radius:8px;text-align:center}
.tfa-codes code{font-size:1.1rem;letter-spacing:.08em;color:#1c211d;font-weight:700}
.tfa-check{display:flex;gap:8px;align-items:flex-start;font-weight:700}
.tfa-low{color:#8a1c14}
.tfa-admins{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.tfa-admins li{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:6px 0;border-top:1px solid #e6d8b8}
.tfa-admins li:first-child{border-top:0}
.tfa-yes{color:#1f4d2b;font-weight:700}.tfa-no{color:#5c3b00;font-weight:700}
.tfa-card code{background:#f1e8d0;padding:1px 6px;border-radius:4px;color:#1c211d}

/* v131: Ajustes › Carpeta de datos. */
.dd-label{display:flex;flex-direction:column;gap:6px;font-weight:700}
.dd-label .tfa-confirm input{flex:1 1 320px;font-weight:400}
.dd-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.dd-list li{padding:6px 10px;border-radius:8px}
.dd-ok{background:#e8f4ea;color:#17381f}.dd-bad{background:#fde7e4;color:#6d130c}
.dd-warn{margin:0;padding:8px 12px 8px 12px;list-style:none;display:flex;flex-direction:column;gap:4px;background:#fff3cf;color:#4a3400;border-radius:8px}

/* v132: enlace de WhatsApp en la carta pública y en la tienda online. */
.wm-wa a{display:inline-block;margin-top:2px;padding:6px 12px;border-radius:999px;background:#e7f6ea;color:#0b5a23;border:1px solid #1f8a3e;font-weight:bold;text-decoration:none}
.shop .shop-head .wm-wa{margin:6px 0 0}

/* v133: Artículos › Etiquetas de platos preparados. */
.glabel.prep{align-items:stretch;justify-content:flex-start;gap:.5mm;text-align:left;padding:1mm 1.4mm;line-height:1.16}
.glabel.prep.blank{padding:0}
.pl-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1mm}.pl-name{font-weight:bold;line-height:1.1;flex:1;word-break:break-word}.pl-price{font-weight:900;white-space:nowrap}
.pl-ing,.pl-all,.pl-store,.pl-biz{line-height:1.16;word-break:break-word}.pl-all{text-transform:none}.pl-all-unknown strong{font-style:italic}.pl-store{font-style:italic}.pl-biz{color:#222}
.pl-dates{display:grid;grid-template-columns:1fr 1fr;gap:1mm;border-top:.15mm solid #000;padding-top:.3mm}.pl-dates>div{display:flex;flex-direction:column;line-height:1.16}.pl-dates small{font-weight:bold;letter-spacing:.02em}.pl-dates strong{font-weight:900}
.prep-panel{display:flex;flex-direction:column;gap:10px;max-width:980px;color:#f3ead6}.prep-panel h2,.prep-panel h3{margin:6px 0 0}.prep-panel>p.small{color:#d9ceb4}
.prep-box{color:#1c211d}.prep-box .small,.prep-box small{color:#4a4638}.prep-preview{margin:8px 0;max-width:100%}
.prep-warn{margin:4px 0;padding:6px 10px;background:#fff3cf;color:#4a3400;border:1px solid #b7791f;border-radius:8px;font-weight:600}
.prep-filters{display:flex;flex-direction:column;gap:8px}.prep-quick{align-self:flex-start;color:#f3ead6}.prep-msg{color:#f3ead6;font-weight:700}
.prep-list{display:flex;flex-direction:column;gap:8px}
.prep-row{background:#fffdf7;color:#1c211d;border:1px solid #d9cdb0;border-radius:12px;padding:10px 12px}.prep-row.open{border-color:#b7791f;box-shadow:0 0 0 2px #e9c46a66}
.prep-main{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.prep-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:220px}.prep-info small{color:#4a4638}
.prep-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}.prep-badges span{padding:2px 8px;border-radius:999px;font-size:.8rem;font-weight:700}
.prep-ok{background:#e8f4ea;color:#17381f}.prep-bad{background:#fde7e4;color:#6d130c}.prep-warnb{background:#fff3cf;color:#4a3400}
.prep-edit{display:flex;flex-direction:column;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid #eadfc6}.prep-edit label{display:flex;flex-direction:column;gap:4px;font-weight:700}.prep-edit textarea,.prep-edit input{font-weight:400}
.prep-chips{display:flex;gap:6px;flex-wrap:wrap}.prep-chips button{min-height:34px;padding:0 10px}.prep-chips button.selected{background:#e9c46a;color:#1c211d;font-weight:800}
.linkish{background:none;border:0;padding:0;min-height:0;color:#7a4b00;text-decoration:underline;cursor:pointer;font-weight:700;text-align:left}
.prep-qrow input[type=date]{width:auto}

/* v135: la etiqueta de plato reparte el espacio: nombre, ingredientes y alérgenos arriba; fechas, conservación y negocio abajo. */
.glabel.prep .pl-dates{margin-top:auto}

/* v135: botón de música en la carta pública y en la tienda online (fondo claro). */
.wm-music-wrap{display:flex;justify-content:center;margin:8px 0 0}
.wm-music{min-height:38px;padding:8px 16px;border-radius:999px;border:1px solid #8b6b2f;background:#fff;color:#4a3400;font-weight:bold;font-size:.9rem;cursor:pointer}
.wm-music.on{background:#4a3400;color:#fff;border-color:#4a3400}

/* v136: la carta (/carta) con el aspecto de la pantalla principal del cliente: datos de contacto y WhatsApp. */
.customer-app .cust-contact{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;margin:12px 0 14px;color:#d9cfb8}
.customer-app .cust-contact strong{color:#f5db9d;font-size:1.1rem;letter-spacing:.04em}
.customer-app .cust-contact-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px}
.customer-app .cust-btn{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border-radius:999px;border:1px solid #a88f65;background:#f7f0e2;color:#242424;font-weight:bold;text-decoration:none}
.customer-app .cust-wa{background:#e7f6ea;color:#0b5a23;border-color:#1f8a3e}
.customer-app .cust-btn:focus-visible{outline:3px solid #f5db9d;outline-offset:2px}
.customer-app .music-toggle{min-height:40px}

/* v137: importar ingredientes, días de consumo y conservación desde un CSV. */
.pi-box{background:#fffdf7;color:#1c211d;border:1px solid #d9cdb0;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.pi-toggle{background:none;border:0;padding:6px 0;font-weight:800;font-size:1rem;text-align:left;cursor:pointer;color:#1c211d;min-height:40px}
.pi-body{display:flex;flex-direction:column;gap:8px}.pi-rules{margin:0;padding-left:20px}.pi-file{display:flex;flex-direction:column;gap:4px;font-weight:700}
.pi-last{margin:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:#1c211d}.pi-done{margin:0;padding:8px 12px;background:#e8f4ea;color:#17381f;border-radius:8px;font-weight:700}
.pi-prev h4{margin:4px 0}.pi-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0}.pi-chips span{padding:2px 10px;border-radius:999px;font-size:.82rem;font-weight:700}
.chip-n{background:#ece6d6;color:#3a3426}.chip-ok{background:#e8f4ea;color:#17381f}.chip-bad{background:#fde7e4;color:#6d130c}.chip-warn{background:#fff3cf;color:#4a3400}
.pi-allergen{background:#fff3cf;color:#4a3400;border:1px solid #b7791f;border-radius:8px;padding:8px 12px}.pi-allergen ul{margin:6px 0 0;padding-left:18px;font-size:.9rem}
.pi-nada{margin:0;padding:8px 12px;background:#ece6d6;border-radius:8px}.pi-filter{display:flex;gap:8px;align-items:center;font-weight:700}
.pi-table{display:flex;flex-direction:column;gap:6px;max-height:520px;overflow:auto;padding-right:4px}
.pi-row{border:1px solid #eadfc6;border-left-width:5px;border-radius:8px;padding:6px 10px;background:#fff}.pi-nuevo,.pi-cambia{border-left-color:#2f7d3a}.pi-error{border-left-color:#b3261e}.pi-igual,.pi-vacia{border-left-color:#a59b82}
.pi-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.pi-line{font-size:.8rem;color:#4a4638}
.pi-st{margin-left:auto;font-size:.75rem;font-weight:800;padding:2px 8px;border-radius:6px}.pi-st-nuevo,.pi-st-cambia{background:#e8f4ea;color:#17381f}.pi-st-error{background:#fde7e4;color:#6d130c}.pi-st-igual,.pi-st-vacia{background:#ece6d6;color:#3a3426}
p.pi-error{margin:4px 0 0;color:#8a1810;font-weight:700}.pi-change{margin:3px 0 0;font-size:.9rem;word-break:break-word}.pi-old{color:#6a5f45;text-decoration:line-through}.pi-new{color:#17381f;font-weight:700}
.pi-hint{margin:4px 0 0;padding:4px 8px;background:#fff3cf;color:#4a3400;border-radius:6px;font-size:.88rem}

/* v137: la pantalla de etiquetas de platos cabe en un móvil. */
.prep-box select,.prep-box input:not([type=checkbox]),.prep-panel select{max-width:100%}
.prep-main .labels-btns{display:flex;flex-wrap:wrap;gap:6px}.prep-box .labels-custom{flex-wrap:wrap}.prep-box .labels-custom label{min-width:0;max-width:100%}
.prep-preview{overflow:hidden}

/* v137: el texto de ayuda de la importación se lee sobre el fondo claro de su tarjeta. */
.pi-box .small,.pi-box p.small,.pi-box li,.pi-box label,.pi-box h4{color:#2c2a22}
.pi-box .pi-hint{color:#4a3400}.pi-box .pi-old{color:#5e5440}

/* v139: registro sanitario en la etiqueta de plato. */
.pl-reg{line-height:1.16;word-break:break-word}
/* v140: ventas pendientes de cobro («pagar después»). */
.ticket-pending{margin:10px 0;padding:8px 10px;border:2px solid #171717;border-radius:6px;text-align:center;display:grid;gap:2px;color:#171717;background:#fff}
.ticket-pending strong{font-size:1.2em;letter-spacing:.05em}
.ticket-pending b{font-size:1.1em}
.ticket-pending-note{font-size:12px;margin:6px 0;color:#171717}
.pay-pending{display:grid;gap:8px;margin:8px 0}
.pay-pending label{display:grid;gap:4px;font-weight:bold}
.pay-pending input{width:100%;box-sizing:border-box;padding:10px;border-radius:10px;border:1px solid #9f8b61;font-size:16px}
.pay-pending .pay-quick{display:flex;flex-wrap:wrap;gap:6px}
.cash-pending{background:#fff3cf;border:2px solid #b8863b;color:#3a2b00;border-radius:12px;padding:10px 14px;margin:10px 0}
.rect-pending{background:#fff3cf;border:1px solid #b8863b;color:#3a2b00;border-radius:10px;padding:8px 12px;margin:8px 0}
.recv-panel{display:grid;gap:12px}
.recv-total{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.recv-total div{background:#f7f0e2;color:#242424;border:1px solid #a88f65;border-radius:12px;padding:10px 12px;display:grid;gap:2px}
.recv-total span{font-size:.8rem}
.recv-total strong{font-size:1.25rem}
.recv-tools{display:flex;gap:8px;flex-wrap:wrap}
.recv-tools input{flex:1;min-width:180px;box-sizing:border-box;padding:10px 12px;border-radius:10px;border:1px solid #9f8b61;font-size:16px}
.recv-empty{background:#f7f0e2;color:#242424;border:1px dashed #a88f65;border-radius:12px;padding:16px}
.recv-cust{background:#f7f0e2;color:#242424;border:1px solid #a88f65;border-radius:14px;padding:12px 14px;display:grid;gap:10px}
.recv-cust header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.recv-cust header small{display:block;color:#4a4034}
.recv-name{font-size:1.15rem}
.recv-owes{text-align:right}
.recv-owes span{display:block;font-size:.8rem}
.recv-owes strong{font-size:1.4rem}
.recv-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.recv-tickets{display:grid;gap:8px;border-top:1px dashed #a88f65;padding-top:8px}
.recv-ticket{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:8px;background:#fffaf0;border:1px solid #d8c9a6;border-radius:10px}
.recv-tinfo small{display:block;color:#4a4034}
.recv-tamt{text-align:right}
.recv-tamt span{display:block;font-size:.78rem;color:#4a4034}
.recv-tbtns{display:flex;gap:6px}
.recv-check input{width:22px;height:22px}
.recv-pickbar{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.recv-history{background:#f7f0e2;color:#242424;border:1px solid #a88f65;border-radius:12px;padding:10px 14px}
.recv-history>div>div{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:6px 0;border-top:1px solid #d8c9a6;font-size:.88rem}
.recv-picked{display:grid;gap:4px;margin:6px 0}
.recv-picked div{display:flex;justify-content:space-between}
@media (max-width:640px){.recv-total{grid-template-columns:1fr 1fr}.recv-total div:first-child{grid-column:1/-1}.recv-ticket{grid-template-columns:auto 1fr}.recv-tamt{text-align:left}.recv-tbtns{grid-column:1/-1}.recv-cust header{flex-direction:column}.recv-owes{text-align:left}}

/* v141: modelo 130, número de tickets bajo el importe. */
.rcv-count{display:block;font-size:.72rem;opacity:.75;font-weight:normal}
