.fulfillment-dialog { width:min(1440px,96vw); max-width:96vw; height:90dvh; max-height:94dvh; border:1px solid #d5dbe2; border-radius:8px; padding:16px; color:#20252c; background:#fff; }
.fulfillment-dialog[open] { display:flex; flex-direction:column; gap:8px; }
.fulfillment-dialog::backdrop { background:rgb(25 32 44 / 28%); }
.fulfillment-heading,.fulfillment-filters,.fulfillment-footer { display:flex; align-items:center; gap:8px; flex-wrap:wrap; flex-shrink:0; }
.fulfillment-heading h2,.fulfillment-heading h3 { flex:1; margin:0; font-size:16px; }
.fulfillment-dialog button,.fulfillment-dialog select,.fulfillment-dialog input,.fulfillment-dialog textarea { border:1px solid #ccd3dc; border-radius:4px; background:#fff; color:inherit; font:inherit; padding:6px 9px; }
.fulfillment-dialog button { cursor:pointer; }
.fulfillment-dialog button:disabled { opacity:.45; cursor:default; }
.fulfillment-dialog button:hover:not(:disabled) { background:#f0f3f7; }
.fulfillment-filters input { flex:1; min-width:180px; }
.fulfillment-note,.fulfillment-notice { margin:0; color:#667181; font-size:12px; overflow-wrap:anywhere; }
.fulfillment-notice { min-height:18px; color:#415266; }
.fulfillment-scroll { overflow:auto; flex:1 1 220px; min-height:100px; border:1px solid #e1e5eb; }
.fulfillment-dialog table { border-collapse:separate; border-spacing:0; width:100%; font-size:12px; }
.fulfillment-dialog th { position:sticky; top:0; background:#edf0f4; z-index:1; color:#222; text-align:left; }
.fulfillment-dialog th,.fulfillment-dialog td { padding:8px; border-bottom:1px solid #e1e5eb; border-right:1px solid #e9edf1; vertical-align:top; white-space:pre-wrap; overflow-wrap:anywhere; min-width:70px; }
.fulfillment-scroll table { min-width:1100px; }
.fulfillment-scroll td:nth-child(7) { font-weight:700; }
.fulfillment-detail { flex:0 1 45%; overflow:auto; min-height:80px; border:1px solid #cdd8e4; padding:10px; }
.fulfillment-detail[hidden] { display:none; }
.fulfillment-detail td:first-child { width:220px; font-weight:600; }
.fulfillment-association { border-top:1px solid #d8dfe8; margin-top:12px; padding-top:8px; }
.fulfillment-candidates { max-height:220px; overflow:auto; }
.fulfillment-candidates label { display:flex; gap:8px; align-items:flex-start; padding:8px; border-bottom:1px solid #e5e8ed; white-space:pre-wrap; }
.fulfillment-association textarea { width:100%; margin-top:8px; box-sizing:border-box; }
.fulfillment-footer span { flex:1; }
@media(max-width:700px) { .fulfillment-dialog { padding:10px; width:98vw; max-width:98vw; height:94dvh; } .fulfillment-note { font-size:11px; } .fulfillment-filters { gap:4px; } .fulfillment-detail td:first-child { width:100px; } }
