.mp-portal .mp-freezer-map{display:grid;grid-template-columns:repeat(4,minmax(84px,1fr));gap:8px;overflow-x:auto;padding:8px 0 14px}
.mp-portal .mp-freezer-column{display:flex;flex-direction:column;gap:8px;min-width:84px;padding:9px 6px;background:var(--mp-bg);border:1px solid var(--mp-line);border-radius:12px;text-align:center}
.mp-portal .mp-freezer-column>strong{font-size:13px}
.mp-portal .mp-freezer-location{display:flex;flex:1;min-height:85px;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 4px;border:1px solid var(--mp-line);border-radius:10px;background:var(--mp-card);color:var(--mp-ink);font-weight:650;cursor:pointer;font-size:13px}
.mp-portal .mp-freezer-location small{display:block;font-weight:400;color:var(--mp-muted);font-size:11px}
.mp-portal .mp-freezer-basket{min-height:65px;background:var(--mp-bg)}
.mp-portal .mp-freezer-basket-icon{display:block;font-size:2em;line-height:1}
.mp-portal .mp-freezer-selected{outline:3px solid var(--mp-primary);outline-offset:-3px}
.mp-portal .mp-freezer-blank{display:flex;align-items:center;justify-content:center;min-height:65px;font-size:11px;color:var(--mp-muted)}
.mp-portal .mp-freezer-form{display:grid;gap:13px}
.mp-portal .mp-freezer-form label{display:grid;gap:5px;font-weight:600;font-size:14px}
.mp-portal .mp-freezer-form input,.mp-portal .mp-freezer-form select,.mp-portal #mp-freezer-filter,.mp-portal #mp-freezer-from-shopping select{min-width:0;max-width:100%;width:100%;box-sizing:border-box;border:1px solid var(--mp-line);border-radius:9px;background:var(--mp-card);color:var(--mp-ink);min-height:44px;padding:9px;font-size:16px}
.mp-portal .mp-freezer-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.mp-portal .mp-freezer-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.mp-portal .mp-freezer-actions .mp-btn{min-height:44px}
.mp-portal #mp-freezer-from-shopping select{flex:1;min-width:150px}
.mp-portal .mp-freezer-scanner{min-height:230px;background:#101010;border-radius:10px;overflow:hidden}
.mp-portal .mp-freezer-scanner[hidden]{display:none}
.mp-portal .mp-freezer-scanner video{width:100%;max-height:340px;object-fit:cover}
.mp-portal .mp-freezer-item{border-top:1px solid var(--mp-line);padding:13px 0;display:grid;gap:9px}
.mp-portal .mp-freezer-item:first-child{border-top:none}
.mp-portal .mp-freezer-item-info{display:grid;gap:4px}
.mp-portal .mp-freezer-item-info strong{overflow-wrap:anywhere}
.mp-portal .mp-freezer-item-info small{color:var(--mp-muted)}
@media(max-width:540px){.mp-portal .mp-freezer-map{grid-template-columns:repeat(4,minmax(82px,1fr));gap:5px}
.mp-portal .mp-freezer-fields{grid-template-columns:1fr}.mp-portal .mp-freezer-actions .mp-btn{flex:1 1 120px}
.mp-portal .mp-freezer-column{padding:7px 4px}.mp-portal .mp-freezer-location{font-size:12px}}
.mp-portal .mp-freezer-disclosure>summary{cursor:pointer;font-size:1.1rem;font-weight:700;line-height:1.4;padding:4px 0}
.mp-portal .mp-freezer-disclosure[open]>summary{margin-bottom:14px}
.mp-portal .mp-freezer-disclosure>summary:focus-visible{outline:2px solid var(--mp-primary);outline-offset:4px;border-radius:4px}

/* v0.1.32: compact freezer inventory, with touch-friendly icons on the right. */
.mp-portal .mp-freezer-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 0}
.mp-portal .mp-freezer-item-info{min-width:0;align-self:center;gap:3px}
.mp-portal .mp-freezer-item-info strong{line-height:1.25}
.mp-portal .mp-freezer-icon-actions{display:grid;grid-template-columns:repeat(2,44px);gap:6px;justify-content:end;align-items:center}
.mp-portal .mp-freezer-icon-btn{display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:1px solid var(--mp-line);border-radius:10px;background:var(--mp-card);color:var(--mp-primary);cursor:pointer;touch-action:manipulation}
.mp-portal .mp-freezer-icon-btn svg{display:block;width:20px;height:20px}
.mp-portal .mp-freezer-icon-btn:hover{background:var(--mp-bg);border-color:var(--mp-primary)}
.mp-portal .mp-freezer-icon-btn:focus-visible{outline:3px solid var(--mp-primary);outline-offset:2px}
.mp-portal .mp-freezer-icon-delete{color:#b42332}
@media(max-width:360px){.mp-portal .mp-freezer-item{gap:6px}.mp-portal .mp-freezer-icon-actions{gap:4px}}

/* v0.1.33: live freezer search next to location dropdown on mobile and desktop. */
.mp-portal .mp-freezer-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:end;margin:8px 0 12px}
.mp-portal .mp-freezer-controls label{display:grid;gap:5px;min-width:0;font-weight:600;font-size:14px}
.mp-portal #mp-freezer-search{box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:44px;padding:9px;border:1px solid var(--mp-line);border-radius:9px;background:var(--mp-card);color:var(--mp-ink);font-size:16px}
.mp-portal #mp-freezer-search:focus-visible{outline:2px solid var(--mp-primary);outline-offset:2px}
@media(max-width:380px){.mp-portal .mp-freezer-controls{gap:7px}}

