:root{--nfce-ink:#10251b;--nfce-green:#2f7d56;--nfce-mint:#dff5e9;--nfce-cream:#f7f4ec;--nfce-gold:#d7a94a}
.af-nfce-entry{width:min(390px,calc(100vw - 40px));margin:14px auto 0;padding:10px 12px;border:1px solid rgba(255,255,255,.2);border-radius:18px;background:rgba(8,22,16,.44);color:#fff;display:grid;grid-template-columns:38px 1fr 18px;align-items:center;gap:10px;text-align:left;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 12px 38px rgba(0,0,0,.16);cursor:pointer;transition:.25s ease}
.af-nfce-entry:hover{transform:translateY(-2px);background:rgba(17,53,36,.62);border-color:rgba(219,245,231,.42)}
.af-nfce-entry-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#dff5e9,#96d9b4);color:#174d35;font-size:18px}.af-nfce-entry strong,.af-nfce-entry small{display:block}.af-nfce-entry strong{font:700 12px/1.25 Manrope,sans-serif}.af-nfce-entry small{margin-top:2px;color:rgba(255,255,255,.68);font:500 10px/1.25 Manrope,sans-serif}
.nfce-modal{position:fixed;inset:0;z-index:41000;display:none;place-items:center;padding:18px}.nfce-modal.is-open{display:grid}.nfce-backdrop{position:absolute;inset:0;background:rgba(4,14,10,.72);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.nfce-shell{position:relative;width:min(680px,100%);max-height:min(820px,calc(100dvh - 32px));overflow:auto;border-radius:30px;background:linear-gradient(165deg,#fff 0%,#f9fbf7 58%,#edf7f1 100%);color:var(--nfce-ink);box-shadow:0 30px 100px rgba(0,0,0,.36);font-family:Manrope,sans-serif;scrollbar-width:thin}
.nfce-header{position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;padding:22px 24px 14px;background:rgba(255,255,255,.88);backdrop-filter:blur(14px);border-radius:30px 30px 0 0}.nfce-brand{display:flex;align-items:center;gap:12px}.nfce-brand>span{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--nfce-ink);color:#b9ebcf}.nfce-brand small,.nfce-receipt-summary small,.nfce-done>small,.nfce-auth-card>small{display:block;letter-spacing:.13em;font-size:10px;font-weight:800;color:var(--nfce-green)}.nfce-brand h2{font-size:18px;line-height:1.2;margin:2px 0 0}.nfce-icon-button{width:40px;height:40px;border:0;border-radius:50%;background:#eef3ef;color:var(--nfce-ink);cursor:pointer;font-size:17px}
.nfce-progress{display:flex;align-items:center;justify-content:center;padding:7px 24px 18px;gap:9px;background:rgba(255,255,255,.88)}.nfce-progress span{display:flex;align-items:center;gap:5px;color:#8b9b91;font-size:11px;font-weight:700;white-space:nowrap}.nfce-progress span b{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#e7ede9;font-size:10px}.nfce-progress span.is-active{color:var(--nfce-green)}.nfce-progress span.is-active b{background:var(--nfce-green);color:#fff}.nfce-progress>i{width:36px;height:1px;background:#d8e1db}
.nfce-stage{display:none;padding:8px 24px 24px}.nfce-stage.is-active{display:block}.nfce-camera-wrap{position:relative;aspect-ratio:4/3;max-height:420px;overflow:hidden;border-radius:24px;background:radial-gradient(circle at 50% 35%,#284f3c,#0c1d15);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}#nfce-video{width:100%;height:100%;object-fit:cover;display:none}.nfce-camera-wrap.is-live #nfce-video{display:block}.nfce-camera-wrap.is-live .nfce-camera-empty{display:none}.nfce-camera-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px;color:#fff}.nfce-camera-empty h3{font-size:21px;margin:15px 0 5px}.nfce-camera-empty p{max-width:320px;margin:0;color:rgba(255,255,255,.65);font-size:13px}.nfce-qr-glyph{width:82px;height:82px;border-radius:24px;display:grid;place-items:center;background:rgba(219,245,231,.12);border:1px solid rgba(219,245,231,.2);font-size:37px;color:#c6f1d8}.nfce-target{display:none;position:absolute;width:min(55%,230px);aspect-ratio:1;left:50%;top:50%;transform:translate(-50%,-50%)}.nfce-camera-wrap.is-live .nfce-target{display:block}.nfce-target i{position:absolute;width:35px;height:35px;border-color:#bdf1d2;border-style:solid;filter:drop-shadow(0 2px 8px #163)}.nfce-target i:nth-child(1){left:0;top:0;border-width:3px 0 0 3px;border-radius:12px 0 0}.nfce-target i:nth-child(2){right:0;top:0;border-width:3px 3px 0 0;border-radius:0 12px 0 0}.nfce-target i:nth-child(3){right:0;bottom:0;border-width:0 3px 3px 0;border-radius:0 0 12px}.nfce-target i:nth-child(4){left:0;bottom:0;border-width:0 0 3px 3px;border-radius:0 0 0 12px}
.nfce-status{text-align:center;min-height:20px;margin:12px 0;color:#64756b;font-size:12px}.nfce-status.is-error{color:#a83c3c}.nfce-actions{display:flex;justify-content:center;gap:10px}.nfce-primary,.nfce-secondary,.nfce-text-button,.nfce-manual button{border:0;border-radius:14px;min-height:46px;padding:0 18px;font:750 13px Manrope,sans-serif;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.nfce-primary{color:#fff;background:linear-gradient(135deg,#173d2b,#2e7f56);box-shadow:0 9px 22px rgba(29,88,57,.2)}.nfce-primary:disabled{opacity:.55;cursor:wait}.nfce-secondary{color:#254b37;background:#edf4ef;border:1px solid #d9e6dd}.nfce-text-button{background:transparent;color:var(--nfce-green);min-height:34px}.nfce-manual{max-width:450px;margin:15px auto 0;font-size:12px;text-align:center;color:#66776c}.nfce-manual summary{cursor:pointer}.nfce-manual>div{display:flex;gap:7px;margin-top:9px}.nfce-manual input{min-width:0;flex:1;height:43px;border-radius:12px;border:1px solid #d4dfd8;padding:0 12px;font:500 12px Manrope}.nfce-manual button{min-height:43px;background:#dff0e6;color:#214e36}.nfce-coverage{text-align:center;margin:13px 0 0;color:#7b8b81;font-size:10px}
.nfce-receipt-summary{display:flex;justify-content:space-between;gap:20px;padding:18px;border-radius:20px;background:var(--nfce-ink);color:#fff}.nfce-receipt-summary>div:last-child{text-align:right}.nfce-receipt-summary strong,.nfce-receipt-summary span{display:block}.nfce-receipt-summary strong{font-size:15px;margin-top:3px}.nfce-receipt-summary>div:last-child strong{font-size:20px}.nfce-receipt-summary span{margin-top:4px;color:rgba(255,255,255,.6);font-size:10px}.nfce-review-heading{display:flex;justify-content:space-between;align-items:end;gap:15px;margin:20px 2px 11px}.nfce-review-heading h3{margin:0;font-size:17px}.nfce-review-heading p{margin:3px 0 0;color:#718078;font-size:11px}.nfce-review-heading label{font-size:10px;font-weight:700;white-space:nowrap}
.nfce-products{display:grid;gap:8px;max-height:340px;overflow:auto;padding-right:3px}.nfce-product{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:12px;border-radius:16px;border:1px solid #e0e8e2;background:#fff}.nfce-product input{accent-color:var(--nfce-green);width:17px;height:17px}.nfce-product-main strong,.nfce-product-main small{display:block}.nfce-product-main strong{font-size:13px}.nfce-product-main small{margin-top:3px;color:#78877e;font-size:10px}.nfce-product-price{text-align:right}.nfce-product-price strong,.nfce-product-price small{display:block}.nfce-product-price strong{font-size:12px}.nfce-product-price small{font-size:9px;color:#809087}.nfce-category{display:inline-flex!important;width:max-content;margin-top:5px!important;padding:3px 7px;border-radius:999px;background:#edf6f0;color:#377052!important;font-weight:750}.nfce-review-footer{display:flex;justify-content:space-between;gap:10px;margin-top:16px}.nfce-review-footer .nfce-primary{flex:1;max-width:300px}
.nfce-auth-gate{position:absolute;inset:104px 0 0;z-index:8;display:grid;place-items:center;padding:22px;background:linear-gradient(to bottom,rgba(247,250,247,.45),rgba(238,246,241,.94) 22%);backdrop-filter:blur(7px)}.nfce-auth-gate[hidden]{display:none}.nfce-auth-card{width:min(390px,100%);padding:27px;text-align:center;border-radius:25px;background:#fff;border:1px solid #dce8e0;box-shadow:0 24px 70px rgba(17,58,37,.22)}.nfce-auth-icon{width:50px;height:50px;margin:0 auto 13px;border-radius:17px;display:grid;place-items:center;background:var(--nfce-mint);color:#246542}.nfce-auth-card h3{font-size:21px;margin:5px 0 7px}.nfce-auth-card p{color:#68786e;font-size:12px;line-height:1.6;margin:0 0 15px}.nfce-auth-card .nfce-primary{width:100%}
.nfce-done{text-align:center;padding:70px 28px 60px}.nfce-success-mark{width:86px;height:86px;margin:0 auto 20px;border-radius:28px;display:grid;place-items:center;background:linear-gradient(145deg,#c9efd9,#7fc99e);color:#155236;font-size:36px;box-shadow:0 18px 45px rgba(42,119,77,.2)}.nfce-done h3{font-size:27px;margin:7px 0}.nfce-done p{max-width:420px;margin:0 auto 22px;color:#68786e;font-size:13px}.nfce-done .nfce-primary{margin:auto}
.pantry-nfce-btn{margin-left:auto!important}
.nfce-original-name{color:#a27642!important;font-style:italic}
.pantry-notes-btn{white-space:nowrap}.pantry-notes-modal{z-index:41100}.pantry-password-modal{z-index:41200}.pantry-notes-shell{max-width:720px}.pantry-notes-intro{padding:3px 24px 14px;color:#6c7d73;font-size:12px}.pantry-notes-intro p{margin:0}.pantry-notes-list{display:grid;gap:10px;padding:0 24px 18px;min-height:180px}.pantry-note-card{border:1px solid #dce7df;border-radius:19px;background:#fff;overflow:hidden}.pantry-note-card summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px}.pantry-note-card summary::-webkit-details-marker{display:none}.pantry-note-card summary span,.pantry-note-card summary strong,.pantry-note-card summary small,.pantry-note-card summary em{display:block}.pantry-note-card summary small{color:#38805b;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.pantry-note-card summary strong{margin-top:3px;font-size:14px}.pantry-note-card summary em{margin-top:4px;color:#7b8b82;font-size:10px;font-style:normal}.pantry-note-card summary>b{font-size:14px;white-space:nowrap}.pantry-note-products{padding:0 14px;border-top:1px solid #edf1ee}.pantry-note-product{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 2px;border-bottom:1px solid #edf1ee}.pantry-note-product span strong,.pantry-note-product span small{display:block}.pantry-note-product span strong{font-size:12px}.pantry-note-product span small{margin-top:2px;color:#7b8a81;font-size:9px}.pantry-note-product button{width:34px;height:34px;border:0;border-radius:10px;background:#edf5f0;color:#2f7652;cursor:pointer}.pantry-removed-label{color:#9b5c5c;font-size:9px}.pantry-note-actions{display:flex;gap:8px;padding:12px 14px}.pantry-note-actions button{flex:1;min-height:38px;border-radius:11px;border:1px solid #dce5df;background:#f4f7f5;color:#41564a;font:700 10px Manrope,sans-serif;cursor:pointer}.pantry-note-actions button:last-child{color:#9b3f3f;background:#fff5f4;border-color:#eed9d7}.pantry-note-actions button:disabled{opacity:.45;cursor:not-allowed}.pantry-notes-empty{text-align:center;padding:42px 20px;color:#718178}.pantry-notes-empty>i{font-size:34px;color:#9bc4ac}.pantry-notes-empty h3{margin:12px 0 4px;color:#173629}.pantry-notes-empty p{margin:0;font-size:11px}.pantry-notes-footer{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 24px;background:rgba(248,251,248,.94);border-top:1px solid #e0e9e3;backdrop-filter:blur(12px)}.pantry-notes-footer small{color:#849188;font-size:9px}.pantry-danger-outline,.pantry-danger{border:0;border-radius:13px;min-height:43px;padding:0 15px;font:750 11px Manrope,sans-serif;cursor:pointer}.pantry-danger-outline{background:#fff2f1;color:#9c3535;border:1px solid #efd4d1}.pantry-danger{background:#a73535;color:#fff}.pantry-password-shell{max-width:470px}.pantry-warning-icon{background:#fee8e5!important;color:#a73535!important}.pantry-password-body{padding:5px 24px 24px}.pantry-password-body>p:first-child{margin:0 0 18px;color:#65766c;font-size:12px;line-height:1.55}.pantry-password-body label{display:block;margin-bottom:7px;font-size:11px;font-weight:800}.pantry-password-body input{width:100%;height:47px;border:1px solid #ccd9d0;border-radius:13px;padding:0 13px;font:600 14px Manrope,sans-serif;box-sizing:border-box}.pantry-password-body>div{display:flex;justify-content:flex-end;gap:9px;margin-top:16px}.pantry-password-error{min-height:17px!important;margin:7px 0 0!important;color:#a73535!important;font-size:10px!important}.pantry-password-body button:disabled{opacity:.55}.pantry-nfce-btn{white-space:nowrap}
body.nfce-lock{overflow:hidden}
@media(max-width:620px){.af-nfce-entry{width:min(350px,calc(100vw - 28px))}.nfce-modal{padding:0;align-items:end}.nfce-shell{width:100%;max-height:94dvh;border-radius:28px 28px 0 0}.nfce-header{padding:17px 17px 11px;border-radius:28px 28px 0 0}.nfce-brand h2{font-size:15px}.nfce-brand>span{width:38px;height:38px}.nfce-stage{padding:6px 15px 20px}.nfce-progress{padding:5px 15px 14px}.nfce-progress>i{width:18px}.nfce-progress span{font-size:9px}.nfce-camera-wrap{aspect-ratio:1/1}.nfce-actions{display:grid;grid-template-columns:1fr 1fr}.nfce-actions>*{padding:0 10px}.nfce-review-heading{align-items:start}.nfce-review-heading p{max-width:230px}.nfce-review-footer{position:sticky;bottom:-20px;background:linear-gradient(transparent,#f6faf7 18%);padding:22px 0 2px}.nfce-review-footer .nfce-secondary{padding:0 12px}.nfce-auth-gate{inset:92px 0 0}.nfce-products{max-height:38dvh}.pantry-notes-list{padding:0 14px 14px}.pantry-notes-intro{padding:2px 17px 12px}.pantry-notes-footer{padding:12px 14px;align-items:stretch;flex-direction:column}.pantry-notes-footer small{text-align:center}.pantry-note-actions{flex-direction:column}.pantry-password-body{padding:4px 17px 22px}.pantry-password-body>div{display:grid;grid-template-columns:1fr 1.35fr}.pantry-password-body button{padding:0 8px}}
.pantry-note-actions{flex-wrap:wrap}.pantry-note-actions .pantry-note-generate{flex-basis:100%;background:#e9f7ef;border-color:#cde8d8;color:#216842}
.nfce-photo-wrap{aspect-ratio:auto;min-height:210px;max-height:none;background:linear-gradient(145deg,#173f2c,#295f43)}.nfce-photo-wrap .nfce-camera-empty{min-height:210px;padding:24px}.nfce-photo-wrap .nfce-camera-empty h3{margin-top:12px}.nfce-photo-queue{margin:10px 0 12px;padding:11px;border:1px solid #dce7df;border-radius:16px;background:#fff}.nfce-photo-queue[hidden],.nfce-read-photos[hidden]{display:none!important}.nfce-photo-queue-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.nfce-photo-queue-head strong,.nfce-photo-queue-head small{display:block}.nfce-photo-queue-head strong{font-size:12px}.nfce-photo-queue-head small{margin-top:2px;color:#75837b;font-size:9px}.nfce-photo-queue-head button{border:0;background:transparent;color:#8c4d4d;font:750 10px Manrope,sans-serif;cursor:pointer}.nfce-photo-thumbs{display:flex;gap:8px;margin-top:10px;overflow:auto;padding-bottom:2px;scrollbar-width:thin}.nfce-photo-thumbs figure{position:relative;flex:0 0 74px;margin:0}.nfce-photo-thumbs img{display:block;width:74px;height:86px;object-fit:cover;border-radius:11px;border:1px solid #d9e4dc}.nfce-photo-thumbs figcaption{text-align:center;margin-top:3px;color:#67766e;font-size:8px}.nfce-photo-thumbs button{position:absolute;right:4px;top:4px;width:24px;height:24px;border:0;border-radius:50%;background:rgba(17,37,27,.82);color:#fff;cursor:pointer}.nfce-read-photos{display:flex;width:min(100%,450px);margin:11px auto 0}.nfce-actions label{box-sizing:border-box}
@media(max-width:620px){.nfce-photo-wrap,.nfce-photo-wrap .nfce-camera-empty{min-height:190px}.nfce-photo-wrap{aspect-ratio:auto}.nfce-actions label{min-height:50px}.nfce-read-photos{min-height:50px}}
.nfce-shell{background:linear-gradient(165deg,#f4f6f3 0%,#eef3ef 58%,#e8f1eb 100%)}.nfce-header,.nfce-progress{background:rgba(244,247,244,.94)}.nfce-auth-gate{background:linear-gradient(to bottom,rgba(236,242,237,.58),rgba(225,236,229,.94) 22%)}.nfce-auth-card{background:#f7f9f6}
.nfce-file-icon{width:74px;height:86px;border-radius:11px;border:1px solid #d9e4dc;background:#edf4ef;color:#315d45;display:grid;place-items:center;align-content:center;gap:7px}.nfce-file-icon i{font-size:24px}.nfce-file-icon b{font-size:8px;letter-spacing:.06em}.nfce-photo-thumbs figcaption{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(prefers-reduced-motion:reduce){.af-nfce-entry{transition:none}}
