.vf-dialog { box-sizing:border-box; width:min(1100px,96vw); max-height:94dvh; padding:1.5rem; border:1px solid var(--rule,#c2a398); border-radius:7px; background:var(--cream,#faf4e9); color:var(--wine,#682d3e); font-family:var(--sans,"Segoe UI",Arial,sans-serif); box-shadow:0 20px 80px #4d1f2d33; overflow:auto; }
.vf-dialog::backdrop { background:#4d1f2d99; }
.vf-dialog *, .vf-dialog *::before, .vf-dialog *::after { box-sizing:border-box; }
.vf-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.vf-header h2 { margin:0; font-family:var(--serif,"Palatino Linotype",Georgia,serif); font-weight:400; font-size:1.8rem; }
.vf-button { padding:.65rem 1rem; border:1px solid var(--rule,#c2a398); border-radius:5px; background:var(--cream,#faf4e9); color:var(--wine,#682d3e); font:inherit; cursor:pointer; }
.vf-button:hover:enabled { background:var(--paper,#f0e8da); }
.vf-button:disabled { opacity:.55; cursor:default; }
.vf-button.vf-primary { background:var(--wine,#682d3e); border-color:var(--wine,#682d3e); color:var(--cream,#faf4e9); }
.vf-button.vf-primary:hover:enabled { background:var(--deep-wine,#4d1f2d); }
.vf-dialog :focus-visible { outline:3px solid var(--wine,#682d3e); outline-offset:3px; }
.vf-actions { display:flex; flex-wrap:wrap; align-items:end; gap:.7rem; margin:.75rem 0; }
.vf-status { min-height:1.6em; font-weight:600; line-height:1.5; }
.vf-help { color:var(--muted,#73534f); line-height:1.5; margin:.6rem 0; }
.vf-recipient { font-weight:600; line-height:1.5; }
.vf-editor { border-top:1px solid var(--rule,#c2a398); padding-top:.5rem; margin-top:1rem; }
.vf-editor[hidden] { display:none; }
.vf-image-scroll { max-height:60dvh; width:100%; overflow:auto; border:1px solid var(--rule,#c2a398); background:var(--paper,#f0e8da); overscroll-behavior:contain; }
.vf-image-holder { position:relative; width:100%; line-height:0; min-width:100%; touch-action:none; user-select:none; }
.vf-image { display:block; width:100%; height:auto; max-width:none; pointer-events:none; }
.vf-marks { position:absolute; inset:0; pointer-events:none; }
/* Solid Bordeaux badges retain high-contrast light numbers over client imagery. */
.vf-mark { position:absolute; border:3px solid var(--wine,#682d3e); background:#682d3e1c; min-width:0; min-height:0; }
.vf-mark-number { position:absolute; top:0; left:0; min-width:24px; min-height:24px; padding:3px; line-height:1; font:700 15px/1.2 var(--sans,"Segoe UI",Arial,sans-serif); color:var(--cream,#faf4e9); background:var(--deep-wine,#4d1f2d); border-radius:0 0 4px 0; text-align:center; }
.vf-field { display:flex; flex-direction:column; gap:.35rem; margin:.8rem 0; }
.vf-field>span { font-weight:600; }
.vf-field input, .vf-field textarea, .vf-field select { width:100%; padding:.7rem; color:var(--deep-wine,#4d1f2d); background:var(--cream,#faf4e9); border:1px solid var(--rule,#c2a398); border-radius:4px; font:inherit; }
.vf-field textarea { resize:vertical; min-height:7rem; }
.vf-actions .vf-field { margin:0; }
.vf-consent { display:flex; align-items:start; gap:.65rem; line-height:1.5; margin:1.2rem 0; }
.vf-consent input { flex:none; width:1.2rem; height:1.2rem; margin:.2rem 0 0; accent-color:var(--wine,#682d3e); }
.vf-note-list { padding-left:2rem; }
.vf-note-list li { padding:.6rem 0; border-bottom:1px solid var(--rule,#c2a398); }
.vf-note-list .vf-button { text-align:left; }
@media(max-width:600px) { .vf-dialog { padding:1rem; width:97vw; max-height:96dvh; } .vf-header { align-items:start; } .vf-header h2 { font-size:1.5rem; } .vf-actions .vf-button { flex:1 1 auto; } .vf-image-scroll { max-height:48dvh; } }
