:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#262626;background:#f4f5f7;font-size:16px}*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #e41e2b;outline-offset:2px}.topbar{height:68px;background:#fff;border-bottom:1px solid #e5e5e5;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,60px)}.brand{display:flex;align-items:center;gap:10px;font-size:1.2rem;font-weight:800;letter-spacing:-.04em}.brand-icon{display:grid;place-items:center;background:#e41e2b;color:#fff;border-radius:9px;width:35px;height:35px;font-size:1.45rem}.topnote{color:#777;font-size:.9rem}.layout{max-width:1500px;margin:auto;padding:28px clamp(16px,3.5vw,52px) 50px;display:grid;grid-template-columns:290px minmax(0,1fr);gap:24px}.sidebar,.workspace{background:#fff;border:1px solid #e5e7eb;border-radius:18px}.sidebar{padding:24px;align-self:start}.sidebar h1{font-size:1.35rem;margin:0 0 22px}.field-label{display:block;font-size:.9rem;font-weight:700;margin:18px 0 8px}.sidebar select,dialog select,dialog input:not([type=color]){width:100%;min-height:46px;border:1px solid #d4d6da;border-radius:9px;background:#fff;color:#242424;padding:10px 12px}.model-card{display:flex;align-items:center;gap:16px;margin:20px 0;padding:16px;background:#f6f6f6;border-radius:12px;min-height:150px}.model-card img{height:110px;width:95px;object-fit:contain;mix-blend-mode:multiply}.model-card strong,.model-card span{display:block}.model-card strong{line-height:1.3;font-size:.95rem}.model-card span{margin-top:7px;font-size:.83rem;color:#666}.howto{border-top:1px solid #eee;padding-top:20px;line-height:1.5}.howto strong{font-size:.95rem}.howto p{color:#646464;font-size:.9rem;margin:8px 0 0}.workspace{padding:26px;min-width:0}.workspace-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.eyebrow{font-size:.72rem;letter-spacing:.13em;font-weight:800;color:#d21e2b}.workspace h2,dialog h2{font-size:1.5rem;line-height:1.2;margin:7px 0 0;letter-spacing:-.035em}.export-btn,.primary{background:#e41e2b;border:1px solid #e41e2b;color:#fff;border-radius:10px;padding:12px 17px;font-weight:750;white-space:nowrap}.export-btn:hover,.primary:hover{background:#c81723}.export-btn span{margin-left:7px}.meter{display:flex;align-items:center;gap:12px;color:#666;font-size:.85rem;margin:21px 0 0}.meter-track{height:7px;background:#eee;border-radius:99px;flex:1;max-width:250px;overflow:hidden}.meter-fill{height:100%;background:#e41e2b}.cooler-stage{margin-top:24px;padding:30px 18px;background:radial-gradient(circle at 50% 30%,#fff 0,#f5f6f8 70%);border:1px solid #eceef0;border-radius:16px;min-height:540px;display:flex;align-items:center;justify-content:center;overflow:auto}.cooler{--cols:5;width:min(100%,620px);background:#24282d;border:9px solid #292d32;border-radius:12px 12px 4px 4px;box-shadow:15px 15px 28px #0002;min-width:250px}.cooler-top{height:47px;background:#d51e29;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 15px;font-weight:800;letter-spacing:.05em}.cooler-top small{font-size:.69rem;letter-spacing:0;font-weight:600;opacity:.88}.cooler-interior{background:linear-gradient(90deg,#202328,#474d52 10%,#353a3e 88%,#1d2024);padding:8px 11px 0}.shelf{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:3px;padding:4px 2px 0;border-bottom:8px solid #a1a6aa;box-shadow:0 4px 4px #0008;min-height:77px}.slot{border:0;min-width:0;height:65px;display:flex;align-items:center;justify-content:center;padding:2px;color:#666;touch-action:none;user-select:none;-webkit-user-select:none;border-radius:5px;position:relative;background:#ffffff09}.slot.empty{touch-action:manipulation}.slot.empty:hover{background:#ffffff17}.plus{width:27px;height:27px;border:1px dashed #bac0c4;border-radius:50%;color:#eef1f2;font-size:1.25rem;line-height:23px}.slot.filled{background:#ffffff12}.slot.filled:hover,.slot.dragged{background:#ffffff36}.slot img{height:61px;max-width:100%;object-fit:contain;pointer-events:none;mix-blend-mode:screen}.foreign-pack{height:57px;width:min(45px,90%);border-radius:13px 13px 8px 8px;background:var(--pack);border:2px solid #ffffff77;box-shadow:inset -8px 0 #0002;display:flex;align-items:center;justify-content:center;position:relative;pointer-events:none}.foreign-pack.bottle:before{content:"";position:absolute;bottom:calc(100% - 2px);height:11px;width:18px;background:var(--pack);border-radius:3px 3px 0 0;border:2px solid #ffffff77;border-bottom:0}.foreign-pack.can{border-radius:6px 6px 8px 8px}.foreign-pack span{font-size:.55rem;line-height:1.05;color:#fff;font-weight:800;text-align:center;overflow:hidden;word-break:break-word;max-height:43px;padding:2px;text-shadow:0 1px 3px #000b}.cooler-base{height:35px;background:#26282b}.gesture-note{text-align:center;color:#777;font-size:.85rem;margin:15px 0 0}dialog{border:1px solid #dedee1;border-radius:16px;padding:22px;width:min(560px,calc(100vw - 24px));max-height:min(88vh,900px);box-shadow:0 24px 70px #0004}dialog::backdrop{background:#13171aba}.dialog-header{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:20px}.close{border:0;background:#f3f3f3;border-radius:50%;width:37px;height:37px;font-size:1.5rem;line-height:1}.tabs{display:flex;gap:6px;background:#f3f3f3;border-radius:10px;padding:4px;margin-bottom:16px}.tabs button,.filter button{border:0;background:none;border-radius:7px;padding:10px 12px;font-size:.9rem;font-weight:650}.tabs button{flex:1}.tabs button.active,.filter button.active{background:#fff;color:#d51e29;box-shadow:0 1px 5px #0001}.filter{display:flex;gap:4px;margin:12px 0}.filter button{background:#f2f2f2;padding:7px 13px}.product-list{height:min(48vh,390px);overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:2px}.product{display:flex;align-items:center;gap:10px;border:1px solid #e6e6e6;border-radius:10px;background:#fff;padding:9px;text-align:left;min-height:80px}.product:hover{border-color:#e41e2b;background:#fff9f9}.product img{width:42px;height:58px;object-fit:contain;flex:none}.product strong,.product span{display:block}.product strong{font-size:.84rem;line-height:1.22}.product span{font-size:.75rem;color:#777;margin-top:3px}.no-results{color:#666;grid-column:1/-1}.color-line{display:flex;align-items:center;gap:12px;color:#666;font-size:.9rem}.color-line input{width:64px;height:48px;border:0;background:none;padding:0}.full{display:block;width:100%;margin-top:22px}.action-list{display:grid;gap:8px}.action-list button{padding:15px;text-align:left;background:#f7f7f7;border:1px solid #e8e8e8;border-radius:10px;font-weight:650}.action-list button:hover{background:#f0f0f0}.action-list .danger{color:#c71b27}.confirmation{background:#f7f7f7;padding:16px;border-radius:10px;line-height:1.55;font-size:.93rem}.signature-label{display:flex;justify-content:space-between;align-items:center;margin:18px 0 7px;font-weight:700}.signature-label button{border:0;background:none;color:#c71b27;font-size:.86rem;font-weight:650}#signature{width:100%;height:145px;border:1px dashed #aeb3b9;border-radius:9px;touch-action:none;background:white}#export-error{color:#be1723;font-size:.9rem}
@media(max-width:800px){.layout{grid-template-columns:1fr;gap:14px;padding:16px}.sidebar{padding:18px}.sidebar h1{font-size:1.1rem;margin-bottom:10px}.sidebar .field-label{margin-top:8px}.model-card{display:none}.howto{padding-top:12px;margin-top:14px}.howto p{font-size:.84rem}.workspace{padding:16px}.workspace-head{align-items:start}.workspace h2{font-size:1.25rem}.export-btn{padding:11px 12px;font-size:.86rem}.cooler-stage{min-height:400px;padding:18px 9px}.cooler{border-width:6px}.cooler-interior{padding:6px 5px 0}.shelf{gap:1px;min-height:62px;border-bottom-width:6px}.slot{height:55px;padding:0}.slot img{height:53px}.foreign-pack{height:47px;width:min(32px,90%)}.foreign-pack span{font-size:.47rem}.gesture-note{font-size:.77rem}.product-list{grid-template-columns:1fr}.topnote{display:none}}
@media(max-width:390px){.workspace-head{display:block}.export-btn{margin-top:13px}.cooler-top{font-size:.83rem}.cooler-top small{font-size:.6rem}}