/* v0.1.34: optional freezer-item comments with wrapping and theme-aware styling. */
.mp-portal .mp-freezer-notes-label{display:grid;gap:5px;font-weight:600;font-size:14px}
.mp-portal .mp-freezer-notes-label textarea{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:68px;padding:10px;border:1px solid var(--mp-line);border-radius:9px;background:var(--mp-card);color:var(--mp-ink);font-size:16px;resize:vertical}
.mp-portal .mp-freezer-item-info .mp-freezer-item-note{margin:3px 0 0;font-size:13px;line-height:1.35;color:var(--mp-muted);white-space:pre-line;overflow-wrap:anywhere}

/* v0.1.35: notes above a compact, side-by-side date row; camera in a modal. */
.mp-portal .mp-freezer-date-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;align-items:start}
.mp-portal .mp-freezer-date-fields label{display:grid;gap:4px;min-width:0;font-size:13px;line-height:1.25;font-weight:600}
.mp-portal .mp-freezer-date-fields input[type="date"]{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:44px;min-height:44px;max-height:44px;padding:5px 6px;border:1px solid var(--mp-line);border-radius:9px;background:var(--mp-card);color:var(--mp-ink);font-size:14px;line-height:1.2;font-variant-numeric:tabular-nums}
.mp-portal .mp-freezer-date-fields input[type="date"]::-webkit-date-and-time-value{text-align:left;min-width:0}
.mp-portal .mp-freezer-camera-dialog{box-sizing:border-box;width:min(460px,calc(100% - 24px));max-width:calc(100% - 24px);max-height:90vh;max-height:calc(100dvh - 32px);margin:auto;padding:16px;border:1px solid var(--mp-line);border-radius:16px;background:var(--mp-card);color:var(--mp-ink);box-shadow:0 18px 48px rgba(0,0,0,.28);overflow:auto}
.mp-portal .mp-freezer-camera-dialog::backdrop{background:rgba(6,20,34,.72)}
.mp-portal .mp-freezer-camera-dialog:not([open]){display:none}
.mp-portal .mp-freezer-camera-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.mp-portal .mp-freezer-camera-header h3{margin:0;font-size:18px}
.mp-portal .mp-freezer-camera-close{display:grid;place-items:center;width:44px;height:44px;min-width:44px;border:1px solid var(--mp-line);border-radius:10px;background:var(--mp-card);color:var(--mp-ink);font-size:20px;cursor:pointer}
.mp-portal .mp-freezer-camera-dialog .mp-freezer-scanner{min-height:210px;margin:10px 0}
.mp-portal .mp-freezer-camera-dialog .mp-freezer-scanner video{width:100%;max-height:min(48vh,340px);object-fit:cover}
.mp-portal .mp-freezer-camera-cancel{display:block;width:100%;margin-top:12px;min-height:44px}
.mp-portal .mp-freezer-camera-dialog button:focus-visible{outline:3px solid var(--mp-primary);outline-offset:2px}