/* Keep the selected model's actual product photo visible on narrow screens. */
@media(max-width:800px){.model-card{display:flex;min-height:112px;margin:14px 0 0;padding:10px 12px;gap:12px}.model-card img{width:78px;height:92px;flex:none;object-fit:contain}.model-card>div{min-width:0}.model-card strong{font-size:.9rem}.model-card span{font-size:.8rem;line-height:1.35}}

/* A lit cabinet and tighter facings make the original pack artwork legible. */
.cooler{width:min(100%,calc(var(--cols) * 56px + 64px));background:#24282d}
.cooler-interior{background:linear-gradient(90deg,#d4dcdf 0%,#f4f7f8 7%,#edf2f4 50%,#f4f7f8 93%,#bcc6ca 100%);padding:9px 12px 0}
.shelf{min-height:91px;gap:2px;padding:5px 1px 0;border-bottom:8px solid #8a969d;box-shadow:0 5px 5px #27343b55}
.slot,.slot.empty{height:78px;background:transparent}
.slot.empty:hover{background:#ffffff88}
.slot.filled{background:transparent}
.slot.filled:hover,.slot.dragged{background:#ffffff8c}
.slot img{display:block;width:100%;height:calc(100% * var(--size, .87));max-width:100%;max-height:100%;object-fit:contain;mix-blend-mode:normal;transform:none;filter:drop-shadow(2px 3px 2px #26333a55)}
.plus{color:#63727a;border-color:#a2afb5;background:#fff9;width:29px;height:29px;line-height:25px}
.foreign-pack{height:calc(100% * var(--size, .82));max-height:100%;width:min(39px,90%);box-shadow:inset -8px 0 #0002,2px 3px 3px #26333a55}
.product{min-height:98px;padding:11px 13px;gap:16px}
.product img{width:54px;height:75px;filter:drop-shadow(2px 3px 2px #0002)}
.product strong{font-size:.9rem}
@media(max-width:800px){.cooler-interior{padding:6px 5px 0}.shelf{min-height:65px;border-bottom-width:6px;gap:1px;padding:2px 0 0}.slot,.slot.empty{height:57px}.slot img{height:calc(100% * var(--size, .87));transform:none}.foreign-pack{height:calc(100% * var(--size, .82));width:min(29px,90%)}.product{min-height:80px}.product img{width:42px;height:62px}}

/* The traffic light uses all facings as its denominator, including empty ones. */
.meter{display:block;margin:20px 0 0;font-size:.88rem;color:#454b50}
.meter-summary,.meter-detail{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px}
.meter-summary>span{font-weight:650}
.meter-status{display:inline-flex;align-items:center;gap:8px;font-size:.88rem;font-weight:750}
.meter-light{width:13px;height:13px;flex:none;border-radius:50%;background:var(--traffic-color);box-shadow:0 0 0 3px var(--traffic-ring)}
.meter--green{--traffic-color:#16834b;--traffic-ring:#e1f4e9}.meter--yellow{--traffic-color:#d99000;--traffic-ring:#fff1cb}.meter--red{--traffic-color:#d52030;--traffic-ring:#ffe4e7}
.meter-track{display:flex;width:100%;max-width:none;height:12px;margin:12px 0 8px;background:#edf0f2;border-radius:99px;overflow:hidden}
.meter-coke{height:100%;background:#16834b}.meter-foreign{height:100%;background:#d52030}
.meter-detail{justify-content:flex-start;font-size:.81rem;color:#656b70}.meter-detail b{color:#282e32}.meter-detail span:last-child{flex-basis:100%;font-size:.78rem}
@media(max-width:800px){.meter-summary{align-items:flex-start}.meter-status{font-size:.84rem}.meter-detail{gap:5px 12px}.meter-detail span:last-child{line-height:1.35}}
